FOnline
|
Оформление переменных и их использование
Игровые переменные используются для сохранения какой-либо игровой информации. Например, для сохранения информации о состоянии квестов – прошел игрок квест или провалил, выполнил ли какое-либо под-задание или нет, поговорил ли с каким-либо NPC или нет и т.д. При этом игровые переменные сохраняются на сервере и им не страшны ни рестарты, ни прочие неприятности.
Существует три вида игровых переменных:
Для каждой игровой переменной указываются значения шести полей:
Также, для каждой переменной можно установить следующие флаги:
Квестовая
Этот флаг показывает, что текущее значение переменной отражает статус квеста, который показывается у игрока в пип-бое. Строки, описывающие статусы квеста, хранятся в файле FOQUEST.MSG. В нем также описывается схема связывания строк статусов со значениями переменной.
Рандомная
Cтартовым значением будет случайное число между Min и Max.
Без проверки
Не учитываются значения Min, Max.
Все игровые переменные хранятся в файле _vars.fos. Не редактируйте этот файл вручную, это делает редактор.
Выбор названия переменной
Текущий стандарт названия квестовых переменных: q_location_npc_quest
Примеры:
В целом, возможны любые названия переменных, главное чтобы было удобно работать как вам, так и последующим возможным пользователям.
Выбор номера переменной
Для новой переменной, в принципе, можно выбрать любой свободной номер. Однако, для удобства идентификации, номера должны быть распределены следующим образом:
1...1999 – для глобальных переменных,
2000...2999 – для уникальных переменных,
3000+ – для локальных переменных.
Для локальных переменных принято брать номер, начинающийся на 3000+(Номер локации)*100 (скажем, 4600 для локации №16), но это правило зачастую не используется.
Полезные уникальные переменные
Данные переменные можно, например, использовать в преддиалоговых установках для различных проверок и отсылки к нужным вариантам. В скобках указан номер переменной.
Название | Номер | Описание |
last_dialog | 2020 | Номер последнего диалога с НПЦ. |
loyality | 2010 | Используется для того, чтобы определить отношение НПЦ к Игроку, которое сложилось у него в последствии разговора с Игроком. 5 - это средняя лояльность. 0 - НПЦ к Игроку наименее лоялен. 10 - наиболее. Не обязательно задействовать в диалоге все 11 состояний переменной. Можно ввести, к примеру, проверку только на <3 и >7 или <5 и >5, а можно и все 11 расписать. |
name_mem_npc_player | 2015 | Используется для того, чтобы определить знает ли НПЦ о имени Игрока или нет. Если 0, то нет. |
name_mem_player_npc | 2016 | Используется для того, чтобы определить знает ли Игрок о имени НПЦ или нет. Если 0, то нет. |
click_count | 2020 | Счетчик щелчков по НПЦ со всплывающими фразами вместо диалога. Скажем, на 30-ый клик НПЦ может разозлиться или сказать шутку. Переменная не имеет границ, поэтому на деле ее можно использовать для счета чего угодно. |