Описание класса game object. Часть IV.
Материал из S.T.A.L.K.E.R. Inside Wiki
Навигация |
---|
Описание класса game object. Часть I. |
Содержание
CAI_Stalker
Эти методы можно применять только для сталкеров.
string patrol()возвращает имя патрульного пути. Аргументов не принимает.
int rank()возвращает ранг непися. Дублирует character_rank(). Аргументов не принимает.
function add_animation(string, boolean)
function add_animation(string);
void 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)меняет состояние ранености.
bool wounded()возвращает состояние ранености.
void set_sight(game_object* object_to_look, bool torso_look, bool fire_object, bool no_pitch)
Устанавливает взгляд непися. Аргументы:
- object_to_look - объект, на который смотрим
- torso_look - ???
- fire_object - ???
- 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);
Написано K.D. 18:13, 18 декабря 2011 (UTC) по материалам malandrinus, материалам форума АМК и собственным изысканиям.