FOnline
 Указатель Классы Функции Переменные Группы Страницы
Зарезервированные скриптовые функции (Клиент)

Функции

bool start ()
 Вызывается при запуске клиента или в случае, если придет обновленный скрипт client_main.fos. Подробнее...
 
uint loop ()
 Функция, вызываемая движком с задаваемой периодичностью. Подробнее...
 
void render_iface ()
 Вызывается клиентом при отрисовке интерфейса. Подробнее...
 
void render_map ()
 Вызывается при отрисовке графики на карте с учетом очереди вывода спрайтов. Подробнее...
 
bool out_message (string &message, int &sayType)
 Обрабатывает исходящие от игрока сообщения. Подробнее...
 
bool in_message (string &message, int &sayType, uint &critterId, uint &delay)
 Обрабатывает входящие сообщения. Подробнее...
 
bool map_message (string &message, uint16 &hexX, uint16 &hexY, uint &color, uint &delay)
 Вызывается при получении сообщения на карте. Подробнее...
 
string item_description (ItemCl &item, int lookType)
 Вызываются тогда, когда необходимо сформировать описание для предмета. Подробнее...
 
string critter_description (CritterCl &cr, int lookType)
 Вызываются тогда, когда необходимо сформировать описание криттера. Подробнее...
 
string generic_description (int descType, int &offsX, int &offsY)
 Вызывается тогда, когда необходимо сформировать какое-либо описание в игре. Подробнее...
 
bool get_elevator (uint type, uint[]&data)
 Вызывается тогда, когда клиенту необходимо сформировать интерфейс для лифта. Подробнее...
 
void critter_in (CritterCl &cr)
 Вызывается при появлении какого-либо криттера в игре. Подробнее...
 
void critter_out (CritterCl &cr)
 Вызывается при изчезании какого-либо криттера в игре. Подробнее...
 
void item_map_in (ItemCl &item)
 Вызывается при появлении предмета на карте. Подробнее...
 
void item_map_changed (ItemCl &itemNow, ItemCl &itemBefore)
 Вызывается при смене предмета на карте. Подробнее...
 
void item_map_out (ItemCl &item)
 Вызывается при исчезновении предмета с карты. Подробнее...
 
void item_inv_in (ItemCl &item)
 Вызывается при появлении предмета в инвентаре. Подробнее...
 
void item_inv_out (ItemCl &item)
 Вызывается при исчезновении предмета из инвентаря. Подробнее...
 
void item_drop (ItemCl &item)
 Вызывается при выкидывании предмета криттером. Подробнее...
 
void animation2d_process (bool animateStay, CritterCl &cr, uint anim1, uint anim2, ItemCl @item)
 Вызывается перед проигрыванием 2D анимации. Подробнее...
 
void animation3d_process (bool animateStay, CritterCl &cr, uint anim1, uint anim2, ItemCl @item)
 Вызывается перед проигрыванием 3D анимации. Подробнее...
 
uint item_cost (ItemCl &item, CritterCl &chosen, CritterCl &npc, bool sell)
 (?) Подробнее...
 
bool check_perk (CritterCl &cr, uint perk)
 (?) Подробнее...
 
void player_data_generate (int[]&data)
 (?) Подробнее...
 
bool player_data_check (int[]&data)
 (?) Подробнее...
 
void critter_action (bool localCall, CritterCl &cr, int action, int actionExt, ItemCl @item)
 Вызывается, когда криттер производит какое-либо действие. Подробнее...
 
void filename_logfile (string &filename)
 Позволяет изменить имя файла лога. Подробнее...
 
void filename_screenshot (string &filename)
 Позволяет изменить имя файла скриншота. Подробнее...
 
bool player_allowcommand (Critter @cr, string @adminPanel, uint8 command)
 Регулирует доступ к командам сервера Подробнее...
 
bool critter_check_move_item (Critter &cr, Item &item, uint8 toSlot, Item @itemSwap)
 Вызызывается перед каждым перемещением предмета у криттера. Подробнее...
 

GUI

int get_active_screen ()
 Вызывается движком, чтобы получить активное окно. Подробнее...
 
void screen_change (bool show, int screen, int p0, int p1, int p2)
 Позволяет определить поведение при смене окон. Подробнее...
 
