// VANILLA PROCEDURE HANDLERS:

Handler description_p_proc | - Обработчик подробного описания для объекта. | По умолчанию вызывается описание, заданное в прототипе объекта. || Примечание: Процедура должна содержать script_overrides во избежание одновременного выполнения и стандартной функции для описания.
Handler look_at_p_proc | - Обработчик вызывается при взгляде на объект. По умолчанию выводится имя прототипа объекта. || Примечание: Процедура должна содержать script_overrides во избежание одновременного выполнения и стандартной функции.
Handler damage_p_proc | - Обработчик вызывается при нанесении объекту повреждений. | Число полученных повреждений передается через параметр fixed_param. || Внимание! Если повреждения были полностью погашены за счет брони, то данный обработчик не вызывается!
Handler use_p_proc | - Обработчик вызывается при использовании этого объекта. | Для получения адреса использованного на объекте предмета используется функция source_obj. || Примечание: Данный обработчик не вызывается для некоторых типов предметов при работе с инвентарем!
Handler use_obj_on_p_proc |  - Обработчик вызывается при использовании на данном объекте другого объекта. | Через параметр obj_being_used_with получает указатель на объект, который был использован.
Handler use_skill_on_p_proc | - Обработчик вызывается, когда на объекте используют какое-либо умение. | Через параметр action_being_used получает номер умения, использованного на объекте (см. DEFINE.H, раздел Skill Equates).
Handler combat_p_proc | - Обработчик выполняется во время боя. | Номер конкретного события, вызвавшего функцию, передается в качестве параметра fixed_param: |   COMBAT_SUBTYPE_WEAPON_USED (1) - При промахе или если было попадание, но не было повреждений (только sFall: Ray patсh) |   COMBAT_SUBTYPE_HIT_SUCCEEDED (2) - успешное попадание |   COMBAT_SUBTYPE_SEQUENCING (3) - проверяется боевая последовательность (не используется) |   COMBAT_SUBTYPE_TURN (4) - начало хода |   COMBAT_SUBTYPE_NONCOM_TURN (5) - вход игрока в боевой режим (используется у любимцев Мельхиора)
Handler combat_is_starting_p_proc | - Обработчик выполняется каждый раз перед началом боя.
Handler combat_is_over_p_proc | - Обработчик выполняется каждый раз перед завершением боя.
Handler critter_p_proc | - Обработчик отвечает за поведение объекта, выполняется постоянно несколько раз в секунду. || Примечание: Если в скрипте криттера данная процедура отсутствует, то могут возникать ошибки, и в качестве этого обработчика может быть воспринята первая попавшаяся процедура, которая будет постоянно выполняться.
Handler push_p_proc | - Обработчик вызывается при попытке толкнуть объект.
Handler talk_p_proc | - Обработчик диалога, вызывается при попытке заговорить с объектом.
Handler pickup_p_proc | - Этот обработчик имеет разный смысл в скриптах предметов и криттеров. | В скриптах предметов он вызывается когда криттер пытается подобрать этот предмет, | для объектов-контейнеров - когда криттер пытается открыть их или что-нибудь украсть. | В скриптах криттеров вызывается при попытке кражи у этих криттеров.
Handler drop_p_proc | - Обработчик вызывается в скрипте объекта при сбрасывании self объекта на землю.
Handler is_dropping_p_proc | - Обработчик вызывается в скрипте криттера при попытке сбросить какой либо предмет.
Handler map_enter_p_proc | - Обработчик вызывается при заходе игрока на карту. | Значение флага карты "NON-VIRGIN MAP", передаются функции через параметр fixed_param.
Handler map_exit_p_proc | - Обработчик вызывается, когда игрок покидает карту.
Handler map_update_p_proc | - Обработчик вызывается при обновлении карты. | Обновление происходит каждые 250 игровых тиков, одна секунда равна 10 тикам.
Handler destroy_p_proc | - Обработчик вызывается при уничтожении объекта к которому принадлежит скрипт.
Handler spatial_p_proc | - Обработчик вызывается в скрипте объекта которому принадлежит скрипт, при прохождении другого объекта над ним.
Handler timed_event_p_proc | - Обработчик события по таймеру. | Вызывается при срабатывании ранее установленного таймера. | Через параметр fixed_param в функцию передается значение сработавшего таймера задаваемое в add_timer_event.
Handler start | - Обработчик вызывается при запуске скрипта, т.е. каждый раз при заходе игрока на карту.

// VANILLA OPCODES AND MACROS:

int action_being_used | - Возвращает номер умения, используемого на объекте, в скрипте которого вызывается команда.
ObjectPtr dude_obj | - Возвращает значение, указателя на игрока.
int fixed_param | - Возвращает значение, фиксированного параметра скриптов.
ObjectPtr obj_being_used_with | - Возвращает указатель на объект, используемый в данный момент на объекте, из скрипта которого вызывается.
int random (int min, int max) | - Возвращает случайное число из диапазона (min...max) включительно.
void scr_return (int value) | - Устанавливает возвращаемое скриптом значение для использования С-кодом движка (не используется).
int script_action | - Возвращает действие, активировавшее этот скрипт (в Fallout2 не используется).
void script_overrides | - Сообщает C-движку, что скрипт переопределяет стандартное поведение для объекта.
ObjectPtr self_obj | - Возвращает значение, указателя на объект, в скрипте которого выполняется.
ObjectPtr source_obj | - Возвращает значение, указателя на объект, вызвавший обработчик.
ObjectPtr target_obj | - Возвращает значение, указателя на объект, над которым совершается действие.

void add_timer_event (ObjectPtr obj, int time, int info) | - Добавить событие по таймеру. | Аргументы: | • obj - указатель на объект | • time - задержка выполнения (в игровых тиках) | • info - параметр, который передается обработчику timed_event_p_proc через параметр fixed_param

void rm_timer_event (ObjectPtr who) | - Очищает все события по таймеру, "подвешенные" на данный объект. | Аргументы: | • who - указатель на объект

void rm_fixed_timer_event (ObjectPtr who, int fixed_val) | - Очищает события по таймеру, "подвешенные" на данный объект, с заданным значением параметра fixed_val. | Аргументы: | • who - указатель на объект | • fixed_val - параметр для fixed_param

ObjectPtr create_object_sid (int pid, int tile_num, int elev, int sid) | - Создать объект. | Аргументы: | • pid - номер прототипа объекта | • tile_num - номер тайла, связь с координатами x,y: [tile_num = 200 * y + x] | • elev - этаж карты (0, 1 и 2) | • sid - идентификатор скрипта |   Если sid = -1, то привязывается скрипт, указанный в файле прототипа, если в файле прототипа скрипт не указан, то скрипт не привязывается. | Возвращаемое значение: указатель ObjectPtr на созданный объект.

int destroy_object (ObjectPtr obj) | - Уничтожает объект на который указывает аргумент (obj). || Примечание: обработчик destroy_p_proc срабатывает только если объект уничтожается НЕ из своего скрипта.

int destroy_mult_objs (ObjectPtr item, int count) | - Уничтожает указанное количество объектов. | Аргументы: | • item - указатель на объект | • count - количество уничтожаемых экземпляров

boolean obj_is_locked (ObjectPtr what) | - Проверяет, заперт ли данный объект. Аргументы: | • what - указатель на объект | Возвращаемое значение: |   TRUE - если объект заперт |   FALSE - если объект не заперт или объект вообще нельзя запереть

boolean obj_is_open (ObjectPtr what) | - Проверяет открыт ли заданный объект. | Аргументы: | • what - указатель на объект Возвращаемое значение: |   TRUE - если объект открыт |   FALSE - если объект закрыт или его вообще нельзя закрыть

boolean obj_on_screen (ObjectPtr what) | - Проверяет, видим ли объект на игровом экране. | Аргументы: | • what - указатель на объект | Возвращаемое значение: |   TRUE - если объект в данный момент виден на игровом экране |   FALSE - если объект не видим на игровом экране

void set_obj_visibility (ObjectPtr obj, boolean visibility) | - Устанавливает флаг видимости объекта. Аргументы: | • obj - указатель на объект | • visibility: true - сделать объект видимым, false - сделать объект невидимым

void obj_set_light_level (ObjectPtr obj, int intensity, int distance) | - Делает объект источником света. | Аргументы: | • obj - указатель на объект | • intensity - интенсивность (0...100) в процентах от максимума | • distance - расстояние в хексах (0...8)

int obj_art_fid (ObjectPtr obj) | - Возвращает идентификатор фрейма FID объекта (см. ARTFID.H). | Аргументы: | • obj - указатель на объект

int obj_item_subtype (ObjectPtr obj) | - Возвращает значение подтипа для предметов (см. DEFINE.H). | Аргументы: | • obj - указатель на объект | Возвращаемое значение: |   0 = item_type_armor |   1 = item_type_container |   2 = item_type_drug |   3 = item_type_weapon |   4 = item_type_ammo |   5 = item_type_misc_item) |   6 = item_type_key_item

string obj_name (ObjectPtr what) | - Возвращает имя объекта из pro_*.msg файлов. | Аргументы: | • what - указатель на объект

int obj_pid (ObjectPtr obj) | - Возвращает идентификатор прототипа (PID) объекта. | Аргументы: | • obj - указатель на объект || Идентификатор прототипа объектов: см. CRITRPID.H - PID криттеров, ITEMPID.H - PID предметов, SCENEPID.H - PID элементов пейзажа.

int obj_type (ObjectPtr obj) | - Возвращает тип объекта. | Аргументы: | • obj - указатель на объект | Возвращаемое значение: |   0 - Items |   1 - Critters |   2 - Scenery |   3 - Walls |   4 - Tiles |   5 - Misc

int|string proto_data (int pid, int data_member) | - Возвращает значение данных из прототипа объекта. | Аргументы: | • pid - идентификатор прототипа объекта | • data_member - номер данных (см. DEFINE.H раздел proto_data data_member Equates) | Возвращаемое значение: |   значение указанного поля из файла прототипа || Идентификатор прототипа объекта: см. CRITRPID.H - PID криттеров, ITEMPID.H - PID предметов, SCENEPID.H - PID элементов пейзажа.

void jam_lock (ObjectPtr lockableObj) | - Заклинивает объект, который становится невозможным вскрыть в течение примерно 24 игровых часов. | Аргументы: | • lockableObj - указатель на объект, который можно запереть

void obj_close (ObjectPtr what) | - Пытается закрыть объект (к примеру двери или контейнеры). | Аргументы: | • what - указатель на объект

void obj_lock (ObjectPtr what) | - Пытается запереть объект. | Аргументы: | • what - указатель на объект

void obj_open (ObjectPtr what) | - Пытается открыть объект (к примеру двери или контейнеры). | Аргументы: | • what - указатель на объект

void obj_unlock (ObjectPtr what) | - Пытается отпереть запертый объект. | Аргументы: | • what - указатель на объект

void use_obj (ObjectPtr obj) | - Использовать объект. | Аргументы: | • obj - указатель на используемый объект

void use_obj_on_obj (ObjectPtr item, ObjectPtr targetObj) | - Команда использовать объект (item) на объекте (targetObj). | Аргументы: | • item - указатель на используемый объект | • targetObj - указатель на целевой объект

ObjectPtr create_object (int pid, int tile_num, int elev) | - Создает объект, который будет располагаться на указанных координатах. | Аргументы: | • pid - идентификатор прототипа объекта | • tile_num - номер тайла, связь с координатами x,y: [tile_num = 200 * y + x] | • elev - этаж карты (0, 1 и 2) | Возвращаемое значение: указатель (ObjectPtr) на созданный объект || Примечание: Если в прототипе объекта указан скрипт, то скрипт привязывается. Иначе - нет. | Макрос от create_object_sid(pid, tile_num, elev, -1)

int critter_add_trait (ObjectPtr who, int trait_type, int trait, int amount) | - Добавляет криттеру указанное свойство. | Аргументы: | • who - указатель на криттера | • trait_type - тип: |     TRAIT_PERK (0) - добавить перк |     TRAIT_OBJECT (1) - добавить специфическое свойство |     TRAIT_TRAIT (2) - добавить трейт (значение не поддерживается) | • trait - трейт: |     если trait_type = TRAIT_PERK - номер добавляемого перка (см. DEFINE.H) |     если trait_type = TRAIT_OBJECT - номер специфического свойства: |        OBJECT_AI_PACKET (5) - установка AI |        OBJECT_TEAM_NUM (6) - установка команды, в которую будет входить данный криттер |     если trait_type = TRAIT_TRAIT - номер добавляемого трейта (см. DEFINE.H) | • amount: |     если trait_type = TRAIT_PERK/TRAIT_TRAIT - количество добавляемых перков/трейтов, значение 0 удаляет один уровень |     если trait_type = TRAIT_OBJECT и trait = OBJECT_AI_PACKET - номер AI пакета (см. AIPACKET.H) |     если trait_type = TRAIT_OBJECT и trait = OBJECT_TEAM_NUM - номер команды (см. TEAMS.H)

void critter_rm_trait (ObjectPtr who, int trait_type, int trait, int amount) | - Удалить трейт или перк у криттера. | Аргументы: | • who - указатель на криттера | • trait_type - тип: |     TRAIT_PERK (0) - удалить перк |     TRAIT_TRAIT (2) - удалить трейт | • trait - трейт: |     если trait_type = TRAIT_PERK - номер удаляемого перка (см. DEFINE.H) |     если trait_type = TRAIT_TRAIT - номер удаляемого трейта (см. DEFINE.H) | • amount - количество удаляемых уровней перков/трейтов, при значении 0 удаляет все уровни || Примечание: Функция может удалить только Перки.

void critter_mod_skill (ObjectPtr who, int skill, int amount) | - Изменить значение умения криттера на величину указанному в (amount). | Аргументы: | • who - указатель на криттера | • skill - номер умения (см. DEFINE.H) | • amount - число единиц умения (может быть как положительным, так и отрицательным) || Примечание: Если умение отмечено как tagged, параметр (amount) уменьшается до четного. Действует только для игрока.

int critter_state (ObjectPtr who) | - Возвращает состояние криттера в котором он находится. | Аргументы: | • who - указатель на криттера | Возвращаемое значение: состояние криттера, мертв, без сознания и т. д. (см. DEFINE.H): |   0 = CRITTER_IS_NORMAL |   1 = CRITTER_IS_DEAD |   2 = CRITTER_IS_PRONE

boolean drug_influence (ObjectPtr who) | - Проверяет, находится ли криттер под воздействием наркотиков. | Аргументы: | • who - указатель на криттера | Возвращаемое значение: TRUE - криттер находится под воздействием наркотиков, иначе - FALSE || Примечание: макрос от metarule(METARULE_WHO_ON_DRUGS, who)

int get_critter_stat (ObjectPtr who, int stat) | - Вернуть значение указанной характеристики. | Аргументы: | • who - указатель на криттера |   stat - номер характеристики (см. DEFINE.H раздел stats)

int get_pc_stat (int pcStat) | - Возвращает значения характеристик игрока. | Аргументы: | • pcStat - номер характеристики (см. DEFINE.H): |   0 = PCSTAT_unspent_skill_points |   1 = PCSTAT_level |   2 = PCSTAT_experience |   3 = PCSTAT_reputation |   4 = PCSTAT_karma |   5 = PCSTAT_max_pc_stat

int get_poison (ObjectPtr who) | - Вернуть уровень отравления криттера. | Аргументы: | • who - указатель на криттера | Возвращаемое значение: уровень отравления криттера || Примечание: в Fallout 1 это дает сообщение об ошибке.

void give_exp_points (int points) | - Прибавить очки опыта (points) игроку.

int has_skill (ObjectPtr who, int skill) | - Проверка уровня определенного умения. | Аргументы: | • who - указатель на криттера | • skill - номер умения (см. DEFINE.H) | Возвращаемое значение: |   уровень заданного умения (0-200 для Fallout 1, и 0-300 для Fallout 2) || Макрос: critter_skill_level

int has_trait (int trait_type, ObjectPtr who, int trait) | - Вернуть значение указанного свойства. | Аргументы: | • trait_type - тип трейта: |      TRAIT_PERK (0) |     TRAIT_OBJECT (1) |     TRAIT_TRAIT (2) | • who - указатель на криттера | • trait: |     если trait_type = TRAIT_PERK - номер перка (см. DEFINE.H) |     если trait_type = TRAIT_TRAIT - номер трейта (см. DEFINE.H) |     если trait_type = TRAIT_OBJECT - номер особого свойства: |       OBJECT_AI_PACKET (5) |       OBJECT_TEAM_NUM (6) |       OBJECT_CUR_ROT (10) |       OBJECT_VISIBILITY (666) |       OBJECT_CUR_WEIGHT (669) | Возвращаемое значение: |   если trait_type = TRAIT_PERK/TRAIT_TRAIT - возвращает уровень перка/трейта |   если trait_type = TRAIT_OBJECT, то для: |     OBJECT_AI_PACKET - возвращает номер AI |     OBJECT_TEAM_NUM - возвращает номер команды |     OBJECT_CUR_ROT - возвращает направление взгляда (0...5) |     OBJECT_VISIBILITY - возвращает видимость (TRUE, FALSE) |     OBJECT_CUR_WEIGHT - возвращает текущий вес

boolean is_skill_tagged (int skillNum) | - Проверка, помечено ли указанное умение как основное (tagged). (Только для Fallout 2). | Аргументы: | • skillNum - номер скилла (см. DEFINE.H) | Возвращаемое значение: TRUE - если умение помечено как Tagged, иначе - FALSE || Макрос от metarule(METARULE_SKILL_CHECK_TAG, skillNum)

int player_kill_count (int type) | -  Число убитых игроком криттеров | Аргументы: | • type - тип криттера (KILL_TYPE_* см. DEFINE.H) | Возвращаемое значение: число убитых игроком криттеров || Макрос от metarule3(METARULE3_GET_KILL_COUNT, type, 0, 0)

int set_critter_stat (ObjectPtr who, int stat, int amount) | -  Изменить значение характеристики криттера на величину (amount). | Аргументы: | • who - указатель на криттера | • stat - номер характеристики (см. DEFINE.H раздел stats) | • amount - число единиц характеристики (может быть как положительным, так и отрицательным)

void critter_dmg (ObjectPtr who, int dmg_amount, int dmg_type) | - Нанести криттеру заданный урон заданным способом. | Аргументы: | • who - указатель на криттера | • dmg_amount - количество наносимого урона | • dmg_type - тип наносимого повреждения: |     0 - DMG_normal_dam |     1 - DMG_laser |     2 - DMG_fire |     3 - DMG_plasma |     4 - DMG_electrical |     5 - DMG_emp |     6 - DMG_explosion | Флаги (bwor с типом повреждения): |     DMG_BYPASS_ARMOR (256) |     DMG_NOANIMATE (512)

void critter_heal (ObjectPtr who, int amount) | - Восстанавливает или снимает указанное количество очков жизней. | Аргументы: | • who - указатель на криттера | • amount - количество хитпойнтов

void critter_injure (ObjectPtr who, int how) | - Наносит криттеру повреждения (сломать ногу, сломать руку, ослепить, пропустить ход и т.д.). | Аргументы: | • who - указатель на криттера | • how - тип повреждения (см. DEFINE.H раздел Combat Flags) || Примечание: Если в качестве параметра (how) указан тип повреждения с флагом bwor DAM_PERFORM_REVERSE (0x800000), то функция снимает с криттера повреждение указанного типа.

void poison (ObjectPtr who, int amount) | - Изменить уровень отравления криттера. | Аргументы: | • who - указатель на объект | • amount - количество единиц уровня отравления может быть положительным или отрицательным

void radiation_dec (ObjectPtr who, int amount) | - Уменьшить облучение криттера. | Аргументы: | • who - указатель на объект | • amount - количество единиц уровня || Примечание: Функция используется только применительно к игроку (dude_obj).

void radiation_inc (ObjectPtr who, int amount) | - Увеличить облучение криттера. | Аргументы: | • who - указатель на объект | • amount - количество единиц уровня || Примечание: Функция используется только применительно к игроку (dude_obj).

boolean critter_is_fleeing (ObjectPtr who) | - Проверяет, убегает ли криттер с поля боя. | Аргументы: | • who - указатель на криттера | Возвращаемое значение: |   TRUE - если объект убегает с поля боя (установлен флаг FLEE), иначе - FALSE

void critter_set_flee_state (ObjectPtr who, boolean flee_on) | - Установить флаг FLEE (убегать с поля боя). | Аргументы: | • who - указатель на криттера | • flee_on - TRUE: установить флаг FLEE, FALSE: убрать

void critter_stop_attacking (ObjectPtr who) | - Установить флаг, указывающий на то, что криттер не хочет продолжать бой. | Аргументы: | • who - указатель на криттера

void critter_damage (ObjectPtr who, int dmg_amount) | - Нанести криттеру заданный урон. | Аргументы: | • who - указатель на криттера | • dmg_amount - наносимый урон || Макрос от critter_dmg(who, dmg_amount, DMG_normal_dam)

int critter_skill_level (ObjectPtr who, int skillNum) | - Вернуть текущий уровень умения криттера. | Аргументы: | • who - указатель на криттера | • skillNum - номер умения (см. DEFINE.H раздел Skill Equates) | Возвращаемое значение: текущий уровень заданного умения || Переопределение has_skill(ObjectPtr who, int skillNum)

