Форум команды PR MOD

Объявление

Внимание на оф. сайте в обратной связи можно подать заявку на работу! Внимание всем пользователям! Если наш форум будет неактивным (на нем будут отписываться пользователи) его могут закрыть за не активность! Не я регулирую правила Хостинга... Обсудить новость можно в следующей теме: http://piarforum.forumrpg.ru/viewtopic.php?id=22#p75

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум команды PR MOD » Помощь » Новые квесты


Новые квесты

Сообщений 1 страница 19 из 19

1

Разбор системы квестов в S.T.A.L.K.E.R. Зов Припяти
Разбираем конкретно параметры:

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 -- проверка инфопоршня, после которого метка будет поставлена на нпц

on_init - инфопоршень, который "включает" задание
Пример использования: on_init = %+название_инфопоршня%

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

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

reward_money - денежная награда
Пример использования: reward_money = 5000

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

Используемые файлы:
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 и добавляем перед </game_dialogs>:
Код
<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
Находим строчку <actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog> и под ней пишем
Код
<actor_dialog>vodka_quest_dialog</actor_dialog>
<actor_dialog>vodka_quest_prines</actor_dialog>

Сохраняем

Инфопоршни и скриптовые функции
Открываем файл info_zaton.xml и добавляем перед </game_information_portions>:
Код
<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 и в начало записываем:
Код
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 и в конец пишем:
Код
[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 и добавляем после <string_table>
Код
<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

0

2

"Зов Припяти"- это, конечно, хорошо...
Было бы еще лучше, если бы рассказали, как на ЧН делать моды. В таком же подробном виде. Ибо мой опыт "делать все тоже самое, только для ЧН" обернулся неудачей... :(

+1

3

В ЧН
Инструкция основана на моде "SEMKI", который выложили ещё давным - давно на официальном форуме.
квест прост: активируется скриптом (action'ом в диалоге), при появлении инфопрошня считается выполненным.
Создаём в папке gamedata\scripts файл ваше_название_скрипта.script, в него пишем:
Код
function ваше_название_функции()
xr_effects.give_inited_task(nil, nil, {"storyline", "name_of_your_quest", "bandit"})
endname_of_your_quest - будет название квеста из tm_***.ltx
bandit - группировка (при наведении на точку в ПДА (т.е. которая "Весит" на рестрикторе например.) будет высвечиваться описание квеста и какая группировка её дала.)

далее берём файл gamedata\configs\misc\tm_***.ltx от соотв. локации и пишем в начале под строчку [list_tm_***]:
Код
name_of_your_quest
и далее внизу аналогично существующим:
Код
[name_of_your_quest]
type = storyline
task_type = additional
prior = 10
icon = ui_mt_image_attack_tower
target_cond = true
name = youself_quest_name
text = youself_quest_text
condlist_0 = {+info_for_done} complete
target_story_ids = 724
auto_name = false
auto_faction = true
type = storyline - тип: сюжетная линия (тут можно указать "Принести предметы, уничтожить смарт" итд...)
task_type = additional - тип: дополнительный (если напишете storyline, то будет отображаться, как сюжетка )
prior = 10 - приоритет (значение того, что при появлении квеста он автоматически будет активным)
icon = ui_mt_image_attack_tower - иконка, хотя я что толкьо не писал, получается стандартная
target_cond = true
name = youself_quest_name - имя из xml-массива
text = youself_quest_text - описание
condlist_0 = {+info_for_done} complete - при получении (+) инфопрошня info_for_done считать выполненным
target_story_ids = 724 - стори ИД на которого вешается метка (может быть тайник, труп, НПС, рестриктор, неважно...)
auto_name = false
auto_faction = true

прописываем описания в файлы из gamedata\configs\text\rus
также прописываем инфопрошни в игру (у нас это info_for_done)
P.S. target_story_ids = 724 - ID Йоги, лидера бандитов

в диалоги:
<action>ваше_название_скрипта.ваше_название_функции</action> -активируем
<give_info>info_for_done</give_info> - завершение
Взято с: http://www.amk-team.ru/forum/index.php?showtopic=8094

0

4

NameRec написал(а):

"Зов Припяти"- это, конечно, хорошо...
Было бы еще лучше, если бы рассказали, как на ЧН делать моды. В таком же подробном виде. Ибо мой опыт "делать все тоже самое, только для ЧН" обернулся неудачей...

Чистое Небо почти не отличается от Зова Припяти "кишками" но все же отличия присутствуют... прочитай статью №2 от Pihan с АМК форума... может поможет
Я сколько делаю на ЧН понял что там нельзя не ставить отметку на карте...

0

5

Ок... Какого характера получиться квест? Ну там "найди-принеси","найди-убей" и т.д.?

0

6

NameRec написал(а):

Ок... Какого характера получиться квест? Ну там "найди-принеси","найди-убей" и т.д.?

А это уже ты сам решаешь  ^^

0

7

NameRec написал(а):

Ок... Какого характера получиться квест? Ну там "найди-принеси","найди-убей" и т.д.?

А ты умеешь делать диалоги? Если да то хорошо. Давай помогу как сделать квест  :glasses: принести водку?  :rofl:

0

8

function my_function()
xr_effects.give_inited_task(nil, nil, {"storyline", "name_one", "bandit"})
end

0

9

Смешно.
Давай принести артефакт.

0

10

NameRec написал(а):

Смешно.
Давай принести артефакт.

Ну давай))  ^^
Медузу?  :D

0

11

Давай "медузу". :)

