Прежде чем задавать вопрос - посмотрите в >> КАРТОТЕКЕ << Возможно, там уже есть готовый ответ.
Тема предназначена для общих вопросов. Прежде, чем тут что-то написать, посмотрите другие темы этого раздела. Вполне возможно, что они больше соответствуют тематике вашего вопроса.
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №5371
написано: 8 августа 2016, 12:51
| Отредактировано: Veldion - 8 августа 2016, 12:51
; Здесь повторить экипирующий блок для предмета присвоенного к другому слоту (допустим для штанов)
END
Тип скрипта эффектовый
Теперь нужно создать "управляющий" предмет типа броня/одежда с "пустой" моделью и не присвоенный ни к одному слоту и прикрепить к нему объектовый эффект содержащий данный скрипт (надеюсь ты знаешь как это делается). Теперь если в игре экипировать "управляющий" предмет то все будет работать. Ну а если тебе захочется побегать в броне/одежде не прописанной в данном скрипте достаточно будет снять "управляющий" предмет...
Изменение репутации для пользователя КсюXa
КсюXaOffline
Сообщение №5372
написано: 8 августа 2016, 13:35
| Отредактировано: КсюXa - 8 августа 2016, 14:30
Гассспада... чота сложно всё это. У Ирины, как она сказала, есть несколько отдельных объектов-шмоток (типа - сапоги, штаны, нагрудник, наплечник и т.п.), которые, надетые все вместе, составляют, так сказать, ансамбль, целую конкретную броню (пардон за обилие запятых). И эффект нужен только для этой конкретной брони и только для игрока. Она просит написать скрипт "без адреса", который можно повесить на любую из этих вещей из ансам, бля... и который будет снимать с игрока шмотку-носитель скрипта, если здоровье игрока падает ниже N процентов и при попытке заново экипировать - показывает сообщение о невозможности использования, если здоровье всё ещё не того... Неужто нельзя сделать объектный скрипт, тупо по OnEquip носителя ?
КсюXa-сан, ну вообще-то Ирина сказала, что желательно мол, чтобы скрипт не только снимал шмотку не удовлетворяющую условиям на данный момент, но и одевал на ее место другую. К тому же мне кажется что ей будет технически проще выкинуть из моего скрипта ненужные блоки, чем дописать свои без готового образца.
Написать скрипт вообще без адреса?... Если не указать ID конкретной шмотки, то как ему (скрипту) прикажешь понимать какую именно шмотку нужно снимать? Да и Player.GetHealthPercentage -уже есть привязка к конкретному адресату.
К тому же если Ирина будет как она говорила одни предметы добавлять, а другие убирать, то присвоенные к предметам скрипты (ну или как мининум их часть) которые вместе с предметами не стираются (их нужно убирать отдельно или переписывать под новые предметы), неизбежно останутся в плагине бесполезным хламом... Кроме того в одном общем скрипте на порядок проще проследить, чтобы предметы, присвоенные к одному слоту не начали соревноваться за право согреть ГГ...
Если Ирине не лениво будет создавать "личный" скрипт для каждого отдельного носка/бантика, то идеальный вариант уже предложил MaxwellDemon, только его скрипт нужно будет повесить на конкретную шмотку и как он собственно сказал, не забыть указать ID этой шмотки в данном скрипте.
И может прописать тогда для каждой шмотки её ID (раз уж так надо) в её же скрипте. И в каждом скриптике указывать свой порог срабатывания.
Добавлено (08 Августа 2016, 19:04) --------------------------------------------- Ну вот типа такого скрипта: scn [имя скрипта]
int iEquipped
begin OnEquip player set iEquipped to 1 end
begin GameMode if iEquipped == 1 && Player.GetHealthPercentage < 0.5 Player.UnequipItem ИмяПредметаEditorID 0 1 set iEquipped to 0 endif end
Ну и добавить блок обратной экипировки при повышении здоровья и блок менюмод, для попытки экипироваться насильно через инвентарь не будучи вполне здоровым. Проверить не могу из-за отсутствия игры
КсюXa, вообще-то предметы общий ансамбль не составляют, там одних рубашек больше 10, а всего предметов больше 70, чтобы составить ансамбли в различных комбинациях - это комплектов штук 200 получится, тут только к каждому из предметов скрипт делать
Вариант, который предложил Veldion должен подойти, только надо его до ума довести, добавив обратную экипировку при достижении нужных показателей здоровья - как раз нужный предмет как бы будет одет, но визуально не будет отображаться и можно будет его снять-одеть
Изменение репутации для пользователя КсюXa
КсюXaOffline
Сообщение №5377
написано: 8 августа 2016, 16:50
| Отредактировано: КсюXa - 8 августа 2016, 16:52
там одних рубашек больше 10, а всего предметов больше 70, чтобы составить ансамбли в различных комбинациях
АТЖЁТНХ - это будет просто писец какой-то ГГине скромнее надо быть. Всё ж разруха, бедность там... отсутствие ателье. Штанишки и маечка есть - уже хорошо.
Ой, всё...
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №5378
написано: 8 августа 2016, 17:08
| Отредактировано: Veldion - 8 августа 2016, 17:29
Вариант, который предложил Veldion должен подойти, только надо его до ума довести, добавив обратную экипировку при достижении нужных показателей здоровья
Вообще-то изначально предложенный мной скрипт не только снимает предмет при потере здоровья ниже определенного уровня, но и одевает обратно при восстановлении здоровья (смотри внимательно), просто в моем скрипте прописан не один уровень здоровья а четыре.
З.Ы. Linnan-сан постарайся не вешать скрипты с одинаковыми условиями одевания на предметы приписанные к одному слоту. Вылетов может и не будет, но без глюков точно не обойдется.
З.З.Ы Больше 70-ти предметов??? И соответственно больше 70-ти одинаковых как гайки скриптов?! Я начал путаться с последующей доводкой когда количество скриптов перевалило за 30, а тут 70... Остается только пожелать во всем этом не утонуть...
Veldion, а есть возможность сделать в скрипте такую штуку - чтобы данный предмет был как бы экипирован, но его не было видно, т е как выше написал создать предмет без модели, но дабы не захламлять инвентарь при его экипировке на персонаже отображалась бы определённая модель, которая не отображалась бы в инвентаре и именно эта модель бы исчезала при необходимых показателях здоровья, а сам предмет продолжал бы быть экипированным, при возвращении здоровья снова бы всё визуально надевалось? Проблема в том, что по задумке все вещи определённого типа, занимающие один слот, должны сниматься при равных условиях и при них же возвращаться. Вроде пыталась это объяснить, но видать так хорошо объясняю) Но за те скрипты тоже спасибо - они в дело пойдут, но уже для другого
В конкретно твоем скрипте блок OnEquip вообще лишняя деталь.
с хера ли какой стати? в этом блоке меняется объявленная переменная, чтобы "пометить" шмотку, как надетую. Хотя - да.. какая разница: скрипт и без него "снимет" указанную одежду, даже если она и не была надета на игрока. Сумимасэн
Скрипт из сообщения 6766 не хочет сохраняться. Единственные изменения - добавлено количество блоков до пяти вариантов. Чего ему вечно не хватает для нормальной работы?
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №5383
написано: 8 августа 2016, 18:05
| Отредактировано: Veldion - 8 августа 2016, 18:15
Linnan, если я правильно понимаю то: Есть предметы, которые должны отображаться на фигуре персонажа чисто визуально и заменяться скриптом автоматически в зависимости только от здоровья и вне зависимости от того, что на нем/ней (персонаже) одето тобой "вручную", эти предметы не должны обладать защитой, ломаться, и не должны отображаться в инвентаре. В то же время есть предметы которые отображаются в инвентаре и будут одеваться "вручную" вне зависимости от здоровья, но визуально на фигуре персонажа отображаться не будут. ТАК?
Цитата Linnan
Скрипт из сообщения 6766 не хочет сохраняться. Единственные изменения - добавлено количество блоков до пяти вариантов.
А не измененный вариант сохраняется? Если базовый вариант сохраняется, то смотри на что именно ГЕКК матерится... Возможно не все предметы прописанные в скрипте реально созданы.
Изменение репутации для пользователя Linnan
LinnanOffline
Сообщение №5384
написано: 8 августа 2016, 18:25
| Отредактировано: Linnan - 8 августа 2016, 18:35
А не измененный вариант сохраняется? Если базовый вариант сохраняется, то смотри на что именно ГЕКК матерится... Возможно не все предметы прописанные в скрипте реально созданы.
а он просто предлагает сохранить скрипт при закрытии, но текст скрипта не убирается. Пробую сейчас методом тыка исправить - что-то в командах или условиях похоже его смущает, предметы все имеются
Если конкретно на примере, что должен делать скрипт - имеются перчатки, но вещь в инвентаре не имеет модели, вместо неё ставится модель из добавляемой скриптом не видимой в инвентаре, которая исчезает при определённом количестве здоровья, но перчатки без модели остаются надетыми и когда здоровье поднимается до необходимой отметки, то модель снова появляется
Если конкретно на примере, что должен делать скрипт - имеются перчатки, но вещь в инвентаре не имеет модели, вместо неё ставится модель из добавляемой скриптом не видимой в инвентаре, которая исчезает при определённом количестве здоровья, но перчатки без модели остаются надетыми и когда здоровье поднимается до необходимой отметки, то модель снова появляется
Ну как я понял задумка такая: если твоя героиня сильно изранена, то визуально она должна быть в прострелянной кофте, рваных штанах, вся в кровище и в бинтах по самую шею, а будучи здоровой должна выглядеть чисто-аккуратно... а то что на ней на самом деле силовая броня в тридцать три слоя, это как бы визуально не видно... Угадал? Если угадал, тогда твоя проблема вполне решаема... но прости не сегодня (я тупо засыпаю уже)
Добавлено (08 Августа 2016, 23:13) --------------------------------------------- Veldion, проверила скрипт из сообщения 6759 - работает, снимает и возвращает экипировку, единственное неудобство - приходится вручную снимать одёжу и потом базу. Теперь осталось разобраться со скриптом на невидимое в инвентаре, но видимое на персонаже)
Изменение репутации для пользователя MaxwellDemon
MaxwellDemonOffline
Сообщение №5387
написано: 9 августа 2016, 01:56
| Отредактировано: MaxwellDemon - 9 августа 2016, 02:56
1.) Делается список (Form List), в него добавляются все 70 предметов. 2.) Сохраняется переменная предмета, надетого в нужном слоте. 3.) При низких ОЗ. Если переменная находится в списке - снимается предмет и сохраняется в отдельную переменную, аля "снятый предмет". 4.) При высоких ОЗ. Если нужный слот пуст и переменная "снятый предмет" существует - одевается тот самый предмет и чистится та самая переменная.
Всё... И делается всё это одним ... мать его ... квест-скриптом и без кучи всяких "невидимых" предметов...
P.S. Только для проверки слота, а соответственно для одевания снятых предметов - нужен NVSE.
Добавлено (09 Августа 2016, 04:56) ---------------------------------------------
Linnan, написал я скрипт, даже проверил в игре - работает и думается так как вам и хотелось. Данный скрипт требуетNVSE и работает со слотамим upperbody и hair т.е. под броню и большинство шлемов (но не все). Смотри номера слотов тут GetEquippedObject. Для скрипта нужно предварительно создать список (Form List) и поместить туда все предметы соответствующих слотов, которые должны сниматься/одеваться. И ... чтоб его ... да это квест-скрипт для которого нужно будет делать квест, разжёвано на другом примере тут (только в данном случае частоту скрипта делать не 1 как в примере, а скажем 0.02). Делается элементарно и никаким "Заданием" в игре не является.
MaxwellDemon, в итоге в процессе до меня дошло, что таскать в инвентаре 70 с лишним предметов, которые пусть и имеют нулевой вес, но захламляют раздел значительно - уже перебор. Кроме того, что-то можно не брать изначально или случайно отдать торговцу - в скрипте элемента уже нет. Решила сделать как предлагала КсюXa - несколько комплектов, по прикидкам не больше 30 получится, изначально заявленная 200 с лишним - это если абсолютно всё со всем комбинировать в разных сочетаниях - и уже для этой цели нужно, чтобы в инвентаре отображался только комплект с привязанным к нему скриптом, а сами элементы оставались бы в инвентаре невидимыми и включались/выключались по заданным условиям, Veldion понял правильно
Linnan, Ох... Я повторюсь... Ребята... Мудрите по чём зря...
Я написал тебе один скрипт на все предметы и не важно есть они в инвентаре или нету.
В игре скрипт действует так: Если ОЗ упали ниже 50% и если при это на персонаже надеты любой(ые) предметы(ы) из списка предметов - то они снимутся. Если ОЗ выросли до 50% и выше - именно те предметы что были сняты и оденутся обратно, если только игрок уже не одел в те слоты другие предметы.
Добавлено (09 Августа 2016, 13:14) ---------------------------------------------
Цитата Linnan
... чтобы в инвентаре отображался только комплект с привязанным к нему скриптом, а сами элементы оставались бы в инвентаре невидимыми и включались/выключались по заданным условиям ...
Пардон, а комплект и элементы это разные вещи? Никак не пойму зачем "аловердесы" с невидимыми псевдо предметами, когда можно обойтись без них...
Пардон, а комплект и элементы это разные вещи? Никак не пойму зачем "аловердесы" с невидимыми псевдо предметами, когда можно обойтись без них...
конечно разные. Один комплект занимает одну строку в инвентаре и включает в себя несколько элементов экипировки. При экипировке комплекта все они отображаются на персонаже, словно комплект является стандартной одёжкой, занимающей несколько слотов, поскольку отдельные его элементы в инвентаре не отображаются, они только визуально отключаются при параметрах здоровья и снова включаются. Аналогично можно действовать, если комплект был изначально целым и потом его почикали и добавили в список как рвущийся по мере повреждения. Надеюсь, объяснила правильно
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №5391
написано: 9 августа 2016, 11:31
| Отредактировано: Veldion - 10 августа 2016, 09:24
Скрипт написан для пяти вариантов здоровья ГГ и требует соответственно пять "визуальных" предметов. Скрипт вешается на "базовый предмет".
В данном скрипте:
BBB01 - "Базовый" предмет. Должен иметь все нужные характеристики (вес прочность сопротивление цену) отражаться в инвентаре, но не отражаться на модели игрока. Должен быть присвоен к одному из слотов к которым присвоена ванильная броня вместо которой данныйпредмет будет экипироваться. Одевается вручную. На этот предмет вешается скрипт.
VVV01 - VVV05 "Визуальные" предметы присвоенные к данному "базовому" предмету. Автоматически добавляются игроку при наличии у него/нее "базового" предмета к которому они приписаны и удаляются если "базового" предмета в инвентаре нет. Не отражаются в инвентаре, отражаются на модели игрока если одет "базовый" предмет и соблюдаются оговоренные условия. Не отражаются если условия не соблюдаются или "базовый" предмет снят. Должны иметь только характеристику прочность. Все "визуальные" предметы в данном случае приписаны к одному "базовому" предмету и должны быть присвоены к слотам отличающимся (обязательно) от слота "базового" предмета. "Визуальные" предметы обязательно должны быть того же класса, что и "базовый" предмет, например если "базовый" предмет - рубашка, то и присвоенные к нему "визуальные" предметы должны быть рубашками.
Ну вот теперь вроде все максимально близко к тому, что ты хотела...
Veldion, опять сохранять скрипт не хочет. Нажимаю Сохранить, потом закрываю скрипт - выскакивает окно с предложением сохранить и надписью Current = и так до бесконечности
Цитата Veldion
"Визуальные" предметы обязательно должны быть того же класса, что и "базовый" предмет, например если "базовый" предмет - рубашка, то и присвоенные к нему "визуальные" предметы должны быть рубашками.
вот этот момент поясни - т е получается, что к данному скрипту нельзя привязать предметы разных слотов, а только одного и он просто меняет один предмет на другой? Под комплектами понималось, что слотов несколько, они все одновременно занимаются и по мере надобности отключаются - наверное это уже слишком сложная задача для скриптинга получается, бум разбираться как меши склеить в одно целое)
вот этот момент поясни - т е получается, что к данному скрипту нельзя привязать предметы разных слотов
Ну по первых не разных слотов а разных типов... а во вторых конечно можно присваивать но с умом: если "базовый" предмет есть рубашка, а "визуальный" предмет есть шляпа то ты не сможешь надеть ванильную шляпу до тех пор, пока в ручную не снимешь "базовый" предмет-рубашку, потому как скрипт упорно будет одевать "визуальную" шляпу вместо ванильной или вместе с ванильной если слоты "визуальной" и ванильной шляп разные.
Меши кстати можно и не склеивать. Скрипт вполне сможет одевать/снимать штаны и рубашку одновременно (а если надо то и шляпу/шлем до кучи) для этого нужно только продублировать блоки для работы с другим набором "визуальных" предметов. Только нужно помнить, что если сейчас скрипт меняет условную рубашку т.е. "визуальные" предметы с 01-го по 05-й то в добавленных блоках должны быть прописаны условные штаны т.е. "визуальные" предметы с 06-го по 10-й а базовый предмет должен остаться тем же. Так же слоты "визуальных" предметов рубашки должны отличаться от слотов "визуальных" предметов штанов.
Изменение репутации для пользователя Linnan
LinnanOffline
Сообщение №5394
написано: 9 августа 2016, 15:14
| Отредактировано: Linnan - 9 августа 2016, 15:31
Меши кстати можно и не склеивать. Скрипт вполне сможет одевать/снимать штаны и рубашку одновременно (а если надо то и шляпу/шлем до кучи) для этого нужно только продублировать блоки для работы с другим набором "визуальных" предметов. Только нужно помнить, что если сейчас скрипт меняет условную рубашку т.е. "визуальные" предметы с 01-го по 05-й то в добавленных блоках должны быть прописаны условные штаны т.е. "визуальные" предметы с 06-го по 10-й а базовый предмет должен остаться тем же. Так же слоты "визуальных" предметов рубашки должны отличаться от слотов "визуальных" предметов штанов.
а как это сделать, чтобы скрипт сразу надел определённые предметы для разных слотов, а по мере необходимости их вырубал? Для каждого комплекта нужен один скрипт из 5 блоков, но под разные слоты, а здесь если не туплю он их меняет
Veldion, меши я всё же склею, благо там всё под одно тело заточено, так будет проще, чем делать совсем уж замудрёный скрипт с добавлением разных предметов, будут цельные чиканные комплекты на один слот и к каждому комплекту свой скрипт. А при попытке довести твой скрипт с разными условиями кончилось всё тем, что один из вариантов сохранился, но при попытке зайти в игру появился чёрный экран без звука, отцепила скрипт от базы - игра заработала, так что лучше оставлю это дело профи. Может требуется глобальную переменную ввести? Посмотрела в скриптах, которые отвечают за нечто подобное - они там присутствуют, правда в какие команды её пихать и как её вообще делать - понятия не имею
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №5396
написано: 10 августа 2016, 00:41
| Отредактировано: Veldion - 10 августа 2016, 05:22
А при попытке довести твой скрипт с разными условиями кончилось всё тем, что один из вариантов сохранился, но при попытке зайти в игру появился чёрный экран без звука, отцепила скрипт от базы - игра заработала
У меня все прекрасно сохраняется (да, точки я вернул) и работает. Я не знаю как ты "доводишь скрипт до ума" поэтому могу только гадать, что в твоем варианте не так...
На самом деле твоя задача решается довольно просто. Можно даже сделать чтобы при ранении в руку на руке появлялась повязка, причем именно на той руке которая повреждена. И вовсе не требуется быть "профи" с хитроспециальными навыками. Требуется только: 1). Модели нужного вида и в нужном количестве. 2). Достаточное число свободных слотов. 3). От автора - внимательность, терпение и элементарная логика на уровне младших классов школы.
Короче, если хочешь получить нормальный рабочий скрипт, то либо склеиваешь меши в одну одежду стандартного типа и говоришь сколько "визуальных" предметов должны составлять эту одежду, либо если не собираешься склеивать меши - четко горишь из скольких отдельных типов (рубашка штаны галстук) будет состоять общая одежда и сколько "визуальных" предметов входит в каждый тип. А еще лучше пишешь так: 1). Указываешь ID "базового" предмета управляющего комплектом. 2). Для каждого "визуального" предмета входящего в комплект указываешь ID, указываешь тип предмета (полная броня, рубашка с рукавами, майка без рукавов, штаны, сапоги, галстук), уровень здоровья для одевания и уровень здоровья для снятия. И получишь скрипт, который можно будет ставить в игру "как есть" без дополнительных правок и прочих танцев с бубном. Как-то так. Да в принципе только так.
З.Ы. Просто совет: пока не наберешься достаточно опыта, работай с Fallout-3. Вегасовский ГЕКК сырой как рыба после дождя и гусей в нем больше чем в любой деревне, а троечный ГЕКК вполне адекватный. По крайней мере он четко скажет в каком месте скрипта и какая именно ошибка, а не будет тупо отказываться сохранять скрипт, заставляя тебя гадать на ромашке что именно и где не так...
Изменение репутации для пользователя КсюXa
КсюXaOffline
Сообщение №5397
написано: 10 августа 2016, 07:06
| Отредактировано: КсюXa - 10 августа 2016, 07:26
четко скажет в каком месте скрипта и какая именно ошибка,а не будет тупо отказываться сохранять скрипт, заставляя тебя гадать на ромашке что именно и где не так...
Дык... сколько раз говорилось - ставьте глюкодав и он будет сообщать об ошибках. Качаем отсюда, распаковываем в папку с Вегасом (туда, где ГЕКК) и запускаем geckpu-nv-14-ехе. ЗЫ. Это для последней версии редактора, которая 1.4 если чо
Ой, всё...
Изменение репутации для пользователя Linnan
LinnanOffline
Сообщение №5398
написано: 10 августа 2016, 07:29
| Отредактировано: Linnan - 10 августа 2016, 07:52
КсюXa, глюкодавка-то стоит, но в инструкции к ней было написано, что запускать надо через GECK_NVSE, через geckpu-nv-14-ехе ошибки появились
Veldion, при сохранении он пишет - Unknown variable or function 'GetAVHealth' Удалила это значение - сохранился Ура, заработал наконец-то) Спасибо, что помучился со мной столько дней)