Перейти к содержимому


Фотография

Пасивное выполнение скриптов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 Compiller

Compiller

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 31 Май 2014 - 15:35

Доброго времени, уважаемые форумчане.

Ворпрос возможно уже обсуждался, но т.к. по каким-то причинам в разделе "Подвал Элджернона" я вижу всего 1 тему — ФАК от Wasteland Ghost, поискать не могу. Поиск по сайту тоже ничего не дает. Что делаю не так?

Итак сам вопрос: Подскажите пожалуйста, возможно ли пассивное выполнение скриптов. Т.е. привязать скрипт к предмету можно, но можно ли скрипт заставить действовать пассивно?
Иными словами — лежит предмет в инвентаре и привязанный к нем скрипт работает. Например положил <ITEM1> в инвентарь и пока она там лежит у чузена +2 к силе, или изменился показатель статистики "Без оружия".

Как вариант подобного — использование предметов, таких как счетчик гейгера, детектор движения и т.п. В фоллауте 1 можно было использовать стел-бой, вот по подобному принципу. Привязать скрипт к предмету и при его активации — запускается этот скрипт.
Аналогично (но не совсем) работают книжки — при использовании изменяют статистику.

Или еще вариант — броня +2 (не важно) к восприятию. Да, силовая броня может добавлять силы, но в фоле2 это реализовано за счет "перка предмета".
Перки, насколько мне известно, не редактируются (прошиты в двиг). SFall не берем, там смысл другой.

Реализацию а-ля сделать новый наркотик и повесить на него несколько эффектов — не вариант! Т.к. сам предмет исчезает после использования.

Спасибо за ответы.


#2 The Master

The Master

    Чистосердечный зевака

  • Пользователи
  • PipPipPip
  • 2 167 сообщений

Отправлено 01 Июнь 2014 - 04:33

QUOTE
Например положил <ITEM1> в инвентарь и пока она там лежит у чузена +2 к силе, или изменился показатель статистики "Без оружия".

Я уже за давностью лет не помню, будет оно работать или нет, но всё необходимое для этого в скриптовом языке есть. Другое дело что один и тот же предмет (со скриптом и без) — не будут складываться в инвентаре в стопку, поэтому лучше делать их в единственном экземпляре.

Броня и наркота обрабатываются движком, редактировать можно, важно знать как.
http://teamx.ru/site...topic=715.0.htm
http://teamx.ru/site...amp;start=0.htm


#3 Wasteland Ghost

Wasteland Ghost

    Маленькое Злое Привидение

  • Пользователи
  • PipPipPip
  • 3 451 сообщений

Отправлено 01 Июнь 2014 - 06:19

В инвентаре не работают обработчики скриптов (не все, не у всех объектов) и инвентарь не обновляется после поюзания объекта. Вся наркота и прочие юзабельные вещи (карты, например) обрабатываются движком.


#4 Compiller

Compiller

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 01 Июнь 2014 - 11:26

Благодарю всех за ответы.

Как я понял способ создать объект (пусть будет броня) со спец возможностями — прописать их в двиг, как описано здесь: http://teamx.ru/site...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? Там именно его активация (юзанье) изменяло стат скрытность.




#5 Wasteland Ghost

Wasteland Ghost

    Маленькое Злое Привидение

  • Пользователи
  • PipPipPip
  • 3 451 сообщений

Отправлено 01 Июнь 2014 - 12:29

Новые перки вписать не получится — только модифицировать существующие.

За работу стеллс-боя отвечает опять же движок.

Настоятельно советую поковырять глобальные скрипты сфалл, возможно, получится что-то реализовать с их помощью. А так — врятли.


#6 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 01 Июнь 2014 - 16:39

А не проще в сам скрипт Чузена запихнуть проверку на наличие в его инвентаре определенного предмета? И вот там прописать все эффекты.

Хотя, ЕМНИП, Ф2 умеет только прибавлять значения скиллов, убавлять он их не умеет. Ну это только про скиллы, статами он вертит нормально (в обе стороны :) ).


#7 Wasteland Ghost

Wasteland Ghost

    Маленькое Злое Привидение

  • Пользователи
  • PipPipPip
  • 3 451 сообщений

Отправлено 01 Июнь 2014 - 19:31

В который из обработчиков? :) В том-то и дело, что ни один в инвентаре не выполняется.


#8 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 01 Июнь 2014 - 21:02

Да в critter_p_proc ее (проверку в смысле :)) затолкать и добавить переменную-переключатель (типа эффект включен/эффект выключен). Лучше в качестве переменной использовать ГВАРу, т.к. ЛВАРы, на сколько я помню, у Чузена тоже работают не совсем адекватно.

Да, немножко кривовато, зато не будет возни с инвентарем и, тем более, с перками.

QUOTE
В том-то и дело, что ни один в инвентаре не выполняется.

Да, в принципе, они там и не нужны. Ведь игрок все равно выйдет из режима инвентаря, и при обновлении(а critter_p_proc обновляется оооочень быстро) сработает проверка, а следом и добавится эффект.

Это сообщение отредактировано Nordan - 1 июня 2014 | 22:12


#9 Compiller

Compiller

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 02 Июнь 2014 - 10:07

Спасибо за ответы.

К решению пришел сам, аналогично предложенному Nordan.

Отчасти, на ход мыслей в нужном направлении натолкнул пост Alexandr'а на форуме teamx.ru, кстати он же Александр "BlackDesigner" Пошелюжин из проекта FON.

QUOTE
Потом сделал по-другому через скрипт чузена, в critter_p_proc: проверки на расположение брони в слоте + отдельная GVAR для фиксации изменений


только в моем случае, как верно подсказали, надо проверять наличие <ITEM1> в инвентаре и далее если TRUE — то запускаем изменение.

С этим разобрался.

А вот можно ли таким же образом дать/присвоить перк чузену? Т.е. если у него отсутствовал перк "Ночное видение", то при наличии <ITEM1> — он появился?
Кто-нибудь заморачивался, или знает получится или нет?

Спасибо.


#10 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 02 Июнь 2014 - 14:50

QUOTE
только в моем случае, как верно подсказали, надо проверять наличие <ITEM1> в инвентаре и далее если TRUE — то запускаем изменение.

Проверятся должно не только наличие предмета, но и значение ГВАРы, отведенной под состояние этого эффекта. Иначе у тебя этот код будет выполняться бесконечно. Ну и про откатные действия не забывай тоже. :)

QUOTE
А вот можно ли таким же образом дать/присвоить перк чузену?

Конечно, для этого есть функции critter_add_trait(добавить свойство) и critter_rm_trait (убрать свойство). Более подробно написано в документе Функции компилятора скриптов Fallout2 от BIS. Раздел "Функции, специфичные для криттеров".




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Рейтинг@Mail.ru