void critter_uninjure (ObjectPtr who, int how) | - Снимает с криттера повреждения (сломать ногу, сломать руку и т.д.). | Аргументы: | • who - указатель на криттера | • how - тип повреждения (см. DEFINE.H раздел Combat Flags) || Макрос от critter_injure(who, (how BWOR DAM_PERFORM_REVERSE))

int obj_get_rot (ObjectPtr who) | - Возвращает направление взгляда объекта. | Аргументы: | • who - указатель на объект | Возвращаемое значение: направление взгляда (0...5) || Макрос от has_trait(TRAIT_OBJECT, obj, OBJECT_CUR_ROT)

boolean obj_is_visible_flag (ObjectPtr what) | - Проверяет, является ли объект видимым. (Только для Fallout 2). | Аргументы: | • what - указатель на объект | Возвращаемое значение: |   TRUE - если объект видим |   FALSE - если объект невидимый || Макрос от has_trait(TRAIT_OBJECT, what, OBJECT_VISIBILITY)

int who_carry_amount (ObjectPtr who) | - Возвращает текущий вес объекта. | Аргументы: | • who - указатель на объект | Возвращаемое значение: текущий вес объекта who || Макрос от has_trait(TRAIT_OBJECT, who, OBJECT_CUR_WEIGHT)

void add_mult_objs_to_inven (ObjectPtr who, ObjectPtr item, int count) | - Добавляет несколько единиц заданного предмета в инвентарь. | Аргументы: | • who - указатель на объект | • item - указатель на предмет | • count - число единиц предмета

void add_obj_to_inven (ObjectPtr who, ObjectPtr item) | - Добавляет предмет в инвентарь объекта. | Аргументы: | • who - указатель на объект | • item - указатель на предмет || Макрос от add_mult_objs_to_inven(who, item, 1)

int item_caps_adjust (ObjectPtr obj, int amount) | - Изменяет количество денег у объекта в инвентаре. | Аргументы: | • obj - указатель на объект | • amount - количество (плюс/минус)

void move_obj_inven_to_obj (ObjectPtr srcObj, ObjectPtr destObj) | - Перемещает инвентарь объекта (srcObj) в инвентарь объекта (destObj). | Аргументы: | • srcObj - указатель на объект-источник | • destObj - указатель на объект назначения

int rm_mult_objs_from_inven (ObjectPtr who, ObjectPtr obj, int count) | - Удаляет несколько экземпляров заданного объекта из инвентаря другого объекта. | Аргументы: | • who - указатель на объект, содержащий удаляемый объект | • obj - указатель на удаляемый объект count - число экземпляров заданного объекта | Возвращаемое значение: число удаленных экземпляров || Примечание: Объект удаляется из инвентаря, НЕ из памяти, и помещается на карту в место с координатами (0,1).

void rm_obj_from_inven (ObjectPtr who, ObjectPtr obj) | - Удаляет объект из инвентаря другого объекта. | Аргументы: | • who - указатель на объект содержащий удаляемый объект | • obj - указатель на удаляемый объект || Примечания: Объект удаляется из инвентаря, НЕ из памяти, и помещается на карту в место с координатами (0,1). | Макрос от rm_mult_objs_from_inven(who, obj, 1)

ObjectPtr inven_cmds (ObjectPtr who, int inven_cmd, int slotNum) | - Возвращает указатель на объект в инвентаре. | Аргументы: | • what - указатель на объект в инвентаре | • inven_cmd - команды инвентаря, определено единственное значение: INVEN_CMD_INDEX_PTR (13) | • slotNum - порядковый номер слота, начиная с "низа" | Возвращаемое значение: указатель на объект (ObjectPtr)

int item_caps_total (ObjectPtr obj) | - Возвращает текущее количество денег в инвентаре объекта. | Аргументы: | • obj - указатель на объект Возвращаемое значение: количество денег у объекта

ObjectPtr obj_carrying_pid_obj (ObjectPtr who, int pid) | - Возвращает указатель на объект с идентификатором прототипа (pid), который находится у объекта (who). | Аргументы: | • who - указатель на объект | • pid - идентификатор прототипа объекта | Возвращаемое значение: указатель на объект (ObjectPtr), если он есть у who, иначе - NULL || Идентификаторы прототипов объектов, см. CRITRPID.H - PID криттеров, ITEMPID.H - PID предметов, SCENEPID.H - PID элементов пейзажа.

int obj_is_carrying_obj_pid (ObjectPtr obj, int pid) | - Возвращает количество объектов с идентификатором прототипа (pid), находящихся в инвентаре объекта (obj). | Аргументы: | • obj - указатель на объект, который проверяется на наличие в инвентаре заданного объекта | • pid - идентификатор прототипа объекта Возвращаемое значение: количество объектов с заданным PID || Идентификаторы прототипа объектов, см. CRITRPID.H - PID криттеров, ITEMPID.H - PID предметов, SCENEPID.H - PID элементов пейзажа.

void drop_obj (ObjectPtr obj) | - Указывает криттеру, в скрипте которого выполняется данная функция, сбросить указанный предмет на землю. | Аргументы: | • obj - указатель на объект || Примечания: Действие криттера не анимируется.

void inven_unwield (ObjectPtr who) | - Команда криттеру убрать любые предметы из слотов обеих рук. | Аргументы: | • who - указатель на криттера || Примечание: Если в данный момент анимация отключена, результат действия команды выглядит как внезапная смена картинки. | Макрос от metarule(METARULE_INVEN_UNWIELD_WHO, who)

void obj_drop_everything (ObjectPtr who) | - Команда криттеру выбросить все предметы из инвентаря себе под ноги. | Аргументы: | • who - указатель на криттера || Макрос от metarule(METARULE_DROP_ALL_INVEN, who)

void pickup_obj (ObjectPtr obj) | - Криттер, в скрипте которого вызвана данная функция, поднимает с земли указанный объект. | Аргументы: | • obj - указатель на объект: || Примечание: Для криттера выполняется анимация "подбирание с земли".

void wield_obj_critter (ObjectPtr who, ObjectPtr obj) | - Экипирует криттера who объектом (obj). | Аргументы: | • who - указатель на криттера | • obj - указатель на объект || Примечание: Воспроизводит анимацию экипировки криттера.

ObjectPtr critter_inven_obj(ObjectPtr who, int where) | - Возвращает указатель на объект в слоте инвентаря или общее число объектов в инвентаре. | Аргументы: |  who - указатель на криттера |  where - номер слота (см. DEFINE.H): |     INVEN_TYPE_WORN (0) - слот брони |     INVEN_TYPE_RIGHT_HAND (1) - слот правой руки |     INVEN_TYPE_LEFT_HAND (2) - слот левой руки |     INVEN_TYPE_INV_COUNT (-2) - общее число предметов | Возвращаемое значение: указатель на объект (ObjectPtr), если объект есть в слоте, иначе - NULL, |     если where = INVEN_TYPE_INV_COUNT - тогда возвращает общее число предметов в инвентаре.

int inven_count (ObjectPtr what) | - Возвращает количество имеющихся предметов в инвентаре объекта. | Аргументы: | • what - указатель на объект | Возвращаемое значение: количество предметов в инвентаре || Макрос от critter_inven_obj(what, INVEN_TYPE_INV_COUNT)

ObjectPtr inven_ptr (ObjectPtr what, int slotNum) | - Возвращает указатель на объект в заданном слоте. | Аргументы: | • what - указатель на объект в инвентаре | • slotNum - порядковый номер слота, начиная с "низа" | Возвращаемое значение: указатель на объект (ObjectPtr) || Макрос от inven_cmds(what, INVEN_CMD_INDEX_PTR, slotNum)

void wield_obj (ObjectPtr obj) | - Экипирует криттера, в скрипте которого вызвана [self_obj], объектом (obj). | Аргументы: | • obj - указатель на объект || Примечание: воспроизводит анимацию экипировки криттера. | Макрос от wield_obj_critter(self_obj, obj)

int do_check (ObjectPtr who, int check, int modifier) | - Выполняет случайную проверку "бросок кубика" на основные характеристики криттера (сила, восприятие и т.д.). | Аргументы: | • who - указатель на криттера | • check - номер характеристики (см. DEFINE.H, stats) | • modifier - модификатор значения характеристики (отрицательное значение уменьшает вероятность успеха, положительное - увеличивает) | Возвращаемое значение: результат случайной проверки (roll_result): |   ROLL_FAILURE (1) |   ROLL_SUCCESS (2) || Примечание: Функция не может генерировать значения для критического успеха(ROLL_CRITICAL_SUCCESS) или критической неудачи(ROLL_CRITICAL_FAILURE), поскольку проверка является базовой (X == Y).

int how_much (int val) | - Возвращает разницу результата случайной проверки "броска кубика" функций do_check/roll_vs_skill. | Аргументы: | • val - не используется | Возвращаемое значение: результат "броска кубика" || Примечание: Аргумент может принимать любое значение которое не используется.

boolean is_critical (int val) | - Проверяет, является ли результат случайной проверки "броска кубика" критическим. | Аргументы: | • val - результат "броска кубика" | Возвращаемое значение: |   TRUE - если результат критический (ROLL_CRITICAL_FAILURE/ROLL_CRITICAL_SUCCESS), иначе - FALSE

boolean is_success (int val) | - Проверяет, является ли результат случайной проверки "броска кубика" успешным. | Аргументы: | • val - результат "броска кубика" | Возвращаемое значение: |   TRUE - если результат успешный (ROLL_SUCCESS/ROLL_CRITICAL_SUCCESS), иначе - FALSE

int roll_vs_skill (ObjectPtr who, int skill, int modifier) | - Выполняет случайную проверку "бросок кубика" на умения (skill). | Аргументы: | • who - указатель на объект | • skill - номер проверяемого умения объекта (см. DEFINE.H) | • modifier - модификатор значения умения, отрицательное значение уменьшает вероятность успеха, положительное - увеличивает | Возвращаемое значение: результат случайной проверки: |   ROLL_CRITICAL_FAILURE (0) |   ROLL_FAILURE (1) |   ROLL_SUCCESS (2) |   ROLL_CRITICAL_SUCCESS (3) || Примечание: Результат случайной проверки может быть передан функциям is_success и is_critical для определения соответствующих состояний.

boolean using_skill (ObjectPtr who, int skill) | - Проверка на использование активного умения. | Аргументы: | • who - указатель на объект | • skill - номер активного умения |     SKILL_FIRST_AID (6) |     SKILL_DOCTOR (7) |     SKILL_SNEAK (8) | Возвращаемое значение: TRUE - если активное умение используется в данный момент, иначе - FALSE || Примечания: Реально возвращает верное значение только для SKILL_SNEAK.

int critter_attempt_placement (ObjectPtr who, int hex, int elev) | - Расположить криттера на заданной позиции. | Аргументы: | • who - указатель на криттера | • hex - номер хекса, связь с координатами x, y: [hex = 200 * y + x] | • elev - уровень карты (0, 1 и 2) | Возвращаемое значение: неизвестно | Примечание: Если указанный хекс блокирован, пытается найти ближайший свободный хекс.

int elevation (ObjectPtr obj) | - Возвращает уровень(этаж) карты, на котором находится заданный объект. | Аргументы: | • obj - указатель на объект | Возвращаемое значение: уровень (0, 1 или 2)

int move_to (ObjectPtr obj, int tile_num, int elev) | - Переместить объект. | Аргументы: | • obj - указатель на объект | • tile_num - позиция [tile_num = 200 * y + x] | • elev - уровень (0, 1 или 2) | Возвращаемое значение: неизвестно

boolean obj_can_hear_obj (ObjectPtr src_obj, ObjectPtr dst_obj) | - Проверка, может ли один объект слышать другой. | Аргументы: | • src_obj - указатель на объект-источник | • dst_obj - указатель на объект назначения | Возвращаемое значение: TRUE - если (src_obj) слышит (dst_obj), иначе - FALSE || Примечания: При проверке учитывается расстояние, текущее состояние (стоит/идёт/бежит), использование умений скрытность и др.

boolean obj_can_see_obj (ObjectPtr src_obj, ObjectPtr dst_obj) | - Проверка, может ли один объект видеть другой. | Аргументы: | • src_obj - указатель на объект-источник | • dst_obj - указатель на объект назначения | Возвращаемое значение: TRUE - если src_obj видит dst_obj, иначе - FALSE || Примечание: При проверке учитываются случайные проверки на восприятие и скрытность (для криттеров).

