Восстановление Сидоровича — различия между версиями
(Новая страница: «__NOTOC__ {| class="wikitable" style="float:right; margin-left:0.8em; clear:right; text-align: center; font-size:12px; width: 300px;" |- | colspan=2 style="font-s…») |
|||
Строка 38: | Строка 38: | ||
== Скрипты == | == Скрипты == | ||
− | Восстановить секцию в конфигах недостаточно. Если попробовать заспавнить Сидоровича в '''LE''', произойдет ошибка: [[ | + | Восстановить секцию в конфигах недостаточно. Если попробовать заспавнить Сидоровича в '''LE''', произойдет ошибка: [[Can't create entity]] |
Причина в том, что в секции Сидоровича <code>[m_trader]</code>, в параметре <code>class</code> указан несуществующий скриптовый класс <code>AI_TRD_S</code>. | Причина в том, что в секции Сидоровича <code>[m_trader]</code>, в параметре <code>class</code> указан несуществующий скриптовый класс <code>AI_TRD_S</code>. | ||
Строка 88: | Строка 88: | ||
</character> | </character> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Если указать неверно, может произойти 1-ый вариант вылета: [[ | + | Если указать неверно, может произойти 1-ый вариант вылета: [[xml_str_id_loader.h]] |
Строка 127: | Строка 127: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Если указать неверно, может произойти 2-ой вариант вылета: [[ | + | Если указать неверно, может произойти 2-ой вариант вылета: [[xml_str_id_loader.h]] |
[[Категория:F.A.Q.]][[Категория:Игровые архивы]][[Категория:Конфиги]][[Категория:Скрипты]][[Категория:X-Ray SDK]][[Категория:Level Editor]] | [[Категория:F.A.Q.]][[Категория:Игровые архивы]][[Категория:Конфиги]][[Категория:Скрипты]][[Категория:X-Ray SDK]][[Категория:Level Editor]] |
Версия 14:46, 27 февраля 2019
Восстановление Сидоровича | |
Автор | aka_sektor |
Тип статьи | руководство |
Актуальность | ЗП |
Необходимый софт | Текстовый редактор, X-Ray SDK CoP |
Необходимые файлы | m_person.ltx, stalkers.ltx, class_registrator.script, se_stalker.script, game_story_ids.ltx, npc_profile.xml, system.ltx, character_desc_*.xml |
Как известно, персонаж Сидоровича в Зове Припяти отсутствует. Если вы хотите его вернуть, просто так добавить его не получится, т.к. после Чистого Неба он был вырезан. Однако, при должных знаниях, восстановить его не составляет особого труда.
Если поковыряться в ресурсах игры, можно понять, что вырезан Сидорович был лишь частично: модель, текстуры и анимации — остались, а вот в конфигах и скриптах его удалили.
Конфиги
Для начала, скопируйте из игровых архивов ЧН, файл 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, нужно пояснить некоторые моменты.
![]() |
Настройки спавна Сидоровича в 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>
Если указать неверно, может произойти 1-ый вариант вылета: 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>
Если указать неверно, может произойти 2-ой вариант вылета: xml_str_id_loader.h