X-Ray extensions
X-Ray extensions
Тип | Расширения движка |
Авторы | malandrinus, kolmogor, K.D., RayTwitty (aka Shadows),
Real Wolf, kstn, _призрак_, SkyLoader |
Официальный репозиторий | GitHub |
Официальная тема | AMK форум |
Этот проект представляет собой набор добавлений, расширяющих возможности движка для скриптеров, а также, в ряде случаев, меняющих поведение игры. Изменения реализованы в виде бинарных патчей библиотек и исполняемых файлов.
Содержание
- 1 Изменения
- 1.1 ТЧ
- 1.1.1 Класс game_object
- 1.1.1.1 Основные методы
- 1.1.1.1.1 CActor
- 1.1.1.1.2 CCar
- 1.1.1.1.3 CEntityAlive
- 1.1.1.1.4 CGameObject
- 1.1.1.1.5 CHangingLamp
- 1.1.1.1.6 CHolderCustom
- 1.1.1.1.7 CHudItem
- 1.1.1.1.8 CInventoryBox
- 1.1.1.1.9 CInventoryItem
- 1.1.1.1.10 CInventoryOwner
- 1.1.1.1.11 CObject
- 1.1.1.1.12 CProjector
- 1.1.1.1.13 CSpaceRestrictor
- 1.1.1.1.14 CTorch
- 1.1.1.1.15 CWeapon
- 1.1.1.2 Хак для изменения значений в памяти объектов
- 1.1.1.3 Методы для получения адреса базового объекта
- 1.1.1.4 Методы для проверки типа объекта
- 1.1.1.5 Методы не имеющие привязки к определенному объекту
- 1.1.1.1 Основные методы
- 1.1.2 Класс matrix
- 1.1.3 Класс CTime
- 1.1.4 Класс CALifeSimulator
- 1.1.5 Класс CSE_Abstract
- 1.1.6 Класс CSE_ALifeObject
- 1.1.7 Пространство имен level
- 1.1.8 Глобальное пространство имен
- 1.1.1 Класс game_object
- 1.1 ТЧ
Изменения
ТЧ
Класс game_object
Основные методы
Регистрация функций в движке
// CActor
set_actor_visual(string)
float get_sprint_factor()
set_sprint_factor(float)
float get_actor_take_dist()
set_actor_take_dist(float)
float get_actor_max_weight()
set_actor_max_weight(float)
float get_actor_max_walk_weight()
set_actor_max_walk_weight(float)
open_inventory_box(game_object*)
set_camera_direction(vector)
update_camera_direction(game_object*)
enable_car_panel(bool)
attach_vehicle(game_object*)
detach_vehicle(vector)
set_goodwill_ex(int, int, int)
change_goodwill_ex(int, int, int)
float get_camera_fov()
set_camera_fov(float)
restore_camera_fov()
float get_hud_fov()
set_hud_fov(float)
set_hud_animation_channel(int)
set_hud_animation_callback_param(int)
set_use_hud_animation_callback(bool)
clear_personal_record(int, int)
uint actor_body_state()
bool is_actor_normal()
bool is_actor_crouch()
bool is_actor_creep()
bool is_actor_climb()
bool is_actor_walking()
bool is_actor_running()
bool is_actor_sprinting()
bool is_actor_crouching()
bool is_actor_creeping()
bool is_actor_climbing()
// CCar
float get_fuel()
set_fuel(float)
float get_fuel_consumption()
set_fuel_consumption(float)
float get_fuel_tank()
// CEntityAlive
heal_wounds(float)
update_condition()
// CGameObject
string specific_character()
int get_bone_visible(string, int)
int set_bone_visible(string, int)
int get_bone_id(string, int)
string get_bone_name()
bool has_visual()
ini_file* get_visual_ini()
bool nonscript_usable()
// CHangingLamp
set_lsf_speed(float)
set_lsf_amount(float)
set_lsf_smap_jitter(float)
float get_lsf_speed()
// CHolderCustom
game_object* get_holder_owner()
// CHudItem
play_hud_animation(string, bool)
uint get_hud_animation_remaining_time()
int get_hud_animation_length(string, int)
bool is_cyclic_hud_animation()
bool has_hud_animation(string)
uint get_hud_item_state()
int get_hud_bone_id(string, int)
vector get_hud_bone_pos(string)
int get_hud_bone_visible(string, int)
int set_hud_bone_visible(string, int)
// CInventoryBox
game_object* object_from_inv_box(int)
uint inv_box_count()
// CInventoryItem
float get_weight()
// CInventoryOwner
bool is_on_belt(game_object*)
bool is_in_ruck(game_object*)
bool is_in_slot(game_object*)
bool move_to_ruck(game_object*)
bool move_to_belt(game_object*)
bool move_to_slot(game_object*)
bool move_to_slot_and_activate(game_object*)
game_object* item_on_belt(int)
game_object* item_in_ruck(int)
uint belt_count()
uint ruck_count()
uint slot_number()
float get_inventory_weight()
invalidate_inventory()
// CObject
float radius()
string get_visual_name()
set_visual_name(string)
// CProjector
projector_on()
projector_off()
bool projector_is_on()
switch_projector(bool)
// CSpaceRestrictor
float get_shape_radius()
// CTorch
switch_torch(bool)
bool is_torch_enabled()
set_torch_range(float)
set_torch_color(vector)
set_torch_omni_range(float)
set_torch_omni_color(vector)
set_torch_glow_radius(float)
set_torch_spot_angle(float)
set_torch_color_animator(string)
switch_night_vision(bool)
// CWeapon
int get_wpn_bone_visible(string, int)
int set_wpn_bone_visible(string, int)
CActor
set_actor_visual(string<path>)
- устанавливает путь до визуала.
float<speed> get_sprint_factor()
- возвращает скорость бега.
set_sprint_factor(float<speed>)
- устанавливает скорость бега.
float<dist> get_actor_take_dist()
- возвращает дистанцию поднятия предметов.
set_actor_take_dist(float<dist>)
- устанавливает дистанцию поднятия предметов.
float<max_weight> get_actor_max_weight()
- возвращает максимальный вес рюкзака.
set_actor_max_weight(float<max_weight>)
- устанавливает максимальный вес рюкзака.
float<max_walk_weight> get_actor_max_walk_weight()
- возвращает максимально-переносимый вес рюкзака.
set_actor_max_walk_weight(float<max_walk_weight>)
- устанавливает максимально-переносимый вес рюкзака.
open_inventory_box(game_object*<box_obj>)
- открывает окно обыска инвентарого ящика.
set_camera_direction(vector<x, y, z>)
- устанавливает направление камеры.
update_camera_direction(game_object*<target_obj>)
- направляет камеру в позицию объекта.
enable_car_panel(bool<is_visible>)
- устанавливает видимость панели машины (прогресс-бар состояния).
attach_vehicle(game_object*<holder_obj>)
- садит ГГ в машину или станковое оружие.
detach_vehicle(vector<exit_pos>)
- высаживает ГГ из машины в заданную позицию на уровне.
set_goodwill_ex(int<who_id>, int<to_whom_id>, int<goodwill>)
- устанавливает отношения между персонажами.
change_goodwill_ex(int<who_id>, int<to_whom_id>, int<goodwill_change>)
- изменяет отношения между персонажами на заданное значение.
float<fov> get_camera_fov()
- возвращает текущий fov камеры.
set_camera_fov(float<fov>)
- устанавливает fov камеры.
restore_camera_fov()
- восстанавливает предыдущий fov камеры (заданный методом set_camera_fov
).
float<dist> get_hud_fov()
- возвращает расстояние от камеры до худа оружия.
set_hud_fov(float<dist>)
- устанавливает расстояние от камеры до худа оружия.
set_hud_animation_channel(int<blend_channel>)
-- устанавливает номер канала блендинга анимации, который будет передан в колбек на завершение анимации (только при проигрывании анимации через метод play_hud_animation
).
set_hud_animation_callback_param(int<param>)
-- устанавливает произвольный параметр, который будет передан в колбек на завершение анимации (только при проигрывании анимации через метод play_hud_animation
).
set_use_hud_animation_callback(bool<use_callback>)
-- включает использование колбека на завершение анимации (только при проигрывании анимации через метод play_hud_animation
).
clear_personal_record(int<id_from>, int<id_to>)
- очищает отношения между двумя мобами по их id.
uint<state> actor_body_state()
- возвращает номер текущего стейта.
bool is_actor_normal()
- возвратит true, если ГГ просто стоит.
bool is_actor_crouch()
- возвратит true, если ГГ присел.
bool is_actor_creep()
- возвратит true, если ГГ глубоко присел.
bool is_actor_climb()
- возвратит true, если ГГ находится на лестнице.
bool is_actor_walking()
- возвратит true, если ГГ идет медленным шагом.
bool is_actor_running()
- возвратит true, если ГГ идет быстрым шагом.
bool is_actor_sprinting()
- возвратит true, если ГГ бежит.
bool is_actor_crouching()
- возвратит true, если ГГ двигается в присяде.
bool is_actor_creeping()
- возвратит true, если ГГ двигается в глубоком присяде.
bool is_actor_climbing()
- возвратит true, если ГГ двигается на лестнице.
CCar
float<fuel> get_fuel()
- возвращает текущее количество топлива.
set_fuel(float<fuel>)
- устанавливает текущее количество топлива.
float<consumption> get_fuel_consumption()
- возвращает расход топлива.
set_fuel_consumption(float<consumption>)
- устанавливает расход топлива.
float<tank_size> get_fuel_tank()
- возвращает размер топливного бака.
CEntityAlive
heal_wounds(float<factor>)
- уменьшает силу кровотечения.
update_condition()
- принудительно обновляет внутренние параметры состояния персонажа (жизнь, выносливость, кровотечение и т.д.).
CGameObject
string<profile_name> specific_character()
- возвращает название профиля персонажа.
int<is_visible>[0 or 1] get_bone_visible(string<bone_name>)
- возвращает видимость кости по имени.
set_bone_visible(string<bone_name>, int<visible>[0 or 1])
- устанавливает видимость кости по имени.
int<bone_id> get_bone_id(string<bone_name>)
- возвращает id кости по имени.
string<bone_name> get_bone_name()
- возвращает имя кости по id (для установки id кости, необходимо использовать глобальную функцию set_int_arg0(int<bone_id>)
).
bool<visual> has_visual()
- возвратит true, если объект имеет визуал.
ini_file* get_visual_ini()
- возвращает ссылку на внутренний конфиг модели.
bool<is_usable> nonscript_usable()
- возвратит true, если над объектом разрешены нескриптовые действия.
CHangingLamp
set_lsf_speed(float<speed>)
-- ###########???###########
set_lsf_amount(float<amount>)
set_lsf_smap_jitter(float<jitter>)
float<speed> get_lsf_speed()
Эти методы изменяют параметры тени от источника света. Для их работы необходимы правки движка и шейдеров. Широко используются в моде OGSE.
CHolderCustom
game_object*<owner_obj> get_holder_owner()
- возвращает владельца машины или станкового оружия.
CHudItem
play_hud_animation(string<anim_name>, bool<mix_in>)
- проигрывает анимацию с заданным именем.
uint<remaining_time> get_hud_animation_remaining_time()
- возвращает время, оставшееся до окончания текущей анимации.
int<length> get_hud_animation_length(string<anim_name>)
- возвращает длительность анимации по её имени.
bool<is_cyclic> is_cyclic_hud_animation()
- возвратит true, если текущая анимация зациклена.
bool<has_anim> has_hud_animation(string<anim_name>)
- возвратит true, если анимация есть в модели.
uint<state> get_hud_item_state()
- возвращает номер текущего стейта.
int<bone_id> get_hud_bone_id(string<bone_name>)
- возвращает id кости по имени.
vector<pos> get_hud_bone_pos(string<bone_name>)
- возвращает позицию кости по имени.
int<is_visible>[0 or 1] get_hud_bone_visible(string<bone_name>)
- возвращает видимость кости по имени.
set_hud_bone_visible(string<bone_name>, int<visible>[0 or 1])
- устанавливает видимость кости по имени.
CInventoryBox
game_object*<item_obj> object_from_inv_box(int<object_number>)
- возвращает предмет в ящике по номеру.
uint<items_count> inv_box_count()
- возвращает количество предметов в ящике.
CInventoryItem
float<weight> get_weight()
- возвращает вес предмета.
CInventoryOwner
bool<is_on_belt> is_on_belt(game_object*<item_obj>)
- возвратит true, если предмет на поясе.
bool<is_in_ruck> is_in_ruck(game_object*<item_obj>)
- возвратит true, если предмет в рюкзаке.
bool<is_in_slot> is_in_slot(game_object*<item_obj>)
- возвратит true, если предмет в слоте.
move_to_ruck(game_object*<item_obj>)
- перемещает предмет в рюкзак.
move_to_belt(game_object*<item_obj>)
- перемещает предмет на пояс.
move_to_slot(game_object*<item_obj>)
- перемещает предмет в слот.
move_to_slot_and_activate(game_object*<item_obj>)
- перемещает предмет в слот и активирует его.
game_object*<item_obj> item_on_belt(int<object_number>)
- возвращает предмет на поясе по номеру.
game_object*<item_obj> item_in_ruck(int<object_number>)
- возвращает предмет в рюкзаке по номеру.
uint<count> belt_count()
- возвращает количество предметов на поясе.
uint<count> ruck_count()
- возвращает количество предметов в рюкзаке.
uint<number> slot_number()
- возвращает количество слотов.
float<total_weight> get_inventory_weight()
- возвращает суммарный вес инвентаря.
invalidate_inventory()
- принудительно обновляет все данные в инвентаре.
CObject
float<radius> radius()
- возвращает виртуальный радиус объекта.
string<path> get_visual_name()
- возвращает путь до визуала объекта.
set_visual_name(string<path>)
- устанавливает путь до визуала объекта.
CProjector
projector_on()
- включает прожектор.
projector_off()
- выключает прожектор.
bool<is_on> projector_is_on()
- возвратит true, если прожектор включён.
switch_projector(bool<switch_on>)
- переключает прожектор.
CSpaceRestrictor
float<radius> get_shape_radius()
- возвращает радиус рестриктора.
CTorch
switch_torch(bool<switch_on>)
- переключает фонарь.
bool<is_on> is_torch_enabled()
- возвратит true, если фонарь включён.
set_torch_range(float<range>)
- устанавливает дальность основного света фонаря.
set_torch_color(vector<R, G, B>)
- устанавливает цвет основного света от фонаря.
set_torch_omni_range(float<range>)
- устанавливает дальность амбиент-света фонаря.
set_torch_omni_color(vector<R, G, B>)
- устанавливает цвет амбиент-света от фонаря.
set_torch_glow_radius(float<radius>)
- устанавливает радиус глоу-эффекта от фонарика.
set_torch_spot_angle(float<angle>)
- устанавливает радиус светового пятна от фонарика.
set_torch_color_animator(string<path>)
- устанавливает путь до аниматора цвета.
switch_night_vision(bool<switch_on>)
- переключает состояние ПНВ.
CWeapon
int<is_visible>[0 or 1] get_wpn_bone_visible(string<bone_name>)
- возвращает видимость кости оружия по имени.
set_wpn_bone_visible(string<bone_name>, int<visible>[0 or 1])
- устанавливает видимость кости оружия по имени.
Хак для изменения значений в памяти объектов
Регистрация функций в движке
// CActor
float get_actor_float(int)
set_actor_float(vector, float, int)
int get_actor_int(string, int)
set_actor_int(int, int)
int get_actor_int16(string, int)
string get_actor_shared_str()
int set_actor_shared_str(string, int)
float get_actor_condition_float(int)
set_actor_condition_float(vector, float, int)
int get_actor_condition_int(string, int)
// CCar
float get_car_float(int)
set_car_float(vector, float, int)
int get_car_int(string, int)
set_car_int(int, int)
int get_car_int16(string, int)
set_car_int16(int, int)
// CCustomMonster
float get_custom_monster_float(int)
int get_custom_monster_int(string, int)
// CGameObject
float get_go_float(int)
set_go_float(vector, float, int)
int get_go_int(string, int)
set_go_int(int, int)
int get_go_int16(string, int)
set_go_int16(int, int)
string get_go_shared_str()
int set_go_shared_str(string, int)
// CHolderCustom
int get_holder_int(string, int)
// CHudItem
float get_hud_float(int)
set_hud_float(vector, float, int)
string get_hud_shared_str()
int set_hud_shared_str(string, int)
int save_hud_bone_float(string, int)
// CInventoryItem
float get_inventory_item_float(int)
set_inventory_item_float(vector, float, int)
int get_inventory_item_int(string, int)
set_inventory_item_int(int, int)
int get_inventory_item_int8(string, int)
set_inventory_item_int8(int, int)
int get_inventory_item_int16(string, int)
set_inventory_item_int16(int, int)
string get_inventory_item_shared_str()
int set_inventory_item_shared_str(string, int)
// CWeapon
float get_wpn_float(int)
set_wpn_float(vector, float, int)
int get_wpn_int(string, int)
set_wpn_int(int, int)
string get_wpn_shared_str()
int set_wpn_shared_str(string, int)
// CWeaponMagazinedWGrenade
int get_wpn_gl_int(string, int)
// Memory access functions
float get_memory_float(int)
set_memory_float(vector, float, int)
int get_memory_int(string, int)
set_memory_int(int, int)
int get_memory_int8(string, int)
set_memory_int8(int, int)
int get_memory_int16(string, int)
set_memory_int16(int, int)
Методы предназначены для изменения тех значений в памяти игровых объектов, которые недоступны через стандартные средства.
Применение всех функций практически одинаково, так что рассматриваю только пример на классе CGameObject.
Смещение - это смещение адреса нашей переменной от начала класса. Узнать смещения можно несколькими способами:
1) посмотреть в дебаговой версии движка, через какой-нибудь дизассембелер;
2) прогнать в цикле все значения и вывести их значения в лог, после чего шаманить, сравнивая и догадываясь, какое значение за что отвечает :)
Функция для получения значений из класса CActor
type - тип значения (integer или float)
cycle_length - диапазон поиска значений (обычно хватает от 500 до 2000)
function get_actor_values(type, cycle_length)
if cycle_length then
if type == "float" then
get_console():execute("clear_log")
for i = 1, cycle_length do
local value = db.actor:get_actor_float(i)
if value then log1("Float value = "..value.."; Position = "..i) end
end
flush_log()
elseif type == "integer" then
get_console():execute("clear_log")
for i = 1, cycle_length do
local value = db.actor:get_actor_int(nil, i)
if value then log1("Integer value = "..value.."; Position = "..i) end
end
flush_log()
end
end
end
Результат записывается в лог игры.
float<value> get_go_float(int<offset>)
- возвращает значение с плавающей точкой по заданному смещению.
set_go_float(nil, float<value>, int<offset>)
- устанавливает значение с плавающей точкой по заданному смещению (первый аргумент - заглушка).
int<value> get_go_int(nil, int<offset>)
- возвращает целочисленное значение по заданному смещению (первый аргумент - заглушка).
set_go_int(int<offset>, int<value>)
- устанавливает целочисленное значение по заданному смещению.
string<value> get_go_shared_str()
- возвращает строковое значение по заданному смещению (смещение задается через глобальную функцию set_int_arg0(int<offset>)
).
set_go_shared_str(string<value>, int<offset>)
- устанавливает строковое значение по заданному смещению.
Также, пару слов о методах для ГГ - их существует два типа, для класса CActor и класса CActorCondition. В последнем лежит много параметров вроде сытости, алкоголизма, силы прыжка и т.п.
Методы для получения адреса базового объекта
Регистрация функций в движке
uint cast_car()
uint cast_game_object()
uint cast_hud_item()
uint cast_inventory_box()
uint cast_inventory_item()
uint cast_weapon()
Методы позволяют получить адрес в памяти, откуда начинается базовый объект (адрес в большинстве случаев не совпадает с началом объекта в целом). Результат можно использовать в разных хаках, когда известно смещение относительно конкретного класса.
Методы для проверки типа объекта
Регистрация функций в движке
bool is_actor()
bool is_ammo()
bool is_anomaly()
bool is_antirad()
bool is_artefact()
bool is_binoculars()
bool is_bottle_item()
bool is_car()
bool is_custom_monster()
bool is_eatable_item()
bool is_entity_alive()
bool is_explosive()
bool is_food_item()
bool is_game_object()
bool is_grenade()
bool is_grenade_launcher()
bool is_hanging_lamp()
bool is_helicopter()
bool is_holder()
bool is_hud_item()
bool is_inventory_box()
bool is_inventory_item()
bool is_inventory_owner()
bool is_knife()
bool is_medkit()
bool is_missile()
bool is_monster()
bool is_outfit()
bool is_physics_shell_holder()
bool is_projector()
bool is_scope()
bool is_script_zone()
bool is_silencer()
bool is_space_restrictor()
bool is_stalker()
bool is_torch()
bool is_trader()
bool is_weapon()
bool is_weapon_gl()
bool is_weapon_magazined()
bool is_weapon_pistol()
bool is_weapon_shotgun()
Методы предназначены для проверки типа объекта (к какому классу принадлежит). Применение достаточно простое:
if obj:is_<class_name>() then
...
end
Методы не имеющие привязки к определенному объекту
Регистрация функций в движке
game_object* get_object_arg_1(int)
set_object_arg_1(game_object*)
set_calibrating_vector(vector)
set_vector_global_arg_1(vector)
set_vector_global_arg_2(vector)
set_vector_global_arg_3(vector)
set_vector_global_arg_4(vector)
Эти методы предназначены для передачи или получения значений в(из) другие(их) методы(ов), в которых, по причине отсутствия необходимого прототипа, штатно это сделать нельзя. Могут вызываться для любого типа объекта в игре.
Класс matrix
Регистрация функций в движке
mul_43(matrix, matrix)
transform_tiny(vector, vector, vector, vector)
transform_tiny1(vector, vector, vector, vector)
transpose(float)
mul_43(matrix<m1>, matrix<m2>)
- умножает две матрицы без последнего столбца и записывает результат в матрицу для которой вызывался метод.
transform_tiny(vector<res>, vector<v>)
- умножает матрицу на вектор (перевод из одной системы координат в другую), с записыванием результата в вектор res.
transform_tiny1(vector<v>)
- умножает матрицу на вектор (перевод из одной системы координат в другую), с записыванием результата в сам вектор.
transpose()
- транспонирует матрицу (зеркалирование относительно главной диагонали).
Класс CTime
Регистрация функций в движке
set_value(int, int, int)
int, int, int, int, int, int, int get_value()
set_value(int<lv>, int<gv>)
- устанавливает значение объекта из компонент.
int<lv>, int<gv> get_value()
- возвращает младшую и старшую часть счетчика.
Класс CALifeSimulator
Регистрация функций в движке
CSE_Abstract* teleport_object(string, vector, uint, uint, uint)
CSE_Abstract* assign_story_id(string, vector, uint, uint, uint)
teleport_object(nil, vector<position>, uint<level_vertex_id>, uint<game_vertex_id>, uint<id>)
- телепортирует объект по его id в заданную позицию на уровне.
assign_story_id(nil, nil, uint<id>, uint<story_id>)
- устанавливает story_id объекту по его id.
Класс CSE_Abstract
Свойства
angle<vector>
- задает направление поворота объекта.
Класс CSE_ALifeObject
Регистрация функций в движке
use_ai_locations(bool)
use_ai_locations(bool<use>)
- задает использование AI-локаций (сетки) для объекта.
Пространство имен level
Регистрация функций в движке
game_object* get_target_obj(int)
float get_target_dist()
int get_target_element(int)
int has_cam_effector(int)
int has_pp_effector(int)
bool has_indicators()
int advance_game_time(int)
game_object* get_second_talker(int)
int vertex_id(int)
float get_memory_float(string, int, bool, string)
int get_memory_int(int)
bool perform_ray_pick_query()
float get_ray_pick_dist()
game_object* get_ray_pick_obj(int)
int get_ray_pick_element(int)
CUIDialogWnd* get_inventory_wnd()
CUIDialogWnd* get_pda_wnd()
CUIDialogWnd* get_talk_wnd()
CUIDialogWnd* get_car_body_wnd()
CUIDialogWnd* get_trade_wnd()
int send_event_mouse_wheel(int)
int send_event_key_hold(int)
int send_event_key_release(int)
int send_event_key_press(int)
set_ce_time(float)
set_ce_amplitude(float)
set_ce_period_number(float)
set_ce_power(float)
bool add_ce()
vector get_tri_vertex1(int)
vector get_tri_vertex2(int)
vector get_tri_vertex3(int)
float get_tri_shootfactor(string, int, bool, string)
int get_tri_flags(int)
float<value> get_memory_float(nil, int<addr>)
- возвращает число с плавающей точкой по абсолютному адресу.
int<value> get_memory_int(int<addr>)
- возвращает целое число по абсолютному адресу.
Глобальное пространство имен
Регистрация функций в движке
log1(string)
fail(string)
int flush_log(int, int)
int bind_to_dik(int, int)
int get_extensions_flags(int, int)
int set_extensions_flags(int, int)
int get_actor_flags(int, int)
int set_actor_flags(int, int)
int get_input_language(int, int)
int set_input_language(int, int)
int set_trade_filtration_on(int, int)
int set_trade_filtration_off(int, int)
int set_manual_grouping_on(int, int)
int set_manual_grouping_off(int, int)
int set_manual_highlight_on(int, int)
int set_manual_highlight_off(int, int)
int get_manual_highlight(int, int)
int set_highlight_color(int, int)
int sum_args(int, int)
int sub_args(int, int)
int GetGoodwill(int, int)
int update_inventory_window(int, int)
init_external_libs(string)
set_game_time(float, float)
int print_level_time(int, int)
int print_alife_time(int, int)
int set_ignore_game_state_update(int, int)
screenshot0(string)
screenshot1(string)
screenshot2(string)
screenshot3(string)
set_hud_inertia(float, float)
set_hud_inertia_param2(float, float)
float get_static_rescale_factor()
set_static_rescale_factor(float, float)
int set_int_arg0(int, int)
int set_int_arg1(int, int)
int set_int_arg2(int, int)
int set_int_arg3(int, int)
int set_int_arg4(int, int)
int set_int_arg5(int, int)
int set_int_arg6(int, int)
set_float_args_12(float, float)
set_float_args_34(float, float)
log1(string<message>)
- выводит строку-сообщение в лог.
fail(string<message>)
- принудительно останавливает игру и выводит сообщение в лог.
flush_log()
- записывает содержимое лога в лог-файл (аналогично вызову консольной команды flush).
int<DIK_keys> bind_to_dik(int<key_bindings>)
- переводит код команды-экшена в код клавиши, забинденной на этот экшен.
int<ex_flags> get_extensions_flags()
- возвращает состояние флагов работы колбеков (1 - key_press, 2 - key_release, 4 - key_hold, 8 - mouse_wheel, 16 - mouse_move).
set_extensions_flags(int<ex_flags>)
- устанавливает состояние флагов работы колбеков (1 - key_press, 2 - key_release, 4 - key_hold, 8 - mouse_wheel, 16 - mouse_move).
int<flags> get_actor_flags()
- возвращает состояние флагов из перечисления psActorFlags.
set_actor_flags(int<flags>)
- устанавливает состояние флагов из перечисления psActorFlags.
int<lang>[0 or 1] get_input_language()
- возвращает номер языка для ввода в полях редактирования (0 - eng, 1 - rus).
set_input_language(int<lang>[0 or 1])
- устанавливает номер языка для ввода в полях редактирования (0 - eng, 1 - rus).
set_trade_filtration_on()
- включает режим скриптовой фильтрации предметов в окне торговли.
set_trade_filtration_off()
- выключает режим скриптовой фильтрации предметов в окне торговли.
set_manual_grouping_on()
- включает режим скриптовой группировки предметов в окне торговли и обыска.
set_manual_grouping_off()
- выключает режим скриптовой группировки предметов в окне торговли и обыска.
set_manual_highlight_on()
- включает режим скриптовой подсветки предметов в окне торговли и обыска.
set_manual_highlight_off()
- выключает режим скриптовой подсветки предметов в окне торговли и обыска.
int<is_highlight>[0 or 1] get_manual_highlight()
- возвращает включенность режима скриптовой подсветки предметов.
set_highlight_color(int<color_id>, int<GetARGB(A, R, G, B)>)
- устанавливает соответствие между индексом цвета и кодом цвета.
int<result> sum_args(int<val1>, int<val2>)
- производит сложение двух чисел и возвращает целочисленный результат (при ариф. операциях, Lua возвращает число с плавающей точкой).
int<result> sub_args(int<val1>, int<val2>)
- производит вычитание двух чисел и возвращает целочисленный результат (при ариф. операциях, Lua возвращает число с плавающей точкой).
int<goodwill> GetGoodwill(int<who_id>, int<to_whom_id>)
- возвращает текущее отношение между персонажами.
update_inventory_window()
- обновляет все графические элементы окна инвентаря.
init_external_libs()
- вызывает подключение дополнительных библиотек, прописанных в движке, внутри этой функции (используется в моде OGSE).
print_level_time()
- выводит отладочную информацию в лог о времени уровня.
print_alife_time()
- выводит отладочную информацию в лог о времени алайфа.
set_ignore_game_state_update()
- устанавливает запрет на выполнение одного цикла обновления внутренних параметров времени (используется в моде OGSE).
screenshot0(string<path>)
- создает скриншот в обычном режиме и сохраняет файл по указанному пути.
screenshot1(string<path>)
- создает скриншот в режиме cubemap и сохраняет файл по указанному пути.
screenshot2(string<path>)
- создает скриншот в режиме save и сохраняет файл по указанному пути.
screenshot3(string<path>)
- создает скриншот в режиме levelmap и сохраняет файл по указанному пути.
set_hud_inertia(float<speed>)
- устанавливает скорость инерции худа.
set_hud_inertia_param2(float<shift>)
- устанавливает силу инерции худа.
float<rescale> get_static_rescale_factor()
- возвращает коэффициент сжатия элементов окна на выбранном разрешении.
set_static_rescale_factor(float<rescale>)
- устанавливает коэффициент сжатия элементов окна на выбранном разрешении.
Остальные методы предназначены для передачи или получения значений в(из) другие(их) методы(ов), в которых, по причине отсутствия необходимого прототипа, штатно это сделать нельзя.