bool mouse_down (int click)
 Вызывается при нажатии кнопки мыши. Подробнее...
 
bool mouse_up (int click)
 Вызывается при отжатии кнопки мыши. Подробнее...
 
void mouse_move (int x, int y)
 Вызывается при перемещении курсора. Подробнее...
 
bool key_down (uint8 key)
 Вызывается при нажатии клавиши. Подробнее...
 
bool key_up (uint8 key)
 Вызывается при отжатии клавиши. Подробнее...
 
void input_lost ()
 Вызывается при потере устройства: мыши или клавиатуры. Подробнее...
 

Боевка

void combat_result (uint[]&data)
 Принимает данные, посланные в Critter::SendCombatResult. Подробнее...
 
int to_hit (CritterCl &chosen, CritterCl &target, ProtoItem &weapon, uint8 weaponMode)
 Вызывается движком для расчета отображаемого в клиенте шанса попадания. Подробнее...
 
string critter_animation (int animType, uint crType, uint anim1, uint anim2, uint &pass, uint &flags, int &ox, int &oy)
 Функция вызываемая в момент загрузки нужной анимации. Подробнее...
 
bool critter_animation_substitute (int animType, uint crTypeBase, uint anim1Base, uint anim2Base, uint &crType, uint &anim1, uint &anim2)
 Если не удалось загрузить анимацию (и uint& pass не изменился), то вызывается данная функция для определения замены анимации (например, удар левой рукой можно заменить на удар правой). Подробнее...
 
bool critter_animation_fallout (uint crType, uint &anim1, uint &anim2, uint &anim1ex, uint &anim2ex, uint &flags)
 Т. Подробнее...
 

Подробное описание

Функции

bool start ( )

Вызывается при запуске клиента или в случае, если придет обновленный скрипт client_main.fos.

Возвращает
При возвращении false игра не запустится.
uint loop ( )

Функция, вызываемая движком с задаваемой периодичностью.

Период задается с помощью возвращаемого значения.

Возвращает
Время в миллисекундах, через которое функцию следует вызвать снова. Если будет возвращен ноль, то функция больше не будет вызываться.
void render_iface ( )

Вызывается клиентом при отрисовке интерфейса.

Функции Draw* можно использовать только здесь.

void render_map ( )

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

Функция вызывается перед отрисовкой первого слоя интерфейса. Функции DrawMap* можно использовать только здесь.

См. также
render_iface
bool out_message ( string message,
int &  sayType 
)

Обрабатывает исходящие от игрока сообщения.

Аргументы
[in,out]messageТекст сообщения.
[in,out]sayTypeТип текста (см. Say types).
Возвращает
При возвращении false сообщение не отправляется.
bool in_message ( string message,
int &  sayType,
uint &  critterId,
uint &  delay 
)

Обрабатывает входящие сообщения.

Аргументы
[in,out]messageТекст входящего сообщения. Текст может быть раскрашены посредством тега "|" (0xAARRGGBB, если AA равно нулю, то прозрачность не учитывается).
[in,out]sayTypeТип текста (см. Say types).
[in,out]critterIdИдентификатор криттера, от которого пришло сообщение.
[in,out]delayВремя задержки сообщения.
Возвращает
Прим.
Радиосообщения анонимны.
По-умолчанию время задержки равно TextDelay + длина сообщения * 100 миллисекунд.
bool map_message ( string message,
uint16 &  hexX,
uint16 &  hexY,
uint &  color,
uint &  delay 
)

Вызывается при получении сообщения на карте.

Аргументы
[in,out]messageТекст сообщения.
[in,out]hexX,hexYКоординаты источника сообщения.
[in,out]colorЦвет сообщения.
[in,out]delayВремя задержки сообщения.
Возвращает
Прим.
По умолчанию, время задержки равно TextDelay + длина сообщения * 100 миллисекунд.
string item_description ( ItemCl item,
int  lookType 
)

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

Аргументы
itemПредмет, для которого формируется описание.
lookTypeСм. Item look types.
Возвращает
Строка с описанием предмета.
string critter_description ( CritterCl cr,
int  lookType 
)

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

Аргументы
crКриттер, для которого формируется описание.
lookTypeСм. Critter look types.
Возвращает
Строка с описанием криттера.
string generic_description ( int  descType,
int &  offsX,
int &  offsY 
)

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