int rotation_to_tile (int srcTile, int destTile) | - Получить направление к тайлу (destTile) от тайла (srcTile). | Аргументы: | • srcTile - номер тайла "от" [200 * y + x] | • destTile - номер тайла "к" ([200 * y + x] | Возвращаемое значение: направление (0...5)

boolean tile_contains_obj_pid (int tile, int elev, int pid) | - Проверка, содержит ли заданный тайл объект с заданным PID. | Аргументы: | • tile - номер тайла (хекса) [200 * y + x] | • elev - этаж (0...2) | • pid - идентификатор прототипа объекта | Возвращаемое значение: TRUE - тайл содержит заданный объект, иначе - FALSE || Идентификаторы прототипов объектов см. CRITRPID.H - PID криттеров, ITEMPID.H - PID предметов, SCENEPID.H - PID элементов пейзажа.

ObjectPtr tile_contains_pid_obj (int tile, int elev, int pid) | - Возвращает указатель на первый объект, находящийся на указанном тайле. | Аргументы: | • tile - номер тайла (хекса) [200 * y + x] | • elev - уровень карты (0...2) | • pid - идентификатор прототипа объекта | Возвращаемое значение: указатель на объект (ObjectPtr) || Идентификаторы прототипов объектов, см. CRITRPID.H - PID криттеров, ITEMPID.H - PID предметов, SCENEPID.H - PID элементов пейзажа.

int tile_distance (int tile1, int tile2) | - Возвращает расстояние между двумя тайлами [200 * y + x]. | Аргументы: | • tile1 - номер первого тайла (хекса) [200 * y + x] | • tile2 - номер второго тайла (хекса) [200 * y + x]

int tile_distance_objs (ObjectPtr obj1, ObjectPtr obj2) | - Возвращает расстояние между двумя объектами. | Аргументы: | • obj1 - указатель на первый объект | • obj2 - указатель на второй объект

boolean tile_in_tile_rect (int tile1, int tile2, int tile3, int tile4, int tile) | - Проверяет принадлежность точки (хекса) прямоугольнику. | Аргументы: | • tile1/tile2/tile3/tile4 - углы прямоугольника, начиная с левого нижнего угла [номер хекса: 200 * y + x] | • tile - номер хекса, который проверяется на принадлежность прямоугольнику [200 * y + x] | Возвращаемое значение: |   TRUE - если указанный хекс принадлежит заданному прямоугольнику, иначе - FALSE

int tile_num (ObjectPtr obj) | - Возвращает номер тайла, на котором находится указанный объект. | Аргументы: | • obj - указатель на объект

int tile_num_in_direction (int start_tile, int dir, int distance) | - Номер тайла, расположенного на заданном расстоянии, в заданном направлении от указанного тайла. | Аргументы: | • start_tile - номер тайла (хекса) [200 * y + x] | • dir - направление (0...5) | • distance - расстояние (в хексах) | Возвращаемое значение: |   Если аргумент distance отличен от нуля, то возвращает номер тайла [200 * y + x], иначе возвращает -1

int cur_map_index | - Возвращает индекс текущей карты (см. MAPS.H).
int cur_town | - Возвращает индекс текущего города (см. MAPS.H). || Макрос от metarule(METARULE_CURRENT_TOWN, 0)

int days_since_visited | - Возвращает количество дней, прошедших с момента последнего посещения карты игроком | или -1 - если игрок никогда не был на данной карте.

boolean is_loading_game | - Проверка, загружается ли игра в данный момент. | Возвращаемое значение: TRUE - если происходит загрузка игры, иначе - FALSE || Примечание: Используется только в контексте map_enter_p_proc. | Макрос от metarule(METARULE_IS_LOADGAME, 0)

void load_map (string map_name, int param) | - Функция останавливает все выполняемые скрипты, и загружает указанную карту. | Аргументы: | • map_name - имя карты (см. MAPS.H) | • param - значение которое будет записано в глобальную переменную GVAR_LOAD_MAP_INDEX (27)

boolean map_first_run | - Проверяет, запускается ли текущая карта в первый раз. | Возвращаемое значение: TRUE - карта запускается впервые (не из сохранённой игры), иначе - FALSE || Примечание: Используется только в контексте map_enter_p_proc. | Макрос от metarule(METARULE_TEST_FIRSTRUN, 0)

boolean map_is_known (int mapNum) | - Проверяет, известна ли карта с заданным индексом. | Аргументы: | • mapNum - индекс карты (см. MAPS.H) | Возвращаемое значение: TRUE - карта известна, иначе - FALSE || Макрос от metarule(METARULE_MAP_KNOWN, mapNum)

void override_map_start (int x, int y, int elev, int rot) | - Принудительно установить позицию игрока при загрузке карты. | Аргументы: | • x - позиция по x | • y - позиция по y | • elev - уровень карты (0, 1, 2) | • rot - направление взгляда (0...5) || Примечания: Результат работы функции выглядит как немедленное перемещение игрока в указанную точку, на которой центрируется экран (см. также set_map_start).

void set_exit_grids (int markElev, int mapID, int elevation, int tileNum, int rotation) | - Указать параметры для всех точек выхода на заданном уровне загруженной карты. | Аргументы: | • markElev - уровень, где расположены модифицируемые точки выхода, (0...2) | • mapID - номер карты для выхода (см. MAPS.H), или -1 выход на карту мира | • elevation - уровень карты (0...2) | • tileNum - тайл входа [200 * y + x] | • rotation - направление взгляда (0...5)

void set_light_level (int level) | - Задать уровень освещенности для карты. | Аргументы: | • level - уровень освещенности (1...100) || Примечание: В файле заголовка UPDATMAP.H содержатся стандартные значения освещенности разных типов (яркий, тусклый и т.д.).

void set_map_music (int map_id, string acmFileName) | - Устанавливает фоновую музыку для указанной карты. | Аргументы: | • map_id - номер карты (см. MAPS.H и MAPS.TXT) | • acmFileName - в кавычках имя файла acm (без расширения)

void set_map_start (int x, int y, int elev, int rot) | - Принудительно установить позицию игрока при следующей загрузке карты. | Аргументы: | • x - позиция по x | • y - позиция по y | • elev - уровень (0, 1, 2) | • rot - направление взгляда (0...5) || Примечания: Результат работы функции выглядит как центрирование экрана на указанной точке карты, параметр rot теряет смысл (см. также override_map_start).

boolean tile_is_visible (int tile) | - Проверяет, видим ли указанный тайл на экране. | Аргументы: | • tile - номер тайла (хекса) [200 * y + x] | Возвращаемое значение: TRUE - тайл видим, иначе - FALSE || Примечание: Функция вернет TRUE, в случае если на невидимом тайле находится объект, попадающий в область видимости.

void tile_set_center (int tileNum) | - Центрировать экран на заданном хексе. | Аргументы: | • tileNum - номер хекса [200 * y + x] || Макрос от metarule3(METARULE3_TILE_SET_CENTER, tileNum, 0, 0) | Примечание: Центрирует экран на указанном хексе нулевого уровня карты, для того, чтобы центрировать экран на хексе ненулевого уровня, нужно воспользоваться функцией | metarule3(METARULE3_TILE_SET_CENTER, tileNum, elevation, 0)

boolean town_known (int townArea) | - Проверяет, известен ли указанный город игроку. | Аргументы: | • townArea - индекс города (см. MAPS.H) | Возвращаемое значение: TRUE - город известен (открыт на карте мира), иначе - FALSE || Макрос от metarule(METARULE_AREA_KNOWN, townArea)

int car_current_town | - Возвращает номер карты (см. MAPS.H), на которой находится машина. || Макрос от metarule(METARULE_CAR_CURRENT_TOWN, 0)

int car_give_to_party | - Команда поместить игрока и партийцев в машину и открыть карту мира. || Макрос от metarule(METARULE_GIVE_CAR_TO_PARTY, 0)

int car_give_gas (int amount) | - Заправить машину заданным количеством топлива. Аргументы: amount - количество топлива | Возвращаемое значение: Фактическое количество неиспользуемого топлива. || Макрос от metarule(METARULE_GIVE_CAR_GAS, amount)

void kill_critter (ObjectPtr obj, int death_frame) | - Убить криттера и определить изображение его останков. | Аргументы: | • obj - указатель на объект | • death_frame - идентификатор изображения ANIM_* (см. animcomd.h) |   специальные: KILL_DONT_LEAVE_BODY (0), KILL_LEAVE_BODY (1), KILL_LEAVE_NV_BODY (2) || Примечание: Команда НЕ анимирует смерть криттера, и НЕ обновляет экран.

void kill_critter_type (int pid, int death_frame) | - Убивает всех криттеров с заданным PID и определяет изображение останков. | Аргументы: | • pid - идентификатор прототипа (PID) | • death_frame - идентификатор изображения ANIM_* (см. animcomd.h) |   специальные: KILL_DONT_LEAVE_BODY (0), KILL_LEAVE_BODY (1), KILL_LEAVE_NV_BODY (2) || Примечание: Команда НЕ анимирует смерть криттера, и НЕ обновляет экран.

void override_map_start_hex (int tile_num, int elev, int rot) | - Принудительно установить позицию игрока при загрузке карты. | Аргументы: | • tile_num - номер хекса [200 * y + x] | • elev - уровень карты (0, 1, 2) | • rot - направление взгляда (0...5) || Макрос от override_map_start(tile_num%200, tile_num/200, elev, rot)

void mark_world_subtile_visited (int xPos, int yPos, int radius) | - Пометить тайл карты мира как посещенный. | Аргументы: | • xPos - позиция по x | • yPos - позиция по y | • radius - радиус || Макрос от metarule3(METARULE3_MARK_SUBTILE, xPos, yPos, radius)

void wm_area_set_pos (int areaIdx, int xPos, int yPos) | - Задать мировые координаты для указанного города. | Аргументы: | • areaIdx - номер города (см. MAPS.H) | • xPos - позиция по x | • yPos - позиция по y

int wm_get_subtile_state (int xPos, int yPos) | - Состояние тайла на карте мира. | Аргументы: | • xPos - позиция по x | • yPos - позиция по y | Возвращаемое значение: состояние тайла (см. define.h) |   UNKNOWNTILETYPE (0) - неизвестен |   KNOWNTILETYPE (1) - известен |   VISITEDTILETYPE (2) - посещен || Макрос от metarule3(METARULE3_WM_SUBTILE_STATE, xPos, yPos, 0)

int worldmap_xpos | - Возвращает координату (x) текущего местоположения на карте мира. || Макрос от metarule(METARULE_GET_WORLDMAP_XPOS, 0)

int worldmap_ypos | - Возвращает координату (y) текущего местоположения на карте мира. || Макрос от metarule(METARULE_GET_WORLDMAP_YPOS, 0)

void mark_area_known (int mark_type, int area, int mark_state) | - Установить статус для локации. | Аргументы: | • mark_type - тип локации: |     MARK_TYPE_TOWN (0) - город |     MARK_TYPE_MAP (1) - карта | • area - номер локации (см. MAPS.H) | • mark_state - статус: |     MARK_STATE_UNKNOWN (0) - неизвестен |     MARK_STATE_KNOWN (1) - известен |     MARK_STATE_VISITED (2) - посещался |     MARK_STATE_INVISIBLE (-66) - невидим

void town_map | - Запрос на переход к карте города. (Только для Fallout 1).
void world_map | - Запрос на переход к карте мира.

void mark_on_map (int area) | - Отметить город на карте как известный. | Аргументы: | • area - номер локации (см. MAPS.H) || Макрос от mark_area_known(MARK_TYPE_TOWN, area, MARK_STATE_KNOWN) | Внимание! При использовании этого макроса не ставится символ точка с запятой.

void unmark_on_map (int area) | - Отметить город на карте как неизвестный. | Аргументы: | • area - номер локации (см. MAPS.H) || Макрос на основе mark_area_known(MARK_TYPE_TOWN, area, MARK_STATE_UNKNOWN) | Внимание! При использовании этого макроса не ставится символ точка с запятой.

void attack (ObjectPtr who) | - Заставляет криттера, в скрипте которого вызвана, атаковать указанный объект. | Аргументы: | • who - указатель на атакуемый объект || Макрос от attack_complex(who, 0, 1, 0, 0, 30000, 0, 0)

void attack_complex (ObjectPtr who, int called_shot, int num_attacks, int bonus, int min_damage, int max_damage, int attacker_results, int target_results) | - Заставляет криттера, в скрипте которого вызвана, атаковать указанный объект с различными модификаторами. | Аргументы: | • who - указатель на атакуемый объект | • called_shot - часть тела атакуемого: 0 - никуда, 1 - случайно, 1 и далее - конкретная часть тела (ее номер) | • num_attacks - число дополнительных атак до перехода хода | • bonus - надбавка к параметру "to hit", действительна только в течение первого хода | • min_damage - минимальный урон от первой атаки | • max_damage - максимальный урон от первой атаки | • attacker_results - состояние нападавшего по завершении первой атаки | • target_results - состояние атакованного объекта по завершении первой атаки

void attack_setup (ObjectPtr who, ObjectPtr victim) | - Заставляет криттера (who) напасть на объект (victim). | Аргументы: | • who - указатель на атакующего криттера | • victim - указатель на атакуемый объект

boolean combat_is_initialized | - Проверка режима боя. | Возвращаемое значение: TRUE - если игра находится в режиме боя, иначе - FALSE

void terminate_combat |  - Команда боевой системе немедленно остановить бой.

string message_str (int msg_list, int msg_num) | - Возвращает указанную строку сообщения из файла msg. | Аргументы: | • msg_list - номер файла msg | • msg_num - номер строки в файле msg | Возвращаемое значение: строка сообщения

void display_msg (string message) | - Выводит сообщение на информационный экран. | Аргументы: | • message - строка сообщения, которую можно получить при помощи функции message_str

void float_msg (ObjectPtr who, string msg, int type) | - Создать "плавающее" сообщение над объектом. | Аргументы: | • who - указатель на криттера | • msg - строка сообщения, которую можно получить при помощи функции message_str | • type - цвет сообщения или ее тип (см. DEFINE.H)

void dialogue_reaction (int mood) | - Анимирует эмоциональную реакцию в диалоге. | Аргументы: | • mood - номер реакции: |     good_fidget (1) |     neutral_fidget (4) |     bad_fidget (7)

void dialogue_system_enter | - Принудительный вызов диалоговой системы обработчика talk_p_proc.
void end_dialogue - Завершить диалог.

void giq_option (int iq_test, int msg_list, int msg_num, procedure target, int reaction) | - Вывести вариант ответа в диалоге. | Аргументы: | • iq_test - ограничитель интеллекта игрока, если отрицательный, то условие означает "интеллект меньше или равен", |    если положительный - "больше или равен" | • msg_list - номер файла msg | • msg_num - номер строки в файле msg | • target - процедура, к которой осуществляется переход при выборе соответствующего ответа | • reaction - эмоциональная реакция: |     GOOD_REACTION (49) |     NEUTRAL_REACTION (50) |     BAD_REACTION (51)

void gsay_message (int msg_list, int msg_num, int reaction) | - Выводит реплику NPC, не подразумевающую никакого ответа со стороны игрока. | Аргументы: | • msg_list - номер файла msg | • msg_num - номер строки в файле msg | • reaction - эмоциональная реакция: |     GOOD_REACTION (49) |     NEUTRAL_REACTION (50) |     BAD_REACTION (51)

void gsay_option (int msg_list, int msg_num, procedure target, int reaction) | - Вывести вариант ответа в диалоге без проверки интеллекта игрока. | Аргументы: | • msg_list - номер файла msg | • msg_num - номер строки в файле msg | • target - процедура, к которой осуществляется переход при выборе соответствующего ответа | • reaction - эмоциональная реакция: |     GOOD_REACTION (49) |     NEUTRAL_REACTION (50) |     BAD_REACTION (51)

void gsay_reply (int msg_list, int msg_num) | - Выводит реплику НПС. | Аргументы: | • msg_list - номер файла msg | • msg_num - номер строки в файле msg

void start_gdialog (int msgFileNum, ObjectPtr who, int mood, int headNum, int backgroundIdx) | - Начать диалог. | Аргументы: | • msgFileNum - номер файла msg (-1 - по-умолчанию) | • who - указатель на криттера, с которым ведётся диалог | • mood - эмоциональная реакция: |     good_fidget (1) |     neutral_fidget (4) |     bad_fidget (7) | • headNum - номер "говорящей головы" (см. DEFINE.H), -1 - нет головы | • backgroundIdx - номер заднего фона (см. DEFINE.H), -1 - нет фона

void gsay_start | - Начинает новую диалоговую последовательность, обязательно используется в начале диалога после команды start_gdialog.
void gsay_end | - Завершает диалоговую последовательность, обязательно используется в завершении диалога перед командой end_dialogue.

int gdialog_mod_barter (int modifier) | - Вход в режим бартера с заданным модификатором. Аргументы: | • modifier - модификатор цен на товары (плюс/минус, в процентах) | Возвращаемое значение: неизвестно

void gdialog_set_barter_mod (int mod) | - Устанавливает текущее значение модификатора бартера. | Аргументы: | • mod - значение модификатора (в процентах)

string mstr (int msg_num) | - Возвращает строку сообщения из заранее определённого файла msg. | Аргументы: | • msg_num - номер строки в файле msg | Возвращаемое значение: строка сообщения || Макрос от message_str(NAME, msg_num) - NAME определяется внутри скрипта.

string g_mstr (int msg_num) | - Возвращает строку сообщения из файла типовых сообщений. | Аргументы: | • msg_num - номер строки в файле msg | Возвращаемое значение: строка сообщения || Макрос от message_str(SCRIPT_GENERIC, msg_num)

void display_mstr (int msg_num) | - Выводит сообщение на информационный экран. | Аргументы: | • msg_num - номер строки в заранее определённом файле msg (см. макрос mstr) || Макрос от display_msg(mstr(msg_num))

void floater (int msg_num) | - Создаёт "плавающее" сообщение над объектом, в скрипте которого вызвана команда. | Аргументы: | • msg_num - номер строки в файле msg, номер которого совпадает с номером скрипта объекта || Макрос от float_msg(self_obj, message_str(NAME,msg_num), FLOAT_COLOR_NORMAL)

void floater_rand (int min_msg_num, int max_msg_num) | - Создаёт случайное "плавающее" сообщение над объектом, в скрипте которого вызвана команда. | Аргументы: | • min_msg_num - номер строки в файле msg (номер которого совпадает с номером скрипта объекта) | • max_msg_num - номер строки в файле msg (номер которого совпадает с номером скрипта объекта) || Макрос от макроса floater(random(min_msg_num, max_msg_num))

void gen_floater (ObjectPtr who, int msg_num) | - Вывод стандартного "плавающего" сообщения. | Аргументы: | • who - указатель на криттера |  msg_num - номер строки в файле GENERIC.MSG || Макрос от float_msg(Who, message_str(SCRIPT_GENERIC, msg_num), FLOAT_MSG_YELLOW)

void gdialog_barter - Вход в режим бартера. | Примечание: Модификатор бартера сбрасывается в ноль. || Макрос от gdialog_mod_barter(0)

void start_dialogue (ObjectPtr who, int mood) | - Начать диалог. | Аргументы: | • who - указатель на криттера, с которым ведётся диалог | • mood - эмоциональная реакция: |     GOOD_REACTION (49) |     NEUTRAL_REACTION (50) |     BAD_REACTION (51) || Макрос от start_gdialog(-1, who, mood, -1, -1)

void GOption (int msg_num, procedure target, int iq_test) | - Вывести вариант ответа с положительной эмоциональной реакцией, используя заранее заданный файл сообщений. | Аргументы: | • msg_num - номер строки в файле msg | • target - процедура, к которой осуществляется переход при выборе соответствующего ответа | • iq_test - ограничитель интеллекта, если отрицательный, то условие означает интеллект "меньше или равен", |   если положительный - "больше или равен" || Макрос от giQ_Option(iq_test, NAME, msg_num, target, GOOD_REACTION) - NAME определяется внутри скрипта.

void NOption (int msg_num, procedure target, int iq_test) | - Вывести вариант ответа с нейтральной эмоциональной реакцией, используя заранее заданный файл сообщений. | Аргументы: | • msg_num - номер строки в файле msg | • target - процедура, к которой осуществляется переход при выборе соответствующего ответа | • iq_test - ограничитель интеллекта, если отрицательный, то условие означает интеллект "меньше или равен", |   если положительный - "больше или равен" || Макрос от giQ_Option(iq_test, NAME, msg_num, target, NEUTRAL_REACTION) - NAME определяется внутри скрипта.

void BOption (int msg_num, procedure target, int iq_test) | - Вывести вариант ответа с отрицательной эмоциональной реакцией, используя заранее заданный файл сообщений. | Аргументы: | • msg_num - номер строки в файле msg | • target - процедура, к которой осуществляется переход при выборе соответствующего ответа | • iq_test - ограничитель интеллекта, если отрицательный, то условие означает интеллект "меньше или равен", |   если положительный - "больше или равен" || Макрос от giQ_Option(iq_test, NAME, msg_num, target, BAD_REACTION) - NAME определяется внутри скрипта.

void GLowOption (int msg_num, procedure target) | - Вывести вариант ответа с положительной эмоциональной реакцией для персонажа с низким интеллектом, используя заранее заданный файл сообщений. | Аргументы: | • msg_num - номер строки в файле msg | • target - процедура, к которой осуществляется переход при выборе соответствующего ответа || Макрос от giQ_Option(LOW_IQ, NAME, msg_num, target, GOOD_REACTION) - NAME определяется внутри скрипта, величина LOW_IQ определена в файле COMMAND.H

void NLowOption (int msg_num, procedure target) | - Вывести вариант ответа с нейтральной эмоциональной реакцией для персонажа с низким интеллектом, используя заранее заданный файл сообщений. | Аргументы: | • msg_num - номер строки в файле msg | • target - процедура, к которой осуществляется переход при выборе соответствующего ответа || Макрос от giQ_Option(LOW_IQ, NAME, msg_num, target, NEUTRAL_REACTION) - NAME определяется внутри скрипта, величина LOW_IQ определена в файле COMMAND.H

void BLowOption (int msg_num, procedure target) | - Вывести вариант ответа с отрицательной эмоциональной реакцией для персонажа с низким интеллектом, используя заранее заданный файл сообщений. | Аргументы: | • msg_num - номер строки в файле msg | • target - процедура, к которой осуществляется переход при выборе соответствующего ответа || Макрос от giQ_Option(LOW_IQ, NAME, msg_num, target, BAD_REACTION) - NAME определяется внутри скрипта, величина LOW_IQ определена в файле COMMAND.H

void GMessage (int msg_num) | - Выводит реплику NPC с положительной эмоциональной реакцией, не подразумевающую никакого ответа со стороны игрока. | Аргументы: | • msg_num - номер строки в файле msg || Макрос от gSay_Message(NAME, msg_num, GOOD_REACTION) - NAME определяется внутри скрипта.

void NMessage (int msg_num) | - Выводит реплику NPC с нейтральной эмоциональной реакцией, не подразумевающую никакого ответа со стороны игрока. | Аргументы: | • msg_num - номер строки в файле msg || Макрос от gSay_Message(NAME, msg_num, NEUTRAL_REACTION) - NAME определяется внутри скрипта.

void BMessage (int msg_num) | - Выводит реплику NPC с отрицательной эмоциональной реакцией, не подразумевающую никакого ответа со стороны игрока. | Аргументы: | • msg_num - номер строки в файле msg || Макрос от gSay_Message(NAME, msg_num, BAD_REACTION) - NAME определяется внутри скрипта.

void Reply (int msg_num) | - Выводит реплику НПС из заранее определённого файла msg. | Аргументы: | • msg_num - номер строки в файле msg || Макрос от gSay_Reply(NAME, msg_num) - NAME определяется внутри скрипта.

void Reply_Rand (int msg_num_start, int msg_num_end) | - Выводит случайную реплику НПС из заданного диапазона. | Аргументы: | • msg_num_start и msg_num_end - границы диапазона реплик (номера строк в файле msg) || Макрос от Reply(random(msg_num_start, msg_num_end))

void party_add (ObjectPtr who) | - Присоединяет NPC к команде игрока. | Аргументы: | • who - адрес присоединяемого NPC

ObjectPtr party_member_obj (int pid) | - Возвращает указатель на партийца по PID. | Аргументы: | • pid - идентификатор прототипа (см. CRITRPID.H - PID криттеров) | Возвращаемое значение: Указатель (ObjectPtr) на объект, если партиец с указанным PID находится в команде игрока, иначе возвращает NULL || Примечание: В файле заголовка PARTY.H определены макросы для получения указателей на всех стандартных партийцев.

int party_member_count (int countHidden) | - Возвращает количество партийцев в команде игрока. | Аргументы: | • countHidden - считать/не считать "скрытых" членов команды: DONT_LIST_HIDDEN_MEMBERS (0), LIST_HIDDEN_MEMBERS (1) | Возвращаемое значение: Число партийцев | Примечание: "скрытые" члены команды не всегда криттеры. В версии 1.02d багажник машины не учитывается. || Макрос от metarule(METARULE_PARTY_COUNT, countHidden)

void party_remove (ObjectPtr who) | - Отсоединяет партийца от команды игрока. | Аргументы: | • who - адрес отсоединяемого NPC
void game_ui_disable | - Заблокировать пользовательский интерфейс (управление).
void game_ui_enable | - Разблокировать пользовательский интерфейс (управление).
boolean game_ui_is_disabled | - Проверка состояния пользовательского интерфейса. | Возвращаемое значение: TRUE - интерфейс заблокирован, иначе - FALSE
void endgame_movie | -  Воспроизвести финальный ролик.
void endgame_slideshow | - Воспроизвести финальное слайд шоу. || Примечание: При показе слайд шоу используется собственная палитра, поэтому для правильного отображения необходимо вызвать функцию затемнения gfade_out().
void play_gmovie (int movieNum) | - Воспроизвести игровой видеоролик. | Аргументы: | • movieNum - номер ролика (см. DEFINE.H)

void gfade_in (int time) | - Восстановление экрана после гашения. | Аргументы: | • time - любое значение кроме нуляй (не используется) || Примечание: см. также FadeIn
void gfade_out (int time) | - Гашение экрана. | Аргументы: | • time - любое значение кроме нуля (не используется) || Примечание: см. также FadeOut

int metarule (int meta_switch, int meta_par) | - Функция работы со множеством игровых параметров, имеет огромное количество вариаций. || Примечание: Информацию по данной функции смотрите в документации.
int metarule3 (int meta3_switch, int meta3_par1, int meta3_par2, int meta3_par3) | - Функция работы с множеством параметров игры, отличается от функции metarule количеством аргументов. || Примечание: Информацию по данной функции смотрите в документации.

int combat_difficulty | - Возвращает значение сложности боя, заданное в настройках игры. | Возвращаемое значение: 0-2 сложность боя.
int difficulty_level - Возвращает значение сложности игры, заданное в настройках игры. | Возвращаемое значение:  0-2 сложность игры.
boolean language_filter_is_on | - Проверка включения фильтра мата. | Возвращаемое значение: TRUE - фильтр включен, иначе - FALSE || Макрос от metarule(METARULE_LANGUAGE_FILTER, 0)
int running_burning_guy | - Возвращает значение running-burning-guy, установленное в настройках игры.
int violence_filter_setting | - Возвращает текущий уровень насилия, заданное в настройках игры. | Возвращаемое значение: |   0 - VLNCLVL_NONE |   1 - VLNCLVL_MIN |   2 - VLNCLVL_NORMAL |   3 - VLNCLVL_MAX || Макрос от metarule(METARULE_VIOLENCE_FILTER, 0)

void elevator (int elevator_ID) | - Вызывает окно для управлением лифтом с заданным ID. | Аргументы: | • elevator_ID - номер ID лифта (см. DEFINE.H) | Примечание: Данная функция работает только со стандартными лифтами игры. || Макрос от metarule(METARULE_ELEVATOR, elevator_ID)

void signal_end_game | - Команда системе завершить игру, игра переходит в главное меню. || Макрос от metarule(METARULE_SIGNAL_END_GAME, 0)

int weapon_dmg_type (ObjectPtr weapon) | - Возвращает тип повреждений, нанесенных оружием (weapon). | Аргументы: | • weapon - указатель на оружие | Возвращаемое значение: тип повреждений, нанесенных оружием weapon. Возможные значения: |   DMG_normal_dam (0) |   DMG_laser (1) |   DMG_fire (2) |   DMG_plasma (3) |   DMG_electrical (4) |   DMG_emp (5) |   DMG_explosion (6) | Примечание: Используется исключительно в контексте damage_p_proc с параметром (target_obj) или (source_obj) чтобы определить, повреждения какого типа получил объект. || Макрос от metarule(METARULE_W_DAMAGE_TYPE, weapon)

boolean critter_can_barter (ObjectPtr who) | - Проверка на возможность торговать с НПС (who). | Аргументы: | • who - указатель на криттера | Возвращаемое значение: TRUE - с криттером возможен бартер, иначе - FALSE || Макрос от metarule(METARULE_CRITTER_BARTERS, who)

int critter_kill_type (ObjectPtr who) | - Возвращает тип криттера по видам убитых. | Аргументы: | • who - указатель на криттера | Возвращаемое значение: Тип криттера KILL_TYPE_* (см. DEFINE.H) || Макрос от metarule(METARULE_CRITTER_KILL_TYPE, who)

int set_car_carry_amount (int amount) | - Задать максимальную вместительность груза для машины. | Аргументы: | • amount - количество | Возвращаемое значение: неизвестно || Макрос от metarule(DEFINE_METARULE_SET_CAR_CARRY_AMOUNT, amount)

int car_carry_amount | - Возвращает максимальный вес груза для машины. || Макрос от metarule(DEFINE_METARULE_GET_CAR_CARRY_AMOUNT, 0)

int mark_map_entrance_state (int map_idx, int state) | - Задать состояние входа на карту (выкл/вкл) для всех уровней. | Аргументы: | • map_idx - индекс карты (см. MAPS.H) | • state - состояние OFFSTATE (0) или ONSTATE (1) | Возвращаемое значение: неизвестно || Макрос от metarule3(METARULE3_MARK_MAP_ENTRANCE, map_idx, state, -1)

int mark_map_entrance_elev_state (int map_idx, int elev, int state) | - Задать состояние входа на карту (выкл/вкл) для указанного уровня. | Аргументы: | • map_idx - индекс карты (см. MAPS.H) | • elev - уровень (0...2 или -1 - все) | • state - состояние OFFSTATE (0) или ONSTATE (1) Возвращаемое значение: неизвестно || Макрос от metarule3(METARULE3_MARK_MAP_ENTRANCE, map_idx, state, elev)

ObjectPtr tile_get_next_critter (int tile_num, int elev, ObjectPtr last_critter) | - Возвращает указатель на следующего криттера на заданном гексе. | Аргументы: | • tile_num - номер хекса | • elev - уровень (0...2) | • last_critter - указатель на предыдущего криттера | Возвращаемое значение: указатель на криттер || Макрос от metarule3(METARULE3_TILE_GET_NEXT_CRITTER, tile_num, elev, last_critter)

int art_change_fid_num (ObjectPtr who, int fid) | - Изменить базовый номер FID (идентификатора фрейма). | Аргументы: | • who - указатель на объект | • fid - идентификатор фрейма (см. ARTFID.H) | Возвращаемое значение: неизвестно || Макрос от metarule3(METARULE3_ART_SET_BASE_FID_NUM, who, FID, 0)

int game_ticks (int seconds) | - Преобразование секунд в игровые тики.
int game_time | - Возвращает текущее игровое время в тиках (время, прошедшее от начала игры).
int game_time_in_seconds | - возвращает текущее игровое время (время, прошедшее от начала игры) в секундах.
void game_time_advance (int amount) | - Увеличивает игровое время на заданное количество тиков.
int game_time_hour | - Возвращает текущее игровое время в формате HHMM (07:21 будет равно 721).
int get_day | - Возвращает текущее число игрового месяца.
int get_month | - Возвращает текущий игровой месяц.

int anim_action_frame (ObjectPtr who, int frame) | - Возвращает анимацию действия из заданной анимации объекта. | Аргументы: | • who - указатель на объект | • frame - номер фрейма | Возвращаемое значение: анимация действия

boolean anim_busy (ObjectPtr who) | - Проверка состояния анимации объекта. | Аргументы: | • who - указатель на объект | Возвращаемое значение: TRUE - если объект в данный момент анимируется, иначе - FALSE

void art_anim (int fid) | - Возвращает тип анимации по заданному FID. | Аргументы: | • fid - идентификатор фрейма (см. ARTFID.H) | Возвращаемое значение: тип анимации ANIM_stand, ANIM_pickup, и т.д. (см. ANIMCOMD.H)

void anim (ObjectPtr who, int anim, int direction) | - Воспроизводит заданную анимацию для заданного объекта в заданном направлении. | Аргументы: | • who - указатель на объект | • anim - номер анимируемого действия (см. ANIMCOMD.H) или: ANIMATE_ROTATION (1000), ANIMATE_SET_FRAME (1010) | • direction - направление (по сторонам хекса - 0...5), если anim = ANIMATE_ROTATION - номер кадра анимации объекта || Примечание: Эта команда может быть прервана другой командой анимации.

void animate_move_obj_to_tile (ObjectPtr who, int tile, int speed) | - Анимация перемещения объекта на заданный тайл. | Аргументы: | • who - указатель на объект | • tile - номер тайла(гекса) [200 * y + x] | • speed - тип анимации: |     ANIMATE_WALK (0) - идти |     ANIMATE_RUN (1) - бежать |     ANIMATE_INTERRUPT (16) - флаг "прервать текущую анимацию"

void animate_stand_obj (ObjectPtr obj) | - Воспроизводит анимацию с номером 0 для заданного объекта. | Аргументы: | • obj - указатель на объект || Примечание: Для дверей - анимация открывания, для криттеров - почесывание.

void animate_stand_reverse_obj (ObjectPtr obj) | - Воспроизводит анимацию с номером 0 для заданного объекта задом наперёд. | Аргументы: | • obj - указатель на объект || Примечание: Для дверей - анимация закрывания, для криттеров - не используется.

void explosion (int where, int elevation, int damage) | - Произвести взрыв. | Аргументы: | • where - номер тайла [200 * y + x] | • elevation - уровень карты (0...2) | • damage - максимальный урон в эпицентре взрыва || Возвращаемое значение: неизвестно

void reg_anim_animate (ObjectPtr what, int anim, int delay) | - Добавляет в очередь одиночную анимацию. | Аргументы: | • what - указатель на анимируемый объект | • anim - анимация | • delay - задержка относительно предыдущей анимации (всегда равна -1)

void reg_anim_animate_forever (ObjectPtr what, int anim, int delay) | - Добавляет в очередь одиночную анимацию, которая будет выполняться "вечно". | Аргументы: | • what - указатель на анимируемый объект | • anim - анимация | • delay - задержка относительно предыдущей анимации (всегда равна -1) || Примечание: Анимация будет выполняться "вечно", пока её не прервёт другая анимация.

void reg_anim_animate_reverse (ObjectPtr what, int anim, int delay) | - Добавляет в очередь одиночную анимацию, которая будет проиграна задом наперёд. | Аргументы: | • what - указатель на анимируемый объект | • anim - анимация | • delay - задержка относительно предыдущей анимации (всегда равна -1)

void reg_anim_func (int par1, int par2) | - Работа со списком анимаций. | Аргументы: | • par1 - принимает значения: |     REG_ANIM_BEGIN (1) - начать формирование списка анимаций |     REG_ANIM_CLEAR (2) - очистить список анимаций |     REG_ANIM_END (3) - закончить формирование списка анимаций | • par2 - принимает значения: |   если par1 = REG_ANIM_BEGIN |     RB_UNRESERVED (1) - не зарезервированная последовательность, может не воспроизвестись, если отсутствуют свободные слоты |     RB_RESERVED (2) - зарезервированная последовательность, должна воспроизвестись в любом случае |   если par1 = REG_ANIM_CLEAR - указатель на объект, для которого удаляется список анимаций |   если par1 = REG_ANIM_END - то par2 должен быть равен 0

void reg_anim_obj_move_to_obj (ObjectPtr who, ObjectPtr dest_obj, int delay) | - Добавляет в очередь анимацию к криттеру, идущего к другому объекту. | Аргументы: | • who - указатель на анимируемый объект | • dest_obj - указатель на объект, в направлении которого происходит движение | • delay - задержка относительно предыдущей анимации (всегда равна -1)

void reg_anim_obj_run_to_obj (ObjectPtr who, ObjectPtr dest_obj, int delay) | - Добавляет в очередь анимацию подбегания одного объекта к другому. | Аргументы: | • who - указатель на анимируемый объект | • dest_obj - указатель на объект, в направлении которого происходит движение | • delay - задержка относительно предыдущей анимации (всегда равна -1)

void reg_anim_obj_move_to_tile (ObjectPtr who, int dest_tile, int delay) | - Добавляет в очередь анимацию объекта, идущего к заданному тайлу. |  Аргументы: | • who - указатель на анимируемый объект | • dest_tile - номер тайла [200 * y + x], в направлении которого происходит движение | • delay - задержка относительно предыдущей анимации (всегда равна -1)

void reg_anim_obj_run_to_tile (ObjectPtr who, int dest_tile, int delay) | - Добавляет в очередь анимацию объекта, бегущего к заданному тайлу. |  Аргументы: | • who - указатель на анимируемый объект | • dest_tile - номер тайла [200 * y + x], в направлении которого происходит движение | • delay - задержка относительно предыдущей анимации (всегда равна -1)

void play_sfx (string sfxFileName) | - Ставит в очередь проигрывания звуковой эффект. | Аргументы: | • sfxFileName - имя файла ACM (без расширения)

void sfx_build_char_name (ObjectPtr who, int anim_num, int gsound_character_extra) | - Генерирует строку - из имени ACM файла, которая используется функцией reg_anim_play_sfx. Используется для получения звуковых эффектов, связанных с криттерами. | Аргументы: | • who - указатель на объект, для которого генерируется строка | • anim_num - номер анимации (см. ANIMCOMD.H) | • gsound_character_extra - специфика звука. Допустимые значения: |     snd_unused (0) |     snd_knock_down (1) |     snd_pass_out (2) |     snd_die (3) |     snd_contact (4)

void sfx_build_weapon_name (int gsound_sfx_weapon_action_type, ObjectPtr what, int hit_mode, ObjectPtr who) | - Генерирует строку - из имени ACM файла, которая используется функцией reg_anim_play_sfx. Используется для получения звуковых эффектов, связанных с оружием. | Аргументы: | • gsound_sfx_weapon_action_type - тип действия. Допустимые значения: |     snd_weapon_ready (0) |     snd_weapon_attack (1) |     snd_weapon_out (2) |     snd_weapon_ammo_flying (3) |     snd_weapon_hitting (4) | • what - указатель на оружие, для которого генерируется строка hit_mode - тип удара. Допустимые значения: |     hit_left_weapon_primary (0) |     hit_left_weapon_secondary (1) |     hit_right_weapon_primary (2) |     hit_right_weapon_secondary (3) |     hit_punch (4) |     hit_kick (5) |     hit_left_weapon_reload (6) |     hit_right_weapon_reload (7) | • who - указатель на криттера

void reg_anim_play_sfx (ObjectPtr who, string sfx_name, int delay) | - Добавляет в очередь проигрывание указанного файла ACM. | Аргументы: | • who - указатель на анимируемый объект | • sfx_name - имя файла acm (без расширения) | • delay - задержка относительно предыдущей анимации (всегда равна -1)

void animate_move_to_tile (int tile) | - Анимация перейти на заданный тайл. | Аргументы: | • tile - номер тайла [200 * y + x] || Макрос от animate_move_obj_to_tile(self_obj, tile, ANIMATE_WALK)

void animate_move_to_tile_force (int tile) | - Анимация перейти на заданный тайл (текущая анимация при этом прерывается). | Аргументы: | • tile - номер тайла (200 * y + x) || Макрос от animate_move_obj_to_tile(self_obj, tile, (ANIMATE_WALK bwor ANIMATE_INTERRUPT))

void animate_rotation (int direction) | - Анимация смены направления взгляда(поворота спрайта). | Аргументы: | • direction - направление (по сторонам хекса - 0...5) || Макрос от anim(self_obj, ANIMATE_ROTATION, direction)

void animate_run_to_tile (int tile) | - Анимация бега на заданный тайл. | Аргументы: | • tile - номер тайла [200 * y + x] || Макрос от animate_move_obj_to_tile(self_obj, tile, ANIMATE_RUN)

void animate_run_to_tile_force (int tile) | - Анимация бега на заданный тайл (текущая анимация при этом прерывается). | Аргументы: | • tile - номер тайла [200 * y + x] || Макрос от animate_move_obj_to_tile(self_obj, tile, (ANIMATE_RUN bwor ANIMATE_INTERRUPT))

void animate_set_frame (int newFrame) | - Заменить текущий кадр анимации на заданный. | Аргументы: | • newFrame - номер кадра анимации объекта || Макрос от anim(self_obj, ANIMATE_SET_FRAME, newFrame)

void animate_stand | - Воспроизводит анимацию с номером 0. | Примечание: Для дверей - анимация открывания, для криттеров - почесывание. || Макрос от animate_stand_obj(self_obj)

void animate_stand_reverse | - Воспроизводит анимацию с номером 0 задом наперёд. | Примечание: Для дверей - анимация закрывания, для криттеров - не используется. || Макрос от animate_stand_reverse_obj

void Face_Critter (ObjectPtr Obj1, ObjectPtr Obj2) | - Развернуть один объект лицом к другому объекту. | Аргументы: | • Obj1 - указатель на поворачиваемый объект | • Obj2 - указатель на объект цель || Макрос от anim(Obj1,ANIMATE_ROTATION,rotation_to_tile(tile_num(Obj1),tile_num(Obj2)))

void reg_anim_begin | - Начать формирование списка последовательных анимаций. || Макрос от reg_anim_func(REG_ANIM_BEGIN, RB_UNRESERVED)

void reg_anim_clear (ObjectPtr object) | - Очистить список последовательных анимаций. | Аргументы: | • object - указатель на объект, для которого удаляется список анимаций || Макрос от reg_anim_func(REG_ANIM_CLEAR, who)

void reg_anim_end | - Закончить формирование списка анимаций и начать выполнение заданной анимационной последовательности. || Макрос от reg_anim_func(REG_ANIM_END, 0)

int global_var (unsigned int var_index) | - Возвращает значение заданной глобальной переменной. | Аргументы: | • var_index - номер переменной (см. VAULT13.GAM и GLOBAL.H) | Возвращаемое значение: значение глобальной переменной

void set_global_var (unsigned int var_index, int value) | - Присвоить значение глобальной переменной. | Аргументы: | • var_index - номер переменной (см. VAULT13.GAM и GLOBAL.H) | • value - присваемое значение

int local_var (unsigned int var_index) | - Возвращает значение заданной локальной переменной. | Аргументы: |  var_index - номер переменной | Возвращаемое значение: значение локальной переменной

void set_local_var (unsigned int var_index, int value) | - Присвоить значение локальной переменной. | Аргументы: | • var_index - номер переменной | • value - присваемое значение

int map_var (unsigned int var_index) | - Возвращает значение заданной переменной карты. | Аргументы: | • var_index - номер переменной | Возвращаемое значение: значение переменной карты

void set_map_var (unsigned int var_index, int value) | - Присвоить значение переменной карты. | Аргументы: | • var_index - номер переменной | • value - присваемое значение

void inc_global_var_amt (int var_index, int amt) | - Увеличить значение глобальной переменной на число amt. | Аргументы: | • var_index - номер переменной (см. VAULT13.GAM и GLOBAL.H) | • amt - число на которое увеличивается значение в переменной || Макрос от set_global_var(var_index, global_var(var_index) + amt)

void inc_global_var (int var_index) | - Увеличить значение на единицу в глобальной переменной. | Аргументы: | • var_index - номер переменной (см. VAULT13.GAM и GLOBAL.H) || Макрос от inc_global_var_amt(var_index, 1)

void dec_global_var_amt (int var_index, int amt) | - Уменьшить значение глобальной переменной на число amt. | Аргументы: | • var_index - номер переменной (см. VAULT13.GAM и GLOBAL.H) | • amt - число на которое уменьшается значение в переменной || Макрос от set_global_var(var_index, global_var(var_index) - amt)

void dec_global_var (int var_index) | - Уменьшить значение на единицу в глобальной переменной. | Аргументы: | • var_index - номер переменной (см. VAULT13.GAM и GLOBAL.H) || Макрос от dec_global_var_amt(var_index, 1)

void inc_map_var_amt (int var_index, int amt) | - Увеличить значение переменной карты на число amt. | Аргументы: |  var_index - номер переменной | • amt - число на которое увеличивается значение в переменной || Макрос от set_map_var(var_index, map_var(var_index) + amt)

void inc_map_var (int var_index) | - Увеличить значение на единицу в переменной карты. | Аргументы: | • var_index - номер переменной || Макрос от inc_map_var_amt(var_index, 1)

void dec_map_var_amt (int var_index, int amt) | - Уменьшить значение переменной карты на число 'amt'. | Аргументы: | • var_index - номер переменной | • amt - число || Макрос от set_map_var(var_index, map_var(var_index) - amt)

void dec_map_var (int var_index) | - Уменьшение значения на единицу переменной карты. | Аргументы: | • var_index - номер переменной || Макрос от dec_map_var_amt(var_index, 1)

void inc_local_var_amt (int var_index, int amt) | - Увеличить значение локальной переменной на число 'amt'. | Аргументы: | • var_index - номер переменной | • amt - число || Макрос от set_local_var(var_index, local_var(var_index) + amt)

void inc_local_var (int var_index) | - Увеличение на единицу значения локальной переменной. | Аргументы: | • var_index - номер переменной || Макрос от inc_local_var_amt(var_index, 1):

void dec_local_var_amt (int var_index, int amt) | - Уменьшить значение локальной переменной на число 'amt'. | Аргументы: | • var_index - номер переменной | • amt - число || Макрос от set_local_var(var_index, local_var(var_index) - amt)

void dec_local_var (int var_index) | - Уменьшение значения на единицу локальной переменной. | Аргументы: | • var_index - номер переменной || Макрос от dec_local_var_amt(var_index, 1)

int gvar_bit (int var_index, int bit_num) | - Проверка состояния указанного бита указанной глобальной переменной. | Аргументы: | • var_index - номер глобальной переменной (см. VAULT13.GAM и GLOBAL.H) | • bit_num - битовая маска (см. DEFINE.H, раздел bits) | Возвращаемое значение: состояние указанного бита указанной глобальной переменной (0 или 1) || Макрофункция: ((global_var(var_index) bwand bit_num) != 0)

int mvar_bit (int var_index, int bit_num) | - Проверка состояния указанного бита указанной переменной карты. | Аргументы: | • var_index - номер переменной карты | • bit_num - битовая маска (см. DEFINE.H, раздел bits) | Возвращаемое значение: состояние указанного бита указанной переменной карты (0 или 1) || Макрофункция: ((map_var(var_index) bwand bit_num) != 0)

int lvar_bit (int var_index, int bit_num) | - проверка состояния указанного бита указанной локальной переменной скрипта. | Аргументы: | • var_index - номер локальной переменной скрипта | • bit_num - битовая маска (см. DEFINE.H, раздел bits) | Возвращаемое значение: состояние указанного бита указанной локальной переменной скрипта (0 или 1) || Макрофункция: ((local_var(var_index) bwand bit_num) != 0)

void set_gvar_bit_on (int var_index, int bit_num) | - Установить указанный бит указанной глобальной переменной в 1. | Аргументы: | • var_index - номер глобальной переменной (см. VAULT13.GAM и GLOBAL.H) | • bit_num - битовая маска (см. DEFINE.H, раздел bits) || Макрофункция: set_global_var(var_index, global_var(var_index) bwor bit_num)

void set_mvar_bit_on (int var_index, int bit_num) | - Установить указанный бит указанной переменной карты в 1. | Аргументы: | • var_index - номер переменной карты | • bit_num - битовая маска (см. DEFINE.H, раздел bits) || Макрофункция: set_map_var(var_index, map_var(var_index) bwor bit_num)

void set_lvar_bit_on (int var_index, int bit_num) | - Установить указанный бит указанной локальной переменной скрипта в 1. | Аргументы: | • var_index - номер локальной переменной скрипта | • bit_num - битовая маска (см. DEFINE.H, раздел bits) || Макрофункция: set_local_var(var_index, local_var(var_index) bwor bit_num)

void set_gvar_bit_off (int var_index, int bit_num) | - Установить указанный бит указанной глобальной переменной в 0. | Аргументы: | • var_index - номер глобальной переменной (см. VAULT13.GAM и GLOBAL.H) | • bit_num - битовая маска (см. DEFINE.H, раздел bits) || Макрофункция: set_global_var(var_index, global_var(var_index) bwand INV(bit_num))

void set_mvar_bit_off (int var_index, int bit_num) | - Установить указанный бит указанной переменной карты в 0. | Аргументы: | • var_index - номер переменной карты | • bit_num - битовая маска (см. DEFINE.H, раздел bits) || Макрофункция: set_map_var(var_index, map_var(var_index) bwand INV(bit_num))

void set_lvar_bit_off (int var_index, int bit_num) | - Установить указанный бит указанной локальной переменной скрипта в 0. | Аргументы: | • var_index - номер локальной переменной скрипта | • bit_num - битовая маска (см. DEFINE.H, раздел bits) || Макрофункция: set_local_var(var_index, local_var(var_index) bwand INV(bit_num))

int INV (int bit_num) | - Инверсия битовой маски | Аргументы: | • bit_num - битовая маска (см. DEFINE.H, раздел bits) | Возвращаемое значение: инвертированная битовая маска || Макрофункция: (MAXINT - bit_num) (MAXINT = 4294967295).

void debug_msg (string text) | - Выводит в отладочное окно, отладочное сообщение. | Аргументы: | • text - строка сообщения

string tokenize (string MainString, string Token, char Delimiter) | - Разбирает строку в виде списка разделенным одним символом(делителем) на подстроки, и возвращает значение для указанного токена. | Аргументы: | • MainString - Строка, содержащая подстроки и разделители. | • Token - Предыдущая подстрока или 0 для первой подстроки. | • Delimiter - Символ разделитель, который ограничивает токены и подстроки. | Возвращаемое значение: Строковое значение для полученной подстроки. Возвращает 0, если токен не найден. || Примечание. Функция считает строку "0" равной целому числу 0. Поэтому для хранения значений "0" требуется специальная проверка. Добавьте целое число 1 в начало возвращаемого значения и если оно было строкой "0", результатом будет строка "10". Если бы это было целое число 0, результатом будет целое число 1.


// VANILLA EXTEND MACROS

void self_attack_dude | - Заставляет криттера атаковать игрока, или убегать с поля боя если установлен флаг FLEE. | Макрос: command.h

// INTERFACE OPCODES

void CreateWin (string win_name, int x, int y, int width, int height) | - Создаёт окно с именем win_name. | Аргументы: | • win_name - имя окна, например, "test_wnd" | • x и y - координаты верхнего левого угла | • width - ширина | • height - высота || Примечание: Созданные окна сами не удаляются.

void DeleteWin (string win_name) | - Удаляет (скрывает) указанное окно. | Аргументы: • win_name - имя окна || Примечание: Вместе с окном удаляются все созданные в нём объекты.

void SelectWin (string win_name) | - Выбирает указанное окно (делает его активным).

void ShowWin | - Обновляет содержимое активного окна на экране (см. также SelectWin).

void ScaleWin (string win_name, int x, int y, int width, int height) | - Изменяет положение и размеры окна с масштабированием содержимого окна. |  Аргументы: | • win_name - имя окна | • x и y - координаты верхнего левого угла | • width - ширина | • height - высота || Примечание: Текст не масштабируется (см. также ResizeWin).

void ResizeWin (string win_name, int x, int y, int width, int height) | - Изменяет положение и размеры окна с масштабированием содержимого окна. | Аргументы: | • win_name - имя окна | • x и y - координаты верхнего левого угла | • width - ширина | • height - высота || Примечание: Текст не масштабируется (см. также ScaleWin).

void LoadPaletteTable (string palfilename) | - Загрузить палитру. | Аргументы: | • palfilename - имя (путь) файла pal || Примечание: Палитра грузится не для какого-то файла или окна, а для игры в целом.

void Display (string pcxfilename) | - Вывести картинку pcx, в активное окно. | Аргументы: | • pcxfilename - имя файла pcx, например, "my_pict.pcx" || Примечание: Картинка масштабируется под размер окна, палитра преобразуется автоматически.

void DisplayRaw (string pcxfilename) | - Вывести картинку pcx, в активное окно. | Аргументы: | • pcxfilename - имя файла pcx, например, "my_pict.pcx" || Примечание: Картинка масштабируется под размер окна, палитра не преобразуется.

void DisplayGFX (string pcxfilename, int x, int y, int width, int height) | - Вывести картинку pcx, в активное окно. | Аргументы: | • pcxfilename - имя файла pcx, например, "my_pict.pcx" | • x и y - координаты верхнего левого угла области вывода | • width - ширина | • height - высота || Примечание: Если заданная область видимости выходит за пределы окна, игра "слетает", если меньше - картинка обрезается, если больше - то глючит.

void FillWin3x3 (string pcxfilename) | - Выводит картинку в формате pcx в активное окно (см. SelectWin) | Аргументы: | • pcxfilename - имя файла pcx, например, "my_pict.pcx" | Файл pcx ищется в папке DATA (точнее, в master_dat и master_patches, указанных в fallout2.cfg). || Примечание: Если размеры картинки и окна не совпадают, то пытается "замостить" окно каким-то образом. Цветовая палитра преобразуется автоматически.

void FillWin (int R, int G, int B) | - Залить активное окно (см. SelectWin) указанным цветом. | Аргументы: | • R, G и B - цвет в формате RGB, значения от 0.0 (соответствует 0) до 1.0 (соответствует 255).

void FillRect (int x, int y, int width, int height, int R, int G, int B) | - Залить указанным цветом заданный прямоугольник. | Аргументы: | • x и y - координаты верхнего левого угла | • width - ширина | • height - высота | • R, G и B - цвет в формате RGB, значения от 0.0 (соответствует 0) до 1.0 (соответствует 255)

void AddButton (string btn_name, int x, int y, int width, int height) | - Создать кнопку с именем btn_name. | Аргументы: | • btn_name - имя кнопки, например, "test_btn" | • x и y - координаты верхнего левого угла | • width - ширина | • height - высота

void DeleteButton (string btn_name) | - Удаляет кнопку btn_name. | Аргументы: | • btn_name - имя кнопки.

void AddButtonGFX (string btn_name, string downpcx, string uppcx, string overpcx) | - Привязывает к кнопке btn_name графические изображения для случаев "нажато", "отжато" и "мышь над кнопкой". | Аргументы: | • btn_name - имя кнопки | • downpcx, uppcx, overpcx - изображения к кнопке(имена файлов, путь).

void AddButtonProc (string btn_name, procedure button_on, procedure button_off, procedure button_press, procedure button_release) | - Связывает с кнопкой btn_name процедуры для обработки событий. | Аргументы: | • btn_name - имя кнопки | • button_on, button_off, button_press, button_release - имена процедур для обработки состояния кнопки.

void AddButtonText (string btn_name, string text) | - Создаёт на кнопке btn_name надпись text. | Аргументы: | • btn_name - имя кнопки | • text - текст надписи на кнопке

void AddRegion string "reg_name" {int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 ...} | - Добавляет произвольную область для текущего созданного окна. | Аргументы: | • reg_name - имя области. | • x и y - пары координат (точки) области начиная с левого верхнего угла. || Примечание: Область можно создать только в пользовательском окне, при удалении окна область удаляется автоматически.

void DeleteRegion (string reg_name) | - Удалить область с именем reg_name. | Аргументы: | • reg_name - имя области

void AddRegionProc (string reg_name, procedure enter, procedure leave, procedure press, procedure release) | - Связывает с областью reg_name процедуры для обработки событий. | Аргументы: | • reg_name - имя области | • enter, leave, press, release - имена процедур для обработки наведения, убирания, нажатия и отпускания мыши

void ActivateRegion (string reg_name, int reg_proc) | - Выполнить одну из связанных с областью reg_name процедур (см. AddRegionProc). | Аргументы: | • reg_name - имя области | • reg_proc - номер процедуры, значения: 0 - press, 1 - release, 2 - enter, 3 - leave. || Примечание: Если указать в качестве reg_proc имя какой-нибудь процедуры, то сначала будет выполнена эта процедура, а затем вызвана процедура press, причём если указать саму press, то она выполнится дважды.

void GotoXY (int x, int y) | - Устанавливает текущие координаты по x и y. | Аргументы: | • x и y - значения координат (относительные, т.е. внутри активного окна).

void Print (string text) | - Выводит текст с текущими настройками на экран. | Аргументы: | • text - текст

void Format (string text, int x, int y, int width, int height, int attrib) | - Вывести текст в указанную область. | Аргументы: | • text - текст | • x и y - координаты верхнего левого угла области | • width/height - ширина и высота области (высота стандартного шрифта - 10 пикселей) | • attrib - выравнивание текста внутри области: 0 - JUSTIFYLEFT, 1 - JUSTIFYRIGHT, 2 - JUSTIFYCENTER || Примечание: Если указанная ширина области меньше, чем длина строки текста, игра "слетает".

void PrintRect (string text, int width, int tab) | - Вывести текст text в текущие координаты (см. GotoXY). | Аргументы: | • text - текст | • width - длина текста в пикселях (если текст длиннее отведённой строки, будет включен перенос по словам) | • tab - отступ слева

void SetFont (int font) | - Задаёт шрифт. | Аргументы: | • font - числа 0, 1, 2, 3 и т.д. - номер шрифта

void SetTextColor (float R, float G, float B) | - Устанавливает цвет текста. | Аргументы: | • R, G и B - цвет в формате RGB, значения от 0.0 (соответствует 0) до 1.0 (соответствует 255).

void SetHighlightColor (float R, float G, float B) | - Устанавливает цвет подсветки текста. | Аргументы: | • R, G и B - цвет в формате RGB, значения от 0.0 (соответствует 0) до 1.0 (соответствует 255).

void SetTextFlags (int flags) | - Задает различные флаги для печатаемого текста. | Аргументы: | • flags - флаги (можно комбинировать через bwor): |     textshadow (0x00010000) |     textunderline (0x00020000) |     textmonospace (0x00040000) |     textdirect (0x01000000) - Обновляет содержимое окна. |     textnofill (0x02000000) - Не заливать черным цветом задний фон под текстом. |     texttrunc (0x04000000)

void HideMouse | - Скрывает курсор мыши.
void ShowMouse | - Отображает скрытый курсор мыши.

void MouseShape (sting pcxfilename, int x, int y) | - Изменение изображения для курсора мышки. | Аргументы: | • pcxfilename - имя файла pcx, который будет использован в качестве изображения для курсора | • x и y - смещение точки приложения курсора (при x = 0 и y = 0 точка приложения - левый верхний угол картинки) || Примечание: Созданный этой командой курсор работает с интерфейсными окнами даже в режиме game_ui_disable. | Если НЕ включен режим game_ui_disable, то при выходе курсора за границу интерфейсного окна, он автоматически меняется на стандартный. | Применение этой команды полностью решает проблему "протыкаемости" интерфейсных окон.

void AddNamedHandler (string event_name, procedure callback_proc) | - Связать событие с именем event_name с процедурой-обработчиком. | Аргументы: | • event_name - имя события | • callback_proc - процедура, которая будет вызываться при наступлении данного события (см. SignalNamed)
void AddNamedEvent (string event_name, procedure callback_proc) | - Связать событие с именем event_name с процедурой-обработчиком. | Аргументы: | • event_name - имя события | • callback_proc - процедура, которая будет вызываться при наступлении данного события (см. SignalNamed) || Примечание: Событие будет удалено после его вызова (см. ClearNamed).
void SignalNamed (string event_name) | - Вызвать событие с именем event_name. | Аргументы: | • event_name - имя события
void ClearNamed (string event_name) | - Удалить указанное событие. | Аргументы: | • event_name - имя события

void SayReplyWindow (int x, int y, int width, int height, string pcxfilename) | - Задать параметры для окна реплик NPC. | Аргументы: | • x и y - координаты верхнего левого угла | • width - ширина | • height - высота | • pcxfilename - имя файла pcx, например, "my_pict.pcx"

void SayOptionWindow (int x, int y, int width, int height, string pcxfilename) | - Задать параметры окна ответов для игрока. | Аргументы: | • x и y - координаты верхнего левого угла | • width - ширина | • height - высота | • pcxfilename - имя файла pcx, например, "my_pict.pcx"

void SayReplyTitle (string title) | - Задать заголовок окна реплик NPC (текст, который будет отображаться в верхней части окна). | Аргументы: | • title - строка

void SayBorder (int x, int y) | - Задать отступы для выводимого текста. | Аргументы: | • x и y - отступы по x и y для выводимого в окно текста (с обеих сторон)

void SaySetSpacing (int spacing) | - Задать расстояние между строками вариантов ответов в окне ответов (см. SayOptionWindow). | Аргументы: | • spacing - расстояние в пикселях

void SayMessageTimeout (int delay) | - Задержка в секундах для SayMessage. | Аргументы: | • delay - задержка в секундах || Примечание: Сообщение нельзя будет убрать кликом, пока не пройдёт указанное время (это работает со странностями).

void SayOptionColor (int R, int G, int B) | - Заливает окно ответов игрока указанным цветом. | Аргументы: | • R, G и B - цвет в формате RGB, значения от 0.0 (соответствует 0) до 1.0 (соответствует 255)

void SayReplyColor (int R, int G, int B) | - Заливает окно реплик NPC указанным цветом. | Аргументы: | • R, G и B - цвет в формате RGB, значения от 0.0 (соответствует 0) до 1.0 (соответствует 255)

void SayOptionFlags (int flags) | - Флаги окна ответов игрока. | Аргументы: | • flags - флаги (выравнивание текста в окне): |     0 - justifyleft, |     1 - justifyright, |     2 - justifycenter. || Примечание: justifyleft, justifyright, justifycenter - это константы компилятора, которые можно использовать в скриптах непосредственно.

void SayReplyFlags (int flags) | - Флаги окна реплик NPC. | Аргументы: | • flags - флаги (выравнивание текста в окне): |     0 - justifyleft, |     1 - justifyright, |     2 - justifycenter. || Примечание: justifyleft, justifyright, justifycenter - это константы компилятора, которые можно использовать в скриптах непосредственно.

void SayStart | - Вход в диалоговый режим. || Примечание: Операция аналогична gsay_start.
void SayEnd | - Выход из диалогового режима. || Примечание: Операция аналогична gsay_end.

void SayQuit | - Установить флаг выхода из диалога. || Примечание: Если флаг установлен, то после вызова say-команды вместо перехода к целевой процедуре произойдёт выход. После этого флаг сбрасывается. Команда SayEnd сама по себе не сбрасывает флаг.

void SayGotoReply (string reply_name) | - Перейти к указанной реплике NPC. | Аргументы: | • reply_name - имя-идентификатор целевой реплики (см. SayReply)

void SayReply (string reply_name, string reply_text) | - Вывести в окно реплик реплику NPC (см. SayReplyWindow). | Аргументы: | • reply_name - имя-идентификатор реплики (строка) | • reply_text - текст реплики

void SayOption (string option_text, procedure target/string reply_name) | - Вывести вариант ответа в окно ответов игрока (см. SayOptionWindow). | Аргументы: | • option_text - текст ответа | • reply_name - имя-идентификатор целевой реплики (см. SayReply) | • target - целевая процедура || Примечание: Если ответ на реплику один, то окно ответов не создаётся и ответ не выводится. Для продолжения диалога при этом надо кликнуть на окно реплик NPC. Целевая процедура при этом будет браться из того самого написанного, но не выводящегося на экран SayOption.

void SayMessage (string message_title, string message_text) | - Вывести в окно реплик сообщение, убираемое кликом (см. SayReplyWindow и SayMessageTimeout). | Аргументы: | • message_title - заголовок окна сообщения | • message_text - текст сообщения

void AddKey (char key_code, procedure callback_proc) | - Cвязать указанную клавишу с процедурой-обработчиком. | Аргументы: | • key_code - код клавиши | • callback_proc - процедура, которая будет вызываться при нажатии данной клавиши || Примечание: Функция чувствительна к регистру.

void DeleteKey (char key_code) | - Отменить связанную процедуру для указанной клавиши. | Аргументы: | • key_code - код клавиши

void FadeIn (int delay) | - Медленно восстановить экран. | Аргументы: | • delay - задержка в тиках || Примечание: В отличие от gfade_in не игнорирует параметр delay.

void FadeOut (int delay) | - Медленно погасить экран. | Аргументы: | • delay - задержка в тиках || Примечание: В отличие от gfade_out не игнорирует параметр delay.

string SelectFileList (string title, string mask) | - Отобразить окно выбора файла. | Аргументы: | • title - заголовок окна, будет отображаться сверху | • mask - маска, включая путь (например, "sound\music\*.acm") | Возвращаемое значение: значение выбранного элемента списка. || Примечание: Окно выводится всегда в одно и тоже место экрана (ближе к центру).

snd_handler soundplay (string file, int mode) | - Проигрывает звуковой файл. | Аргументы: | • file - имя (путь) к звуковому файлу в формате raw с частотой сэмплирования 22050 Гц. | • mode - режим: soundnormal (0x0000), soundloop (0x0001), sound8bit (0x0000), sound16bit (0x0002), |                  soundmemory (0x0100), soundstreamed (0x0200), soundmono (0x1000), soundstereo (0x2000) | Возвращаемое значение: Идентификатор звукового файла (snd_handler). || Примечание: Флаги режима могут комбинироваться при помощи bwor. Звуки могут проигрываться одновременно (накладываться). | Если путь не указан, файл ищется в папке DATA (точнее, в master_dat и master_patches, указанных в fallout2.cfg).

void sounddelete (snd_handler handler) | - Удалить (отключить) звук, созданный при помощи soundplay. | Аргументы: | • handler - идентификатор звукового файла
void soundstop (snd_handler handler) | - Остановить проигрывание звука, созданного при помощи soundplay. | Аргументы: | • handler - идентификатор звукового файла
void soundpause (snd_handler handler) | - Пауза звука, созданного при помощи soundplay.
void soundresume (snd_handler handler) | - Возобновить проигрывание звука, остановленного soundpause. | Аргументы: | • handler - идентификатор звукового файла || Примечание: Если звук был остановлен при помощи soundstop, то проигрывание всё равно возобновляется с момента вызова soundstop.
void soundrewind (snd_handler handler) | - Перемотка в начало. | Аргументы: | • handler - идентификатор звукового файла


// VANILLA OPCODES (from falloutmods.wikia.com)

int roll_dice (obj critter, int skill) | - Возвращает значение завершенного броска кубика. | Примечание: Функция не реализована.
int skill_contest (int skill) | - Возвращает значение завершенного броска против навыка (Skill vs Skill). | Для определения возвращаемого значения используется функций is_success или is_critical. || Примечание: Не реализовано в Fallout 1.


// SFALL OPCODES:
int   read_byte(int address)
int   read_short(int address)
int   read_int(int address)
string read_string(int address)

void  write_byte(int address, int value)
void  write_short(int address, int value)
void  write_int(int address, int value)
void  write_string(int address, string value)

void  call_offset_v0(int address)
void  call_offset_v1(int address, int arg1)
void  call_offset_v2(int address, int arg1, int arg2)
void  call_offset_v3(int address, int arg1, int arg2, int arg3)
void  call_offset_v4(int address, int arg1, int arg2, int arg3, int arg4)
int   call_offset_r0(int address)
int   call_offset_r1(int address, int arg1)
int   call_offset_r2(int address, int arg1, int arg2)
int   call_offset_r3(int address, int arg1, int arg2, int arg3)
int   call_offset_r4(int address, int arg1, int arg2, int arg3, int arg4)

int   fs_create(string path, int size)
int   fs_copy(string path, string source)
int   fs_find(string path)
void  fs_write_byte(int id, int data)
void  fs_write_short(int id, int data)
void  fs_write_int(int id, int data)
void  fs_write_float(int id, int data)
void  fs_write_string(int id, string data)
void  fs_write_bstring(int id, string data)
int   fs_read_byte(int id)
int   fs_read_short(int id)
int   fs_read_int(int id)
float fs_read_float(int id)
void  fs_delete(int id)
int   fs_size(int id)
int   fs_pos(int id)
void  fs_seek(int id, int pos)
void  fs_resize(int id, int size)

void set_perk_image(int perkID, int value)
void set_perk_ranks(int perkID, int value)
void set_perk_level(int perkID, int value)
void set_perk_stat(int perkID, int value)
void set_perk_stat_mag(int perkID, int value)
void set_perk_skill1(int perkID, int value)
void set_perk_skill1_mag(int perkID, int value)
void set_perk_type(int perkID, int value)
void set_perk_skill2(int perkID, int value)
void set_perk_skill2_mag(int perkID, int value)
void set_perk_str(int perkID, int value)
void set_perk_per(int perkID, int value)
void set_perk_end(int perkID, int value)
void set_perk_chr(int perkID, int value)
void set_perk_int(int perkID, int value)
void set_perk_agl(int perkID, int value)
void set_perk_lck(int perkID, int value)
void set_perk_name(int perkID, string value)
void set_perk_desc(int perkID, string value)


int  load_shader(string path)
void free_shader(int ID)
void set_shader_int(int ID, string param, int value)
void set_shader_float(int ID, string param, float value)
void set_shader_vector(int ID, string param, float f1, float f2, float f3, float f4)
int  get_shader_version()
void set_shader_mode(int mode)
int  get_shader_texture(int ID, int texture)
void set_shader_texture(int ID, string param, int texID)
void activate_shader(int ID)
void deactivate_shader(int ID)
void force_graphics_refresh(bool enabled)

int sfall_ver_major()
int sfall_ver_minor()
int sfall_ver_build()

void hero_select_win(int)
void set_hero_race(int style)
void set_hero_style(int style)
void set_dm_model(string name)
void set_df_model(string name)

void refresh_pc_art()
void set_palette(string path)

int  available_global_script_types()
bool graphics_funcs_available()
int  input_funcs_available()

int  eax_available()
void set_eax_environment(int environment)

int  nb_create_char()
void apply_heaveho_fix()
int modified_ini()

void stop_game()
void resume_game()

void mark_movie_played(int id)
void set_movie_path(string filename, int movie id)

int  play_sfall_sound(string file, int loop)
void stop_sfall_sound(int ptr)

// ==========================================

void set_fake_perk(string name, int level, int image, string desc)
void set_fake_trait(string name, int active, int image, string desc)
void set_selectable_perk(string name, int active, int image, string desc)
void set_perkbox_title(string title)
void hide_real_perks()
void show_real_perks()
int has_fake_perk(string name)
int has_fake_trait(string name)
void perk_add_mode(int type)
void clear_selectable_perks()
void remove_trait(int traitID)

void set_pc_base_stat(int StatID, int value)
void set_pc_extra_stat(int StatID, int value)
int  get_pc_base_stat(int StatID)
int  get_pc_extra_stat(int StatID)

void set_critter_base_stat(CritterPtr, int StatID, int value)
void set_critter_extra_stat(CritterPtr, int StatID, int value)
int  get_critter_base_stat(CritterPtr, int StatID)
int  get_critter_extra_stat(CritterPtr, int StatID)
void set_critter_skill_points(int critter, int skill, int value)
int  get_critter_skill_points(int critter, int skill)

void set_stat_max(int stat, int value)
void set_stat_min(int stat, int value)
void set_pc_stat_max(int stat, int value)
void set_pc_stat_min(int stat, int value)
void set_npc_stat_max(int stat, int value)
void set_npc_stat_min(int stat, int value)

int get_critter_current_ap(CritterPtr)
void set_critter_current_ap(CritterPtr, int ap)

void set_weapon_knockback(WeaponPtr, int type, int/float value)
void set_target_knockback(CritterPtr, int type, int/float value)
void set_attacker_knockback(CritterPtr, int type, int/float value)
void remove_weapon_knockback(WeaponPtr)
void remove_target_knockback(CritterPtr)
void remove_attacker_knockback(CritterPtr)

void set_hit_chance_max(int percentage)
void set_critter_hit_chance_mod(CritterPtr, int max, int mod)
void set_base_hit_chance_mod(int max, int mod)

void set_skill_max(int value)
void set_critter_skill_mod(CritterPtr, int max)
void set_base_skill_mod(int max)

void set_critter_pickpocket_mod(CritterPtr, int max, int mod)
void set_base_pickpocket_mod(int max, int mod)
void set_pickpocket_max(int percentage)

void set_unspent_ap_bonus(int multiplier)
int  get_unspent_ap_bonus()
void set_unspent_ap_perk_bonus(int multiplier)
int  get_unspent_ap_perk_bonus()

int   list_begin(int type)
int   list_next(int list id)
void  list_end(int list id)
array list_as_array(int type)

// SFALL OPCODES with descriptions

int get_attack_type | - Возвращает установленный тип атаки у текущего оружия в слоте главного интерфейса.
int get_window_under_mouse | - Получает указатель окна интерфейса на который указывает курсор мышки.

int  get_bodypart_hit_modifier (int bodyPart) | - Возвращает установленный модификатор штрафа для прицельной атаки указанной части тела.
void set_bodypart_hit_modifier (int bodyPart, int value) | - Устанавливает модификатор штрафа для прицельной атаки для указанной части тела. || Примечание: Установленные модификаторы действую для всех, а не только для игрока.

void set_critical_table (int critterType, int bodyPart, int level, int valueType, int value) | - Устанавливает параметры критической таблицы для указанного типа криттера.
int  get_critical_table (int critterType, int bodyPart, int level, int valueType) | - Возвращает параметры настройки критической таблицы для указанного типа криттера.
void reset_critical_table (int critterType, int bodyPart, int level, int valueType) | - Сбрасывает все параметры настоек критической таблицы по умолчанию.

int  get_weapon_ammo_pid (ObjectPtr weapon) | - Возвращает номер предмета (его pid) используемых патронов в указанном оружии.
void set_weapon_ammo_pid (ObjectPtr weapon, int pid) | - Устанавливает номер предмета(pid) используемого патрона в указанном оружие.
int  get_weapon_ammo_count (ObjectPtr object) | - Возвращает текущее количество зарядов (патронов) для указанного объекта.
void set_weapon_ammo_count (ObjectPtr object, int count) | - Устанавливает количество зарядов (патронов) для указанного объекта.

void block_combat (bool value) | - Заблокировать возможность входить в режим боя.

int get_perk_available (int perk) | - Получить текущий уровень для указанного перка.
int get_perk_owed | - Получить количество задолженности для перков, которые игрок может взять.
void set_perk_owed (int value) | - Установить количество задолженности для перков, которые игрок может взять.

void set_available_skill_points (int value) | - Установить количество доступных очков навыков для игрока.
int  get_available_skill_points | - Получить текущее количество доступных очков навыков у игрока.

void force_aimed_shots (int pid) | - Устанавливает принудительную прицельную атаку для указанного предмета (оружия). | Установка не сохраняется для предмета и сбрасывается при каждой загрузке сохраненной игры. | Используйте pid = 0, для безоружных атак.
void disable_aimed_shots (int pid) | - Отключает возможность прицельной атаки для указанного предмета (оружия). | Установка не сохраняется для предмета и сбрасывается при каждой загрузке сохраненной игры. | Используйте pid = 0, для безоружных атак.

void set_critter_burst_disable (ObjectPtr critter, int disable) | - Устанавливает запрет на использование любого вторичного режима атаки (например стрельбу очередью) для указанного криттера.

int gdialog_get_barter_mod | - Возвращает текущий модификатор бартера, когда игрок находится в режиме торговли (или разговора) с NPC.

void set_inven_ap_cost | - Устанавливает требуемое количество очков действия для открытия инвентаря во режиме боя.

int get_kill_counter(int critterType) | - Получить количество убитых игроком криттеров по их типу.
void mod_kill_counter(int critterType, int amount) | - Изменяет количество убитых игроком криттеров по их типу.

void inc_npc_level (string npc) | - Увеличить уровень указанного NPC. | Принимает имя NPC в качестве аргумента, этот NPC должен находится в партии игрока.
int get_npc_level (string npc) | - Получает текущий уровень указанного NPC. | Принимает имя NPC в качестве аргумента, этот NPC должен находится в партии игрока.

void set_pyromaniac_mod (int bonus) | - Установка модификатора к перку "Pyromaniac".
void set_swiftlearner_mod (int bonus) | - Установка модификатора к перку "Swiftlearner" (Прилежный ученик).

void set_hp_per_level_mod (int mod) | - Задает модификатор для очков жизней, при получении нового уровня.
void set_xp_mod (int percentage) | - Задает модификатор для очков опыта.
void set_perk_level_mod (int levels) | - Задает модификатор (от -25, до +25) к требованию уровня перка. | Это будет добавляться или вычитаться от уровня игрока, что повлияет на то какие перки могут быть доступны для игрока в списке выбора.

void force_encounter (int map) | - Принудительный вызов указанной карты для случайной встречи, при этом игрок не будет получать проверку на навык "Outdoorsman". | Можно использовать как из глобального скрипта во время путешествия по карте мира, так и из обычного скрипта на локальной карте, | в любом случае встреча происходит вскоре после того, как игрок перейдет на карту мира.
void force_encounter_with_flags (int map, int flags) | - Функция делает тоже самое, что и force_encounter, но позволяет указать некоторые дополнительные опции. | Случайная встреча, карта которой обычно не используется для случайных встреч, может привести к тому, что игрок потеряет свой автомобиль, | поэтому чтобы этого избежать используйте эту функцию с флагом ENCOUNTER_FLAG_NO_CAR.

void set_map_time_multi (float multi) | - Регулирует, как быстро проходит время, пока вы двигаетесь по карте мира. | В качестве аргумента принимает число с плавающей запятой, где 1.0 - нормальная скорость. | Эта функция работает в дополнение перка "Pathfinder", и настройки WorldMapTimeMod в ddraw.ini.

void set_sfall_global (string/int varname, int/float value) | - Установить значение для глобальной переменной sFall. | В случае строкового имени для переменной, требуется строка с 8 символами, с учетом регистра.
int get_sfall_global_int (string/int varname) | - Получить целочисленное значение, глобальной переменной sFall. | В случае строкового имени для переменной, требуется строка с 8 символами, с учетом регистра.
float get_sfall_global_float (string/int varname) | - Получить значение с плавающей запятой, глобальной переменной sFall. | В случае строкового имени для переменной, требуется строка с 8 символами, с учетом регистра.

void set_global_script_repeat (int frames) | - Устанавливает частоту (скорость) выполнения глобального скрипта. | Если вы хотите, чтобы скрипт выполняется многократно, используйте число в качестве аргумента frames | (0 - отключает выполнение скрипта, 1 - выполняется в каждом кадре, 2 - выполняется каждый второй кадр и т.д.).
void set_global_script_type (int type) | - Режим выполнения глобального скрипта. | В режиме по умолчанию (режим 0), выполнение скрипта связано с локальной игровой картой, так что скрипт не будет работать в диалоговых окнах или на карте мира. | В режиме 1, выполнение скрипта связано с вводом(input), поэтому скрипт будет выполняться всякий раз, когда курсор мыши будет отображаться на экране, в том числе на карте мира, в диалогах персонажей и т.д. | В режиме 2, выполнение скрипта связано с картой мира, так что скрипт будет выполняться только на карте мира, а не на локальной карте или в каком-либо из диалоговых окон. | Режим 3, является комбинацией режимов 0 и 2, поэтому скрипты будут выполняться на локальных картах и карте мира, но не в диалоговых окнах. | Примечание: Для режима 1 требует чтобы функция UseScrollWheel была включена, используйте input_funcs_available, чтобы это проверить.

void create_message_window (string message) | - Показывает информационное окно в котором выводит небольшое текстовое сообщение.

void set_world_map_pos (int x, int y) | - Устанавливает текущие координаты игрока на карте мира.
int get_world_map_x_pos | - Возвращает X координату нахождения игрока на карте мира.
int get_world_map_y_pos | - Возвращает Y координату нахождения игрока на карте мира.

void remove_script (ObjectPtr) | - Принимает указатель на объект, и удаляет скрипт этого объекта.
void set_script (ObjectPtr, int scriptID) | - Принимает указатель на объект, и применяет указанный скрипт(scriptID) к этому объекту. | Если на объекте уже есть прикрепленный скрипт, то это удалит существующий скрипт.  || Примечание: Использование set_script на self_obj объекте будет иметь всевозможные побочные эффекты, и этого следует избегать. | Если вы добавите значение 0x80000000 к SID, то обработчик map_enter_p_proc при вызове функции будет пропущен.
int get_script (ObjectPtr) | - Принимает указатель на объект, и возвращает его scriptID (номер строки в scripts.lst), если объект не содержит скрипта то функция возвратит (-1).

int get_viewport_x | - Получает координату X текущего расположения окна просмотра на мировой карте.
int get_viewport_y | - Получает координату Y текущего расположения окна просмотра на мировой карте.
void set_viewport_x (int view_x) | - Задает координату X для положения окна просмотра мировой карты.
void set_viewport_y (int view_y) | - Задает координату Y для положения окна просмотра мировой карты.

int get_light_level | - Возвращает уровень окружающего света в диапазоне 0..65535. || Примечание: Значение, возвращаемое get_light_level, может не соответствовать с set_light_level, поскольку set_light_level учитывает модификаторы от перка "Ночное видение".

void set_car_current_town (int town) | - Устанавливает текущий город для машина игрока, в котором она находится.
void set_pipboy_available (int available) | -  Активирует или отключает PipBoy игрока (0 - чтобы отключить Pipboy, 1 - чтобы включить его).

int key_pressed (int dxScancode) | - Возвращает True(1), если указанная клавиша (dxScancode) была нажата пользователем, в противном случае возвращает False(0).
void tap_key (int dxScancode) | - Виртуально нажимает указанную клавишу (dxScancode).
int get_mouse_x | - Получает координату X указателя мышки в окне игры.
int get_mouse_y | - Получает координату Y указателя мышки в окне игры.
int get_mouse_buttons | - Возвращает номер кнопки мышки, которая нажата в текущий момент (1 - left, 2 - right, 3 - left+right, 4 - middle, 0 в противном случае).

void show_iface_tag (int tag) | - Отображает интерфейсную табличку с указанным номером (0 - 9).
void hide_iface_tag (int tag) | - Скрывает интерфейсную табличку с указанным номером (0 - 9).
bool is_iface_tag_active (int tag) | - Возвращает True(1), если указанная интерфейсная табличка активна, иначе False(0).

int get_screen_width | - Возвращает ширину установленного разрешения игры или размер окна по горизонтали.
int get_screen_height | - Возвращает высоту установленного разрешения игры или размер окна по вертикали.

int get_proto_data (int pid, int offset) | - Получает значение по смещению из указанного .pro файла, расположенного в памяти. | Смещение означает смещение в памяти от начала про-объекта.
void set_proto_data (int pid, int offset, int value) | - Устанавливает значение по указанному смещению для указанного .pro файла, расположенного в памяти. | Изменения не постоянны и не сохраняются в про-файл на диск.

int active_hand | - Возвращает номер активного слота руки. 0 - Left Slot, 1 - Rigth Slot.
void toggle_active_hand | - Переключает активный слот руки.
int game_loaded | - Возвращает True(1) в первый раз после начала новой игры или при загрузки игры, в остальное время возвращает False(0).

int get_ini_setting (string setting) | - Читает целочисленное значение из ini-файла в каталоге fallout.
string get_ini_string (string setting) | - Читает строковое значение из ini-файла в каталоге fallout.

bool in_world_map | - Возвращает True(1), если игрок находится(открыт интерфейс) на карте мира, иначе возвращает False(0). || Примечание: Это работает только в глобальных скриптах, поскольку обычные скрипты не работают на мировой карте.
int get_game_mode | - Возвращает набор флагов, указывающих, в каком игровом режиме находится игра. || Примечание: Является более гибкой версией чем in_world_map.

int get_year | - Возвращает игровой год.
int get_uptime | - Получить количество прошедших тиксов. | Функция полезна для того, чтобы сделать задержку, например для эффектов затухания в скриптах шейдеров.
void set_self (ObjectPtr) | - Переопределяет указатель для функции использующих указатель self_obj, переопределение действует только для следующего вызова таких функций.

void mod_skill_points_per_level (int value)  | - Задает модификатор к количеству получаемых очков навыков для игрока при повышении уровня. Принимает значение в диапазоне: -100...+100. | Примечание: Значение не сохраняется при сохранении игры, поэтому модификатор необходимо повторно устанавливать в разделе game_loaded скрипта.
void set_perk_freq (int value) | - Устанавливает количество уровней между получением перков.
ObjectPtr get_last_target (ObjectPtr critter) | - Возвращает указатель на криттера, который в последний был атакован указанным объектом. | Это работает только во время боя, вне боя функция всегда будет возвращать 0.
ObjectPtr get_last_attacker (ObjectPtr critter) | - Возвращает указатель на криттера, который в последний раз атаковал указанный объект. | Это работает только во время боя, вне боя функция всегда будет возвращать 0.
void set_base_pickpocket_mod (int max, int mod) | - Изменяет максимальный шанс успеха и случайный модификатор для каждой попытки кражи.
void set_critter_pickpocket_mod (ObjectPtr critter, int max, int mod) | - Изменяет максимальный шанс успеха кражи и случайный модификатор для указанного криттера.

void reg_anim_combat_check (int enable) | - Позволяет включить все функции reg_anim_* в режиме боя (включая функции Fallout), если установлено значение 0. || Автоматически отключается в конце каждого кадра, поэтому вам нужно вызвать его перед блоком «reg_anim_begin» - «reg_anim_end».
void reg_anim_destroy (ObjectPtr obj) | - Указанный объект уничтожится после окончания исполняемой анимации.
void reg_anim_animate_and_hide (ObjectPtr obj, int animID, int delay) | - Указанный объект автоматически исчезнет после последнего кадра исполняемой анимации (объект не будет уничтожен).
void reg_anim_light (ObjectPtr, light, int delay) | - Изменить свечение для  указанного объекта. | Аргумент light - это радиус света (0-8), вы можете использовать старшие 2 байта для силы интенсивности света (пример: 0xFFFF0008 - интенсивность 65535 и радиус 8). | Если старшие 2 байта будут равны 0, интенсивность света не изменяется. Диапазон интенсивности от 0 до 65535 (0xFFFF).
void reg_anim_change_fid (ObjectPtr obj, int fid, int delay) | - Работает также как и art_change_fid_num, но для анимаций в последовательности (reg_anim).
void reg_anim_take_out (ObjectPtr obj, int holdFrameID, int delay) | - Воспроизведет анимацию "Достать оружие" для данного holdFrameID. | Примечание: Не требуется иметь данное оружие в инвентаре объекта.
void reg_anim_turn_towards (ObjectPtr obj, int tile/target, int delay) | - Заставляет объект изменить свое направление, чтобы повернуться лицом к указанному гексу или к объекту.
void reg_anim_callback (procedure proc) | - Добавляет указанную процедуру скрипта в список анимационной последовательности и выполняет ее после всей зарегистрированной последовательности.

int metarule2_explosions (int mode, int arg1, int arg2) | - Позволяет динамически изменять некоторые параметры взрыва (дальняя атака). | Все измененные параметры автоматически сбрасываются в состояние по умолчанию для движка после каждого действия атаки. | Макросы к функции доступны в sfall.h.
void set_attack_explosion_pattern (x, y) | - Изменяет паттерн для взрыва. Аргумент Х означает: 1 - уменьшенная паттерн взрыва (3 эффекта генерируются вместо 7), 0 - полный шаблон паттерна. | Аргумент Y в настоящее время не используется.
void set_attack_explosion_art (x, y) | - Изменяет идентификатор FID для последующего взрыва. Аргумент x - это идентификатор кадра (последние 3 байта, без типа объекта). | Аргумент Y в настоящее время не используется.
void set_attack_explosion_radius (x) | - Изменяет радиус для взрыва последующей атаки (этот радиус ограничен до 8 включительно).
void set_attack_is_explosion (type) | - Установить взрывной эффект с повреждением указанного типа для последующей атаки, при этом все цели в радиусе взрыва получат урон указанного типа. | Примечание: В этом случае урон у оружия должен соответствовать указанному типу повреждения.
void set_attack_is_explosion_fire | - Установить взрывной эффект с повреждением типа огонь для последующей атаки, при использовании оружия с типовым повреждением "Fire". В этом случае все цели в радиусе взрыва получат урон типа Fire, а не Explosion.

void set_explosion_radius (grenade, rocket) | - Устанавливает постоянный радиус для взрывов типа гранат и/или для взрывов типа ракеты и динамит. | Установка значения 0 не изменяет соответствующий радиус. || Примечание: Установленный радиус будет сброшен, когда игрок будет начинать или загружать новую игру.
array get_explosion_damage (itemPid) | - Возвращает массив минимального и максимального урона для указанного взрывчатого предмета.
void set_dynamite_damage (minDmg, maxDmg) | - Устанавливает минимальный и максимальный урон для предмета динамита.
void set_plastic_damage (minDmg, maxDmg) | - Устанавливает минимальный и максимальный урон для предмета пластиковой взрывчатки.
void set_explosion_max_targets (countTargets) | - Устанавливает максимальное количество дополнительных целей при порожении взрывов. | Допустимый диапазон: 1..6 (значение по умолчанию 6).

array string_split (string, split) | - Разбивает указанную строку текста по указанному символу разделителю, возвращая Temp массив заполненный фрагментами строки. | Если аргумент разделителя (split) будет пустым, то строка разбивается на отдельные символы.
string substr (string, start, length) | - Возвращает подстроку из указанной строки, начинающейся с позиции start до символов аргумента length. | Если начало отрицательно - оно указывает начальную позицию с конца строки (например: substr("test", -2, 2) вернет последние два символа: "st"). | Если length заданно как отрицательная величина - это означает, что в конце строки будет опущены столько же символов (например: substr("test", 0, -2) вернет строку без последних двух символов: "te").
int strlen (string string) | - Возвращает длину указанной строки.
string sprintf (string format, any value) | - Форматирование заданного значения с использованием стандартного синтаксиса функции C printf. Однако это ограничивается форматированием только одного значения.
int typeof (any value) | - Возвращает тип заданного значения: VALTYPE_INT, VALTYPE_FLOAT или VALTYPE_STR.
int charcode (string string) | - Возвращает ASCII-код для первого символа в заданной строке.
int atoi (string string) | - Преобразует строковое представление числа, к целому числовому типу int.
float atof (string string) | - Преобразует строковое представление числа, к числу с плавающей точкой типа float.

float log (float x) | - Возвращает натуральный логарифм для значения х.
float exponent (float x) | - Возвращает экспоненту значения x.
float sqrt (float x) | - Возвращает квадратный корень из x.
float abs (float x) | - Возвращает абсолютное(положительное) число для значения x.
float sin (float x) | - Возвращает синус для значения x.
float cos (float x) | - Возвращает косинус для значения x.
float tan (float x) | - Возвращает тангенс для значения x.
float arctan (float x, float y) | - Возвращает арктангенс для значения x.
int ceil (float x) | - Округляет значение x до ближайшего большего целого числа.
int round (float x) | - Округление значения x до ближайшего целого числа.

string message_str_game (int fileId, int messageId) | - Возвращает сообщения указанной строки(fileId) из msg файлов в папке "text/english/game". | Для использования определенного файла сообщений(messageId), используйте определения GAME_MSG_* или mstr_* из файла sfall.h
int sneak_success | - Возвращает True(1), если последний бросок кубика на умение "скрытности" прошел успешно, в противном случае False(0).
int get_tile_fid (int tile) | - Возвращает FrameID указанного тайла.
int tile_light (int elevation, int tileNum) | - Возвращает интенсивность света на данной плите, в диапазоне от 0 до 65535.
int tile_under_cursor | - Возвращает координату тайла(гекса) под курсором мышки.
ObjectPtr obj_blocking_line (ObjectPtr objFrom, int tileTo, int blockingType) | - Возвращает указатель на первый объект, который блокирует путь прохождения по прямой от объекта(objFrom) до указанных координат(tileTo), с использованием выбранного типа блокировки(blockingType) (см. BLOCKING_TYPE_* определения в sfall.h).
ObjectPtr obj_blocking_tile (int tileNum, int elevation, int blockingType) | - Возвращает указатель на первый объект, блокирующий данный гекс, используя заданную тип для блокировки(blockingType), если гексе не блокируется то возвращается нуль (0).
array tile_get_objs (int tileNum, int elevation) | - Возвращает массив всех объектов, расположенных на указанном гексе.
array party_member_list (int includeHidden) | - Возвращает массив из всех членов текущей партии, для значения includeHidden: 0 - будет возвращены только видимые криттеры, 1 - возвратит все объекты, включая Trunk).
array path_find_to (ObjectPtr objFrom, int tileTo, int blockingType) | - Возвращает самый короткий путь к указанной координате, с использованием функции блокировки в виде массива направлений плитки (0..5) для перемещения на каждом шаге. | Длина массива будет равна нескольким шагам. Пустой массив означает, что указанная цель не может быть достигнута.
ObjectPtr create_spatial (int scriptID, int tile, int elevation, int radius) | - Создает на указанной плитке новый пространственный скрипт триггер с заданным SID, и радиусом действия.
int art_exists (int artFID) | - Проверяет, существует ли файл анимации для artfID. | Полезно, когда вы хотите проверить, может ли криттер использовать определенное оружие. | Пример: art_exists((artFid bwand 0XFFFF0FFF) bwor (weaponAnim * 0x1000)).
ObjectPtr obj_is_carrying_obj (ObjectPtr invenObj, ObjectPtr itemObj) | - Возвращает количество объектов (itemObj) внутри инвентаря другого объекта (invenObj). || Примечание: В отличие от функции obj_is_carrying_obj_pid не подсчитывает предметы вложенные в контейнерах инвентаря.

