Передача параметров в функции
Ниже перечислен набор функций с параметрами, присутствующими в xr_conditions и xr_effects, к которым можно обращаться из кастом даты и при этом передавать в них переменные.
Во всех функциях xr_conditions и xr_effects, которые обращались к гулагам по имени, теперь можно использовать как имя, так и story id. Причем если мы указываем имя, то использовать функцию можно только, когда гулаг находится в онлайне, а если мы вешаем на самрттеррейн story_id, то можем обращаться к гулагу и в оффлайне.
Содержание
xr_conditions
fighting_dist_ge(p)
Универсальная функция для combat_ignore, проверка расстояния для игрока (в метрах).
distance_to_obj_le(sid:dist)
Можно использовать, например, в секции follower для определения того, что сталкер подошел на нужную дистанцию к лидеру и переключать в другую секцию (лидер при этом стоит где-то в ремарке). Эта ситуация возникает, когда после боя надо подогнать одного сталкера к другому, а их позиций мы не знаем. Если используется в секции follower, то dist надо ставить большим distance фолловера, поскольку если поставить их одинаковыми, то данная функция не всегда будет срабатывать.
health_le(health)
heli_health_le(health)
enemy_group(group1:group2:...)
hitted_by(sid1:sid2:...)
Пример:
[hit]
on_info = {=hitted_by(407:408)} %+val_escort_combat%
killed_by(sid1:sid2:...)
is_alive(sid)
is_alive_one(sid1:sid2:...)
is_alive_all(sid1:sid2:...)
is_dead(sid)
is_dead_one(sid1:sid2:...)
is_dead_all(sid1:sid2:...)
check_fighting(sid1:sid2:...)
gulag_empty(gulag_name)
gulag_population_le(gulag_name, num)
gulag_casualities_ge(gulag_name:num)
Потери гулага не обнуляются, так что с этой функцией работать аккуратно.
signal(строка)
xr_effects
heli_set_enemy(story_id)
set_gulag_enemy_actor(gulag_name)
hit_npc(direction:bone:power:impulse:reverse=false)
Параметры:
- direction - если строка, то считается, что это имя пути и в сторону первой точки производится толчек. Если же это число, то оно рассматривается как story_id персонажа от которого должен поступить хит;
- bone - строка. Имя кости, по которой наносится удар;
- power - сила удара;
- impulse - импульс;
- reverse (true/false) - изменение направления удара на противоположное. По умолчанию false.
Пример:
[death]
on_info = {=killed_by(404)} %=hit_npc(404:bip01_spine1:100:2000)%, {=killed_by(405)} %=hit_npc(405:bip01_spine1:100:2000)%
set_friends(sid1:sid2:...)
set_enemies(sid1:sid2:...)
play_snd(snd_name:delay=0)
Параметры:
- snd_name - путь к звуку относительно папки sounds
- delay - задержка перед проигрыванием. По умолчанию 0 – проигрываем сразу.
play_snd_now (sid:snd_name)
hit_obj(sid, bone, power, impulse, hit_src=npc:position())
Дать обьекту, заданому story_id, хит. Отличается тем, что может прописываться в любой кастом дате. Параметры: actor, npc, p[sid,bone,power,impulse,hit_src=npc:position()]
- sid - story_id обьекта, по которому наносится хит.
- bone - строка. Имя кости, по которой наносится удар.
- power - сила удара
- impulse - импульс
- hit_src (необязательный параметр) - точка (waypoint), из которой по объекту наносится хит. Если не задано, то берется позиция обьекта, из которого была вызвана данная функция.
actor_has_item(section)
Проверка на наличие у игрока соответствующего предмета. Проверка проходит по секции в ltx.
Функции для работы с HUD'ом
disable_ui_elements(...), enable_ui_elements(...)
Параметры:
- weapon - спрятать/показать руки с оружием;
- input - отключить/включить клавиатуру;
- hud - спрятать/показать индикаторы на экране;
- all - отключить/включить все элементы.
Пример:
on_info = %=disable_ui_elements(weapon:input)%
Есть также сокращенные варианты: disable_ui
, enable_ui
(вызываются без скобок и параметров).
Аналогичны вызовам disable_ui_elements(all)
, enable_ui_elements(all)
соответственно.
Пример:
on_info = %=enable_ui%
Функция запуска camera_effector'а
run_cam_effector(имя_файла)
- имя_файла (указывается без расширения) - это имя анимационного файла (с расширением anm) из папки gamedata\anims\camera_effects\
Пример:
on_info = %=run_cam_effector(prison_0)%
Функция запуска постпроцесса
Есть 2 функции для работы с постпроцессами:
run_postprocess(file_name:id:loop)
- file_name - имя файла постпроцесса (без расширения) из папки gamedata\anims. Указывается без расширения.
- id - номер постпроцесса. Задается опционально. Используется в stop_postprocess.
- loop - (true/false) определяет зацикленность постпроцесса. Опциональный параметр. По умолчанию false.
stop_postprocess(id)
- id - номер постпроцесса заданный в run_postprocess.
Функции для работы с инвентарём
drop_actor_inventory(имя_пути)
Выбрасываем все предметы из инвентаря актера в первую точку заданного пути. Пример:
on_info = %=drop_actor_inventory(drop_point)%
Настройка отношений
Функции
Установить уровень отношения фракции к игроку на определенном уровне игры:
=set_level_faction_community(faction:level_name:relation)
Параметр | Описание |
faction | Имя фракции (bandit, stalker, duty, csky, monster, freedom и т.д.) |
level_name | Имя уровня (escape, garbage, agroprom и т.д.) |
relation | отношение к игроку (friend, enemy, neutral) |
Пример:
%=set_level_faction_community(stalker:escape:neutral)%
Проверки
Проверка отношения группировки к игроку лично:
=is_faction_enemy_to_actor(faction)
=is_faction_neutral_to_actor(faction)
=is_faction_friend_to_actor(faction)
Пример проверки — враждебна ли нам группировка сталкеров:
{=is_faction_enemy_to_actor(stalker)}
Проверка отношения группировки к группировке игрока:
=is_factions_enemies(faction)
=is_factions_friends(faction)
=is_factions_neutrals(faction)