Расширенное меню


Меню категорий

Мир зоны [17]
Для модмейкера [18]
Прохождения [6]
FAQ Читы Коды [6]

Энциклопедия ST-SE






[?]
Логин: Пароль:
S.T.A.L.K.E.R. » Для модмейкера ҂ 13.09.2011 Вторник (01:50) ∎ Добавил: Saha

Создание нового квеста Сталкер Зов Припяти


Разбираем параметры

icon — иконка квеста
Пример использования: icon = ui_inGame2_Put_v_pripyat

prior — приоритет квеста
Пример использования: prior = 112

storyline — флаг задания (true — сюжетное, false — несюжетное)
Пример использования: storyline = true

title — название задание (id из xml) — если брать название не из xml, то в игре оно будет отображаться без пробелов
Пример использования: title = zat_a9_way_gates_check_transport_workshop_name

descr — описание задания (id из xml) — если брать название не из xml, то в игре оно будет отображаться без пробелов
Пример использования: descr = zat_a9_way_gates_check_transport_workshop_text

target — цель на карте (метка)
Примеры использования:
target =zat_a2_stalker_barmen (ID нпц, на которого будет поставлена метка)
target = {+название_инфопоршня}zat_a2_stalker_barmen — проверка инфопоршня, после которого метка будет поставлена на нпц

condlist_x — блок условий. возможные значения complete, reversed, fail
Примеры использования:
condlist_0 = {+название_инфопоршня} complete — если выполняется условие, задание выполнено.
condlist_1 = {+название_инфопоршня} reversed — если выполняется условие, значит есть возможность повторить задание.
condlist_2 = {+название_инфопоршня} fail — если выполняется условие, задание провалено.

on_init - действия, которые выполняются, при выдаче задания
on_complete — действия, которые выполняются, если задание выполнено
on_reversed — действия, которые выполняются, если задание провалено
Примеры использования:
on_init = %+название_инфопоршня% -- выдаем опр.инфопоршень
on_complete = %=inc_faction_goodwill_to_actor(stalker:200)% — повышаем репу у сталкеров (функция юзаются из xr_effect)
on_reversed = {+название_ифопоршня} %=inc_faction_goodwill_to_actor(stalker:200)% — повышаем репу у сталкеров, только если есть опр.инфопоршень

reward_money - денежная награда
reward_item - награда в виде предмета

Примеры использования:
reward_money = 5000 -- даем актору 5000.
reward_item = wpn_ak74 -- даем актору АК-74.

Примечание: Награда выдается двумя методами: от NPC или просто свалится с неба. Если не найден NPC, с которым мы в диалоге, то валится с неба.

Практика

Используемые файлы:
configs\gameplay\dialogs_zaton.xml
configs\gameplay\info_zaton.xml
configs\gameplay\character_desc_zaton.xml
configs\text\rus\st_quests_zaton.xml
configs\misc\tm_zaton.ltx
scripts\dialogs_zaton.script

Открываем файл dialogs_zaton.xml и добавляем перед :

Code
<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>  

<dialog id="vodka_quest_prines">  
<has_info>quest_vodka_give</has_info>  
<precondition>dialogs_zaton.is_has_vodka_borode</precondition>  
<phrase_list>  
<phrase id="1">  
<text>Спасибо, чувак. Выручил</text>  
<give_info>quest_vodka_done</give_info>  
</phrase>  
<phrase id="0">  
<has_info>quest_has_vodka</has_info>  
<text>Вот твоя водяра</text>  
<action>dialogs_zaton.transfer_vodka_to_boroda</action>  
<next>1</next>  
</phrase>  
</phrase_list>  
</dialog>


Далее добавляем наши диалоги Бороде.
Открываем файл character_desc_zaton.xml
Находим строчку
Code
<actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog>
и под ней пишем:

Code
<actor_dialog>vodka_quest_dialog</actor_dialog>  
<actor_dialog>vodka_quest_prines</actor_dialog>


Сохраняем.

Открываем файл info_zaton.xml и добавляем перед
Code
</game_information_portions>


Code
<info_portion id="quest_vodka_give"></info_portion>  
<info_portion id="quest_has_vodka"></info_portion>  
<info_portion id="quest_vodka_done"></info_portion>


