Описание класса game object. Часть III.
Материал из S.T.A.L.K.E.R. Inside Wiki
Навигация |
---|
Описание класса game object. Часть I. |
Содержание
CInventoryOwner
Эти методы можно применять только для живых объектов с инвентарем - сталкеров, монстров, актора.
float accuracy()возвращает точность стрельбы объекта.
void transfer_item(game_object* pItem, game_object* pForWho)
передает предмет от одного объекта к другому. Аргументы:
- pItem - передаваемый предмет. Должен наследовать от класса CInventoryItem.
- pForWho - объект, которому передаем предмет. Должен наследовать от класса CInventoryOwner, то есть тоже иметь инвентарь.
void set_relation(enum ALife::ERelationType relation, game_object* pWhoToSet)
устанавливает отношение обрабатываемого объекта к объекту, передаваемому вторым аргументом pWhoToSet. Первый аргумент - член перечисления ALife::ERelationType. В Lua оно экспортировано в виде констант класса game_object.
const friend = 0 const neutral = 1 const enemy = 2 const dummy = -1
Есть еще две неэкспортированных константы:
eRelationTypeWorstEnemy = 0x3 eRelationTypeLast = 0x4
game_object* get_current_outfit() constвозвращает скриптовый объект итема в шестом слоте (броня). Возвращается скриптовый аналог CInventoryItem. Для сталкеров и монстров возвращает nil, для актора работает.
float get_current_outfit_protection(int hit_type)возвращается текущая защита от типа хита, передаваемого аргументом hit_type, для данного костюма. Для сталкеров и монстров возвращает nil, для актора работает. Типы хита см. в классе hit.
int object_count() constвозвращает количество предметов в инвентаре.
game_object* object(int iIndex)возвращает скриптовый объект предмета из инвентаря по его индексу, задаваемому аргументом iIndex.
game_object* object(string caObjectName)возвращает скриптовый объект предмета из инвентаря по его имени, задаваемому аргументом caObjectName. В ЗП нет.
void activate_slot(int slot_id)делает слот slot_id активным.
int active_slot()возвращает номер активного слота.
game_object* item_in_slot(int slot_id) constвозвращает клиентский объект итема в слоте с номером slot_id. Возвращается скриптовый аналог CInventoryItem. Если в слоте ничего нет, вернет 0.
game_object* active_item()возвращает клиентский объект итема в активном слоте. Возвращается скриптовый аналог CInventoryItem.
void change_character_reputation(int char_rep)увеличивает репутацию объекта на char_rep.
int character_reputation()возвращает репутацию объекта.
void change_goodwill(int delta_goodwill, game_object* pWhoToSet)
изменяет отношение объекта к объекту. Аргументы:
- delta_goodwill - величина изменения отношения.
- pWhoToSet - клиентский объект, к которому изменяем отношение.
int goodwill(game_object* pToWho)возвращает отношение объекта к объекту, передаваемому указателем pToWho.
void set_goodwill(int goodwill, game_object* pWhoToSet)
устанавливает отношение объекта к объекту. Аргументы:
- goodwill - отношение.
- pWhoToSet - клиентский объект, к которому устанавливаем отношение.
int general_goodwill(game_object* pToWho)возвращает полное отношение данного объекта к объекту, передаваемому по указателю pToWho. Вычисляется по формуле:goodwill + community_goodwill + reputation_relation + rank_relation + community_relation. Объект, передаваемый по указателю pToWho, также должен наследовать от CInventoryOwner.
string character_community()возвращает текущую группировку, к которой принадлежит объект. Аргументов не принимает.
void set_character_community(string comm, int squad, int group)
определяет объект в группировку. Аргументы:
- comm - название группировки
- squad - отряд, в который определяется объект
- group - группа, в которую определяется объект.
string profile_name()возвращает имя профиля объекта. Аргументов не принимает.
bool give_info_portion(string info_id)выдает объекту инфопоршень. Возвращает состояние операции (успех/неуспех).
bool disable_info_portion(string info_id)удаляет у объекта инфопоршень. Возвращает состояние операции (успех/неуспех).
void enable_talk()включает возможность разговора для объекта. Аргументов не принимает.
void disable_talk()отключает возможность разговора для объекта. Аргументов не принимает.
void stop_talk()убирает окно разговора для объекта. Аргументов не принимает.
bool is_talk_enabled()возвращает true, если с объектом разрешено разговаривать. False - если запрещено. Аргументов не принимает.
bool is_talking()возвращает true, если объект находится в активном диалоге. Аргументов не принимает.
void enable_trade()разрешает объекту вступать в торговлю. Аргументов не принимает.
void disable_trade()запрещает объекту вступать в торговлю. Аргументов не принимает.
bool is_trade_enabled()возвращает true, если с объектом разрешено торговать. False - если запрещено. Аргументов не принимает.
bool dont_has_info(string info_id)возвращает true, если у объекта нет инфопоршня info_id.
bool has_info(string info_id)возвращает true, если у объекта есть инфопоршень info_id.
void mark_item_dropped(game_object* item)устанавливает предмету в инвентаре объекта флажок Fdrop, для того, чтобы объект не удалялся death manager'ом. Аргумент item должен наследовать от класса CInventoryItem.
bool marked_dropped(game_object* item)проверяет, стоит ли у предмета флажок Fdrop, то есть будет ли он удаляться при смерти непися. Аргумент item должен наследовать от класса CInventoryItem.
void drop_item(game_object* pItem)выбрасывает предмет из инвентаря объекта. Аргумент pItem должен наследовать от класса CInventoryItem.
void drop_item_and_teleport(game_object* pItem, vector position)выбрасывает предмет из инвентаря объекта и телепортирует этот предмет по координатам, указанным в position. Аргумент pItem должен наследовать от класса CInventoryItem.
void iterate_inventory(function<void> , object)перебор объектов в инвентаре. function<void> - функтор, который вызывается для каждого предмета.
void inventory_for_each(const function<void>&)
перебор объектов в инвентаре. Перебираются не все предметы, а только те, которыми можно торговать (не-квестовые и у которых не выставлено в конфиге can_trade = false). Имеется определенный порядок перебора:
- рюкзак
- пояс
- слоты (которые доступны для управления).
CTime* get_info_time(string info_id)В ЗП нет. Возвращает время получения инфопоршня info_id в виде объекта CTime.
void give_money(int money)увеличивает количество денег у объекта на money.
int money()возвращает количество денег у объекта. Аргументов не принимает.
void transfer_money(int money, game_object* pForWho)
передает от обрабатываемого объекта объекту количество денег, равное money. Аргументы:
- money - количество денег.
void set_character_rank(int char_rank)устанавливает ранг объекта равным char_rank.
int character_rank()возвращает ранг объекта. Работает также для объектов CBaseMonster.
string character_name()возвращает имя персонажа (из character_desc_***.xml).
void buy_condition(ini_file* ini_file, string section)
прописывание торговцу конфига с доступностью и ценами предметов на покупку. Аргументы:
- ini_file - дескриптор ltx файла, откуда читаем конфиг
- section - секция, откуда читаем.
void buy_condition(float friend_factor, float enemy_factor)устанавливает параметры покупки для объекта (friend_factor, enemy_factor).
void sell_condition(ini_file* ini_file, string section)
прописывание торговцу конфига с доступностью и ценами предметов на продажу. Аргументы:
- ini_file - дескриптор ltx файла, откуда читаем конфиг
- section - секция, откуда читаем.
void buy_condition(float friend_factor, float enemy_factor)устанавливает параметры продажи для объекта (friend_factor, enemy_factor).
void show_condition(ini_file* ini_file, string section)
прописывание торговцу конфига с видимостью предметов при торговле (дополнительный фильтр). Аргументы:
- ini_file - дескриптор ltx файла, откуда читаем конфиг
- section - секция, откуда читаем.
void buy_supplies(ini_file* ini_file, string section)
обновить ассортимент в соответствии с конфигом. Аргументы:
- ini_file - дескриптор ltx файла, откуда читаем конфиг
- section - секция, откуда читаем.