Аргументы
descTypeТип описания (см. Generic descriptions types).
[out]offsX,offsYСмещение описания от базовой точки.
Возвращает
Описание.
bool get_elevator ( uint  type,
uint &[]  data 
)

Вызывается тогда, когда клиенту необходимо сформировать интерфейс для лифта.

Аргументы
typeТип лифта (см. Elevators).
[out]dataДанные, необходимые для формирования интерфейса.
Возвращает
true – в случае, если интерфейс создать можно; false – в противном случае.
void critter_in ( CritterCl cr)

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

Аргументы
crВходящий криттер.
void critter_out ( CritterCl cr)

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

Аргументы
crВыходящий криттер.
void item_map_in ( ItemCl item)

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

Аргументы
itemПоявившийся предмет.
void item_map_changed ( ItemCl itemNow,
ItemCl itemBefore 
)

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

Аргументы
itemNowНовый предмет.
itemBeforeСменившийся предмет.
void item_map_out ( ItemCl item)

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

Аргументы
itemИсчезнувший предмет.
void item_inv_in ( ItemCl item)

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

Аргументы
itemПоявившийся в инвентаре предмет.
void item_inv_out ( ItemCl item)

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

Аргументы
itemИсчезнувшийся из инвентаря предмет.
void item_drop ( ItemCl item)

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

Аргументы
itemВыкидываемый предмет.
void animation2d_process ( bool  animateStay,
CritterCl cr,
uint  anim1,
uint  anim2,
ItemCl item 
)

Вызывается перед проигрыванием 2D анимации.

Аргументы
animateStayУказывает воспроизводится сейчас какое-либо действие (false) или анимация стойки (true).
crКриттер, для которого проигрывается анимация.
anim1Первый индекс анимации (см. ANIM1_* в _animation.fos).
anim2Второй индекс анимации (см. ANIM2_2D_* в _animation.fos).
itemУказатель на предмет, используемый в анимации.
void animation3d_process ( bool  animateStay,
CritterCl cr,
uint  anim1,
uint  anim2,
ItemCl item 
)

Вызывается перед проигрыванием 3D анимации.

Аргументы
animateStayУказывает воспроизводится сейчас какое-либо действие (false) или анимация стойки (true).
crКриттер, для которого проигрывается анимация.
anim1Первый индекс анимации (см. ANIM1_* в _animation.fos).
anim2Второй индекс анимации (см. ANIM2_3D_* в _animation.fos).
itemУказатель на предмет, используемый в анимации.
uint item_cost ( ItemCl item,
CritterCl chosen,
CritterCl npc,
bool  sell 
)

(?)

bool check_perk ( CritterCl cr,
uint  perk 
)

(?)

void player_data_generate ( int &[]  data)

(?)

bool player_data_check ( int &[]  data)

(?)

void critter_action ( bool  localCall,
CritterCl cr,
int  action,
int  actionExt,
ItemCl item 
)

Вызывается, когда криттер производит какое-либо действие.

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

Аргументы
localCallВызывана ли функция движком локально (true) или с сервера (false).
crКриттер, который производит действие.
actionДействие (см. Действия криттеров).
actionExtПараметр с дополнительной информацией о действии.
itemУказатель на предмет, который участвует в совершении действия.
Прим.
Движок при некоторых действиях игрока вызывает эту же функцию с параметром localCall, равным true, а после отправляет информацию на сервер, где идет последующая обработка.
См. также
Critter::Action
void filename_logfile ( string filename)

Позволяет изменить имя файла лога.

Если filename окажется пустым, файл не сохранится

void filename_screenshot ( string filename)

Позволяет изменить имя файла скриншота.

Если filename окажется пустым, файл не сохранится

bool player_allowcommand ( Critter cr,
string adminPanel,
uint8  command 
)

Регулирует доступ к командам сервера

Аргументы
crПроверяемый криттер
adminPanel(?)
commandПроверяемая команда (см. Internal server commands в _defines.fos)
Возвращает
true – в случае, если команда разрешена; false – в противном случае.
bool critter_check_move_item ( Critter cr,
Item item,
uint8  toSlot,
Item itemSwap 
)

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