// hook scripts
int init_hook | - Возвращает 1 при первом запуске скрипта, или когда игрок загружает сохранную игру, 0 в противном случае. | Функция эквивалентна game_loaded.
mixed get_sfall_arg | - Возвращает каждый раз следующий аргумент из hook параметров, если больше нет аргументов то функция возвращает 0.
array get_sfall_args | - Возвращает все аргументы hook как новый временный массив.
void set_sfall_return (int value) | - Используется для возврата новых значений из скрипта. | Каждый раз, когда вызывается функция, она устанавливает следующее значение, если уже установлены все возвращаемые значения, то функция ничего не возвращает.
void set_sfall_arg (int argnum, int value) | - Изменяет значение hook аргумента. | Это полезно, если у вас есть несколько hook скриптов, привязанных к одной hook точке.
void register_hook (int hooktype) | - Указывает, что для текущего глобального скрипта(gl*) будет установлен этот скрипт в качестве указанного hook скрипта. | В этом случае процедура "start" в текущем глобальном скрипте, будет выполнятся как для hook скрипта.
void register_hook_proc (int hooktype, procedure proc) | - Позволяет непосредственно указать, какую процедуру использовать для заданного hook скрипта. | Если в качестве второго аргумента задать ноль(0), то это отменит регистрацию hook скрипта в текущем глобальном скрипте. || Функция используется только в глобальных скриптах.
void register_hook_proc_spec (int hooktype, procedure proc) | - Позволяет непосредственно указать, какую процедуру использовать для заданного hook скрипта. | Функция в отличие от register_hook_proc позволяет зарегистрировать процедуру в конце всей цепи выполнения данных hook обработчиков, т.е. обработчик будет выполняться после всех ранее зарегистрированными hook сценариев (в том числе после hs_*.int скрипта).

