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

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

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

Перейти к: навигация, поиск
 
(не показаны 6 промежуточные версии 2 участников)
Строка 58: Строка 58:
 
возвращает положение тела в виде константы перечисления enum MonsterSpace::EBodyState. В lua это перечисление экспортировано как константы класса move:
 
возвращает положение тела в виде константы перечисления enum MonsterSpace::EBodyState. В lua это перечисление экспортировано как константы класса move:
 
<cpp>const crouch = 0;
 
<cpp>const crouch = 0;
const standing = 1;</cpp><br /><br /></div></div>
+
const standing = 1;</cpp><br /></div></div>
  
 
function target_body_state() const;
 
function target_body_state() const;
Строка 72: Строка 72:
 
возвращает флаги отношения к актору. Данные флажки по идее должны служить как-бы дополнительной памятью сталкеров в отношении ГГ. В них запоминается то, что актор делал сталкеру. Вроде бы внутри движка эти флажки не используются (кроме того, что устанавливаются).
 
возвращает флаги отношения к актору. Данные флажки по идее должны служить как-бы дополнительной памятью сталкеров в отношении ГГ. В них запоминается то, что актор делал сталкеру. Вроде бы внутри движка эти флажки не используются (кроме того, что устанавливаются).
 
А это было написано в документации от GSC:
 
А это было написано в документации от GSC:
возможные флажки:
+
возможные флажки:<br />
game_object.relation_attack
+
game_object.relation_attack<br />
game_object.relation_fight_help_monster
+
game_object.relation_fight_help_monster<br />
game_object.relation_fight_help_human
+
game_object.relation_fight_help_human<br />
game_object.relation_kill
+
game_object.relation_kill<br />
 
Т.е. предполагается работать следующим образом: Смотрим, когда есть такая возможность и актер рядом, что флажки не пустые. В соответствии с поднятым флагом выполняем какое-то действие (устанавливаем диалог, играем звук/анимацию), а потом сбрасываем флаг.<br /><br /></div></div>
 
Т.е. предполагается работать следующим образом: Смотрим, когда есть такая возможность и актер рядом, что флажки не пустые. В соответствии с поднятым флагом выполняем какое-то действие (устанавливаем диалог, играем звук/анимацию), а потом сбрасываем флаг.<br /><br /></div></div>
  
Строка 125: Строка 125:
 
<cpp>const danger = 0;
 
<cpp>const danger = 0;
 
const free = 1;
 
const free = 1;
const panic = 2;</cpp><br /><br /></div></div>
+
const panic = 2;</cpp><br /></div></div>
  
 
function target_mental_state() const;
 
function target_mental_state() const;
Строка 140: Строка 140:
 
<cpp>const walk = 0;
 
<cpp>const walk = 0;
 
const run = 1;
 
const run = 1;
const stand = 2; </cpp><br /><br /></div></div>
+
const stand = 2; </cpp><br /></div></div>
  
 
function target_movement_type() const;
 
function target_movement_type() const;
Строка 157: Строка 157:
 
const patrol_path = 2;
 
const patrol_path = 2;
 
const no_path = 3;
 
const no_path = 3;
const dummy = -1;</cpp><br /><br /></div></div>
+
const dummy = -1;</cpp><br /></div></div>
  
 
<div class="NavFrame collapsed">
 
<div class="NavFrame collapsed">
Строка 170: Строка 170:
 
<cpp>const line = 0;
 
<cpp>const line = 0;
 
const dodge = 1;
 
const dodge = 1;
const criteria = 2;</cpp><br /><br /></div></div>
+
const criteria = 2;</cpp><br /></div></div>
  
 
<div class="NavFrame collapsed">
 
<div class="NavFrame collapsed">
Строка 179: Строка 179:
 
function set_patrol_path(string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType, bool);
 
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