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

Создание квеста


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

@нерон

Всего 7 постов на форуме, и сразу быка за рога: задать story_id при скриптовом спавне - не самая простая задача...

Значится так: найди и скачай модуль для работы с нет-пакетами от Artos'а, там в редми к нему есть описание работы с абстрактной частью нет-пакета, что как раз и позволяет задать story_id. Изучи и пробуй.

Еще стоит глянуть этот пост из ковырялки ТЧ...

Изменено пользователем UnLoaded
  • Спасибо 1
Ссылка на комментарий

 Помогите сделать переход на второй диалог(о том.что я нашел арт "поискал"...)

 он появляется сразу,а надо только после выполнения задания(после того,как арт в рюкзаке гг.)

.(к слову я его чуть не доработал, там не засчитывается графа(пробел- точка такая) упс как объяснить)

 - 1)найти арт

 - 2)принести арт

 и вот первое,даже если арт в рюкзаке гг не робит.(помогите и с этим.)(это в пда не засчитывается.)

 Стабильно работает,просто не доделал.(вылетов нет.)

 помогите доделать пж. буду благодарен.

Изменено пользователем Хемуль36рус
Завуалированный мат
Добавлено  Хемуль36рус,

2.0

[Eger.Overkill] // Ⓐ // Eкьюалити / Uнити // 

 "Burn the rich // eat the rich"

О себе : Какой-то Ноунэйм с олд форума , заядлый нарушитель общественного порядка и правил , рецидивист.

Egor4ikModMaker.gif

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

Добрый день(ну или что у вас там), подскажите пожалуйста как создать в Сталкер Зов Припяти, квест, задачей которого будет разговор с определенным НПС. 

Для примера: ГГ при старте на ПДА приходит сообщение, в котором написано что ГГ надо о кое чем переговорить с Бородой. При окончании разговора квест завершается.

Заранее спасибо.

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

@serega125633

Ну как то так: выдаешь инфо-порцию, которая запускает задание, в задании(task) устанавливаешь метку на объект задания(Борода), в нужном диалоге Бороды прописываешь через прекондишн с ранее выданной инфо-порцией доступность нужной ветки диалога, в конце ветки диалога выдаешь другую инфо-порцию, которая будет завершать задание.

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

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

 

 

Вот почитай, очень познавательно.

http://stalkerin.gameru.net/wiki/index.php?title=SoC._Создание диалогов

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

@serega125633, написано:

<dialog id="escape_trader_talk_info">
        <precondition>escape_dialog.trader_has_talk_info_wr</precondition>
        <has_info>tutorial_end</has_info>
        <phrase_list>

 

Здесь tutorial_end - это инфопоршн, при котором диалог становится доступным. Если этого инфопоршна нет, диалог недоступен - то есть при "разговоре" с NPC этого диалога не будет. Есть тут правда, ещё и функция, но инфопоршна более чем достаточно для того, чтобы диалог появлялся "только один раз". Уточнение - лучше для этой цели использовать такое условие:

<dont_has_info>tutorial_end</dont_has_info>

То есть, диалог доступен, пока не получен инфопоршн tutorial_end. Как только он будет получен (например, как раз в этом диалоге), то диалог станет недоступным.

Изменено пользователем =VENOM=
  • Спасибо 1
Ссылка на комментарий

Подскажите пожалуйста, как сделать что бы квест выдавался в начале игры, я так и не разобрался. Вроде надо в файле zat_b101_logic.ltx вписывать в секцию [sr_idle] что то типа:

=give_task(test_kvest)

Но почему не работает я так и не понял, объясните пожалуйста попонятнее.

 

 

@=VENOM=, Понятно, просто меня смутила вот это фраза:

Можно было, конечно, прописать в скрипте еще одно условие для ветки, чтобы она появилась только один раз, а потом больше не возникала. Но об этом как-нибудь позже.

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

Вай, вай... Что-ж Вы так жестоко-то? Это ради одного квеста НА КАЖДОМ апдейте тормошить инвентарь и т.д.?

Может лучше воспользоваться ф-цией on_item_take(из bind_stalker.script) ? Которая будет срабатывать только при появлении в инвентаре предметов, что происходит значительно реже, чем апдейт актора...

