Эти методы можно применять только для сталкеров и монстров.
function best_danger()
danger_object* best_danger()
возвращает лучший дэнжер в виде объекта класса danger_object. Аргументов не принимает.
function best_enemy()
game_object* best_enemy()
возвращает объект врага. Работает для сталкеров. Аргументов не принимает.
function best_item()
game_object* best_item()
вроде как возвращает объект тушки, которую можно пожевать. Точно неизвестно. Аргументов не принимает.
function get_enemy() const
game_object* get_enemy() const
возвращает объект текущего врага. Работает для монстров. Аргументов не принимает.
function memory_position(const game_object&)
vector memory_position(const game_object& lua_game_object)
возвращает позицию (в виде объекта класса vector), на которой последний раз был видим объект lua_game_object нашим объектом. Аргументов не принимает.
function memory_time(const game_object&)
int memory_time(const game_object& lua_game_object)
возвращает время, когда последний раз был видим объект lua_game_object нашим объектом, в игровых мс. Аргументов не принимает.
function enable_memory_object(game_object*, boolean)
void enable_memory_object(game_object* lua_game_object, bool enable)
включает/отключает объект в памяти монстра/сталкера. В игре используется для форсированного "забывания" врага при его долговременном отсутствии. Аргументов не принимает.
function memory_hit_objects() const
iterator memory_hit_objects() const
возвращает итератор объектов, которые когда-либо наносили хит. Объекты имеют тип hit_memory_object. Аргументов не принимает.
Пример использования:
local cObj = level.object_by_id(oID)
for obj in cObj:memory_hit_objects() do
--тут манипуляции с объектами
end
function memory_sound_objects() const
iterator memory_sound_objects() const
возвращает итератор объектов, которые когда-либо были слышимы. Объекты имеют тип sound_memory_object. Аргументов не принимает.
Пример использования:
local cObj = level.object_by_id(oID)
for obj in cObj:memory_sound_objects() do
--тут манипуляции с объектами
end
function memory_visible_objects() const
iterator memory_visible_objects() const
возвращает итератор объектов, которые когда-либо были видимы. Объекты имеют тип visible_memory_object. Аргументов не принимает.
Пример использования:
local cObj = level.object_by_id(oID)
for obj in cObj:memory_visible_objects() do
--тут манипуляции с объектами
end
function not_yet_visible_objects() const
iterator not_yet_visible_objects() const
возвращает итератор объектов, которые видны или собираются быть видны. Объекты имеют тип not_yet_visible_object. Аргументов не принимает.
Пример использования:
local cObj = level.object_by_id(oID)
for obj in cObj:not_yet_visible_objects() do
--тут манипуляции с объектами
end
function change_team(number, number, number)
void change_team(int team, int squad, int group)
меняет для объекта team, squad и group.
function see(string)
bool see(string section_name)
проверяет, есть ли среди массива видимых объектов объект с именем секции, равной section_name.
function set_fov(number)
void set_fov(float new_fov)
устанавливает угол зрения, равный значению new_fov.
function set_range(number)
void set_range(float new_range)
устанавливает максимальную ширину видимой области, равный значению new_range.
function vertex_in_direction(number, vector, number) const
int vertex_in_direction(int level_vertex_id, vector direction, float max_distance) const
возвращает lvid наиболее удаленной точки, доступной неписю в направлении direction. Аргументы:
level_vertex_id - ближайший к объекту левел вертекс
direction - направление, в котором надо получить точку
max_distance - диаметр сферы с центром в level_vertex_id, в которой ищутся доступные вертексы.
function accessible_nearest(const vector&, vector&)
int accessible_nearest(const vector& position, vector& result)
возвращает ближайший к точке position левел вертекс. В память по указателю result записываются координаты этого вертекса.
Пример использования:
local pos = npc:position()
local res = vector():set(0,0,0)
local lvid = npc:accessible_nearest(pos, res)
function accessible(const vector&)
bool accessible(const vector& position)
возвращает true, если точка position находится внутри out рестриктора или если у объекта вовсе нет out рестрикторов.
function accessible(number)
bool accessible(int level_vertex_id)
возвращает true, если вертекс level_vertex_id находится внутри out рестриктора или если у объекта вовсе нет out рестрикторов.
function add_restrictions(string, string)
void add_restrictions(string out, string in)
добавляет объекту рестрикторы, заданные аргументами out (out рестрикторы) и in (in рестрикторы). Можно задавать списком, через запятую.
function base_in_restrictions()
string base_in_restrictions()
возвращает список дефолтных рестрикторов (через запятую), куда объекту ход заказан.
function base_out_restrictions()
string base_out_restrictions()
возвращает список дефолтных рестрикторов (через запятую), где объекту нужно быть.
function in_restrictions()
string in_restrictions()
возвращает список рестрикторов (через запятую), куда объекту ход заказан.
function out_restrictions()
string out_restrictions()
возвращает список рестрикторов (через запятую), где объекту нужно быть.
function remove_all_restrictions()
string remove_all_restrictions()
удаляет все рестрикторы 4 и 5 типов. Устанавливает in_restrictions и out_restrictions пустыми.
function remove_restrictions(string, string)
void remove_restrictions(string out, string in);
удаляет рестрикторы, заданные аргументами out (out рестрикторы) и in (in рестрикторы). Можно задавать списком, через запятую. Есть особенность: обязательно должен быть задан аргумент out, иначе функция не будет работать (хотя и не вылетит)
function critically_wounded()
bool critically_wounded()
возвращает true, если объект критически ранен.
function movement_enabled(boolean)
void movement_enabled(bool enable)
разрешает/запрещает объекту движение.
function movement_enabled()
bool movement_enabled()
возвращает true, если объекту разрешено двигаться по пути.
function get_current_point_index()
int get_current_point_index()
возвращает номер текущей точки пути (lvid).
function is_body_turning()
int is_body_turning()
возвращает true, если объект поворачивается. Сравнивается текущее и целевое направление, разница между ними сравнивается с 0,00001 и если разница больше, то возвращается true. Для сталкеров возвращает true, даже если он просто вертит башкой.
function location_on_path(number, vector*)
int location_on_path(float distance, vector* location)
возвращает координаты точки пути объекта, которая отстоит от следующей точки пути более, чем на расстояние distance. Аргументы:
distance - расстояние между точками (float)
location - в этот вектор пишутся вычисленные кординаты.
Непосредственно функция возвращает level_vertex_id найденной точки. Также, если у непися нет активного пути или он стоит в последней точке пути, или между всеми точками пути расстояние меньше, чем distance, возвратятся его координаты и вертекс
Примеры использования:
local dist = 5
local location = vector():set(0,0,0)
local lvid = npc:location_on_path(dist, location)
function path_completed()
bool path_completed()
возвращает true, если путь завершен объектом. false если нет.
function patrol_path_make_inactual()
void patrol_path_make_inactual()
делает текущий путь завершенным.
function set_start_point(number)
void set_start_point(int point_index)
установить начальную точку пути как point_index.
function set_previous_point(number)
void set_previous_point(int point_index)
установить предыдущую точку пути как point_index.
function active_sound_count(boolean)
int active_sound_count(bool only_playing)
возвращает количество проигрываемых звуков. Если only_playing = false, то вернет еще и количество звуков в очереди.
function active_sound_count()
int active_sound_count()
см active_sound_count(boolean). Параметр only_playing по умолчанию false
function add_sound(string, number, enum ESoundTypes, number, number, number, string)
int add_sound(string prefix, int max_count, enum ESoundTypes type, int priority, int mask, int internal_type, string bone_name)
инициализирует для объекта еще один звук. Аргументы:
prefix - sound_prefix звука
max_count - ???
type - тип звука. Возможные значения см в классе-перечислении snd_type.
priority - ???
mask - ???
internal_type - ключ в ассоциативном массиве звуков. При инициализации звуков для непися они записываются в ассоциативный массив, где ключами служат индексы, обозначающие группы звуков по смыслу. Такие группы являются константами экспортированного класса stalker_ids (те, что с индексом sound_).
bone_name - кость, от которой будет играться звук.
function add_sound(string, number, enum ESoundTypes, number, number, number)
int add_sound(string prefix, int max_count, enum ESoundTypes type, int priority, int mask, int internal_type)
см. add_sound(string, number, enum ESoundTypes, number, number, number, string). Аргумент bone_name по умолчанию bip01_head.
function play_sound(number, number, number, number, number, number)
void play_sound(int internal_type, int max_start_time, int min_start_time, int max_stop_time, int min_stop_time, int id)
проигрывает от объекта звук. Аргументы:
internal_type - ключ в ассоциативном массиве звуков. При инициализации звуков для непися они записываются в ассоциативный массив, где ключами служат индексы, обозначающие группы звуков по смыслу. Такие группы являются константами экспортированного класса stalker_ids (те, что с индексом sound_).
max_start_time, min_start_time - максимальное и минимальное время задержки запуска звука. Если грубо - между ними берется рандомное значение, к нему прибавляется текущее время и результат устанавливается началом запуска звука
max_stop_time, min_stop_time - аналогично start_time. Время окончания устанавливается равным текущему времени + start_time + stop_time + длительность звука
id - вроде как номер темы. Из этой темы движок выбирает рандомный звук. Если -1 - будет выбрана рандомная фраза, инициализированная для объекта.
function play_sound(number, number, number, number, number)
void play_sound(int internal_type, int max_start_time, int min_start_time, int max_stop_time, int min_stop_time)
см.выше function play_sound(number, number, number, number, number, number). Аргумент id по умолчанию берется -1.
function play_sound(number, number, number, number)
void play_sound(int internal_type, int max_start_time, int min_start_time, int max_stop_time)
см.выше function play_sound(number, number, number, number, number). Аргумент min_stop_time по умолчанию берется 0.
function play_sound(number, number, number)
void play_sound(int internal_type, int max_start_time, int min_start_time)
см.выше function play_sound(number, number, number, number). Аргумент max_stop_time по умолчанию берется 0.
function play_sound(number, number)
void play_sound(int internal_type, int max_start_time)
см.выше function play_sound(number, number, number). Аргумент min_start_time по умолчанию берется 0.
function play_sound(number)
void play_sound(int internal_type)
см.выше function play_sound(number, number). Аргумент max_start_time по умолчанию берется 0.
function restore_sound_threshold()
void restore_sound_threshold()
восстанавливает дефолтный sound_threshold - порог громкости, при котором непись слышит звук. Аргументов не принимает.
function set_sound_threshold(number)
void set_sound_threshold(float value)
устанавливает sound_threshold - порог громкости, при котором непись слышит звук.
function remove_sound(number)
void remove_sound(int internal_type)
стереть тему с индексом id из списка разрешенных для персонажа.
function set_sound_mask(number)
void set_sound_mask(int sound_mask)
устанавливает sound_mask.
function sound_prefix(string)
void sound_prefix(string sound_prefix)
устанавливает sound_prefix объекта.
function sound_prefix() const
string sound_prefix() const
возвращает sound_prefix объекта. sound_prefix - папка со звуками для данного объекта. Аргументов не принимает.
function sound_voice_prefix() const
string sound_voice_prefix() const
возвращает sound_voice_prefix объекта. Аргументов не принимает.
function visibility_threshold() const
float visibility_threshold() const
возвращает максимальное расстояние, на котором объект видит другие объекты. Аргументов не принимает.
function vision_enabled() const
bool vision_enabled() const
проверяет, включено ли запоминание видимых объектов. Аргументов не принимает.
function enable_vision(boolean)
void enable_vision(bool value)
включить/выключить запись видимых объектов в память.
function extrapolate_length(number)
void extrapolate_length(float extrapolate_length)
устанавливает m_extrapolate_length равным extrapolate_length. Что это - непонятно, но имеет отношение к CDetailPathManager.
function extrapolate_length()
float extrapolate_length()
возвращает m_extrapolate_length. Имеет отношение к CDetailPathManager.
function invulnerable() const
bool invulnerable() const
возвращает состояние режима неуязвимости.
function invulnerable(boolean)
void invulnerable(bool value)
включить/отключить режим неуязвимости.
Добавлено в ЗП
function set_npc_position(vector)
void set_npc_position(vector pos)
телепортировать объект по координатам pos.
function set_visual_memory_enabled(boolean)
void set_visual_memory_enabled(bool val)
включение/отключение памяти непися/монстра. Используется для помещения непися или монстра в состояние игнора актора.
function add_combat_sound(string, number, enum ESoundTypes, number, number, number, string);
Эти методы можно применять только для монстров.
function get_corpse()
game_object* get_corpse()
возвращает объект трупа в ближайшем радиусе вокруг монстра, причем класс объекта эквивалентен CEntity. Аргументов не принимает.
function get_monster_hit_info()
MonsterHitInfo* get_monster_hit_info()
возвращает объект класса MonsterHitInfo, содержащий информацию о последнем, кто бил по монстру. Аргументов не принимает.
class MonsterHitInfo {
vector direction; //направление хита
int time; //игровое время, когда был нанесен хит
game_object* who; //клиентский объект нанесшего хит.
}
function get_sound_info()
SoundInfo* get_sound_info()
возвращает объект SoundInfo, содержащий информацию о последнем услышанном звуке. Аргументов не принимает.
class MonsterHitInfo {
bool danger; //опасен ли звук. У меня получалось true, если издающй звук объект еще и наносит хит. Если стрелять в воздух, монстр "не боится".
vector position; //координаты звука
float power; //сила звука
int time; //игровое время, когда был нанесен хит
game_object* who; //клиентский объект издавшего звука
}
function remove_home()
void remove_home()
удаление точки "выпаса" монстров. Аргументов не принимает.
function set_custom_panic_threshold(number)
void set_custom_panic_threshold(float value)
установить порог паники, равным value.
function set_default_panic_threshold()
void set_default_panic_threshold()
вернуть порог паники по умолчанию. Аргументов не принимает.
function set_home(string, number, number, boolean)
void set_home(string name, float r_min, float r_max, bool aggressive)
установить точку "выпаса" монстров. Аргументы:
name - имя пути
r_min - минимальный радуис беготни вокруг точки
r_max - максимальный радиус удаления от точки
aggressive - аггресивность монстров.
function skip_transfer_enemy(boolean)
void skip_transfer_enemy(bool val)
управляет передачей врагов от друзей. Если установлено в true и видит дружественного монстра, то его враги также становятся врагами.
function character_rank()
int character_rank()
возвращает ранг объекта. Также работает и для объектов-наследников CInventoryOwner. Аргументов не принимает.
function jump(const vector&, number)
void jump(const vector& position, float factor)
заставляет объект прыгнуть. Работает только для снорков. Аргументы:
position - конечные координаты прыжка.
factor - точно трудно сказать, но похоже, что время прыжка.
Эти методы можно применять только для кровососа.
function set_alien_control(boolean)
void set_alien_control(bool val)
устанавливает камеру актера в положение "от глаз монстра" и обратно.
function set_invisible(boolean)
void set_invisible(bool val)
управляет невидимостью. true - установить, false - убрать.
Эти методы можно применять только для зомби.
function fake_death_fall_down()
boolean fake_death_fall_down()
проигрывает у зомби анимацию ложной смерти. Возвращает результат операции. Аргументов не принимает.
function fake_death_stand_up()
boolean fake_death_stand_up()
проигрывает у зомби анимацию вставания. Возвращает результат операции. Аргументов не принимает.
Написано K.D. 17:21, 18 декабря 2011 (UTC) по материалам malandrinus, материалам форума АМК и собственным изысканиям.