// arrays
int create_array (int size, int flags) | - Создает "постоянный" массив с указанным размером (size). | Возвращает ID номер созданного массива. || Примечание: Постоянные массивы автоматически не сохраняются при сохранении игры.
int temp_array (int size, int flags) | - Создает "временный" массив с указанным размером (size).
void fix_array (int arrayID) | - Изменяет "временный" массив на "постоянный".
void set_array (int arrayID, mixed key, mixed value) | - Устанавливает значение массива по ключу или индексу. | Является эквивалентностью: arrayID[key] := value
mixed get_array (int arrayID, mixed key) | - Возвращает значение массива по ключу или индексу. | Является эквивалентностью: arrayID[key]
void resize_array (int arrayID, int size) | - Изменяет размер указанного массива.
void free_array (int arrayID) | - Удаляет любой указанный массив.
mixed scan_array (int arrayID, mixed value) | - Ищет первое вхождение заданного значения внутри заданного массива.
int len_array (int arrayID) | - Возвращает количество элементов или пары ключ и значение (key => value), в заданном массиве.
mixed array_key (int arrayID, int index) | - Функция генерируется компилятором в циклах foreach. | Не используйте это!
int arrayexpr (mixed key, mixed value) | - Функция используется компилятором для создания выражений массива. | Не используйте это!
void save_array (mixed key, int arrayID) | - Делает указанный массив сохраняемым в файлы при сохранении игры. | Key - ключ под которым массив будет сохранен в файле. Указание нулевого значения ключа для массива, сделает массив обратно не сохраняемым (см. макрос unsave_array).
int load_array (mixed key) | - Получат данные массива с указанным ключом из сохраненных файлов игры. | Key - ключ массива под которым массив был сохранен при помощи функции save_array(). | Возвращает ID загруженного массива, или 0 если массив не был найден.