Ну допустим документов для квеста 3 и для каждого своя секция в конфиге. В on_item_take проверяем наличие предметов с этими секциями, как появятся все 3 - запускаем квест, а дальнейшую проверку отсекаем инфо-порцией, которая будет квест запускать.

 

Имеется ввиду эта функция

 

 

 

function actor_binder:on_item_take (obj)

   

level_tasks.proceed(self.object)

   

--game_stats.update_take_item (obj, self.object)

end

 

 

А как ее можно прописать  в скрипте? Реализовать в игре?

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

@нерон

function actor_binder:on_item_take (obj)
    level_tasks.proceed(self.object)
    --game_stats.update_take_item (obj, self.object)
    local sect = obj:section()
    if sect == "document_1" then
        -- тут что-то делаем
    elseif sect == "document_2" then
        -- тут что-то делаем
        -- и т.д.
    end
end

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
А как ее можно прописать  в скрипте? Реализовать в игре?

Ф-ция on_item_take (obj) уже прописана в классе actor_binder в файле bind_stalker.script.

Выше, naxac уже показал как добавить в эту ф-цию свой функционал. Главное, не трогать то, что уже есть в этой ф-ции - оно нужно движку и другим скриптам игры...

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

Здравствуйте, не знал куда написать... но в конфигах квестов (confic/misc/tm_...) есть строчки типа: reward_money = {~50} 500, {~50}, 750, 1000. Что означает {~50}? Почему денежные суммы перечислены через запятую? P. S.Чистое Небо. 

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

@DrowMan, это вероятность. Т.е. с вероятностью 50% ты получишь 500, если вероятность не сработала, то проверяется следующая: опять 50% - сработает - получишь 750, нет - 1000.

Получается, вероятности выдачи денег: 500 - 50%, 750 - 25%, 1000 - 25%.

Изменено пользователем naxac
  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

Есть ли функция проверки нескольких предметов (Одинаковых, допустим 5 аптечек [medkit]), и, если все предметы в наличии, то выдача инфопоршня? Это для квеста само собой, то есть функция будет засунута в function_complete. Где помимо выполнения подзадания/задания на наличие предметов, тайком будет выдан инфопоршень, который активирует некоторые другие события.

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

@HellRatz, хвосты собаки на Кордоне - пять штук. Квест у Шустрого. По-ходу я, что то из мода вспомнил. А было ли это в оригинале ТЧ?

Изменено пользователем Дизель
Добавлено  HellRatz,

Не было. В escape_dialog.script ничего связанного с хвостами нет.

Добавлено Expropriator,

Например в ОП-2 есть квест у Толика на 5 собачьих хвостов. Встречаются в модах подобные квесты часто. А вообще, эти пять хвостов пошли походу из солянки. Я уже и не помню, от куда.

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий
@HellRatz, если хочешь проверку делать именно через function_complete, то посмотри как это сделано в солянке, в скрипте amk_utils. Функция inventory_search проверяет кол-во предметов в инвентаре и создает кэш, куда записывается отслеживаемая секция предмета и количество - это нужно для того, чтобы постоянно не перебирался инвентарь актера для проверки, не появилось ли нужное количество предметов.
  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

А как выводится список доступных квестов в диалоге? Ну вот спрашивает ГГ: "есть что для меня?" и ему отвечают списком заданий, который убираются/добаляются по мере прохождения. Как это сделано? Не нашел. Платформа ТЧ.

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

@HellRatz, ты про циклические задания, типа принеси хвостов-копыт, или про сюжетные? Если про первые, то это в дебрях task_manager.script, а если про вторые, то это в диалогах. Они в этом случае ограничены инфопоршнями. Ну вот, например, первый попавшийся:

	<dialog id="emb_sak1">
		<has_info>embt_sak1_start</has_info>
		<dont_has_info>embt_sak1_have</dont_has_info>
		<phrase_list>

Этот диалог станет доступным только при наличии "embt_sak1_start" и отсутствии "embt_sak1_have". Вместо инфопоршней могут использоваться скриптовые функции, для ограничения.

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

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

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

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

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

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

Войти

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

Войти
×
×
  • Создать...