Перейти к контенту
Halford

[SoC] Ковыряемся в файлах

Рекомендуемые сообщения

Здравствуйте форумчане, возникла такая проблема: создал квест, но после его взятия ветка диалога из игры не пропадает. В таком случае можно попробовать взять квест второй раз, но игра вылетает с ошибкой "No available phrase to say, dialog[bar_dolg_leader_unique_jobs]"

Кто может подсказать, как сделать чтобы диалог после взятия задания пропадал ?

Intel Xeon E5-2689 2.60GHz, Radeon RX 480, ОЗУ 12 GB DDR3, SSD 120 GB, 3.5 HDD 500 GB + 2.5 HDD 500 GB

Ссылка на комментарий

Ребят, что-то новенькое, меня в игру не впускает((

stack trace:

0023:005489B4 xrCore.dll, IReaderBase<IReader>::find_chunk()

 Удаляю "system.ltx" вылет уходит... Распаковал архивы и тут на те

Ссылка на комментарий

народ, помогите разобраться

 

составил значит диалог из 4 фаз

Скрытый текст

<dialog id="marsh_doctor_medbrat">
        <!--dont_has_info>marsh_doctor_medbrat_start</dont_has_info-->
        <phrase_list>
            <!-- первый диалог -->
            <phrase id="1">
                <text />
                <dont_has_info>marsh_doctor_medbrat_start</dont_has_info>
                <next>2</next>
            </phrase>
            <phrase id="2">
                <text>marsh_doctor_medbrat_start_0</text>
                <next>3</next>
            </phrase>
            <phrase id="3">
                <text>marsh_doctor_medbrat_start_1</text>
                <next>4</next>
            </phrase>
            <phrase id="4">
                <text>marsh_doctor_medbrat_start_2</text>
                <give_info>marsh_doctor_medbrat_start</give_info>
                <next>5</next>
            </phrase>
            <phrase id="5">
                <text>marsh_doctor_medbrat_start_4</text>
                <action>dialogs.break_dialog</action>
            </phrase>
            <!-- Привели Грыца к доктору -->
            <phrase id="10">
                <text />
                <has_info>marsh_gryts_neyrub_start_done</has_info>
                <dont_has_info>marsh_doctor_interrogation_start</dont_has_info>
                <next>11</next>
            </phrase>
            <phrase id="11">
                <text>marsh_doctor_medbrat_done_0</text>
                <next>12</next>
            </phrase>
            <phrase id="12">
                <text>marsh_doctor_medbrat_done_1</text>
                <next>13</next>
            </phrase>
            <phrase id="13">
                <text>marsh_doctor_medbrat_done_2</text>
                <give_info>marsh_doctor_interrogation_start</give_info>
                <next>14</next>
            </phrase>
            <phrase id="14">
                <text>marsh_doctor_medbrat_done_01</text>
                <action>dialogs.break_dialog</action>
            </phrase>
            <!-- Притащили доктору саквояж -->
            <phrase id="20">
                <text />
                <has_info>esc_sidor_medicines_done</has_info>
                <dont_has_info>marsh_doctor_medicines_done</dont_has_info>
                <next>21</next>
            </phrase>
            <phrase id="21">
                <precondition>dialog_drda.precond_medical_container</precondition>
                <text>marsh_doctor_medicines_done_0</text>
                <next>22</next>
            </phrase>
            <phrase id="22">
                <text>marsh_doctor_medicines_done_1</text>
                <next>23</next>
            </phrase>
            <phrase id="23">
                <text>marsh_doctor_medicines_done_2</text>
                <give_info>marsh_doctor_medicines_done</give_info>
                <action>dialog_drda.we_give_medical_container</action>
                <next>24</next>
            </phrase>
            <phrase id="24">
                <text>marsh_doctor_medicines_done_01</text>
                <action>dialogs.break_dialog</action>
            </phrase>
            <phrase id="0">
                <text />
                <next>1</next>
                <next>10</next>
                <next>20</next>
                <next>30</next>
            </phrase>
            <!-- Финальный диалог с доктором с отсылкой на Штыря -->
            <phrase id="30">
                <text />
                <has_info>marsh_bulat_interview</has_info>
                <next>31</next>
            </phrase>
            <phrase id="31">
                <has_info>marsh_bulat_interview</has_info>
                <text>marsh_doctor_trial_done_0</text>
                <next>32</next>
            </phrase>
            <phrase id="32">
                <text>marsh_doctor_trial_done_1</text>
                <next>33</next>
            </phrase>
            <phrase id="33">
                <text>marsh_doctor_trial_done_2</text>
                <next>34</next>
            </phrase>
            <phrase id="34">
                <text>marsh_doctor_trial_done_3</text>
                <next>35</next>
            </phrase>
            <phrase id="35">
                <text>marsh_doctor_trial_done_4</text>
                <next>36</next>
            </phrase>
            <phrase id="36">
                <text>marsh_doctor_trial_done_5</text>
                <next>37</next>
            </phrase>
            <phrase id="37">
                <text>marsh_doctor_trial_done_6</text>
                <next>38</next>
            </phrase>
            <phrase id="38">
                <text>marsh_doctor_trial_done_7</text>
                <action>dialogs.break_dialog</action>
            </phrase>
        </phrase_list>
    </dialog>

в зависимости от получения инфопоршня открывается новая фаза диалога, и по идее, должна блокироваться выдача прошлой фазы. Первая фаза диалога работает нормально, после выдачи инфопоршня открывается вторая, но после завершения второй фазы диалога у бота снова открывается первая фаза. Как мне сделать так, чтоб прочитав фазу диалога она больше не открывалась?

Лучше сделать мод с 0, чем пытаться залатать багованный.

Ссылка на комментарий

@DarkSnowder можно предположить, что у тебя в стартовой фразе сначала идёт текст , а только потом проверка на инфопоршень, а должна сначала идти проверка, а потом текст. Но вообще для стартового диалога НПС, для начальной фразы, лучше не задавать никаких условий, потому что если условие не выполнится, т.е. условие будет не true, игра просто вылетит в логом типа "нет доступной фразы", а если задавать условие, которое всегда выполняется, то зачем оно нужно? ну и в случае с инфопоршнями , можно сделать 4 диалога, с разными начальными фразами, где в id диалога задавать проверку на инфопоршень, так чтоб после прокрутки первого диалога, он больше не появлялся, а выдавался поршень на появлении второго, и так далее.

 

 

 

Ссылка на комментарий
1 час назад, CiberZold сказал:

сначала идёт текст , а только потом проверка на инфопоршень,

Оно там закомментировано, если чё.

1 час назад, CiberZold сказал:

Но вообще для стартового диалога НПС, для начальной фразы, лучше не задавать никаких условий

Звезда Сидоровича :good:

 

@DarkSnowder, см. чётко наличие инфопоршней в ветках диалога: в первой ветке поршень выдали, в следующей ветке проверили его наличие и т.д.

 

Как вариант: разбить на несколько диалогов (если так проще) и выдавать их непосредственно в логике NPC в секции meet.

На примере Волка:

[meet@wolf]
...
--* тут наши поршни
meet_dialog = {-agroprom_military_case_have} escape_lager_volk_talk, escape_lager_leader_hello

 

Ссылка на комментарий

Потестил диалог, оставив из всех проверок только <dont_has_info>:

• понятная ошибка: фразы с заглушенным текстом <text /> не считаются существующими – либо не выводится весь диалог, либо случается вылет "нет доступных фраз"

• непонятная ошибка: при выборе фразы 0 случайным образом выдается одна из доступных веток (1, 10, 20, 30), хотя должны отображаться все

   • тест: выбор, выход, повтор

   • с проверкой <has_info> и выданными инфо-поршнями фраз 10, 20, 30 картина та же

• если ввести начальные тексты и прокрутить какую-то ветку диалога до получения инфо, эта ветка, как положено, перестает выдаваться при выборе фразы 0

   • после трех инфо-поршней остается только ветка с начальной фразой 30 – указанной в исходном посте ошибки с повтором нет

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@Norman Eisenherz @Купер @CiberZold Хотел знаете ли сделать как в билде АМКII диалог у сидора - в один диалог все его фразы квестовые вставлены, и выдавались они по инфопоршням. Но чёт у меня ни шиша не выходит, значит придется откатывать на раздельные диалоги.

Изменено пользователем DarkSnowder

Лучше сделать мод с 0, чем пытаться залатать багованный.

Ссылка на комментарий

@DarkSnowder, на первый взгляд с диалогом всё в порядке...

Проверь не удаляется ли инфопоршень "marsh_doctor_medbrat_start" где-нибудь ещё, вне этого диалога.

S.T.A.L.K.E.R. CoP Objects (upd 06.06.24)

Ссылка на комментарий

@DarkSnowder 

Если используешь sdk_smg, там есть dialog_editor.

http://stalkerin.gameru.net/wiki/index.php?title=DialogEditor

Скрытый текст

Dialog-Editor-Interface.gif

 

  • Нравится 1
Ссылка на комментарий
11 часов назад, DarkSnowder сказал:

Хотел знаете ли сделать как в билде АМКII диалог у сидора

брать то как делали в АМК 15 лет назад не самый лучший пример:) вообще нулевой фразе непися ставить условия это плохо, мало ли где-то упустишь что-то и вылет по отсутствующей фразе, потому что не выполнилось условие, а у тебя уже мод в релиз вышел  - и пошли патчи-фиксы) условия появления в самом id диалога - это надежней, максимум что будет , в таком случае, если условие не выполнится просто не будет этого диалога у НПС.