// array macros
void create_lookup_map | - Создает постоянный "lookup" ассоциативный массив, в котором значение существующих ключей доступны только для чтения, и не могут быть изменены. || Примечание: Этот тип массива позволяет хранить ноль (0) для значения ключа.
void temp_lookup_map | - Создает временный "lookup" ассоциативный массив, в котором значение существующих ключей доступны только для чтения, и не могут быть изменены. || Примечание: Этот тип массива позволяет хранить ноль (0) для значения ключа.
void sort_map_value (array) | - Сортирует указанный ассоциативный массив в порядке возрастания по значению ключей (value).
void sort_map_reverse (array) | - Сортирует указанный ассоциативный массив в порядке убывания по значению ключей (value).
void sort_array (array) | - Сортирует указанный массив в порядке возрастания его значений. || Примечание: Для ассоциативного массива сортировка происходит по ключу (key).
void sort_array_reverse (array) | - Сортирует указанный массив в порядке убывания его значений. || Примечание: Для ассоциативного массива сортировка происходит по ключу (key).

int create_array_list (size) | - Создает постоянный массив с указанным размером (size). || Макрос от: create_array(size, 0)
int temp_array_list (size) | - Создает временный массив с указанным размером (size). || Макрос от: temp_array(size, 0)
int create_array_map | - Создает постоянный ассоциативный массив. || Макрос от: create_array(-1, 0)
int temp_array_map | - Создает временный ассоциативный массив. || Макрос от: temp_array(-1, 0)
bool array_is_map (array) | - Возвращает True, если указанный массив является ассоциативным. || Макрос от: array_key(x, -1) == 1
bool is_in_array (item, array) | - Возвращает True, если указанный элемент существует в указанном массиве. || Макрос от: scan_array(array, item) != -1
bool array_exists (array) | - Возвращает True, если указанный указанный массиве существует. || Макрос от: len_array(array) != -1
void clear_array (array) | - Удаляет все элементы в указанном массиве. || Макрос от: resize_array(array, 0)
void reverse_array (array) | - Изменяет порядок элементов указанного массива (или карты) на обратный. || Макрос от: resize_array(array, -4)
void shuffle_array (array) | - Случайным образом перетасовывает элементы указанного массива или карты. || Макрос от: resize_array(array, -5)

