|  | FOnline
    | 
Используются только в скрипте main.fos. Подробнее...
| Функции | |
| void | karma_voting (Critter &crFrom, Critter &crTo, bool valUp) | 
| Вызывается при смене кармы одним игроком другому.  Подробнее... | |
| bool | check_look (Critter &cr, Critter &opponent) | 
| Обработчик, позволяющий проверять в скрипте видимость одного криттера другим.  Подробнее... | |
| bool | check_trap_look (Map &map, Critter &cr, Item &item) | 
| Обработчик, позволяющий проверять в скрипте видимость предмета криттером.  Подробнее... | |
| uint | item_cost (Item &item, Critter &cr, Critter &npc, bool sell) | 
| Обработчик, позволяющий определять в скрипте цену предметов.  Подробнее... | |
| void | items_crafted (Item @[]&items, uint[]&itemsCount, Item @[]&resources, Critter &crafter) | 
| Вызывается при крафте игроком новых предметов.  Подробнее... | |
| bool | items_barter (Item @[]&saleItems, uint[]&saleItemsCount, Item @[]&buyItems, uint[]&buyItemsCount, Critter &player, Critter &npc) | 
| Вызывается при попытке совершения бартера между игроком и NPC.  Подробнее... | |
| void | player_levelup (Critter &player, uint skillIndex, uint skillUp, uint perkIndex) | 
| Вызывается при распределении скиллпоинтов или выборе перка игроком.  Подробнее... | |
| void | turn_based_sequence (Map &map, Critter @[]&critters, Critter @firstTurnCrit) | 
| Вызывается перед каждым новым раундом в пошаговом бое.  Подробнее... | |
| Сервер | |
| bool | start () | 
| Вызывается при старте сервера.  Подробнее... | |
| void | init () | 
| Вызывается при старте сервера раньше, чем start(), когда мир еще не сгенерирован.  Подробнее... | |
| void | finish () | 
| Вызывается при остановке сервера.  Подробнее... | |
| uint | loop () | 
| Функция, вызываемая движком с задаваемой периодичностью.  Подробнее... | |
| void | get_start_time (uint16 &multiplier, uint16 &year, uint16 &month, uint16 &day, uint16 &hour, uint16 &minute) | 
| Функция, устанавливающая стартовое время сервера.  Подробнее... | |
| Глобальная карта | |
| void | global_process (int type, Critter &cr, Critter @[]&group, Item @car, uint &x, uint &y, uint &toX, uint &toY, uint &speed, uint &encounterDescriptor, bool &waitForAnswer) | 
| Вызывается при различных событиях, связанных с перемещением и различными действиями группы криттеров на глобальной карте мира.  Подробнее... | |
| void | global_invite (Critter @[]&group, Item @car, uint encounterDescriptor, int combatMode, uint &mapId, uint16 &hexX, uint16 &hexY, uint8 &dir) | 
| Вызывается, когда группа криттеров заходит на энкаутер.  Подробнее... | |
| Карты | |
| void | map_critter_in (Map &map, Critter &cr) | 
| Вызывается при заходе криттера на карту.  Подробнее... | |
| void | map_critter_out (Map &map, Critter &cr) | 
| Вызывается при выходе криттера с карты.  Подробнее... | |
| Криттеры | |
| void | critter_init (Critter &cr, bool registration) | 
| Вызывается при регистрации/логине игрока или создании/загрузке NPC.  Подробнее... | |
| void | critter_idle (Critter &cr) | 
| Вызывается при простое криттера.  Подробнее... | |
| void | critter_finish (Critter &cr) | 
| Вызывается при выходе криттера из игры.  Подробнее... | |
| void | critter_dead (Critter &cr, Critter @killer) | 
| Вызывается при смерти любого криттера.  Подробнее... | |
| void | critter_respawn (Critter &cr) | 
| Вызывается при респауне криттера.  Подробнее... | |
| void | critter_attack (Critter &cr, Critter &target, ProtoItem &weapon, uint8 weaponMode, ProtoItem @ammo) | 
| Глобальный обработчик атаки, который вызывается каждый раз при атаке одного криттера другим.  Подробнее... | |
| void | critter_attacked (Critter &cr, Critter &attacker) | 
| Глобальный обработчик атаки, который вызывается каждый раз при атаке одного криттера другим.  Подробнее... | |
| bool | critter_stealing (Critter &cr, Critter &thief, Item &item, uint count) | 
| Глобальный обработчик попытки воровства.  Подробнее... | |
| bool | critter_use_item (Critter &cr, Item &item, Critter @targetCr, Item @targetItem, Scenery @targetScen, uint param) | 
| Глобальный обработчик использования предметов.  Подробнее... | |
| bool | critter_use_skill (Critter &cr, int skill, Critter @targetCr, Item @targetItem, Scenery @targetScen) | 
| Глобальный обработчик использования скиллов.  Подробнее... | |
| void | critter_move_item (Critter &cr, Item &item, int fromSlot) | 
| Глобальный обработчик, вызываемый при смене криттером предмета в активном слоте (в руках и при смене брони).  Подробнее... | |
| void | critter_reload_weapon (Critter &cr, Item &weapon, Item @ammo) | 
| Вызывается при перезарядке или разрядке оружия криттером.  Подробнее... | |
| void | critter_move_item (Critter &cr, Item &item, uint8 fromSlot) | 
| Вызызывается при смене предмета в активном слоте (того, что в руках или смене брони) у криттера.  Подробнее... | |
| bool | critter_check_move_item (Critter &cr, Item &item, uint8 toSlot, Item @itemSwap) | 
| Вызызывается перед каждым перемещением предмета у криттера.  Подробнее... | |
| Планы | |
| Глобальные обработчики событий для планов. Вызываются они только для тех NPC, у которых не определены соответствующие индивидуальные события. 170 | |
| bool | npc_plane_begin (Critter &npc, NpcPlane &plane, uint childIndex, int reason, Critter @someCr, Item @someItem) | 
| Вызывается перед добавлением плана (которого еще нет в списках у NPC).  Подробнее... | |
| bool | npc_plane_end (Critter &npc, NpcPlane &plane, uint childIndex, int reason, Critter @someCr, Item @someItem) | 
| Вызывается перед удалением плана (который еще присутствует в списках планов).  Подробнее... | |
| bool | npc_plane_run (Critter &npc, NpcPlane &plane, uint childIndex, int reason, uint &result0, uint &result1, uint &result2) | 
| Вызывается во время выполнения некоторых планов.  Подробнее... | |
Используются только в скрипте main.fos.
Должны быть обязательно объявлены, иначе сервер не запустится.
| bool start | ( | ) | 
Вызывается при старте сервера.
true – если удачно; false – в противном случае. | void init | ( | ) | 
Вызывается при старте сервера раньше, чем start(), когда мир еще не сгенерирован.
| void finish | ( | ) | 
Вызывается при остановке сервера.
| uint loop | ( | ) | 
Функция, вызываемая движком с задаваемой периодичностью.
Период задается с помощью возвращаемого значения.
| void get_start_time | ( | uint16 & | multiplier, | 
| uint16 & | year, | ||
| uint16 & | month, | ||
| uint16 & | day, | ||
| uint16 & | hour, | ||
| uint16 & | minute | ||
| ) | 
Функция, устанавливающая стартовое время сервера.
Вызывается единожды при создании мира.
| [out] | multiplier | Коэффициент ускорения времени (1..99). | 
| [out] | year | Стартовый год (1700..30000). | 
| [out] | month | Стартовый месяц (1..12). | 
| [out] | day | Стартовый день (1..31). | 
| [out] | hour | Стартовый час час (0..23). | 
| [out] | minute | Стартовая минута (0..59) | 
| void global_process | ( | int | type, | 
| Critter & | cr, | ||
| Critter @&[] | group, | ||
| Item @ | car, | ||
| uint & | x, | ||
| uint & | y, | ||
| uint & | toX, | ||
| uint & | toY, | ||
| uint & | speed, | ||
| uint & | encounterDescriptor, | ||
| bool & | waitForAnswer | ||
| ) | 
Вызывается при различных событиях, связанных с перемещением и различными действиями группы криттеров на глобальной карте мира.
Типы событий, при которых вызывается данная функция (возможные значения параметра type):
GLOBAL_PROCESS_MOVE – при передвижении по глобальной карте, каждые 5 секунд.GLOBAL_PROCESS_ENTER – при попытке входа на пустую карту.GLOBAL_PROCESS_START_FAST – сразу при выходе на глобал или отсоединении от группы.GLOBAL_PROCESS_START – при прошествии 20 секунд от выхода на глобал или при первой попытке передвижения.GLOBAL_PROCESS_SET_MOVE – при изменении направления движения.GLOBAL_PROCESS_STOPPED – при остановке группы на глобале.GLOBAL_PROCESS_NPC_IDLE – при простое NPC на глобале (промежуток вызова определяется переменной __CritterIdleTick).Для открытия диалогового окна с вопросом о входе на энкаунтер используются методы Say* класса Critter, с типами:
SAY_ENCOUNTER_ANY – возможность выбора между боем в реальном времени, пошаговым режимом боя и отказом от захода на энкаутер.SAY_ENCOUNTER_RT – предлагается только бой в реальном времени и отказ.SAY_ENCOUNTER_TB – предлагается только бой в пошаговом режиме и отказ.| [in] | type | Тип вызова. | 
| [in] | cr | Криттер, для которого вызван обработчик. | 
| [in] | group | Группа тех, кто двигается. | 
| [in] | car | Указатель на машину, используемую группой. | 
| [in,out] | x,y | Текущая позиция. | 
| [in,out] | toX,toY | Позиция, куда двигается группа. | 
| [out] | speed | Служит для установки скорости перемещения по глобалу. | 
| [out] | encounterDescriptor | Если в результате вызова данный параметр принимает ненулевое значение, то он впоследствии отправится в функцию global_invite, в которой уже и надо выставить конкретно номер карты и позицию входа. Если encounterDescriptor равен 0, то функция global_invite не вызывается. | 
| [out] | waitForAnswer | Если в результате вызова данный параметр принимает значение true, то перед последующим вызовом функции global_invite лидер группы должен подтвердить приглашение. Еслиfalse, то функция global_invite вызывается сразу. Каким образом показать сообщение лидеру см. в Примечаниях. | 
| void global_invite | ( | Critter @&[] | group, | 
| Item @ | car, | ||
| uint | encounterDescriptor, | ||
| int | combatMode, | ||
| uint & | mapId, | ||
| uint16 & | hexX, | ||
| uint16 & | hexY, | ||
| uint8 & | dir | ||
| ) | 
Вызывается, когда группа криттеров заходит на энкаутер.
| [in] | group | Группа криттеров, заходящих на энкаутер. | 
| [in] | car | Указатель на машину, используемую группой. | 
| [in] | encounterDescriptor | Переданный из функции global_process номер. | 
| [in] | combatMode | Выбранный (игроком или движком) режим боя (см. Combat modes). | 
| [out] | mapId | Уникальный идентификатор карты энкаутера. Если в результате вызова данный параметр принимает ненулевое значение, то группа заходит на указанную карту. | 
| [out] | hexX,hexY | Начальная позиция криттеров на карте. | 
| [out] | dir | Начальное направление криттеров на карте. | 
Вызывается при заходе криттера на карту.
| map | Карта, на которую осуществляется вход. | 
| cr | Игрок, который входит. | 
Вызывается при выходе криттера с карты.
| map | Карта, с которой осуществляется выход. | 
| cr | Игрок, который выходит. | 
| void critter_init | ( | Critter & | cr, | 
| bool | registration | ||
| ) | 
Вызывается при регистрации/логине игрока или создании/загрузке NPC.
| cr | Игрок. | 
| registration | При логине равен false; при регистрации (первом входе) –true. | 
| void critter_idle | ( | Critter & | cr | ) | 
Вызывается при простое криттера.
Периодичность вызова определяется глобальной переменной __CritterIdleTick.
| cr | Криттер, для которого вызывается функция. | 
| void critter_finish | ( | Critter & | cr | ) | 
Вызывается при выходе криттера из игры.
| cr | Криттер, для которого вызывается функция. | 
Вызывается при смерти любого криттера.
| cr | Убитый или погибший криттер. | 
| killer | Указатель на криттера-убийцу. | 
| void critter_respawn | ( | Critter & | cr | ) | 
Вызывается при респауне криттера.
| cr | Криттер, для которого вызывается событие. | 
| void critter_attack | ( | Critter & | cr, | 
| Critter & | target, | ||
| ProtoItem & | weapon, | ||
| uint8 | weaponMode, | ||
| ProtoItem @ | ammo | ||
| ) | 
Глобальный обработчик атаки, который вызывается каждый раз при атаке одного криттера другим.
| cr | Атакующий криттер. | 
| target | Атакуемый криттер. | 
| weapon | Используемый прототип оружия, уже настроенный на нужный тип атаки. | 
| weaponMode | Режим атаки оружия. старшие четыре бита - прицел (см. Hit Locations), младшие четыре бита - тип использования (0 – primary, 1 – secondary, 2 – third). | 
| ammo | Используемая амуниция. | 
Глобальный обработчик атаки, который вызывается каждый раз при атаке одного криттера другим.
| cr | Атакуемый криттер. | 
| attacker | Атакующий криттер. | 
Глобальный обработчик попытки воровства.
| cr | Обворовываемый криттер. | 
| thief | Вор. | 
| item | Воруемый предмет. | 
| count | Количество воруемых предметов. | 
| bool critter_use_item | ( | Critter & | cr, | 
| Item & | item, | ||
| Critter @ | targetCr, | ||
| Item @ | targetItem, | ||
| Scenery @ | targetScen, | ||
| uint | param | ||
| ) | 
Глобальный обработчик использования предметов.
| cr | Криттер, который использует предмет. | 
| item | Используемый предмет. | 
| targetCr | Указатель на криттера, на котором используется предмет. | 
| targetItem | Указатель на предмет, на котором используется предмет. | 
| targetScen | Указатель на сценери, на котором используется предмет. | 
| param | (?). | 
true, если обработка полностью выполнена скриптом; false, если обработка должна быть выполнена движком.| bool critter_use_skill | ( | Critter & | cr, | 
| int | skill, | ||
| Critter @ | targetCr, | ||
| Item @ | targetItem, | ||
| Scenery @ | targetScen | ||
| ) | 
Глобальный обработчик использования скиллов.
| cr | Криттер, использующий скилл. | 
| skill | Используемый скилл (см. Навыки и Special Skill Values). | 
| targetCr | Указатель на криттера, на котором используется скилл. | 
| targetItem | Указатель на предмет, на котором используется скилл. | 
| targetScen | Указатель на сценери, на котором используется скилл. | 
true, если обработка полностью выполнена скриптом; false, если обработка должна быть выполнена движком.Глобальный обработчик, вызываемый при смене криттером предмета в активном слоте (в руках и при смене брони).
| cr | Криттер, меняющий предмет. | 
| item | Предмет. | 
| fromSlot | Слот (см. Slots). | 
Вызывается при перезарядке или разрядке оружия криттером.
| cr | Криттер, который выполняет перезарядку. | 
| weapon | Оружие. | 
| ammo | Указатель на предмет, представляющий патроны. Если передан null, то это значит, что криттер разряжает оружие. | 
Вызызывается при смене предмета в активном слоте (того, что в руках или смене брони) у криттера.
| cr | Криттер, который меняет предмет. | 
| item | Предмет, который меняется. | 
| fromSlot | Слот, из которого берется предмет. | 
Вызызывается перед каждым перемещением предмета у криттера.
| cr | Криттер, который меняет предмет; | 
| item | Предмет, который перемещается; | 
| toSlot | Слот, из которого берется предмет; | 
| itemSwap | предмет, который уже находится в слоте назначения и который переместится в слот перемещаемого предмета при успешной транзакции. | 
false, то предмет не переместится; если true, то переместится. | bool npc_plane_begin | ( | Critter & | npc, | 
| NpcPlane & | plane, | ||
| uint | childIndex, | ||
| int | reason, | ||
| Critter @ | someCr, | ||
| Item @ | someItem | ||
| ) | 
Вызывается перед добавлением плана (которого еще нет в списках у NPC).
| npc | NPC, для которого вызвана функция. | 
| plane | Добавляемый план. | 
| childIndex | Номер плана в цепочке наследников. | 
| reason | Указывает причину начала плана (см. Plane begin reasons). | 
| someCr | (?) | 
| someItem | (?) | 
false, то план не добавится; если true, то добавится. | bool npc_plane_end | ( | Critter & | npc, | 
| NpcPlane & | plane, | ||
| uint | childIndex, | ||
| int | reason, | ||
| Critter @ | someCr, | ||
| Item @ | someItem | ||
| ) | 
Вызывается перед удалением плана (который еще присутствует в списках планов).
| npc | NPC, для которого вызвана функция. | 
| plane | Удаляемый план. | 
| childIndex | Номер плана в цепочке наследников. | 
| reason | Указывает причину завершения плана (см. Plane end reasons). | 
| someCr | (?) | 
| someItem | (?) | 
false, то план станет последним по текущей приоритетности; если true, то удалится. | bool npc_plane_run | ( | Critter & | npc, | 
| NpcPlane & | plane, | ||
| uint | childIndex, | ||
| int | reason, | ||
| uint & | result0, | ||
| uint & | result1, | ||
| uint & | result2 | ||
| ) | 
Вызывается во время выполнения некоторых планов.
| npc | NPC, для которого вызвана функцмя-обработчик. | |
| plane | План, для которого вызвана функция-обработчик. | |
| childIndex | Номер плана в цепочке наследников. | |
| reason | Причина, по которой была вызвана функция обработчик (см. Plane run reasons). | |
| [in,out] | result0,result1,result2 | Аргументы, интерпретация которых зависит от аргумента reason. | 
Вызывается при смене кармы одним игроком другому.
| crFrom | Игрок, меняющий карму. | 
| crTo | Игрок, которому меняется карма. | 
| valUp | Повышается ли карма ( true) или понижается (false). | 
Обработчик, позволяющий проверять в скрипте видимость одного криттера другим.
Чтобы эта функция использовалась при расчётах видимости, установите флаг LOOK_CHECK_SCRIPT глобальной переменной __LookChecks.
| cr | Криттер, относительно которого определяется видимость другого криттера. | 
| opponent | Криттер, видимость которого проверяется. | 
true, в случае, если один криттер видит другого; false – в противном случае.CRITTER_EVENT_SHOW_CRITTER_X и CRITTER_EVENT_HIDE_CRITTER_X при этом не вызываются. Обработчик, позволяющий проверять в скрипте видимость предмета криттером.
Чтобы эта функция использовалась при расчётах видимости, установите флаг LOOK_CHECK_ITEM_SCRIPT глобальной переменной __LookChecks.
| map | Карта, на которой проверяется видимость. | 
| cr | Криттер, относительно которого определяется видимость предмета. | 
| item | Предмет, видимость которого проверяется. | 
true, в случае, если один криттер видит другого; false – в противном случае. Обработчик, позволяющий определять в скрипте цену предметов.
Чтобы эта функция использовалась при расчётах цен предметов, необходимо установить глобальной переменной __CustomItemCost значение true.
| item | Предмет, для которого определяется цена. | 
| cr | Игрок, участвующий в обмене. | 
| npc | NPC, участвующий в обмене. | 
| sell | Указывает, продается ли ( true) предмет игроком или покупается (false). | 
Вызывается при крафте игроком новых предметов.
| items | Созданные предметы. | 
| itemsCount | Количество созданных предметов (для определения количества группируемых предметов). | 
| resources | Предметы-ресурсы. | 
| crafter | Игрок, скрафтивший предметы. | 
Item::Accessory == ACCESSORY_NONE) и будут удалены после выхода из функции, если никому не будут присвоены. | bool items_barter | ( | Item @&[] | saleItems, | 
| uint &[] | saleItemsCount, | ||
| Item @&[] | buyItems, | ||
| uint &[] | buyItemsCount, | ||
| Critter & | player, | ||
| Critter & | npc | ||
| ) | 
Вызывается при попытке совершения бартера между игроком и NPC.
| saleItems | Продаваемые игроком предметы. | 
| saleItemsCount | Массив с количеством продаваемых предметов, соответсвующий saleItems. | 
| buyItems | Покупаемые игроком предметы. | 
| buyItemsCount | Массив с количеством покупаемых предметов, соответствующий buyItems. | 
| player | Игрок, участвующий в бартере. | 
| npc | NPC, участвующий в бартере. | 
false, то бартер не будет совершен. | void player_levelup | ( | Critter & | player, | 
| uint | skillIndex, | ||
| uint | skillUp, | ||
| uint | perkIndex | ||
| ) | 
Вызывается перед каждым новым раундом в пошаговом бое.
| map | Карта боя. | 
| critters | Все игроки с карты. | 
| firstTurnCrit | Игрок, который ходит первым. Данный аргумент берется из Map::BeginTurnBased. |