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 ( )
включає можливість розмови об'єкта. Аргументів не сприймає.
disable_talk ( ) _
відключає можливість розмови об'єкта. Аргументів не сприймає.
void stop_talk ( )
прибирає вікно розмови об'єкта. Аргументів не сприймає.
bool is_talk_enabled ( )
повертає true, якщо з об'єктом можна розмовляти. False – якщо заборонено. Аргументів не сприймає.
bool is_talking ( )
повертає true, якщо об'єкт перебуває у активному діалозі. Аргументів не сприймає.
void enable_trade ( )
дозволяє об'єкту вступати у торгівлю. Аргументів не сприймає.
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 – кількість грошей.
pForWho – клієнтський об'єкт, якому передаємо гроші. Повинен успадковувати від CInventoryOwner.
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 – секція, звідки читаємо.
Частина 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/