// FuncX
any sfall_func0 (string funcName) | - Вызывает встроенную функцию sfall с заданным именем.
any sfall_func1 (string funcName, arg1) | - Вызывает встроенную функцию sfall с заданным именем с 1 аргументом.
any sfall_func2 (string funcName, arg1, arg2) | - Вызывает встроенную функцию sfall с заданным именем с 2 аргументами.
any sfall_func3 (string funcName, arg1, arg2, arg3) | - Вызывает встроенную функцию sfall с заданным именем с 3 аргументами.
any sfall_func4 (string funcName, arg1, arg2, arg3, arg4) | - Вызывает встроенную функцию sfall с заданным именем с 4 аргументами.
any sfall_func5 (string funcName, arg1, arg2, arg3, arg4, arg5) | - Вызывает встроенную функцию sfall с заданным именем с 5 аргументами.
any sfall_func6 (string funcName, arg1, arg2, arg3, arg4, arg5, arg6) | - Вызывает встроенную функцию sfall с заданным именем с 6 аргументами.

// FuncX macros
bool attack_is_aimed | - Возвращает True, если в текущем состоянии режима стрельбы выбран прицельный режим атаки.
ObjectPtr critter_inven_obj2 (ObjectPtr obj, int type) | - Позволяет получить предмет игрока в неактивном слоте руки. | Подробнее смотрите описание для стандартной функции critter_inven_obj.
int item_weight (ObjectPtr obj) | - Возвращает текущий вес для указанного объекта.
ObjectPtr outlined_object | - Возвращает указатель на объект, который в настоящее время подсвечивается курсором мышки.
int get_outline (ObjectPtr obj) | - Получает текущий цвет контура подсветки для указанного объекта.
void set_outline (ObjectPtr obj, int color) | - Устанавливает контурный цвет подсветки для указанного объекта.
int get_flags (ObjectPtr obj) | - Возвращает текущее значение флагов для указанного объекта (см. sfall.h значения флагов).
void set_flags (ObjectPtr obj, int flags) | - Устанавливает значение флагов для указанного объекта.
ObjectPtr real_dude_obj | - Возвращает изначальный указатель на персонажа игрока (dude_obj), после использования функции set_dude_obj.
void set_dude_obj (ObjectPtr critter) | - Указанный криттер перейдет под управление игрока. | При значения аргумента 0 функция передаст управление обратно на персонаж игрока.
bool lock_is_jammed (ObjectPtr obj) | - Возвращает True, если замок на контейнере или двери находится в заклинившем состоянии.
void unjam_lock (ObjectPtr obj) | - Моментальное разблокирование заклинившего замка на дверях или контейнере.
void set_unjam_locks_time (int time) | - Устанавливает время которое необходимое для разблокирования всех заклинивших замков на карте, после ухода с нее.
void exec_map_update_scripts | - Выполняет map_update_p_proc для всех объектов на карте, а так-же запуск процедуры обработчика в глобальных скриптах.
int spatial_radius (ObjectPtr obj) | - Возвращает радиус пространственного скрипта указанного объекта.
void set_map_enter_position (int tile, int elev, int rot) | - Переопределяет позицию игрока при входе на карту, через зоны выхода. | Установка значения 0 для tile приведет к тому, что игрок войдет на карту по координатам заданным по умолчанию для текущей карты. || Примечание: Функция должна использоваться только в обработчике мap_enter_p_proc.
array get_map_enter_position | - Получает массив данных о позиции игрока (индекс: 0 - tile, 1 - elevation, 2 - rotation) при входе на карту. | При входе с карты мира значения для tile будет всегда равно -1. || Примечание: Функция должна использоваться только в обработчике мap_enter_p_proc, чтобы получить правильные данные о местоположении.
void set_rest_heal_time (int time) | - Устанавливает временной интервал в минутах для самолечения во время отдыха. По умолчанию используется значение 180. || Примечание: Временной интервал сбрасываться в значение по умолчанию, когда игрок будет загружать или начинать игру.
void set_rest_mode (int flags) | - Устанавливает опции для настройки режима отдыха на карте (подробнее см. константы RESTMODE_* в sfall.h). | Установка значения в 0 приведет к сбросу для режима "Отдыха". Это также будет сбрасываться каждый раз, когда игрок загружает или начинает игру.
int car_gas_amount | - Возвращает текущее количество топлива в автомобиле игрока от 0 до 80000.
void set_car_intface_art (int artIndex) | - Устанавливает новое изображения автомобиля на экране карты мира. | Аргумент artIndex - индекс новой картинки из LST-файла. || Примечание: Функцию следует использовать перед тем, как перейти на мировую карту.
void tile_refresh_display | - Перерисовывает текущую карту игры (плитки, стены, объекты и т.д.).
void display_stats | - Обновляет (перерисовывает) статистику игрока в окне дисплея при открытом инвентаре.
void intface_show | - Показать основной интерфейс игры.
void intface_hide | - Скрыть основной интерфейс игры.
bool intface_is_hidden | - Вернет True, если интерфейс в настоящее время скрыт, False в противном случае.
void intface_redraw | - Перерисовывает основной игровой интерфейс.
void inventory_redraw (invSide) | - Перерисовывает открытый инвентарь для указанного слота с предметами. | Аргумент invSide: 0 - для игрока, 1 - для торговца/контейнера.
int get_cursor_mode | - Возвращает текущий выбранный режим курсора мышки. | Возвращаемые значения: 0 - движение, 1 - команды, 2 - прицел, 4 - 10 для используемых умений (желтый курсор).
void set_cursor_mode (int mode) | - Устанавливает текущий режим для курсора мышки.
void set_iface_tag_text (int tag, string text, int color) | - Функция позволяет динамически устанавливать/менять текстовое сообщение(text) и его цвет(color) для пользовательских полей уведомлений интерфейса. | Значение для tag такое же, как для show_iface_tag, hide_iface_tag и is_iface_tag_active. | Доступные цвета: 0 - зеленый, 1 - красный, 2 - белый, 3 - желтый, 4 - темно-желтый, 5 - синий, 6 - фиолетовый.
void item_make_explosive (int pid, int activePid, int min, int max) | - Сделает указанный предмет(pid) взрывчатым предметом (такими как: динамит, пластиковая взрывчатка). | activePid: предмет с активированным таймером (можно использовать тот же pid основного предмета). | Min/Max: Минимальный и максимальный урон от взрыва. || Примечание: Использование функции для предмета, который уже является взрывоопасным, приведет к переопределению ранее установленных параметров. Функция не работает для динамита и пластиковых взрывчатых веществ.
int get_string_pointer (string text) | - Возвращает указатель на строковую переменную или непосредственно на текст.
void dialog_message (string text) | - Выводит указанный текст в окно интерфейса реплик NPC в диалоговом или бартерном режиме.
int get_current_inven_size (ObjectPtr obj) | - Возвращает текущий (заполненный) размер инвентаря указанного контейнера или криттера.
void create_win (string winName, int x, int y, int width, int height) | - Создает пользовательское интерфейсное окно, так же как и функция CreateWin, но с флагом MoveOnTop. || Примечание: Флаг MoveOnTop позволяет разместить созданное окно поверх игрового интерфейса.
void create_win_flag (string winName, int x, int y, int width, int height, int flags) | - Создает пользовательское интерфейсное окно, так же как и функция CreateWin, но позволяет устанавливать дополнительные флаги для создаваемого окна.
void set_can_rest_on_map (int mapNum, int elev, bool value) | - Разрешает или запрещает отдых на карте для указанного уровня. | mapNum: индекс карты из файла maps.txt. || Примечание: Указание значения -1 для аргумента elev,   установит значения для всех уровней карты.
int get_can_rest_on_map (int mapNum, int elev) | - Возвращает ранее установленное функцией set_can_rest_on_map значение "запрета на отдых" для указанной карты и ее уровня. | Если значение для карты не было установлено ранее, возвращается значение -1. || Примечание: Установленные значения can_rest_here из файла maps.txt игнорируются.
ObjectPtr dialog_obj | - Возвращает указатель на объект(криттер), с которым в текущее время ведется диалог или торговля.
ObjectPtr obj_under_cursor (bool onlyCritter, bool includeDude)  | - Возвращает объект расположенный на карте, на который указывает курсор. | onlyCritter: при значении True будет проверяться только криттеры, при этом будет игнорироваться их перекрытие (т.е. если объект перекрывает крыша, стены, пейзажи и т.д.) | includeDude: при значении False будет игнорироваться объект dude_obj.
ObjectPtr loot_obj | - Возвращает указатель на объект контейнер, или криттер, с которым в данный момент происходит обмен.
int get_object_data (ObjectPtr obj, int offset) | - Возвращает данные объекта по указанному смещению (см. OBJ_DATA_* смещения в define_extra.h).
void set_object_data (ObjectPtr obj, int offset, int data) | - Устанавливает данные по смещению для указанного объекта (см. OBJ_DATA_* смещения в define_extra.h).
int get_object_ai_data (ObjectPtr obj, int aiParam) | - Возвращает значение настройки из AI-пакета для указанного объекта (см. AI_CAP_* константы в define_extra.h).
void art_cache_clear | - Очищает кеш память от загруженных графических FRM файлов.
int add_iface_tag | - Добавляет один пользовательский интерфейсный бокс(тег) для уведомления и возвращает номер добавленного тега, или же -1 если достигнут предел для добавления тегов.
void npc_engine_level_up (bool toggle) | - Включает или отключает внутреннею функцию движка, которая повышает уровень членов группы в процессе прокачки игрока.
void set_drugs_data (int type, int pid, int value) | - Переопределяет установленные параметры для предметов Drugs из файла конфигурации (см. Параметр DrugsFile). | type: 0 - изменяет значение NumEffects для предмета. |     1 - изменяет длительность эффекта зависимости от наркотика (значение 1 равно одной игровой минуте).
int set_unique_id (ObjectPtr obj) | - Присваивает объекту уникальный идентификационный (ID) номер и возвращает его. | Если уникальный идентификационный номер уже был присвоен объекту, то идентификационный номер возвращается без переназначения. | Предметы с уникальными идентификаторами не будут складываться с другими предметами того же типа в инвентаре. | Уникальные идентификационные номера имеют диапазон от 0x10000000 до 0x7FFFFFFF | Существует также уникальный диапазон номеров ID для игрока и членов группы от 18000 до 83535, которые не могут быть переназначены.
int unset_unique_id (ObjectPtr obj) | - Функция отменяет ранее присвоенный уникальный номер и назначает объекту идентификационный номер ID, cгенерированный игровым движком.

array get_metarule_table | - Возвращает имена всех доступных скриптовых sfall_funcX функции в текущей версии sfall.
bool metarule_exist (string metaruleName) | - Возвращает True, если указанное имя функции sfall_funcX существует в текущей версии sfall.

void draw_image (string/int pathFile/artId, int frame, int x, int y, bool noTransparent) | - Отображает указанное FRM изображение в активном окне созданного с помощью скриптовых функций CreateWin или create_win. | PathFile/artId: путь к файлу FRM (например: art\inven\5mmap.frm), или его FRM идентификационный номер (см. спецификацию формата FID). | Дополнительные аргументы: | - frame: номер кадра в FRM для отображения (первый кадр начинается с нуля). | - х/у: начало смещения относительно верхнего левого угла окна куда требуется вывести изображение. | - noTransparent: значение True отобразит изображение без прозрачного фона.
void draw_image_scaled (string/int pathFile/artId, int frame, int x, int y, int width, int height) | - Отображает указанное FRM изображение с масштабированием в активном окне созданного с помощью скриптовых функций CreateWin или create_win. |     pathFile/artId: путь к файлу FRM (например: art\inven\5mmap.frm), или его FRM идентификационный номер (см. спецификацию формата FID). | Необязательные аргументы: | - frame: номер кадра в FRM для отображения (первый кадр начинается с нуля). | - x/y: начало смещения относительно верхнего левого угла окна куда требуется вывести изображение. | - width/height: размер изображения, используемый для масштабирования изображения при отображении, указание значения -1 для width или height, позволит сохранить правильную пропорцию изображения при его масштабировании.

int add_extra_msg_file (string fileName, int fileNumber) | - Загружает пользовательский файл сообщений и возвращает присвоенный ему идентификационный номер, в диапазоне от 0x3000 до 0x3FFF используемый для функции message_str_game, чтобы получить сообщения из загруженного файла. | - fileName: имя файла пользовательского сообщения (включая расширение .msg) находящегося в "text\<language>\game\" директории. | Необязательные аргументы: - fileNumber: принудительно устанавливаемый идентификационный номер для загружаемого файла сообщений, доступный диапазон от 0x2000 до 0x2FFF (дополнительно см. опцию ExtraGameMsgFileList в ddraw.ini). | Примечание: Используйте fileNumber, если вы хотите добавить файл сообщение без необходимости редактирования ddraw.ini или существующих скриптов для поддержки старого метода.

array get_ini_section (string file, string sect) | - Возвращает ассоциативный массив всех параметров и их значений указанной секции в INI-файле.
array get_ini_sections (string file) | - Возвращает массив с именами всех секций в указанном INI-файле.
void  set_ini_setting (string setting, int/string value) | - Записывает целое число или строку в параметр указанной секции в INI-файл расположенный в каталоге Fallout. | Аргумент setting работает так же, как и для get_ini_setting (т.е. имя файла, название секции и параметра с разделяемых помощью символа '|'). || Примечание: Имя для секции ограничено 32 символами.

void set_fake_perk_npc (ObjectPtr npc, string name_perk, int level, int image, string desc) | - Тоже самое что и функция set_fake_perk_npc, но добавляет фэйк Перки к указанному члену партии NPC (включая dude_obj).
void set_fake_trait_npc (ObjectPtr npc, string name_trait, int active, int image, string desc) | - Тоже самое что и функция set_fake_trait_npc, но добавляет фэйк Трейты к указанному члену партии NPC (включая dude_obj).
void set_selectable_perk_npc (ObjectPtr npc, string name_perk, int active, int image, string desc) | - Тоже самое что и функция set_selectable_perk_npc, но добавляет фэйк Перки в список для выбора к указанному члену партии NPC (включая dude_obj).
int  has_fake_perk_npc (ObjectPtr npc, string name_perk) | - Тоже самое что и функция has_fake_perk_npc, но проверяет наличие фэйк Перка для указанного члена партии NPC (включая dude_obj).
int  has_fake_trait_npc (ObjectPtr npc, string name_trait) | - Тоже самое что и функция has_fake_trait_npc, но проверяет наличие фэйк Трейта для указанного члена партии NPC (включая dude_obj).

