CAI_Stalker
Ці методи можна застосовувати лише сталкерів.
string patrol ( )
повертає ім'я патрульного шляху. Аргументів не сприймає.
int rank ( )
повертає ранг непису. Дублює character_rank(). Аргументів не сприймає.
function add_animation(string, boolean)
function add_animation(string);
clear_animations ( ) _
очищення активних анімацій. Аргументів не сприймає.
int animation_count ( ) const
повертає кількість активних анімацій в об'єкті. Аргументів не сприймає.
cover_point* best_cover ( const vector & position, const vector & enemy_position, float radius, float min_enemy_distance, float max_enemy_distance )
повертає найкраще укриття від ворога. Аргументи:
- position - позиція сталкера
- enemy_position - позиція ворога
- radius - радіус пошуку
- min_enemy_distance - мінімальна дистанція від укриття до ворога
- max_enemy_distance - максимальна дистанція від укриття до ворога
function safe_cover(const vector&, number, number);
game_object* best_weapon ( )
повертає об'єкт найкращої зброї сталкера. Аргументів не сприймає.
MonsterSpace:: EBodyState body_state ( )
повертає положення тіла у вигляді константи перерахування enum MonsterSpace::EBodyState. У lua цей перелік експортований як константи класу move:
const crouch = 0 ; const standing = 1 ;
function target_body_state() const;
void set_body_state ( enum MonsterSpace:: EBodyState )
встановлює становище тіла об'єкта. Див. body_state().</cpp>
flags32 get_actor_relation_flags ( ) const
повертає прапори ставлення до актора. Дані прапорці за ідеєю повинні бути як би додатковою пам'яттю сталкерів щодо РР. Вони запам'ятовується те, що актор робив сталкеру. Начебто всередині двигуна ці прапорці не використовуються (крім того, що встановлюються). А це було написано в документації від GSC: можливі прапорці:
game_object.relation_attack
game_object.relation_fight_help_monster
game_object.relation_fight_help_human
game_object.relation_kill
Тобто. передбачається працювати так: Дивимося, коли є така можливість і актор поруч, що прапорці не порожні. Відповідно до піднятого прапора виконуємо якусь дію (встановлюємо діалог, граємо звук/анімацію), а потім скидаємо прапор.
void set_actor_relation_flags ( flags32 flag )
встановлює прапори ставлення до актора.
vector head_orientation ( ) const
повертає значення повороту голови. Хоч начебто виходить вектор, у мене якесь значення має лише x.
float ignore_monster_threshold ( ) const
повертає ignore_monster_threshold.
void restore_ignore_monster_threshold ( )
відновити з конфігів ignore_monster_threshold.
void make_object_visible_somewhen ( game_object * object )
додає об'єкт до масиву видимих об'єктів. Тобто той, для кого викликали метод, думатиме, що бачив його, з усіма витікаючими - наприклад, непис знатиме його координати. Використовується в ЗП для вартового. Коли дозорець бачить актора, для неписів сквада в засідці викликається цей метод, і вони починають знати, де актор.
float max_ignore_monster_distance ( ) const
повертає max_ignore_monster_distance.
void restore_max_ignore_monster_distance ( )
відновити з конфігів max_ignore_monster_distance.
void max_ignore_monster_distance ( )
встановлює max_ignore_monster_distance.
MonsterSpace:: EMentalState mental_state ( )
повертає ментальний стан у вигляді константи перерахування enum MonsterSpace::EMentalState. У lua цей перелік експортований як константи класу move:
const danger = 0 ; const free = 1 ; const panic = 2 ;
function target_mental_state() const;
void set_mental_state ( enum MonsterSpace:: EMentalState )
встановлює стан об'єкта. mental_state().</cpp>
MonsterSpace:: EMovementType movement_type ( )
повертає тип переміщення як константи перерахування enum MonsterSpace::EMovementType. У lua цей перелік експортований як константи класу move:
const walk = 0 ; const run = 1 ; const stand = 2 ;
function target_movement_type() const;
void set_movement_type ( enum MonsterSpace:: EMovementType )
встановлює тип переміщення об'єкта. Див. movement_type().</cpp>
MonsterSpace:: EPathType path_type ( )
повертає тип шляху як константи перерахування enum MonsterSpace::EPathType. У lua цей перелік експортований як константи класу move:
const game_path = 0 ; const level_path = 1 ; const patrol_path = 2 ; const no_path = 3 ; const dummy = -1 ;
void set_path_type ( enum MonsterSpace:: EPathType )
встановлює тип шляху об'єкта. Див. path_type().</cpp>
DetailPathManager:: EDetailPathType detail_path_type ( )
повертає тип переміщення шляхом як константи переліку DetailPathManager::EDetailPathType. У lua цей перелік експортований як константи класу move:
const line = 0 ; const dodge = 1 ; const criteria = 2 ;
void set_detail_path_type ( enum DetailPathManager:: EDetailPathType detail_path_type )
встановлює тип переміщення шляхом об'єкта. Див. detail_path_type().</cpp>
function set_patrol_path(string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType, bool);
void set_desired_direction ( const vector* desired_direction )
встановлює напрямок у наступному стані.
void set_desired_direction ( )
обнуляє напрямок у наступному стані. Аргументів не сприймає.
void set_desired_position ( const vector* desired_position )
встановлює координати у наступному стані.
void set_desired_position ( )
обнуляє координати у наступному стані. Аргументів не сприймає.
void set_dest_level_vertex_id ( int level_vertex_id )
встановити вертекс рівня, куди треба йти.
void set_item ( enum MonsterSpace:: EObjectAction object_action, game_object* lua_game_object, int queue_size, int queue_interval )
встановлення предмета, що непис тримає в руках. Предмет має бути зброєю, як. Аргументи:
- object_action - тип екшену, константа перерахування MonsterSpace:: EObjectAction. У lua воно експортоване як набір констант класу object
const switch1 = 0 ; const switch2 = 1 ; const reload1 = 2 ; const reload2 = 3 ; const aim1 = 4 ; const aim2 = 5 ; const fire1 = 6 ; const fire2 = 7 ; const idle = 8 ; const strap = 9 ; const drop = 10 ; const activate = 15 ; const deactivate = 16 ; const use = 17 ; const turn_on = 18 ; const turn_off = 19 ; const show = 20 ; const hide = 21 ; const take = 22 ; const dummy = -1
Також є неекспортовані константи:
eObjectActionAimReady1 = 11 , eObjectActionAimReady2 = 12 , eObjectActionAimForceFull1 = 13 eObjectActionAimForceFull2 = 14 eObjectActionMisfire1 = 23 , eObjectActionEmpty1 = 24 , eObjectActionNoItems = 65535
- lua_game_object – зброя в інвентарі у непися.
- queue_size - довжина екшенів
- queue_interval - інтервал між екшенами
void set_item ( enum MonsterSpace:: EObjectAction object_action, game_object* lua_game_object, int queue_size )
див. set_item(enum MonsterSpace::EObjectAction, game_object*, number, number). queue_interval за замовчуванням 300.
void set_item ( enum MonsterSpace:: EObjectAction object_action, game_object* lua_game_object )
див. set_item(enum MonsterSpace::EObjectAction, game_object*, number). queue_size за промовчанням 0xFFFFFFFF.
void set_item ( enum MonsterSpace:: EObjectAction object_action )
див. set_item(enum MonsterSpace::EObjectAction, game_object*). Об'єкт за умовчанням nil (прибирає ітим з рук, інакше немає сенсу).
CSightParams* sight_params ( )
повертає об'єкт CSightParams, характеризує об'єкт, який дивиться непис, котрій викликаємо метод.
class CSightParams { const eSightTypeCurrentDirection = 0 ; const eSightTypePathDirection = 1 ; const eSightTypeDirection = 2 ; const eSightTypePosition = 3 ; const eSightTypeObject = 4 ; const eSightTypeCover = 5 ; const eSightTypeSearch = 6 ; const eSightTypeLookOver = 7 ; const eSightTypeCoverLookOver = 8 ; const eSightTypeFireObject = 9 ; const eSightTypeFirePosition = 10 ; const eSightTypeDummy = -1 ; property m_object; //клієнтський об'єкт, який дивимося property m_sight_type; //Тип погляду (див. Константи вище) property m_vector; //напрям погляду CSightParams ( ) ; } ;
bool weapon_strapped ( ) const
повертає true, якщо зброя за спиною. Аргументів не сприймає.
bool weapon_unstrapped ( ) const
повертає true, якщо зброя в руках. Аргументів не сприймає.
void wounded ( bool value )
змінює стан пораненості. Якщо аргумент дорівнює true, то об'єкт помре з першого влучення незалежно від здоров'я.
bool wounded ( )
повертає стан пораненості.
void set_sight ( game_object * object_to_look, bool torso_look, bool fire_object, bool no_pitch )
Встановлює погляд непису. Аргументи:
- object_to_look - об'єкт, який дивимося
- torso_look – ігнорувати координату y.
- fire_object - якщо true, тип погляду встановиться в CSightParams.eSightTypeFireObject, false - CSightParams.eSightTypeObject
- no_pitch - ???
void set_sight ( game_object * object_to_look, bool torso_look, bool fire_object )
див. set_sight(game_object*, boolean, boolean, boolean). за промовчанням no_pitch = false.
void set_sight ( game_object * object_to_look, bool torso_look )
див. set_sight(game_object*, boolean, boolean). за промовчанням fire_object = false.
void set_sight ( game_object * object_to_look )
див. set_sight(game_object*, boolean). за промовчанням torso_look = false.
function set_sight(enum SightManager::ESightType sight_type, const vector& vector3d, bool);
function set_sight(enum SightManager::ESightType sight_type, const vector* vector3d);
function set_sight(enum SightManager::ESightType sight_type, const vector* vector3d, int dwLookOverDelay);
function set_sight(enum SightManager::ESightType sight_type, bool torso_look, bool path);
Частина 1: https://stalker-news.info/forum/rushij-x-ray-engine/opys-klasu-gameobject-chastyna-1/
Частина 2: https://stalker-news.info/forum/rushij-x-ray-engine/opys-klasu-gameobject-chastyna-2/
Частина 3: https://stalker-news.info/forum/rushij-x-ray-engine/opys-klasu-gameobject-chastyna-3/
Частина 4: https://stalker-news.info/forum/rushij-x-ray-engine/opys-klasu-gameobject-chastyna-4/
Частина 5: https://stalker-news.info/forum/rushij-x-ray-engine/opys-klasu-gameobject-chastyna-5/