Compiller
31 May 2014 | 16:35
Доброго времени, уважаемые форумчане.
Ворпрос возможно уже обсуждался, но т.к. по каким-то причинам в разделе "Подвал Элджернона" я вижу всего 1 тему ФАК от Wasteland Ghost, поискать не могу. Поиск по сайту тоже ничего не дает. Что делаю не так?
Итак сам вопрос: Подскажите пожалуйста, возможно ли пассивное выполнение скриптов. Т.е. привязать скрипт к предмету можно, но можно ли скрипт заставить действовать пассивно?
Иными словами лежит предмет в инвентаре и привязанный к нем скрипт работает. Например положил <ITEM1> в инвентарь и пока она там лежит у чузена +2 к силе, или изменился показатель статистики "Без оружия".
Как вариант подобного использование предметов, таких как счетчик гейгера, детектор движения и т.п. В фоллауте 1 можно было использовать стел-бой, вот по подобному принципу. Привязать скрипт к предмету и при его активации запускается этот скрипт.
Аналогично (но не совсем) работают книжки при использовании изменяют статистику.
Или еще вариант броня +2 (не важно) к восприятию. Да, силовая броня может добавлять силы, но в фоле2 это реализовано за счет "перка предмета".
Перки, насколько мне известно, не редактируются (прошиты в двиг). SFall не берем, там смысл другой.
Реализацию а-ля сделать новый наркотик и повесить на него несколько эффектов не вариант! Т.к. сам предмет исчезает после использования.
Спасибо за ответы.
The Master
1 June 2014 | 05:33
QUOTE |
Например положил <ITEM1> в инвентарь и пока она там лежит у чузена +2 к силе, или изменился показатель статистики "Без оружия". |
Я уже за давностью лет не помню, будет оно работать или нет, но всё необходимое для этого в скриптовом языке есть. Другое дело что один и тот же предмет (со скриптом и без) не будут складываться в инвентаре в стопку, поэтому лучше делать их в единственном экземпляре.
Броня и наркота обрабатываются движком, редактировать можно, важно знать как.
http://teamx.ru/site_arc/smf/index.php-topic=715.0.htmhttp://teamx.ru/site_arc/ikonboard/topic.c...amp;start=0.htm
Wasteland Ghost
1 June 2014 | 07:19
В инвентаре не работают обработчики скриптов (не все, не у всех объектов) и инвентарь не обновляется после поюзания объекта. Вся наркота и прочие юзабельные вещи (карты, например) обрабатываются движком.
Compiller
1 June 2014 | 12:26
Благодарю всех за ответы.
Как я понял способ создать объект (пусть будет броня) со спец возможностями прописать их в двиг, как описано здесь:
http://teamx.ru/site_arc/smf/index.php-topic=715.0.htm в посте Wasteland Ghost про смещения (offset: 0x109634 и т.д.)
Получается что в двиг сперва необходимо прописать этот самый перк. Создать его. Всвязи с чем возникает еще ряд вопросов:
- Как видно из приведенного примера (еще раз спасибо Wasteland Ghost)
QUOTE |
Skill1 (SKILL.MSG 100): -1 Amount for (in % points) Skill1: 0 Type: 0 Skill2 (SKILL.MSG 100): -1 Amount (in % points) for Skill2: 0 |
К объекту (у нас это броня) в двиге можно привязать пару скилов, а если их нужно сделать больше? Добавить строчку? А не слетит ли в таком случае адресация (скорей всего полностью слетит) и как на это вмешательство отреагирует двиг?
Если делать перк с нуля, естественно его надо прописать и в PERK.MSG и в прочих файлах, но сам вопрос в какой части ЕХЕ это можно сделать?
Если найти секцию забитую 0000 (нулями) можно сделать это там, но тогда как привязать "новый броневой перк" к этому адресу?
Или "броневые перки" можно прописывать только в определенном месте с такого-то адреса по такой-то?
И последний вопрос:
Может кто знает, каким образом реализована работа стелс-боя в фоле1? Там именно его активация (юзанье) изменяло стат скрытность.
Wasteland Ghost
1 June 2014 | 13:29
Новые перки вписать не получится только модифицировать существующие.
За работу стеллс-боя отвечает опять же движок.
Настоятельно советую поковырять глобальные скрипты сфалл, возможно, получится что-то реализовать с их помощью. А так врятли.
Nordan
1 June 2014 | 17:39
А не проще в сам скрипт Чузена запихнуть проверку на наличие в его инвентаре определенного предмета? И вот там прописать все эффекты.
Хотя, ЕМНИП, Ф2 умеет только прибавлять значения скиллов, убавлять он их не умеет. Ну это только про скиллы, статами он вертит нормально (в обе стороны :) ).
Wasteland Ghost
1 June 2014 | 20:31
В который из обработчиков? :) В том-то и дело, что ни один в инвентаре не выполняется.
Nordan
1 June 2014 | 22:02
Да в critter_p_proc ее (проверку в смысле :)) затолкать и добавить переменную-переключатель (типа эффект включен/эффект выключен). Лучше в качестве переменной использовать ГВАРу, т.к. ЛВАРы, на сколько я помню, у Чузена тоже работают не совсем адекватно.
Да, немножко кривовато, зато не будет возни с инвентарем и, тем более, с перками.
QUOTE |
В том-то и дело, что ни один в инвентаре не выполняется. |
Да, в принципе, они там и не нужны. Ведь игрок все равно выйдет из режима инвентаря, и при обновлении(а critter_p_proc обновляется оооочень быстро) сработает проверка, а следом и добавится эффект.
Compiller
2 June 2014 | 11:07
Спасибо за ответы.
К решению пришел сам, аналогично предложенному Nordan.
Отчасти, на ход мыслей в нужном направлении натолкнул пост Alexandr'а на форуме
teamx.ru, кстати он же Александр "BlackDesigner" Пошелюжин из проекта FON.
QUOTE |
Потом сделал по-другому через скрипт чузена, в critter_p_proc: проверки на расположение брони в слоте + отдельная GVAR для фиксации изменений |
только в моем случае, как верно подсказали, надо проверять наличие <ITEM1> в инвентаре и далее если TRUE то запускаем изменение.
С этим разобрался.
А вот можно ли таким же образом дать/присвоить перк чузену? Т.е. если у него отсутствовал перк "Ночное видение", то при наличии <ITEM1> он появился?
Кто-нибудь заморачивался, или знает получится или нет?
Спасибо.
Nordan
2 June 2014 | 15:50
QUOTE |
только в моем случае, как верно подсказали, надо проверять наличие <ITEM1> в инвентаре и далее если TRUE то запускаем изменение. |
Проверятся должно не только наличие предмета, но и значение ГВАРы, отведенной под состояние этого эффекта. Иначе у тебя этот код будет выполняться бесконечно. Ну и про откатные действия не забывай тоже. :)
QUOTE |
А вот можно ли таким же образом дать/присвоить перк чузену? |
Конечно, для этого есть функции critter_add_trait(добавить свойство) и critter_rm_trait (убрать свойство). Более подробно написано в документе
Функции компилятора скриптов Fallout2 от BIS. Раздел "Функции, специфичные для криттеров".