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)
  Вызывается перед каждым новым раундом в пошаговом бое. Подробнее...
 

Сервер

200

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)
  Функция, устанавливающая стартовое время сервера. Подробнее...
 

Глобальная карта

190

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)
  Вызывается, когда группа криттеров заходит на энкаутер. Подробнее...
 

Карты

190

void  map_critter_in (Map &map, Critter &cr)
  Вызывается при заходе криттера на карту. Подробнее...
 
void  map_critter_out (Map &map, Critter &cr)
  Вызывается при выходе криттера с карты. Подробнее...
 

Криттеры

180

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 вызывается сразу. Каким образом показать сообщение лидеру см. в Примечаниях.
Прим.
Можно менять переменные x, y, toX, toY, чтобы изменить точки: текущую или назначения, соответственно. Чтобы остановить группу просто присвойте точке назначения текущую.
Первым криттером в списке group является лидер группы.
См. также
global_invite
Critter::Say
Critter::SayMsg
CRITTER_EVENT_GLOBAL_PROCESS
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 Начальное направление криттеров на карте.
См. также
global_process
CRITTER_EVENT_GLOBAL_INVITE
void map_critter_in ( Map map,
Critter cr 
)

Вызывается при заходе криттера на карту.

Аргументы
map Карта, на которую осуществляется вход.
cr Игрок, который входит.
См. также
MAP_EVENT_CRITTER_IN
void map_critter_out ( Map map,
Critter cr 
)

Вызывается при выходе криттера с карты.

Аргументы
map Карта, с которой осуществляется выход.
cr Игрок, который выходит.
См. также
MAP_EVENT_CRITTER_OUT
void critter_init ( Critter cr,
bool  registration 
)

Вызывается при регистрации/логине игрока или создании/загрузке NPC.

Аргументы
cr Игрок.
registration При логине равен false; при регистрации (первом входе) – true.
Прим.
По умолчанию, стартовой позицией игроков считается центр глобальной карты.
void critter_idle ( Critter cr )

Вызывается при простое криттера.

Периодичность вызова определяется глобальной переменной __CritterIdleTick.

Аргументы
cr Криттер, для которого вызывается функция.
См. также
CRITTER_EVENT_IDLE
void critter_finish ( Critter cr )

Вызывается при выходе криттера из игры.

Аргументы
cr Криттер, для которого вызывается функция.
См. также
CRITTER_EVENT_FINISH
void critter_dead ( Critter cr,
Critter killer 
)

Вызывается при смерти любого криттера.

Аргументы
cr Убитый или погибший криттер.
killer Указатель на криттера-убийцу.
См. также
CRITTER_EVENT_DEAD MAP_EVENT_CRITTER_DEAD
void critter_respawn ( Critter cr )

Вызывается при респауне криттера.

Аргументы
cr Криттер, для которого вызывается событие.
См. также
CRITTER_EVENT_RESPAWN
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 Используемая амуниция.
См. также
Critter::SendCombatResult
CRITTER_EVENT_ATTACK
CRITTER_EVENT_SMTH_ATTACK
void critter_attacked ( Critter cr,
Critter attacker 
)

Глобальный обработчик атаки, который вызывается каждый раз при атаке одного криттера другим.

Аргументы
cr Атакуемый криттер.
attacker Атакующий криттер.
См. также
CRITTER_EVENT_ATTACKED
CRITTER_EVENT_SMTH_ATTACKED
bool critter_stealing ( Critter cr,
Critter thief,
Item item,
uint  count 
)

Глобальный обработчик попытки воровства.

Аргументы
cr Обворовываемый криттер.
thief Вор.
item Воруемый предмет.
count Количество воруемых предметов.
Возвращает
Попадает в параметр success в обработчиках CRITTER_EVENT_STEALING и CRITTER_EVENT_SMTH_STEALING, которые, в свою очередь, уже не возвращают никакого значения.
См. также
CRITTER_EVENT_STEALING
CRITTER_EVENT_SMTH_STEALING
bool critter_use_item ( Critter cr,
Item item,
Critter targetCr,
Item targetItem,
Scenery targetScen,
uint  param 
)

Глобальный обработчик использования предметов.

Аргументы
cr Криттер, который использует предмет.
item Используемый предмет.
targetCr Указатель на криттера, на котором используется предмет.
targetItem Указатель на предмет, на котором используется предмет.
targetScen Указатель на сценери, на котором используется предмет.
param (?).
Возвращает
true, если обработка полностью выполнена скриптом; false, если обработка должна быть выполнена движком.
См. также
CRITTER_EVENT_USE_ITEM
bool critter_use_skill ( Critter cr,
int  skill,
Critter targetCr,
Item targetItem,
Scenery targetScen 
)

Глобальный обработчик использования скиллов.

