IncognitaGames 19 Опубликовано вчера в 17:14 Всем привет. Народ, подскажите, блин, скоро голова взорвется))) В общем, есть у меня два нпс эксклюзивных. Мне нужно что бы, если актер подойдет ко второму нпс, ничего не происходило, то есть, был обычный диалог приветствия и "бывай" - дефолтный. Но если актер подойдет к первому нпс и поговорит с ним, на определенном предложении актер должен получить инфопоршень, который активирует второго нпс. То есть, после разговора с первым нпс, актер подходит ко второму, второй его САМ юзает и ведет специальный, сюжетный диалог, по окончанию которого диалоговое окно закрывается, и если еще раз заговорить со вторым нпс, снова будет обычный дефолтный диалог. Короче, у меня это все получилось, все работает, НО когда я снова подхожу ко второму нпс, уже после диалога, он снова меня САМ юзает и ведет обычный дефолтный диалог. Именно что дефолтный. Это мне и нужно, но мне не нужно, что бы он снова (постоянно) меня юзал. Как мне избавится от этого? Фуф, надеюсь понятно объяснил. Еще мне нужно выдать задание, после оканчания этого диалога... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 724 Опубликовано вчера в 17:35 Во-первых, это ТЧ или ЗП или что? Во-вторых, нужны конфиги профилей НПС, логики НПС (с секцией meet и все вот это) и сами профили диалогов. Без них сложно что-либо сказать. Как вообще сделана инициализация диалога от второго НПС? Это важно, ведь все можно реализовывать разными способами, и без конкретики сложно понять, в чем проблема. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
IncognitaGames 19 Опубликовано вчера в 17:45 Платформа ЗП. Инициализация диалога второго нпс сделана так: в характере стоит один стартовый диалог (не считая диалога прощания), в котором, через диалог едитор и прописан сам диалог. У второго тоже самое, но вот в логиках в секции use у них указываются инфопоршни. Так сложно обьяснить... что скинуть? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 116 Опубликовано вчера в 17:45 28 минут назад, IncognitaGames сказал: мне не нужно, что бы он снова (постоянно) меня юзал Переведи его в новую секцию схемы и используй новую секцию meet, но без use = self Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
IncognitaGames 19 Опубликовано вчера в 17:47 Только что, Mass сказал: Переведи его в новую секцию схемы и используй новую секцию meet, но без use = self Я еще нуб в кодинге, больше занимался 3д моделированием. Как это сделать? Перевести в новую схему? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 116 Опубликовано вчера в 17:50 Только что, IncognitaGames сказал: Перевести в новую схему? По поршню например: on_info = {+поршен} walker. Примеров в оригинале предастаточно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
IncognitaGames 19 Опубликовано вчера в 18:02 6 минут назад, Mass сказал: По поршню например: on_info = {+поршен} walker. Примеров в оригинале предастаточно Да, это я понял, вопрос, где прописать эту штуку? Понятно, что в логике, но после чего? В общем, вот логика этого второго нпс. В use стоит инфопоршень, который не дает нпс юзнуть актера до получения определенного инфопоршня. Так же и сюжетный диалог не появится, пока актер не поговорит с первым нпс. Это все работает. Только вот юзает он актера постоянно, кроме первого раза. Нужно это убрать. Один раз юзнул, рассказал что нужно, актер получил задание с меткой и все. Дальше обычный дефолтный диалог с нажатие F [logic@pred_sim_9_stalker_ne_bear] active = walker suitable = {=check_npc_name(pred_sim_9_stalker_ne_bear) !surge_started} prior = 200 [walker] path_walk = stalker_ne_bear_walk path_look = stalker_ne_bear_look use_camp = false combat_ignore_cond = false combat_ignore = combat_ignore combat_ignore_keep_when_attacked = false invulnerable = false ; бессмертие ;gather_items_enabled = false ;help_wounded_enabled = false ;corpse_detection_enabled = false meet = meet [meet] meet_on_talking = false no_move = true abuse = false allow_break = false trade_enable = false close_distance = 5 close_anim = guard_na close_victim = actor far_anim = guard use = {=actor_has_weapon} false, true snd_on_use = {=actor_has_weapon} meet_hello, nill use = {+pred_samostrel_hodunok_start_info !actor_enemy = dist_to_actor_le(7)} self, true Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FacingSlave 33 Опубликовано вчера в 18:02 Если ты имеешь виду дать доступ к диалогу у второго нпс то в его скелете диалога в dialogs_локация придется добавить has_info после чего пишешь свой поршень от диалога первого нпс Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
IncognitaGames 19 Опубликовано вчера в 18:10 А как нужно переключать стартовые диалоги? Ну, тоесть у меня их к примеру три, и я хочу, что бы после каждого выхода из диалогового окна, при повторном разговоре с нпс, у него включался уже второй стартовый диалог, потом третий... У меня почему то они все начинают диалоги с первого стартового. Я понимаю, что нужно выдать в конце каждого диалога инфопоршень, и в начало следующего сделать проверку. Но у меня не работает так(( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 116 Опубликовано вчера в 18:21 (изменено) 18 минут назад, IncognitaGames сказал: pred_samostrel_hodunok_start_info Гляди у тебя тут постоянный инфопоршен активирован. Тебе надо выдать инфо когда закончится диалог. и в условии проверять нет ли инфо Как-то так: use = {+pred_samostrel_hodunok_start_info -new_info !actor_enemy = dist_to_actor_le(7)} self, true Где new_info это инфопоршен который ты пропишешь после диалога или по какому-то событию, не важно snd_on_use = {=actor_has_weapon} meet_hello, nill Правильно nil combat_ignore_cond = falsecombat_ignore = combat_ignore; Бред сивой кабылы combat_ignore_keep_when_attacked = false invulnerable = false ; бессмертие А также no_move = true ; Это тоже мусор Совсем нужно удалить Изменено вчера в 18:21 пользователем Mass 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 724 Опубликовано вчера в 18:30 (изменено) 1 час назад, IncognitaGames сказал: use = {=actor_has_weapon} false, true snd_on_use = {=actor_has_weapon} meet_hello, nill use = {+pred_samostrel_hodunok_start_info !actor_enemy = dist_to_actor_le(7)} self, true У меня еще вопрос, почему тут два use? Нужно, чтобы был один. 1 час назад, IncognitaGames сказал: У меня почему то они все начинают диалоги с первого стартового. Я понимаю, что нужно выдать в конце каждого диалога инфопоршень, и в начало следующего сделать проверку. Но у меня не работает так(( Файлы диалогов покажите пожалуйста. Эдитор диалогов создает\изменяет файлы. Я рекомендую их изучить и вообще редактировать вручную через Notepad++. В них понятная xml структура. Изменено вчера в 18:30 пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 116 Опубликовано вчера в 18:39 (изменено) 12 минут назад, Mawrak сказал: почему тут два use? Это тоже мусор! затрется другой строчкой 12 минут назад, Mawrak сказал: use = {+pred_samostrel_hodunok_start_info !actor_enemy = dist_to_actor_le(7)} self, true Вот тут логическая ошибка! если актор враг, то гг может юзнуть нпс Иногда схема xr_meet может перебить другие схемы так как имеет высокий приоритет, поэтому проверку на условия я бы всё-таки поставил Нужно дополнить условие use = {+pred_samostrel_hodunok_start_info !actor_enemy = dist_to_actor_le(7)} self, {=actor_enemy} false, true Изменено вчера в 18:43 пользователем Mass Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
IncognitaGames 19 Опубликовано вчера в 18:39 13 минут назад, Mass сказал: Гляди у тебя тут постоянный инфопоршен активирован. Тебе надо выдать инфо когда закончится диалог. и в условии проверять нет ли инфо Как-то так: use = {+pred_samostrel_hodunok_start_info -new_info !actor_enemy = dist_to_actor_le(7)} self, true Где new_info это инфопоршен который ты пропишешь после диалога или по какому-то событию, не важно snd_on_use = {=actor_has_weapon} meet_hello, nill Правильно nil combat_ignore_cond = falsecombat_ignore = combat_ignore; Бред сивой кабылы combat_ignore_keep_when_attacked = false invulnerable = false ; бессмертие А также no_move = true ; Это тоже мусор Совсем нужно удалить От души, все получилось со вторым нпс. Он больше не юзает повторно, и так же стартовый диалог у него разговора становится дефолтным. Это мне и нужно было. А у меня еще вопрос: есть у меня нпс - у него несколько стартовых приветствий. При старте игры первое приветствие проигралось при диалоге - сам диалог больше не повторяется. При втором юзе актером, должен быть второй диалог приветствия, потом третий и т.д. А у меня всегда первый стартовый. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 116 Опубликовано вчера в 18:48 IncognitaGames Условия надо ставить в каждой ветке. Обычно использую <has_info>, <dont_has_info>... Нужно действовать аккуратно чтобы не получить знаменитую ошибку с логом No available phrase to say Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
IncognitaGames 19 Опубликовано вчера в 19:00 Ну у меня вот к примеру, я поговорил с нпс (например Ходунок)- у него первый стартовый диалог, который не повторяется. При повторном с ним разговоре, идет дефолтная реплика приветствия. Это выполнено. Потом я поговорил со вторым нпс (с этим, который выше в посте))), и получаю в конце диалога инфопоршень. Он должен активировать у Ходунка второй стартовый диалог, который в свою очередь в конце диалога даст задание. И при выполнении этого задания, при диалоге с Ходунком, открывается третий стартовый диалог со всеми ветками актера. Инфопоршень я дал игроку в конце диалога со вторым нпс, так же в начале второго диалога я сделал проверку, есть ли этот поршень, но Ходунок (после первого диалога, который уже не повторяется), все равно разговаривает дефолтной стартовой фразой, и нет реплик актера, потому что не активирован второй стартовый. Как то так)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 724 Опубликовано 19 часов назад IncognitaGames это ребусы какие-то, кинь файлы пожалуйста((( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
IncognitaGames 19 Опубликовано 14 часов назад 4 часа назад, Mawrak сказал: IncognitaGames это ребусы какие-то, кинь файлы пожалуйста((( ВОПРОС СНЯТ. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты