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

[CoP] Квесты


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

ААА блин фот фигня...незаметил!

 

Добавлено через 11 мин.:

Эмм не помогает вот другой пример

<game_dialogs>

<dialog id="havchik_quest_dialog">

<dont_has_info>quest_havchik_done</dont_has_info>

<dont_has_info>quest_havchik_give</dont_has_info>

<phrase_list>

<phrase id="1">

<text>Да шепнули мне, что проход есть на новую территорию около Янова, вот и решил ребятишек туда своих послать что бы порядок навели...ты помагика нам, принеси еды, оружия...</text>

<next>21</next>

<next>22</next>

</phrase>

<phrase id="21">

<text>Согласен, скоро буду.</text>

<next>3</next>

</phrase>

<phrase id="3">

<text>Отлично! Я сразу понял что наш пацан, а не фраер!</text>

<<give_info>quest_havchik_give</give_info>

<action>dialogs_zaton.give_havchik_quest</action>

</phrase>

<phrase id="22">

<text>Пошел ты! Сам помагай себе и своей гопоте!</text>

<action>dialogs.break_dialog</action>

</phrase>

<phrase id="0">

<text>Здорово братве! О чем думаем?</text>

<next>1</next>

</phrase>

</phrase_list>

</dialog>

 

<dialog id="havchik_quest_prines">

<has_info>quest_havchik_give</has_info>

<precondition>dialogs_zaton.is_has_havchik_sultany</precondition>

<phrase_list>

<phrase id="1">

<text>О, отлично! Теперь мы сможем пройти на Чернобыль-2</text>

<give_info>quest_havchik_done</give_info>

</phrase>

<phrase id="0">

<has_info>quest_has_havchik</has_info>

<text>Вот все, что ты просил</text>

<action>dialogs_zaton.transfer_havchik_to_sultan</action>

<next>1</next>

</phrase>

</phrase_list>

</dialog>

 

 

Добавлено через 1 мин.:

сделал с закрытием по образцу ХМК но таже пока есть разветление в диалоге...убираю его и все нормально

 

там в айди почемуто повторяется 2 и 2..щас поправлю косяк

 

Добавлено через 1 мин.:

В тексте по другому 21 и 22

 

Я тоже с нуля начал

 

Добавлено через 1 мин.:

Да такой же но стоит вырезать разветление в диалоге Гг-все норм работает

 

Народ еще один вопрос по квестам: возможно ли сделать что бы после взятия квеста вкл музон скриптовый?!

 

Ну тогда последние 2 вопроса:

Как сделать что бы квест сам включался просто так?

Как сделать что бы квест вкл если подобрали какой либо предмет?

 

Сообщение от модератора n6260
Любой квест запускается инфопошем - а вызов инфопоша завязать можно на предмет и т.д.
Изменено пользователем n6260

Не соответствует. N6260

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

Хм. А почему у тебя есть в next фразы под номером 21 и 22,но в id фраз нет этих 21 и 22?

Вопрос. Это так надо,сначала писать фразу 1,а потом 0? Вот.

<dialog id="vodka_quest_dialog">

<dont_has_info>quest_vodka_done</dont_has_info>

<dont_has_info>quest_vodka_give</dont_has_info>

<phrase_list>

<phrase id="1">

<text>Принеси бутылочку</text>

<give_info>quest_vodka_give</give_info>

<action>dialogs_zaton.give_vodka_quest</action>

</phrase>

<phrase id="0">

<text>Привет, тебе водки не принести?</text>

<next>1</next>

</phrase>

</phrase_list>

</dialog>

 

Здесь сначала идёт 1,потом 0. Я всегда с нуля начинаю. Это просто автор так написал,или правило такое?

 

Эх,в который раз убеждаюсь,что в Сталкере осторожность и аккуратность очень и очень нужна. Забыл один знак поставить-вылет.

Кажется,проблема вот в чём. Ты пишешь.

<<give_info>quest_havchik_give</give_info>

Надо один раз "<".

 

Лог такой же с этим диалогом?

Изменено пользователем n6260
Мой ник читается гузерус.
Ссылка на комментарий
Эмм не помогает вот другой пример

через браузер открой файл он тебе покажет где косяк

 

Здесь сначала идёт 1,потом 0. Я всегда с нуля начинаю. Это просто автор так написал,или правило такое?

это просто я в стиле ПЫСов диалоги пишу

 

ZeeK В диалоге прописываешь <action>файл.функция_запуска_музыки</action>

логику включайте!

 

Всем остальным! Задаем вопросы касательно создания квестов, а не диалогов!

Ссылка на комментарий
Всем остальным! Задаем вопросы касательно создания квестов, а не диалогов!

:ny_ph34r_1: а может напишешь статью по созаднию хорошего диалога? С большим колличеством веток))

Строгое предупреждение от модератора Halford
Юзаем поиск. Есть отдельная тема по диалогам...

XMK, сегодня вечером буду писать квест по твоему примеру, если будут вопросы напишу, вроде бы всё понятно... не совсем пойму структуру диалога, что за чем следуюет как указать правильно последовательность... что бы не было сразу ответа на ещё не заданный вопрос. Ах да, и возможно ли сделать квест типа "Убить" или "Зачистить"? В ТЧ всё было реализовано легче... :(

Ссылка на комментарий
Любой квест запускается инфопошем - а вызов инфопоша завязать можно на предмет и т.д.

прикол в том, что нет... надо всё завязывать на функцию xr_effect.give_task(ID) (если ты только не имел ввиду, то что я написал ниже)

 

Как сделать что бы квест сам включался просто так?

on_init - инфопоршень, который "включает" задание

 

но я не проверял, лучше вызывай в нужном моменте функцию, данную выше

 

 

Night_SH вот 2 статьи (Создание Диалогов | Создание Диалогов (Полный Обзор)). Учись писать диалоги, потом принимайся за квесты

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

Эмм самый последний вопрос: как добавлять метки на карту при взятии квеста?

 

Сообщение от модератора n6260
Следующий вопрос будет "самым-самым последним"? ;)

Не соответствует. N6260

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

Делал по мануалу, в итоге...

function has_eye3(task, objective)

if db.actor ~= nil then

return db.actor:object("af_eye") ~= nil

end

return false

end --не работает...

 

function eye_out(first_speaker, second_speaker)

dialogs.relocate_item_section(second_speaker, "af_eye", "out") --в диалоге сообщение мол арт отдан а в инвентаре он остается

end

 

function val_in(first_speaker, second_speaker)

dialogs.relocate_item_section(second_speaker, "wpn_val_m1", "in")

end

 

function lck_out(first_speaker, second_speaker)

dialogs.relocate_item_section(second_speaker, "lck", "out") --тут такая же проблема...

end

 

function has_lck_to_boroda(task, objective)

if db.actor ~= nil then

return db.actor:object("lck") ~= nil --и здесь не работает

end

return false

end

 

function val_in(first_speaker, second_speaker)

dialogs.relocate_item_section(second_speaker, "racia_m2", "in")

end

 

function give_lck_quest()

task_manager.get_task_manager():give_task("zat_chimera_search_lck")

end

 

Ссылка на комментарий
function has_eye3(task, objective)

if db.actor ~= nil then

return db.actor:object("af_eye") ~= nil

end

return false

end --не работает...

потому что надо

function has_eye3(task, objective)
if db.actor ~= nil and db.actor:object("af_eye") ~= nil then
return true
end
return false
end

function has_lck_to_boroda(task, objective) - аналогично

 

function eye_out(first_speaker, second_speaker)

dialogs.relocate_item_section(second_speaker, "af_eye", "out") --в диалоге сообщение мол арт отдан а в инвентаре он остается

end

 

dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "af_eye")

 

function lck_out(first_speaker, second_speaker)

аналогично

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

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

 

Добавлено:

Прекондишн я ставил, он не работает(((...

 

Добавлено через 1 мин.:

function has_lck_to_boroda(task, objective)

if db.actor ~= nil then

return db.actor:object("lck") ~= nil

end

return false

end

 

Вот прекондишн.

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

Он не возвращает значение true если у тебя есть предмет, я же тебе выше писал!

 

function has_lck_to_boroda(task, objective)

if db.actor ~= nil and db.actor:object("lck") ~= nil then

return true

end

return false

end

Ссылка на комментарий
Да, разобрался happy.gif . Теперь другой вопрос, как выдать поршн когда подобрал предмет? Просто у меня возникла проблема с диалогом, ветка в которой нужно отдать предмет появляется раньше, а это критично для квеста...

function actor_has_item()

if (db.actor:object("item") ~= nil) and not (db.actor:has_info("actor_has_item")) then

db.actor:give_info_portion("actor_has_item")

end

end

  • Спасибо 1

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

Ссылка на комментарий
Не флудим!


Теперь другой вопрос, как выдать поршн когда подобрал предмет?

открываем bind_stalker.script, находим там function actor_binder:on_item_take (obj) и под ней пишем

if obj and obj.section_name then
  if obj:section_name()=="kolbasa" then
     if not has_alife_info("ИНФОПОРШЕНЬ") then give_info("ИНФОПОРШЕНЬ") end
  end
end

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

С чем может быть связан этот вылет:

FATAL ERROR

 

[error]Expression : no_assert

[error]Function : CXML_IdToIndex<class CPhraseDialog>::GetById

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\xml_str_id_loader.h

[error]Line : 112

[error]Description : item not found, id

[error]Arguments : pda_vzloman

 

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

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

ну дак инфопоршень то пропиши.... в info_zaton.xml к примеру.

 

инфопоршень прописан.

идентификатор проверь

 

Ещё вот такой вылет:

на чистой игре попробуй, без модов, если с модами проверяй скрипты lua чекером.

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

XMK, инфопоршень прописан.

Ещё вот такой вылет:

stack trace:

 

001B:02B4105B lua.JIT.1.1.4.dll

Изменено пользователем Po-meceniy
EuShikari.png
Ссылка на комментарий

Простой квест я создать смог, теперь хотелось бы создать квест более сложный "взяли вещь у одного, отдали второму и вернулись к первому за наградой" прописал этот квест как 2 простых(для каждой части свою функцию, свое условие и т.д). А можно ли это сделать одним квестом с отображением в ПДА?

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

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

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

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

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

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

Войти

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

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...