Аргументы
cr Криттер, использующий скилл.
skill Используемый скилл (см. Навыки и Special Skill Values).
targetCr Указатель на криттера, на котором используется скилл.
targetItem Указатель на предмет, на котором используется скилл.
targetScen Указатель на сценери, на котором используется скилл.
Возвращает
true, если обработка полностью выполнена скриптом; false, если обработка должна быть выполнена движком.
См. также
CRITTER_EVENT_USE_SKILL
void critter_move_item ( Critter cr,
Item item,
int  fromSlot 
)

Глобальный обработчик, вызываемый при смене криттером предмета в активном слоте (в руках и при смене брони).

Аргументы
cr Криттер, меняющий предмет.
item Предмет.
fromSlot Слот (см. Slots).
void critter_reload_weapon ( Critter cr,
Item weapon,
Item ammo 
)

Вызывается при перезарядке или разрядке оружия криттером.

Аргументы
cr Криттер, который выполняет перезарядку.
weapon Оружие.
ammo Указатель на предмет, представляющий патроны. Если передан null, то это значит, что криттер разряжает оружие.
void critter_move_item ( Critter cr,
Item item,
uint8  fromSlot 
)

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

Аргументы
cr Криттер, который меняет предмет.
item Предмет, который меняется.
fromSlot Слот, из которого берется предмет.
bool critter_check_move_item ( Critter cr,
Item item,
uint8  toSlot,
Item itemSwap 
)

Вызызывается перед каждым перемещением предмета у криттера.

Аргументы
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.
Возвращает
Показывает, было ли обработано событие в скрипте.
void karma_voting ( Critter crFrom,
Critter crTo,
bool  valUp 
)

Вызывается при смене кармы одним игроком другому.

Аргументы
crFrom Игрок, меняющий карму.
crTo Игрок, которому меняется карма.
valUp Повышается ли карма (true) или понижается (false).
bool check_look ( Critter cr,
Critter opponent 
)

Обработчик, позволяющий проверять в скрипте видимость одного криттера другим.

Чтобы эта функция использовалась при расчётах видимости, установите флаг LOOK_CHECK_SCRIPT глобальной переменной __LookChecks.

Аргументы
cr Криттер, относительно которого определяется видимость другого криттера.
opponent Криттер, видимость которого проверяется.
Возвращает
true, в случае, если один криттер видит другого; false – в противном случае.
Прим.
События CRITTER_EVENT_SHOW_CRITTER_X и CRITTER_EVENT_HIDE_CRITTER_X при этом не вызываются.
bool check_trap_look ( Map map,
Critter cr,
Item item 
)

Обработчик, позволяющий проверять в скрипте видимость предмета криттером.

Чтобы эта функция использовалась при расчётах видимости, установите флаг LOOK_CHECK_ITEM_SCRIPT глобальной переменной __LookChecks.

Аргументы
map Карта, на которой проверяется видимость.
cr Криттер, относительно которого определяется видимость предмета.
item Предмет, видимость которого проверяется.
Возвращает
true, в случае, если один криттер видит другого; false – в противном случае.
uint item_cost ( Item item,
Critter cr,
Critter npc,
bool  sell 
)

Обработчик, позволяющий определять в скрипте цену предметов.

Чтобы эта функция использовалась при расчётах цен предметов, необходимо установить глобальной переменной __CustomItemCost значение true.

Аргументы
item Предмет, для которого определяется цена.
cr Игрок, участвующий в обмене.
npc NPC, участвующий в обмене.
sell Указывает, продается ли (true) предмет игроком или покупается (false).
Прим.
Не забудьте определить эту функцию в клиентском скрипте.
Помните, что надо возвращать цену за один предмет, а не за все.
Возвращает
Цена одного предмета.
См. также
ClientReserved::item_cost
void items_crafted ( Item @&[]  items,
uint &[]  itemsCount,
Item @&[]  resources,
Critter crafter 
)

Вызывается при крафте игроком новых предметов.

Аргументы
items Созданные предметы.
itemsCount Количество созданных предметов (для определения количества группируемых предметов).
resources Предметы-ресурсы.
crafter Игрок, скрафтивший предметы.
Прим.
Ресурсы resources в функции не имеют какой-либо принадлежности (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 
)

Вызывается при распределении скиллпоинтов или выборе перка игроком.

Аргументы
player Игрок.
skillIndex Номер навыка, на который распределяются скиллпоинты (см. Навыки).
skillUp Количество затраченных скиллпоинтов.
perkIndex Номер выбранного перка (см. Перки).
void turn_based_sequence ( Map map,
Critter @&[]  critters,
Critter firstTurnCrit 
)

Вызывается перед каждым новым раундом в пошаговом бое.

Аргументы
map Карта боя.
critters Все игроки с карты.
firstTurnCrit Игрок, который ходит первым. Данный аргумент берется из Map::BeginTurnBased.
Прим.
Отсортированная очередь возвращается в переданном массиве Critter@[]& critters.
Converted from CHM to HTML with chm2web Pro 2.85 (unicode)