Открываем файл dialogs_zaton.script и в начало записываем:

Code
function give_vodka_quest()  
task_manager.get_task_manager():give_task("quest_vodka_give")  
end  
function is_has_vodka_borode()  
if db.actor:object("vodka") then  
return true  
end  
return false  
end  
function transfer_vodka_to_boroda(first_speaker, second_speaker)  
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "vodka")  
end


Сохраняем.

Открываем файл tm_zaton.ltx и в конец пишем:
Code

[quest_vodka_give]  
icon = ui_inGame2_Put_v_pripyat  
prior = 2  
storyline = false  
title = {=actor_has_item(vodka)}vodka_barmen_prinesti_name, vodka_barmen_naiti_name  
descr = vodka_barmen_descr  
target = {=actor_has_item(vodka)}zat_a2_stalker_barmen  
condlist_0 = {+quest_vodka_done} complete


Открываем файл st_quests_zaton.xml и добавляем после :

Code
<string id="vodka_barmen_naiti_name">  
<text>Найти водку для бармена</text>  
</string>  
<string id="vodka_barmen_prinesti_name">  
<text>Принести водку бармену</text>  
</string>  
<string id="vodka_barmen_descr">  
<text>Бармен в тестовых целях попросил найти и принести ему 2 бутылки водки</text>  
</string>


Сохраняем.

Автор: XMK

-------------------------------------------------------------------------------------------


От THE_ATLAS

Примечание №1

В варианте диалога от автора статьи есть ненужная строка: quest_has_vodka - эта функция по идее должна проверять наличие инфопорции quest_has_vodka которая ничем не выдаётся... Наличие (или отсутствие) строчки quest_has_vodka в структуре диалога ничего не изменит, поэтому она просто не нужна... Тем более что она может стать причиной багов.

Примечание №2

Чтобы скрыть диалог выполнения квеста (vodka_quest_prines) - "Вот твоя водяра" - после выполнения квеста, ниже строчки quest_vodka_give нужно добавить строчку quest_vodka_done - то бишь условие - показывать диалог выполнения квеста (vodka_quest_prines) при наличии следующих условий:

quest_vodka_give - уже выдан квест "Принести водку бармену"

quest_vodka_done - квест ещё не выполнен

dialogs_zaton.is_has_vodka_borode - проверка наличия у ГГ нужного предмета (водки).

Примечание №3

Наличие строчки quest_vodka_done в диалоге активации квеста (vodka_quest_dialog) - "Привет, тебе водки не принести?" тоже не нужно, ибо при активации квеста будет выдана инфопорция quest_vodka_give и функция quest_vodka_give скроет диалог активации квеста.

Примечание №4

Вот так должен выглядеть диалог без ошибок:

Code
<dialog id="vodka_quest_dialog">  
<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>  

<dialog id="vodka_quest_prines">  
<has_info>quest_vodka_give</has_info>  
<dont_has_info>quest_vodka_done</dont_has_info>  
<precondition>dialogs_zaton.is_has_vodka_borode</precondition>  
<phrase_list>  
<phrase id="1">  
<text>Спасибо, чувак. Выручил</text>  
<give_info>quest_vodka_done</give_info>  
</phrase>  
<phrase id="0">  
<text>Вот твоя водяра</text>  
<action>dialogs_zaton.transfer_vodka_to_boroda</action>  
<next>1</next>  
</phrase>  
</phrase_list>  
</dialog>


P.S.: в CoP инфопорции можно и не регистрировать, работать будет и так.

В мире Сталкер и не только - Создание нового квеста Сталкер Зов Припяти

  • Комментарии на сайте
  • Оставить комментарий через Вконтакте

Всего комментариев: 0 Оставь мнение не будь редиской ;)

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]


Новости про Survarium, STALKER: Зов Припяти, Сталкер: Тень Чернобыля

Дизайн лицензирован на компанию ОАО "ГКТ" любое копирование карается по закону о нарушению
авторских прав. Совместно с S.E. Сайт создан в системе uCoz | Для просмотра сайта используйте Google Chrome.

Онлайн всего: 1
Гостей: 1
Пользователей: 0