Аргументы
crКриттер, который меняет предмет;
itemПредмет, который перемещается;
toSlotСлот, из которого берется предмет;
itemSwapпредмет, который уже находится в слоте назначения и который переместится в слот перемещаемого предмета при успешной транзакции.
Возвращает
Если возвратить false, то предмет не переместится; если true, то переместится.
int get_active_screen ( )

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

Возвращает
Индекс активного окна. См. screen types ClientScreenTypes.
void screen_change ( bool  show,
int  screen,
int  p0,
int  p1,
int  p2 
)

Позволяет определить поведение при смене окон.

Аргументы
showДолжно ли окно показываться (true) или закрыться (false).
screenТип окна.
p0,p1,p2Параметры окна.
bool mouse_down ( int  click)

Вызывается при нажатии кнопки мыши.

Аргументы
clickСм. Mouse click states.
Возвращает
Если true, то движок не будет обрабатывать событие; если false, то будет.
bool mouse_up ( int  click)

Вызывается при отжатии кнопки мыши.

Аргументы
clickСм. Mouse click states.
Возвращает
Если true, то движок не будет обрабатывать событие; если false, то будет.
void mouse_move ( int  x,
int  y 
)

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

Аргументы
x,yНовые позиции курсора.
bool key_down ( uint8  key)

Вызывается при нажатии клавиши.

Аргументы
keyСм. DirectInput keyboard scan codes.
Возвращает
Если true, то движок не будет обрабатывать событие; если false, то будет.
bool key_up ( uint8  key)

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

Аргументы
keyСм. DirectInput keyboard scan codes.
Возвращает
Если true, то движок не будет обрабатывать событие; если false, то будет.
void input_lost ( )

Вызывается при потере устройства: мыши или клавиатуры.

Это может произойти при:

  • переключении по Alt-Tab,
  • сворачивании окна клиента,
  • потере фокуса.
void combat_result ( uint &[]  data)

Принимает данные, посланные в Critter::SendCombatResult.

int to_hit ( CritterCl chosen,
CritterCl target,
ProtoItem weapon,
uint8  weaponMode 
)

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

Аргументы
chosenИгрок.
targetЦель.
weaponИспользуемое игроком оружие.
weaponModeРежим атаки оружия. старшие четыре бита Прицел (см. Hit Locations), младшие четыре бита Тип использования (0 – primary, 1 – secondary, 2 – third).
string critter_animation ( int  animType,
uint  crType,
uint  anim1,
uint  anim2,
uint &  pass,
uint &  flags,
int &  ox,
int &  oy 
)

Функция вызываемая в момент загрузки нужной анимации.

Аргументы
animTypeТип анимации криттера (новый параметр, указывается в CritterTypes.cfg);
crTypeТип криттера;
anim1,anim2Индексы анимации;
passНомер вызова функции, изменяется пользователем, если не удалось загрузить анимацию и данный параметр был изменен, то функция вызовется вновь (в некоторых случаях нужно пробовать загрузить разные файлы для одной анимации);
flagsФлаги, на данный момент два - взять первый или последний кадр из анимации (см. Anim loading flags в _animation.fos);
ox,&oyСмещения для анимации, в пикселях.
Возвращает
путь и имя файла
bool critter_animation_substitute ( int  animType,
uint  crTypeBase,
uint  anim1Base,
uint  anim2Base,
uint &  crType,
uint &  anim1,
uint &  anim2 
)

Если не удалось загрузить анимацию (и uint& pass не изменился), то вызывается данная функция для определения замены анимации (например, удар левой рукой можно заменить на удар правой).

animTypeТип Тип анимации криттера (новый параметр, указывается в CritterTypes.cfg); uint crTypeBase, anim1Base, anim2Base Базовый тип криттера и анимации, с которых все начиналось; uint& crType, &anim1, &anim2 Тип криттера и текущие анимации для замены.

Возвращает
true, если замена нашлась (движок еще дополнительно проверяет изменились ли на самом деле crType, anim1, anim2), false - нет замены, анимация не будет загружена и проиграна.
bool critter_animation_fallout ( uint  crType,
uint &  anim1,
uint &  anim2,
uint &  anim1ex,
uint &  anim2ex,
uint &  flags 
)

Т.

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

Возвращает
true, если анимация присутствует, false - нет.