Сповіщення
Очистити все

Повернення сидоровича в Поклик Прип'яті


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Як відомо, персонажа Сидоровича в Поклиці Прип'яті немає. Якщо ви хочете повернути його, просто так додати його не вийде, т.к. після Чистого Неба його вирізали. Однак, при належних знаннях, відновити його не складає особливих труднощів.

Якщо поколупатися в ресурсах гри, можна зрозуміти, що вирізаний Сидорович був лише частково: модель, текстури та анімації залишилися, а от у конфігах і скриптах його видалили.

Конфігі

Для початку скопіюйте з ігрових архівів ЧН файл m_person.ltx

Шлях: gamedata\configs\creatures

І помістіть тим же шляхом, але вже в директорії ЗП .

Далі необхідно підключити файл m_person.ltx до гри.

Для цього в тій же папці відкрийте файл stalkers.ltx будь-яким текстовим редактором і запишіть рядок:

#include "m_person.ltx"

Скрипти

Відновити секцію у конфігах недостатньо. Якщо спробувати спати Сидоровича в LE , станеться помилка: Can't create entity

Причина в тому, що в секції Сидоровича [m_trader]в параметрі classвказаний неіснуючий скриптовий клас AI_TRD_S.

Не існує він тому, що у ЗП було вирізано зі скриптів.

Відкрийте файл class_registrator.script і запишіть у нього наступний рядок:

	cs_register 	( object_factory ,  CAI_Trader , se_stalker.se_trader , AI_TRD_S , script_trader ) _ _ _ _ 										 		

Далі, відкрийте файл se_stalker.script і запишіть в нього наступну функцію:

class  " se_trader "  ( cse_alife_trader ) 
function  se_trader : __init  ( section )  super  ( section ) 
end 
function  se_trader : keep_saved_data_anyway ( ) 
	return  true 
end

Готово! Тепер Сидорович сповниться.

X-Ray SDK

З приводу того, як правильно спанити Сидоровича в Level Editor , потрібно пояснити деякі моменти.

7760b78e7af9eab.png
Налаштування спавна Сидоровича в X-Ray SDK CS

У графі Custom Dataзадається шлях до файлу з логікою Сидоровича (відтворення анімацій та звуку; торгівля тощо). Наприклад:

[logic] 
cfg  =  scripts\escape\esc_trader.ltx

Шлях вказується щодо директорії gamedata\configs

У графі Story IDзадається ім'я ідентифікатора з gamedata\configs\ game_story_ids.ltx

У графі npc profileзадається ім'я секції з файлу gamedata\configs\gameplay\ npc_profile.xml

Ця секція виглядає так:

  <character  id= "escape_trader" > 
	<class> Trader </class> 
	<specific_character> escape_trader </specific_character> 
  </character>

Якщо вказати неправильно, може статися перший варіант вильоту: xml_str_id_loader.h

Рядок:

<specific_character> escape_trader </specific_character>

Вказує ім'я секції у файлі character_desc_escape.xml , який підключений у параметрі specific_characters_filesсекції [profiles]файлу gamedata\configs\ system.ltx .

Ця секція виглядає так:

  <specific_character id="escape_trader" no_random = "1">
    <name>escape_trader_name</name>
    <icon>ui_npc_u_trader_1</icon>
    <bio>escape_trader_bio</bio>

    <class>trader</class>
    <community>trader</community>
    <visual>actors\stalker_trader\stalker_trader_1</visual>

    <rank>330</rank>
    <reputation>23</reputation>
    <money min="100000" max="100000" infinitive="1"/>
    <supplies>
      [spawn] \n
    </supplies>
#include "gameplay\character_criticals_4.xml"
    <start_dialog>esc_trader_meet</start_dialog>
<!-- #include "gameplay\character_dialogs.xml" -->
    <!-- <actor_dialog>esc_trader_about_zone</actor_dialog> -->
    <actor_dialog>esc_trader_community</actor_dialog>
    <actor_dialog>esc_trader_about_you</actor_dialog>
    <actor_dialog>esc_trader_about_situation</actor_dialog>
    <actor_dialog>esc_trader_about_questions</actor_dialog>
    <actor_dialog>esc_trader_about_other</actor_dialog>
    <actor_dialog>treasure_dialog</actor_dialog>
  </specific_character>

Якщо вказати неправильно, може статися другий варіант вильоту: xml_str_id_loader.h


   
Цитата