Описание класса game object. Часть IV. — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Описание класса game object. Часть IV. — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
(Новая страница: «{| border="0" cellpadding="3" align="right" width="250" cellspacing="1" style="background:#ccc;" |- ! style="background:#eaf1dd;" align="left"|Навигация ...»)
 
 
(не показаны 9 промежуточные версии 2 участников)
Строка 24: Строка 24:
 
<div class="NavContent"><cpp>int rank()</cpp>
 
<div class="NavContent"><cpp>int rank()</cpp>
 
возвращает ранг непися. Дублирует character_rank(). Аргументов не принимает.<br /><br /></div></div>
 
возвращает ранг непися. Дублирует character_rank(). Аргументов не принимает.<br /><br /></div></div>
 +
 +
function add_animation(string, boolean)<br />
 +
function add_animation(string);
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function clear_animations()''' </div>
 +
<div class="NavContent"><cpp>void clear_animations()</cpp>
 +
очистка активных анимаций. Аргументов не принимает.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function animation_count() const''' </div>
 +
<div class="NavContent"><cpp>int animation_count() const</cpp>
 +
возвращает количество активных анимаций у объекта. Аргументов не принимает.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function best_cover(const vector&, const vector&, number, number, number)''' </div>
 +
<div class="NavContent"><cpp>cover_point* best_cover(const vector& position, const vector& enemy_position, float radius, float min_enemy_distance, float max_enemy_distance)</cpp>
 +
возвращает лучшее укрытие от врага. Аргументы:
 +
*position - позиция сталкера
 +
*enemy_position - позиция врага
 +
*radius - радиус поиска
 +
*min_enemy_distance - минимальная дистанция от укрытия до врага
 +
*max_enemy_distance - максимальня дистанция от укрытия до врага<br /><br /></div></div>
 +
function safe_cover(const vector&, number, number);
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function best_weapon()''' </div>
 +
<div class="NavContent"><cpp>game_object* best_weapon()</cpp>
 +
возвращает объект лучшего оружия сталкера. Аргументов не принимает.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function body_state()''' </div>
 +
<div class="NavContent"><cpp>MonsterSpace::EBodyState body_state()</cpp>
 +
возвращает положение тела в виде константы перечисления enum MonsterSpace::EBodyState. В lua это перечисление экспортировано как константы класса move:
 +
<cpp>const crouch = 0;
 +
const standing = 1;</cpp><br /></div></div>
 +
 +
function target_body_state() const;
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_body_state(enum MonsterSpace::EBodyState)''' </div>
 +
<div class="NavContent"><cpp>void set_body_state(enum MonsterSpace::EBodyState)</cpp>
 +
устанавливает положение тела объекта. См. body_state().</cpp><br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function get_actor_relation_flags()''' </div>
 +
<div class="NavContent"><cpp>flags32 get_actor_relation_flags() const</cpp>
 +
возвращает флаги отношения к актору. Данные флажки по идее должны служить как-бы дополнительной памятью сталкеров в отношении ГГ. В них запоминается то, что актор делал сталкеру. Вроде бы внутри движка эти флажки не используются (кроме того, что устанавливаются).
 +
А это было написано в документации от GSC:
 +
возможные флажки:<br />
 +
game_object.relation_attack<br />
 +
game_object.relation_fight_help_monster<br />
 +
game_object.relation_fight_help_human<br />
 +
game_object.relation_kill<br />
 +
Т.е. предполагается работать следующим образом: Смотрим, когда есть такая возможность и актер рядом, что флажки не пустые. В соответствии с поднятым флагом выполняем какое-то действие (устанавливаем диалог, играем звук/анимацию), а потом сбрасываем флаг.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_actor_relation_flags(flags32)''' </div>
 +
<div class="NavContent"><cpp>void set_actor_relation_flags(flags32 flag)</cpp>
 +
устанавливает флаги отношения к актору.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function head_orientation() const''' </div>
 +
<div class="NavContent"><cpp>vector head_orientation() const</cpp>
 +
возвращает значение поворота головы. Хоть вроде выходит вектор, у меня какое-то значение имеет только x.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function ignore_monster_threshold() const''' </div>
 +
<div class="NavContent"><cpp>float ignore_monster_threshold() const</cpp>
 +
возвращает ignore_monster_threshold.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function restore_ignore_monster_threshold()''' </div>
 +
<div class="NavContent"><cpp>void restore_ignore_monster_threshold()</cpp>
 +
воостановить из конфигов ignore_monster_threshold.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function make_object_visible_somewhen(game_object*)''' </div>
 +
<div class="NavContent"><cpp>void make_object_visible_somewhen(game_object* object)</cpp>
 +
добавляет объект в массив видимых объектов. То есть, тот, для кого вызвали метод, будет думать, что видел его, со всеми вытекающими - например, непись будет знать его координаты. Используется в ЗП для дозорного. Когда дозорный видит актора, для неписей сквада в засаде вызывается этот метод и они начинают знать, где актор.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function max_ignore_monster_distance() const''' </div>
 +
<div class="NavContent"><cpp>float max_ignore_monster_distance() const</cpp>
 +
возвращает max_ignore_monster_distance.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function restore_max_ignore_monster_distance()''' </div>
 +
<div class="NavContent"><cpp>void restore_max_ignore_monster_distance()</cpp>
 +
воостановить из конфигов max_ignore_monster_distance.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function max_ignore_monster_distance()''' </div>
 +
<div class="NavContent"><cpp>void max_ignore_monster_distance()</cpp>
 +
устанавливает max_ignore_monster_distance.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function mental_state()''' </div>
 +
<div class="NavContent"><cpp>MonsterSpace::EMentalState mental_state()</cpp>
 +
возвращает ментальное состояние в виде константы перечисления enum MonsterSpace::EMentalState. В lua это перечисление экспортировано как константы класса move:
 +
<cpp>const danger = 0;
 +
const free = 1;
 +
const panic = 2;</cpp><br /></div></div>
 +
 +
function target_mental_state() const;
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_mental_state(enum MonsterSpace::EMentalState)''' </div>
 +
<div class="NavContent"><cpp>void set_mental_state(enum MonsterSpace::EMentalState)</cpp>
 +
устанавливает состояние объекта. См. mental_state().</cpp><br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function movement_type()''' </div>
 +
<div class="NavContent"><cpp>MonsterSpace::EMovementType movement_type()</cpp>
 +
возвращает тип перемещения в виде константы перечисления enum MonsterSpace::EMovementType. В lua это перечисление экспортировано как константы класса move:
 +
<cpp>const walk = 0;
 +
const run = 1;
 +
const stand = 2; </cpp><br /></div></div>
 +
 +
function target_movement_type() const;
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_movement_type(enum MonsterSpace::EMovementType)''' </div>
 +
<div class="NavContent"><cpp>void set_movement_type(enum MonsterSpace::EMovementType)</cpp>
 +
устанавливает тип перемещения объекта. См. movement_type().</cpp><br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function path_type()''' </div>
 +
<div class="NavContent"><cpp>MonsterSpace::EPathType path_type()</cpp>
 +
возвращает тип пути в виде константы перечисления enum MonsterSpace::EPathType. В lua это перечисление экспортировано как константы класса move:
 +
<cpp>const game_path = 0;
 +
const level_path = 1;
 +
const patrol_path = 2;
 +
const no_path = 3;
 +
const dummy = -1;</cpp><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_path_type(enum MonsterSpace::EPathType)''' </div>
 +
<div class="NavContent"><cpp>void set_path_type(enum MonsterSpace::EPathType)</cpp>
 +
устанавливает тип пути объекта. См. path_type().</cpp><br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function detail_path_type()''' </div>
 +
<div class="NavContent"><cpp>DetailPathManager::EDetailPathType detail_path_type()</cpp>
 +
возвращает тип перемещения по пути в виде константы перечисления DetailPathManager::EDetailPathType. В lua это перечисление экспортировано как константы класса move:
 +
<cpp>const line = 0;
 +
const dodge = 1;
 +
const criteria = 2;</cpp><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_detail_path_type(enum DetailPathManager::EDetailPathType)''' </div>
 +
<div class="NavContent"><cpp>void set_detail_path_type(enum DetailPathManager::EDetailPathType detail_path_type)</cpp>
 +
устанавливает тип перемещения по пути объекта. См. detail_path_type().</cpp><br /><br /></div></div>
 +
 +
function set_patrol_path(string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType, bool);
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_desired_direction(const vector*)''' </div>
 +
<div class="NavContent"><cpp>void set_desired_direction(const vector* desired_direction)</cpp>
 +
устанавливает направление в следующем состоянии.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_desired_direction()''' </div>
 +
<div class="NavContent"><cpp>void set_desired_direction()</cpp>
 +
обнуляет направление в следующем состоянии. Аргументов не принимает.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_desired_position(const vector*)''' </div>
 +
<div class="NavContent"><cpp>void set_desired_position(const vector* desired_position)</cpp>
 +
устанавливает координаты в следующем состоянии.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_desired_position()''' </div>
 +
<div class="NavContent"><cpp>void set_desired_position()</cpp>
 +
обнуляет координаты в следующем состоянии. Аргументов не принимает.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_dest_level_vertex_id(number)''' </div>
 +
<div class="NavContent"><cpp>void set_dest_level_vertex_id(int level_vertex_id)</cpp>
 +
установить вертекс уровня, куда надо идти.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_item(enum MonsterSpace::EObjectAction, game_object*, number, number)''' </div>
 +
<div class="NavContent"><cpp>void set_item(enum MonsterSpace::EObjectAction object_action, game_object* lua_game_object, int queue_size, int queue_interval)</cpp>
 +
установка предмета, который непись держит в руках. Предмет должен быть оружием, вроде как. Аргументы:
 +
*object_action - тип экшена, константа перечисления MonsterSpace::EObjectAction. В lua оно экспортировано как набор констант класса object
 +
<cpp>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</cpp>
 +
Также есть неэкспортированные константы:<cpp>eObjectActionAimReady1 = 11,
 +
eObjectActionAimReady2 = 12,
 +
eObjectActionAimForceFull1 = 13,
 +
eObjectActionAimForceFull2 = 14,
 +
eObjectActionMisfire1 = 23,
 +
eObjectActionEmpty1 = 24,
 +
eObjectActionNoItems = 65535</cpp>
 +
*lua_game_object - оружие в инвентаре у непися.
 +
*queue_size - длина экшенов
 +
*queue_interval - интервал между экшенами<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_item(enum MonsterSpace::EObjectAction, game_object*, number)''' </div>
 +
<div class="NavContent"><cpp>void set_item(enum MonsterSpace::EObjectAction object_action, game_object* lua_game_object, int queue_size)</cpp>
 +
см. set_item(enum MonsterSpace::EObjectAction, game_object*, number, number). queue_interval по умолчанию 300.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_item(enum MonsterSpace::EObjectAction, game_object*)''' </div>
 +
<div class="NavContent"><cpp>void set_item(enum MonsterSpace::EObjectAction object_action, game_object* lua_game_object)</cpp>
 +
см. set_item(enum MonsterSpace::EObjectAction, game_object*, number). queue_size по умолчанию 0xFFFFFFFF.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_item(enum MonsterSpace::EObjectAction)''' </div>
 +
<div class="NavContent"><cpp>void set_item(enum MonsterSpace::EObjectAction object_action)</cpp>
 +
см. set_item(enum MonsterSpace::EObjectAction, game_object*). Объект по умолчанию nil (убирает итем из рук, иначе не имеет смысла).<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function sight_params()''' </div>
 +
<div class="NavContent"><cpp>CSightParams* sight_params()</cpp>
 +
возвращает объект CSightParams, характеризующий объект, на который смотрит непись, для которого вызываем метод.
 +
<cpp>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 ();
 +
 +
};</cpp><br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function weapon_strapped() const''' </div>
 +
<div class="NavContent"><cpp>bool weapon_strapped() const</cpp>
 +
возвращает true, если оружие за спиной. Аргументов не принимает.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function weapon_unstrapped() const''' </div>
 +
<div class="NavContent"><cpp>bool weapon_unstrapped() const</cpp>
 +
возвращает true, если оружие в руках. Аргументов не принимает.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function wounded(boolean)''' </div>
 +
<div class="NavContent"><cpp>void wounded(bool value)</cpp>
 +
меняет состояние ранености. Если аргумент равен true, то объект помрёт с первого попадания, независимо от здоровья.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function wounded()''' </div>
 +
<div class="NavContent"><cpp>bool wounded()</cpp>
 +
возвращает состояние ранености.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_sight(game_object*, boolean, boolean, boolean)''' </div>
 +
<div class="NavContent"><cpp>void set_sight(game_object* object_to_look, bool torso_look, bool fire_object, bool no_pitch)</cpp>
 +
Устанавливает взгляд непися. Аргументы:
 +
*object_to_look - объект, на который смотрим
 +
*torso_look - игнорировать координату y.
 +
*fire_object - если true, тип взгляда установится в CSightParams.eSightTypeFireObject, false -  CSightParams.eSightTypeObject
 +
*no_pitch - ???<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_sight(game_object*, boolean, boolean)''' </div>
 +
<div class="NavContent"><cpp>void set_sight(game_object* object_to_look, bool torso_look, bool fire_object)</cpp>
 +
см. set_sight(game_object*, boolean, boolean, boolean). по умолчанию no_pitch = false.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_sight(game_object*, boolean)''' </div>
 +
<div class="NavContent"><cpp>void set_sight(game_object* object_to_look, bool torso_look)</cpp>
 +
см. set_sight(game_object*, boolean, boolean). по умолчанию fire_object = false.<br /><br /></div></div>
 +
 +
<div class="NavFrame collapsed">
 +
<div class="NavHead">'''function set_sight(game_object*)''' </div>
 +
<div class="NavContent"><cpp>void set_sight(game_object* object_to_look)</cpp>
 +
см. set_sight(game_object*, boolean). по умолчанию torso_look = false.<br /><br /></div></div>
 +
 +
function set_sight(enum SightManager::ESightType sight_type, const vector& vector3d, bool);<br />
 +
function set_sight(enum SightManager::ESightType sight_type, const vector* vector3d);<br />
 +
function set_sight(enum SightManager::ESightType sight_type, const vector* vector3d, int dwLookOverDelay);<br />
 +
function set_sight(enum SightManager::ESightType sight_type, bool torso_look, bool path);
 
----
 
----
 
Написано [[Участник:K.D.|K.D.]] 18:13, 18 декабря 2011 (UTC) по материалам malandrinus, материалам [http://www.amk-team.ru/forum/index.php?showtopic=7450 форума АМК] и собственным изысканиям.
 
Написано [[Участник:K.D.|K.D.]] 18:13, 18 декабря 2011 (UTC) по материалам malandrinus, материалам [http://www.amk-team.ru/forum/index.php?showtopic=7450 форума АМК] и собственным изысканиям.
  
 
[[Категория:Скрипты]]
 
[[Категория:Скрипты]]

Текущая версия на 06:32, 12 ноября 2012

Навигация

Описание класса game object. Часть I.
Описание класса game object. Часть II.
Описание класса game object. Часть III.
Описание класса game object. Часть IV.
Описание класса game object. Часть V.

Содержание

CAI_Stalker

Эти методы можно применять только для сталкеров.

function add_animation(string, boolean)
function add_animation(string);

function safe_cover(const vector&, number, number);

function target_body_state() const;

function target_mental_state() const;

function target_movement_type() const;

function set_patrol_path(string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType, bool);

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, материалам форума АМК и собственным изысканиям.

Другие места
LANGUAGE