Кстати, скрипт на рандомные задания также сделан по принцпу отдельных диалогов, там просто под каждую ситуацию (проверка на наличие квестов и выдача квеста, получение награды) каждый раз генерится отдельный диалог со своим id, всё в один диалог не пихается)

Изменено пользователем CiberZold
Ссылка на комментарий
14 hours ago, CiberZold said:

каждый раз генерится отдельный диалог

Разве отдельный? Там всего два диалога на NPC, (parent)_trader_dialog и (parent)_trader_reward, а дальше список заданий (с фильтром) в качестве фраз.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

Здравствуйте, можно ли как-то сделать так чтобы на горячую клавишу в инвентаре разряжалось всё оружие? И так же на горячую клавишу можно было взять весь хабар с сталкера или с тайника?

Ссылка на комментарий

  

Как фиксить такое? Статика ес чо:
 

Спойлер

ss-imcrazyhoudini-11-30-23-10-50-54-l01-
ss-imcrazyhoudini-11-30-23-10-50-51-l01-

 

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@Iriarith inventory_for_each + unload_magazine, если без сохранения патронов. По-хорошему, разряжать надо при взятии в инвентарь, чтобы не перебирать все предметы при каждом вызове.

  • Спасибо 1
  • Согласен 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
16 часов назад, Iriarith сказал:

можно ли как-то сделать так чтобы на горячую клавишу в инвентаре разряжалось всё оружие?

Смотри в пример этот аддон https://www.amk-team.ru/forum/topic/13341-vashi-pravki-dlya-stalker-tch/?do=findComment&comment=1030962

 

  • Спасибо 1
Ссылка на комментарий

Чем распаковать архивы ТЧ, перепакованные упаковщиком "макрона" ? 

"Universal extractor 2.0" распаковывает половину архивов, оставляет пустые папки, другие (допустим бардак) вобще не читают эти архивы. 

Движком пробывал, папка "texture" на половину распаковывается. 

Изменено пользователем андрей дронав
Ссылка на комментарий

@андрей дронав,

Пример бы (поменьше размером для простоты).

"Калашников" под ТС тоже не хочет (Распаковка игры. Работа с игровыми архивами)? тынц - настройка + необходимый софт.

"бардак" - свежий (ну... относительно)? тынц.

В SUE тоже, кстати, в качестве основного инструмента "вшит" именно converter.exe. Только уже достаточно "пожилой", ~15-16гг.

 

 

 

  • Спасибо 1
  • Полезно 2
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти

AMK-Team.ru

×
×
  • Создать...