0

12

Роясь в архивах ЧН заметил и поведаю:
[mar_bring_item_1]
auto_name = false - ?:???
type = bring_item - Тип тут принести предмет
task_type = additional - выше
name = st_bring_item_1_name -имя из спец файла
text = st_bring_item_1_text -текст из спец файла
target_cond = {~20} true - не понял
prior = 2 -приоритет
faction = csky -группировка выдающая квест
requested_items = grenade_rgd5,grenade_rgd5,grenade_rgd5 -то что надо найти
community_relation_delta_complete = 100 повышение ранга как я понял...
reward_money = {~50} 1000, {~50} 1500, 500 награда чем больше принесешь тем больше получишь
auto_faction = true

0

13

NameRec написал(а):

Давай "медузу".

давай  8-)

0

14

А можно награду тоже каким-нибудь предметом получить?Ну, там, патронами?..

0

15

[PRMT написал(а):

Myha]прописываем описания в файлы из gamedata\configs\text\rus
также прописываем инфопрошни в игру (у нас это info_for_done)
P.S. target_story_ids = 724 - ID Йоги, лидера бандитов
в диалоги:
<action>ваше_название_скрипта.ваше_название_функции</action> -активируем
<give_info>info_for_done</give_info> - завершение

Можно тут по подробнее?

0

16

вот как раз пример:
[you_quest] ;Артефакт
type = recover_item
task_type = additional
name = st_recover_item_3_name -тут мона не менять))
text = st_recover_item_3_text -тут тоже
target_npc_or_box_name = mar_recover_item_3_stalker
distanse = 100
prior = 2
faction = csky
target_cond = {=actor_on_level(marsh) -mar_recover_item_3_done} true, false
on_init = %+mar_recover_item_3_done%
requested_items = mar_quest_af_cristall_flower_1
community_relation_delta_complete = 300
reward_money = {~20} 1000, {~50} 750, 500
auto_faction = true

Я думаю должно робить...

0

17

Подобный квест у кого брать нужно? У любого сталкера из указанной группировки?

0

18

;;Активируем квест через диалог
<action>название скрипта.my_function</action> -активируем

;;Конец задания
В диалог после текста пропиши
<give_info>название твоего инфопоршня</give_info>

;;скрипт
function my_function()
xr_effects.give_inited_task(nil, nil, {"you_quest", "name_one", "csky"})
end

[you_quest] ;Артефакт
type = recover_item
task_type = additional
name = st_recover_item_3_name -тут мона не менять))
text = st_recover_item_3_text -тут тоже
condlist_0 = {+название твоего инфопоршня} complete  --если тебе нпс выдаст инфопоршен то задание выполнено
target_npc_or_box_name = mar_recover_item_3_stalker
distanse = 100
prior = 2
faction = csky
target_cond = {=actor_on_level(marsh) -mar_recover_item_3_done} true, false
on_init = %+mar_recover_item_3_done%
requested_items = mar_quest_af_cristall_flower_1
community_relation_delta_complete = 300
reward_money = {~20} 1000, {~50} 750, 500
auto_faction = true

0

19

NameRec написал(а):

Подобный квест у кого брать нужно? У любого сталкера из указанной группировки?

Сделай диалог с выдачей квеста и пропиши его нпс
Сделай диалог с выдачей инфопоршня и пропиши его тому же НПС

0


Вы здесь » Форум команды PR MOD » Помощь » Новые квесты