int  get_interface_x (int winID) | - Возвращает Х позицию указанного игрового интерфейса относительно верхнего левого угла игрового экрана. | Функция возвращает -1 если указанное окно интерфейса не доступно.
int  get_interface_y (int winID) | - Возвращает Y позицию указанного игрового интерфейса относительно верхнего левого угла игрового экрана. | Функция возвращает -1 если указанное окно интерфейса не доступно.
bool intface_is_show (int winID) | - Возвращает True если указанный игровой интерфейс отображается на экране.

void add_global_timer_event (int time, int fixedParam) | - Добавляет событие таймера, которое вызывает процедуру timed_event_p_proc в текущем глобальном сценарии.
void add_trait (int traitID) | - Добавляет указанный трейт к игроку.
int  get_inven_ap_cost | - Возвращает текущую стоимость очков действия (AP) для доступа к инвентарю в режиме боя.
mixed get_sfall_arg_at (int argNum) | - Возвращает значение hook аргумента с указанным индексом. Первый аргумент начинается с 0.
int  get_text_width (string text) | - Возвращает ширину текста в пикселях для текущего установленного шрифта.
void hide_window ([string winName]) | - Скрывает указанное или активное скриптовое окно интерфейса. || • winName: имя окна присвоенное функцией CreateWin. Необязательный аргумент.
void show_window ([string winName]) | - Отображает указанное скрытое скриптовое окно или ранее скрытое с помощью функции sfall_func0("hide_window"). || • winName: имя окна присвоенное функцией CreateWin. Необязательный аргумент.
int  message_box (string message, [int flags], [int color1], [int color2]) | - Создает диалоговое текстовое окно и возвращает результат нажатия кнопки: 0 - NO (Escape), 1 - YES/DONE (Enter). | При этом пока отображается диалоговое окно выполнение скриптов будет временно приостановлено. || • message: текст в диалоговом окне. Можно использовать управляющий символ '\n' для перемещения текста в новую строку. Пример: "Hello\nWorld!". | • flags: флаги режима отображения диалогового окна. Необязательный аргумент. | • color1/color2: цвет текста, color1 используется для указания цвета для первой строки, color2 для всего остального текста. Необязательные аргументы. || Примечание: Возвращает -1, если по какой-либо причине диалоговое окно не может быть создано.
array objects_in_radius (int tile, int radius, int elevation, [int type]) | - Возвращает массив объектов определенного типа в пределах заданного радиуса от указанной плитки. || • type: тип объекта см. константы OBJ_TYPE_* в define_extra.h | Указанное значение -1 или отсутствие аргумента, будет возвращать все имеющиеся объекты в пределах радиуса. || Примечание: Радиус ограничен 50 гексами.
void remove_all_timer_events | - Очищает все таймерные события для текущего глобального скрипта.
void remove_timer_event (int fixedParam) | - Удаляет все события таймера с заданным значением "fixedParam" для текущего глобального скрипта.
void set_terrain_name (int x, int y, string name) | - Переопределяет имя типа местности для суб-плитки на карте мира для указанной координаты.
void set_town_title (int areaID, string title) | - Устанавливает всплывающий текст для города на карте мира при наведении курсора на маркер игрока. || • areaID: идентификационный номер города из файла City.txt
void set_window_flag (string/int winName/winID, int flag, bool value) | - Изменяет указанный флаг для созданного скриптового окна или для интерфейса игры. || • winName: имя окна, присвоенное окну функцией CreateWin/create_win. | • winID: идентификационный номер интерфейса или скриптового окна, полученный с помощью функции get_window_under_mouse, или 0 для текущего игрового интерфейса. | • flag: флаг для изменения см. константы WIN_FLAG_* в define_extra.h | • value: true - установить флаг, false - сбросить флаг.
bool string_compare (string str1, string str2) | - Сравнивает две строки без учета регистра и возвращает True, если две строки совпадают. || Примечание: Работает только для английского текста.
bool string_compare_locale (string str1, string str2, int codePage) | - Сравнивает две строки без учета регистра и возвращает True, если две строки совпадают. | • codePage: номер кодовой страницы для корректного сравнения национальных символов в диапазоне кодов 128-255 таблицы ASCII. | Доступные кодировки: 1250 - 1252, 866.
string string_format (string format, any val1, any val2, ...) | - Форматирует указанный текст, используя стандартный синтаксис функции C printf. Форматирование ограничено до 4 аргументов. || Примечание: Форматирование поддерживается только для %s и %d, а строка форматирования ограничена 1024 символами.
string string_tolower (string text) | - Преобразует и возвращает указанный текст в нижнем регистре. || Примечание: Функция работает только для английских букв A-Z/a-z.
string string_toupper (string text) | - Преобразует и возвращает указанный текст в верхнем регистре. || Примечание: Функция работает только для английских букв A-Z/a-z.
int  tile_by_position (int x, int y) | - Возвращает номер гекса в указанной позиции X, Y относительно верхнего левого угла игрового экрана. || Примечание: Если позиция находится вне диапазона плиток, функция возвращает значение -1.
void unwield_slot (ObjectPtr critter, int slot) | - Снимает предмет из указанного слота в инвентаре криттера или игрока. | Функция может снять экипированный предмет, когда инвентарь игрока открыт, или игрок находится на в режиме бартера. || • slot: 0 - слот брони, 1 - правый слот руки, 2 - левый слот руки (см. INVEN_TYPE_* в define.h).

/////////////////////////////////////////////////
// SFALL HOOK
/////////////////////////////////////////////////

Define HOOK_TOHIT : value 0 | - Выполняется при подсчитывании вероятности атаки по цели, после того, как вероятность попадания рассчитана (включая верхнее 95% ограничение).  || int       arg1 - Шанс попадания. | critter arg2 - Атакующий криттер. | critter arg3 - Цель атаки (криттер). | int       arg4 - Атакуемая часть тела. | int       arg5 - Исходной гекс атаки (может отличаться от гекса атакующего, когда ИИ рассматривает потенциальную позицию огня). | int       arg6 - Тип атаки (см. ATKTYPE_* определения). | int       arg7 - Флаг атаки с расстояния 0 или 1. (значение 1 может быть даже для невооруженных(unarmed) атак). || int     ret1 - Новый возвращаемый шанс для попадания.

Define HOOK_AFTERHITROLL : value 1 | - Выполняется после того, как игра рассчитала атаку, которая будет попаданием или промахом. || int        arg1 - Результат расчета для атаки (0 - критический промах, 1 - промах, 2 - попадание, 3 - критический удар). | critter arg2 - Атакующий криттер. | critter arg3 - Цель атаки (криттер). | int       arg4 - Атакуемая часть тела. | int       arg5 - Шанс попадания. || int       ret1 - Переопределяет рассчитанное значение попадание/промах. | int        ret2 - Переопределяет атакуемую часть тела. | critter  ret3 - Переопределяет цель атаки.

Define HOOK_CALCAPCOST : value 2 | - Выполняется всякий раз, когда игра вычисляет количество требуемых очков AP для использования оружия или невооруженной атаки (Это не будет работать при использования предметов отличных от оружия или при передвижении по карте). || critter arg1 - Криттер, выполняющий действие. | int     arg2 - Тип атаки (см. ATKTYPE_* определения). | int     arg3 - Значение 1 если атака является прицельной, иначе 0. | int     arg4 - Количество требуемых AP. || int     ret1 - Переопределить количество требуемых AP.

Define HOOK_DEATHANIM1 : value 3 | - Выполняется до того, как игра попытается вычислить анимацию для смерти. || int       arg1 - PID(номер) оружия выполняющего атаку (-1, если атака невооруженная). | critter arg2 - Атакующий криттер. | critter arg3 - Атакуемый криттер (цель). | int      arg4 - Количество нанесенных повреждений. || int     ret1 - Переопределение номера PID для нападающего оружия.

Define HOOK_DEATHANIM2 : value 4 | - Выполняется после того как игры рассчитала анимацию для смерти. || item    arg1 - PID(Номер) оружия выполняющего атаку (-1, если атака невооруженная). | critter arg2 - Атакующий криттер. | critter arg3 - Атакуемый криттер (цель). | int      arg4 - Количество нанесенных повреждений. | int      arg5 - Идентификатор(FID) анимации смерти, вычисленный игрой. || int     ret1 - Переопределение идентификатора анимации для смерти. || Примечание. При использовании функции critter_dmg этот скрипт также будет запущен. В этом случае PID оружия будет -1, а цель укажет на объект с obj_art_fid == 0x20001F5.

Define HOOK_COMBATDAMAGE : value 5 | - Выполняется, когда игра подсчитывает, сколько урона получит каждая цель. || critter arg1  - Атакуемый криттер (цель). | critter arg2  - Атакующий криттер. | int     arg3  - Количество рассчитанного урона для цели. | int     arg4  - Количество рассчитанного урона для атакующего. | int     arg5  - Флаг специальных эффектов для цели. | int     arg6  - Флаг специальных эффектов для атакующего. | int     arg7  - Указатель на оружие примененное при атаке. | int     arg8  - Часть тела которая была поражена. | int     arg9  - Damage Multiplier (Множитель для урона, делится на 2, поэтому значение 3 дает 1,5x урона, а 8 - 4x урона). | int     arg10 - (Rounds) Количество пуль действительно попавших в цель (1 для рукопашных атак). | int     arg11 - Сумма для отброса(knockback) для цели. | int     arg12 - Тип атаки (см. ATKTYPE_* определения). || int     ret1 - Переопределенный урон для цели. | int     ret2 - Переопределенный урон для атакующего. | int     ret3 - Переопределенные флаги специальных эффектов для цели. | int     ret4 - Переопределенные флаги специальных эффектов для атакующего. | int     ret5 - Переопределенная сумма отскока(knockback) для цели.

Define HOOK_ONDEATH : value 6 | - Выполняется сразу же после того, как криттер умирает по любой причине. || critter arg1 - Указатель на криттер, который только что умер.

Define HOOK_FINDTARGET : value 7 | - Выполняется, когда AI пытается выбрать цель в бою || critter arg1 - Атакующий криттер. | critter arg2...5 - Возможная цель. || critter ret1...4 - Переопределяет выбор цели.

Define HOOK_USEOBJON : value 8 | - Выполняется, когда криттер использует предмет на другом криттере или себе. | Или игрок использует предмет из  инвентаря. И этот предмет не имеет установленного флага действия «Использовать», и не является активным (вспышкой или взрывчаткой). | Игрок или AI использует предмет типа Drug. || Critter arg1 - Цель. | Critter arg2 - Криттер использующий предмет. | int        arg3 - Используемый предмет. || int        ret1 - Переопределяет обработчик для предмета, и выбирает, что должно произойти с предметом (0 - поместить обратно, 1 - удалить, -1 - использовать стандартный обработчик). || Примечание: Запускается до того, как объект используется, и выполняются соответствующие процедура скрипта use_obj_on. Вы можете отключить поведение предмета по умолчанию.

Define HOOK_REMOVEINVENOBJ : value 9 | - Выполняется, когда объект по любой причине удаляется из инвентаря криттера. || critter arg1 - Указатель на криттер, из которого удаляется объект. | item    arg2 - Объект(предмет), который удаляется. | int       arg3 - Флаг или, возможно, количество элементов для удаления. | int        arg4 - Причина, по которой объект удаляется. (Actually, the site from which _item_remove_mult was called).

Define HOOK_BARTERPRICE : value 10 | - Выполняется каждый раз, когда рассчитывается стоимость приобретаемого товара. || critter arg1 - Криттер инициировавший бартер (обычно это dude_obj, либо inven_dude). | critter arg2 - Торговец(NPC) с которым происходит бартер. | int       arg3 - Значение по умолчанию для всех выбранных предметов. | critter arg4 - Указатель на стол NPC с выбранными предметами. | int       arg5 - Фактическая сумма денег в стеке бартера у NPC. | int        arg6 - Стоимость(до изменения от навыков) всех выбранных товаров у NPC. | critter arg7 - Указатель на стол с предлагаемыми игроком предметами (продается NPC). | int        arg8 - Общая стоимость товаров, предлагаемых игроком (количество монет можно узнать с помощью item_caps_total(arg7). | int       arg9 - Устанавливается в 1, если была нажата кнопка «Предложения» (не в режиме торговли с партийцами). || int     ret1 - Переопределенная стоимость для товаров NPC. Значение -1, чтобы пропустить и изменить только стоимость для предлагаемых товаров игрока. | int     ret2 - Переопределенная стоимость для предложенных товаров Игрока.

Define HOOK_MOVECOST : value 11 | - Выполняется при расчете стоимости очков (AP) для движения по карте. || Critter arg1 - Криттер который передвигается. | int     arg2 - Количество пройденных гексов. | int     arg3 - Требуемая стоимость AP для передвижения. || int     ret1 - Переопределенная новая стоимость AP для передвижения.

Define HOOK_ITEMDAMAGE : value 16 | - Выполняется при получении диапазона урона от используемого оружия или безоружного урона. || int       arg1 - Минимальный урон (по умолчанию). | int       arg2 - Максимальный урон (по умолчанию). | Item    arg3 - Указатель на используемое оружие (0 для безоружного). | Critter arg4 - Указатель на атакующего криттера. | int       arg5 - Тип атаки. | int       arg6 - Не равно нулю, если это атака с использованием оружия ближнего боя. || int     ret1 - Повреждение, которое будет использоваться, если значение для 'ret2' не установлено, или новый минимальный урон (если он есть). | int     ret2 - Новый максимальный урон для оружия.

Define HOOK_AMMOCOST : value 17 | - Выполняется при расчете расхода боеприпасов для оружия. Не влияет на урон, только сколько патронов потрачено. || Item  arg1 - Указатель на оружие. | int      arg2 - Количество пуль в очереди выстрела (1 для одиночных выстрелов). | int      arg3 - Сколько боеприпасов затрачено (рассчитанное по оригинальной функции, в основном это равно 2 для SuperCattleProd и MegaPowerFist). | int      arg4 - Тип: 0 - при вычитании патронов после атаки(одиночный выстрел), 1 - при проверке на "Нет патронов" перед атакой, 2 - при расчете стоимости патронов для атаки очередями, 3 - при вычитании патронов после атаки(выстрела очередью). || int     ret1 - Новое значение для затраченных боеприпасов (0 - неограниченного количество боеприпасов).

Define HOOK_USEOBJ : value 18 | - Выполняется, когда: Криттер/Игрок использует предмет из инвентаря, для которого установлен флаг действия «Использовать», или это активная вспышка или динамит. | Игрок использует объект из основного интерфейса. || Critter arg1 - Указатель на использующегося. | int       arg2 - Указатель на используемый предмет. || int     ret1 - Переопределяет обработчик поведения и выбирает, что должно произойти с предметом (0 - вернуть обратно, 1 - удалить, -1 - использовать обработчик движка). || Это запускается до использования объекта, и выполняются соответствующие процедуры скрипта use_obj.

Define HOOK_KEYPRESS : value 19 | - Выполняется раз каждый раз, когда нажата или отпущена любая клавиша. || int     arg1 - Тип события: 1 - кл. нажата, 0 - кл. отпущена. | int     arg2 - DX сканкод клавиши. | int     arg3 - VK код клавиши.

Define HOOK_MOUSECLICK : value 20 | - Выполняется один раз при каждом нажатии или отпускания кнопки мыши. || int     arg1 - Тип события: 1 - нажато, 0 - отпущено. | int     arg2 - Номер кнопки мышки (0 - левая, 1 - правая, до 7).

Define HOOK_USESKILL : value 21 | - Выполняется при использовании любого навыка на любом объекте. (Выполняется до вызова обработчиков по умолчанию, поэтому вы можете полностью переопределить обработчик для навыка). || Critter arg1 - Объект(криттер) который использовал навык. | Obj     arg2 - Объект(цель) на котором используют навык. | int       arg3 - Номер используемого навыка. | int       arg4 - Бонус к навыку от предметов (таких как аптечки первой помощи). || int     ret1 - Заменяет обработчик движкового кода: -1 - использовать движковой обработчик, любое другое значение переопределит поведение для используемого навыка.

Define HOOK_STEAL : value 22 | - Выполняется при проверке попытки украсть или поместить предмет в инвентарь криттера, используя навык «Кражи». (Выполняется до вызова обработчиков по умолчанию, поэтому вы можете полностью переопределить обработчик для навыка). || Critter arg1 - Объект(криттер) который использовал навык кражи. | Obj      arg2 - Объект(цель) на котором используют навык. | Item    arg3 - Указатель на предмет (украденный/помещенный). | int       arg4 - Тип действия: 0 при краже, 1 при помещении предмета. || int     ret1 - Заменяет обработчик движкового кода: 1 -  успех кражи, 0 - провал кражи, -1 - использовать обработчик по умолчанию.

Define HOOK_WITHINPERCEPTION : value 23 | - Выполняется при проверке того, видит криттер-наблюдать другого криттера. || Critter arg1 - Объект-наблюдатель. | Obj     arg2 - Целевой объект. | int       arg3 - Результат функции: 1 - Объект в диапазоне восприятия, 0 - в противном случае. | int       arg4 - Тип: 1 - при вызове из функции obj_can_see_obj, 2 - при вызове из функции obj_can_hear_obj (при ObjCanHearObjFix = 1), 0 - в остальных случаях. || int     ret1 - Переопределяет возвращаемый результат функции: 0 - объект не находится в диапазоне (не может видеть), 1 - в диапазоне (будет видеть, если не заблокировано), 2 - принудительное обнаружение (будет видно независимо, используется только в функции сценария obj_can_see_obj).

Define HOOK_INVENTORYMOVE : value 24 | - Выполняется перед перемещением предметов между слотами инвентаря в интерфейсе игрока. || int     arg1 - Целевой слот: 0 - основной рюкзак, 1 - левая рука, 2 - правая рука, 3 - броня, 4 - оружие (при перезарядке сбрасыванием боеприпасов), 5 - в контейнер, 6 - при выбросе предмета. | Item  arg2 - Перемещаемый предмет. | Item  arg3 - Заменяемый предмет, оружие перед перезарядкой, или контейнер (может быть 0). || int     ret1 - Переопределить действие: -1 - использовать обработчик кода движка, любое другое значение предотвращает перемещение предмета/перезарядку оружия).

Define HOOK_INVENWIELD : value 25 | - Выполняется перед там как предмет брони или оружия будет экипирован на криттере (за исключением случаев использования инвентаря игрока). || Critter arg1 - Указатель на объект криттер. | Obj     arg2 - Предмет экипировки (оружие/броня). | int       arg3 - Номер слота (INVEN_TYPE_*). | int        arg4 - 1 - при экипировке, 0 - при раз экипировке. || int     ret1 - Заменяет обработчик движкового кода: -1 - использовать обработчик движка, любое другое значение - переопределяет обработчик.

Define HOOK_ADJUSTFID : value 26 | - Выполняется после вычисления FID для персонажа на экране инвентаря, когда игра решает, что FID персонажа может измениться. || int     arg1 - Номер FID, рассчитанный в соответствии с базовым FID и используемой броней/оружием. || int     ret1 - Переопределяет вычисленный FID с заданным значением.

Define HOOK_COMBATTURN : value 27 | - Выполняется до и после каждого хода в бою для игрока и NPC. || int     arg1 - Тип события: 1 - начало хода, 0 - конец хода, -1 - если бой закончился по скрипту, или по нажатию Enter во время хода игрока. | int     arg2 - Объект(криттер) который делает ход. | int     arg3 - Неизвестный логический аргумент. || int     ret1 - Значение: 1 в начале хода, чтобы пропустить текущий ход, -1 в конце хода, чтобы немедленно завершить бой.

Define HOOK_CARTRAVEL : value 28 | - Выполняется непрерывно во время передвижения на автомобиле по глобальной карте. || int     arg1 - Скорость автомобиля (от 3 до 8 шагов). | int     arg2 - Потребление топлива (100 и ниже). || int     ret1 - Значение для переопределения скорости автомобиля (-1 для переопределения расхода топлива). | int     ret2 - Переопределение расхода топлива.

Define HOOK_SETGLOBALVAR : value 29 | - Выполняется при установке значения для глобальной переменной (GVAR_*). || int     arg1 - Индекс глобальной переменной. | int     arg2 - Устанавливаемое значение для глобальной переменной. || int     ret1 - Переопределенное значение для глобальной переменной.

Define HOOK_RESTTIMER : value 30 | - Выполняется непрерывно, когда игрок отдыхает используя кнопку отдыха в пипбое. || int     arg1 - Текущее время отдыха в тиках. | int     arg2 - Тип события: 1 - когда цикл отдыха заканчивается нормально, -1 - если цикл заканчивается при нажатии ESC, 0 - в противном случае. | int     arg3 - Продолжительность отдыха в часах. | int     arg4 - Продолжительность отдыха в минутах. || int     ret1 - Передать значение 1, чтобы немедленно прервать отдых, 0 - чтобы продолжить цикл отдыха, если он был прерван нажатием клавиши ESC.

Define HOOK_GAMEMODECHANGE : value 31 | - Выполняется один раз при каждом изменении режима игры. (например, открытие/закрытие инвентаря, экран персонажа, пипбой и т.д.) || int     arg1 - Тип события: 1 - когда игрок выходит из игры, 0 - в противном случае.