Ч.А.В.О. (Вопросы и ответы по созданию модов)
Доброго времени суток. Решился немного поковырять сингл для его адаптации для прохождения с напарниками. Имеющиеся моды, требующие ввода консольных команд, впечатлили не очень сильно, поэтому захотелось модифицировать исходники самостоятельно.

В ходе работы возникли несколько вопросов. Понимаю, что людей, продолжающих заниматься моддингом ПЗ в настоящее время не слишком много, но возможно, мне повезёт, у некоторые ответы удастся найти до того, как я отыщу их методом "научного тыка".

Из инструментария пользуюсь EiEdit для редактирования баз, MobSurgeon для изменения mob-файлов, MapEd - для добавления (а точнее - копирования) новых юнитов.

И к вопросам по существу:
1. При постановке в брифинговые зоны (Поселок, Ингос, Укрытие) новых персонажей посредством MapED при наведении на них курсора их имена не появляются, что делает разговор с ними невозможным, хотя сведения о новых юнитах включены и в MonsterPrototypes, и в разделы pers и unit texts.res. В качестве объектов в соответствующем моб-файле юниты также описаны.
Пояснение: в настоящее время я отключил проверку наличия у главного героя напарников, которая проводилась Тка-Рик'ом по завершению каждого аллода. Вместе с тем, иногда возникает желание вернуть напарников домой и заменить их на других спутников. В этой связи я хочу создать персонажа, который сможет осуществлять переброску главного героя между аллодами (при этом тетепортация с Гипата в Канию и Хадаган будет становиться доступной по мере открытия этих островов)

2. В качестве промежуточного этапа попытался написать новый диалог со свиньей в Поселке. Текст диалога прописал в разделе briefing texts.res, а сами действия включил в mob-файл.
Код:
Script VCheck#0#632
(
 if
 (
   IsEqual( GSGetVar( 0, "b.pig.p2" ) , 2 )
 )
 then
 (
   KillScript(  )
   VTriger#0#636( this )
 )
)

Script VTriger#0#636
(
 if
 (
 )
 then
 (
   KillScript(  )
   Sleep( 100 )
   GSSetVar( 0, "b.pig.p2", 1 )
   VCheck#0#632( this )
 )
)

<...>
Script #OnBriefingComplete
<...>
if
 (
   IsEqualString( szComplete, "b.pig.p2" )
 )
 then
 (
   KillScript(  )
   PlayMovie( "teleprt2.bik" )
   LeaveToZone( 0, "gz8k", 0 )
 )
<...>
Первоначальная активация диалога - при первом посещении посёлка.

Результат - в диалоге со свиньёй появляется новая пустая реплика (знак "-" с пустотой после него). В этой связи создаётся впечатление, что игра не видит этого диалога, и его нужно вписать куда-то ещё. Что я не учитываю?

3. Также хотелось бы поэксперементировать с предельным количеством людей в команде.
Но всё, что я сумел найти, это то, что указанное число определяется переменной GetMercsNumber( 0 ). Есть ли возможность принудительного изменения этой переменной?
3.1. Кроме того, в разделе briefing файла texts.res содержатся все диалоги с наёмниками, когда они отказываются идти в команду к герою в связи с "перенаселением". Однако в basecam.mob нет ссылок на активацию указанных диалогов и проверку счётчика. Где ещё может быть прописано его выполнение?

Прошу прощения за многословность и корявость формулировок.
Ответ


Сообщения в этой теме
Ч.А.В.О. (Вопросы и ответы по созданию модов) - от Lentyn - 08.01.2018, 19:15

Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)