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

[CoP] Квесты


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

Квесты- это хорошо. Внимание, объявляется набор в команду мода CoP RELOAD - нужен квестовик, можно несколько человек для создания новых квестов под 1.6.0.2. Рабочих рук критически не хватает, а сам занят базой мода - геймплеем и наполнением. Если что - имеются свои идеи для квестов. Заинтересовавшимся - писать в личку. Рассмотрю любые предложения, даже о дистанционной работе.

 

Извините за флуд и оффтоп.

 

Всем удачи!

799cb8cfabad201fceffb0833252c67b.gif
 
То, что меня не убивает - делает меня сильнее

 

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

Ребята, здравствуйте. Сею тему вроде бы понял, НО, чего я решительно не понял, так это как сделать условия выполнения? Например: чтобы при получении Х документов Султаном квест завершался, где Х - это документы с Шевченко(предмет я сделал, допустим)?

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

SibireaStalker

condlist_0 = {+"инфа"} complete

А в диалоге выдай Гг "инфу"

А в твоем случае в кондлит запиши {=actor_has_item("вещь")}

Изменено пользователем ZeeK

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

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

Приветствую всех!На второй-третьей странице был заведён разговор о повторяемости этого квеста...

Так как же сделать его повторяемым? condlist_1 = {+quest_vodka_done} reversed не помогает :mellow:

Верю, что могу...

Ссылка на комментарий
Mihunchy я сделал проще: у меня был доступен квест пока гг не получит инфу, после получения запускал таймер, который через определенное время инфу у гг отнимает и вуаля! Квест вновь доступен!

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

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

Когда понял как, всё кажется легко, а я вот ни как, где-то что-то упускаю...

А есть какая-нибудь функция по вызову квеста...?

Я имею ввиду если сделать сначала диалог: Актор: как дела?есть работа? Персонаж: Да не вопрос, держи...

и тут идёт ссылка <action>...</action> на функцию типа give_quest.. :mellow:

Я в таймерах не шарю :(

Изменено пользователем Mihunchy

Верю, что могу...

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

Mihunchy есть в диалоге <action>файл_скриптов.название_функции</action>

И в скриптах пишешь

function название_функции()

task_manager.get_task_manager():give_task("название_задания")

end

Изменено пользователем ZeeK

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

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

Чуваки, я преодолел боязнь делания квестов. Я сделал это. С пустым вылетом. :ny_ph34r_1:

Помогите ошибку найти:

function quest_sultan_docs_give()
  task_manager.get_task_manager():give_task("quest_sultan_docs_give")
end
function is_has_vodka_borode()
   if db.actor:object("shev_docs") then
       return true
   end
   return false
end
function transfer_vodka_to_sultan(first_speaker, second_speaker)
   dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "shev_docs")
end

 

 

 

<!--бандит Султан_fake-->
<specific_character id="zat_b7_bandit_boss_sultan" team_default="1">
	<name>st_zat_b7_bandit_boss_sultan_name</name>
	<icon>ui_inGame2_Sultan</icon>
	<map_icon x="1" y="0">
	</map_icon>
	<bio>Опытный сталкер. Детальная информация отсутствует.</bio>

	<class>zat_b7_bandit_boss_sultan</class>
	<community>bandit</community>
	<terrain_sect>stalker_terrain</terrain_sect>
	<snd_config>characters_voice\human_02\bandit\</snd_config>

	<rank>60</rank>
	<reputation>0</reputation>

	<visual>actors\stalker_bandit\stalker_bandit_3_face_3</visual>
	<supplies>

     [spawn] \n
     wpn_desert_eagle = 1 \n
     ammo_11.43x23_hydro = 1 \n

#include "gameplay\character_items_nd_nl.xml"
#include "gameplay\character_food.xml"
#include "gameplay\character_drugs_2.xml"
   </supplies>
#include "gameplay\character_criticals_4.xml"

	<start_dialog>zat_b7_bandit_boss_sultan_start_dialog</start_dialog>

               <actor_dialog>sultan_docs_quest_dialog</actor_dialog>
               <actor_dialog>sultan_docs_quest_prines</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b7_give_task_dialog</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b30_start_actor_dialog</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b30_detectors_actor_dialog</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b30_compass_actor_dialog</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b30_compass_give_actor_dialog</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b30_compass_revert_actor_dialog</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b30_ruin_actor_dialog</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b30_barmen_under_actor_dialog</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b52_about_snag</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_b52_about_nimble</actor_dialog>
	<actor_dialog>zat_b7_bandit_boss_sultan_about</actor_dialog>

	<actor_dialog>actor_break_dialog</actor_dialog>

</specific_character>

 

 

 

<dialog id="sultan_docs_quest_dialog">
<dont_has_info>quest_sultan_docs_done</dont_has_info>
<dont_has_info>quest_sultan_docs_give</dont_has_info>
<phrase_list>
   <phrase id="1">
       <text>Найти документы на "Шевченко".</text>
       <give_info>quest_sultan_docs_give</give_info>
       <action>dialogs_zaton.give_sultan_docs_quest</action>
   </phrase>
   <phrase id="0">
       <text>Мне нужна работа. Есть что на примете?</text>
       <next>1</next>
   </phrase>
</phrase_list>
</dialog>

<dialog id="sultan_docs_quest_prines">
<has_info>quest_sultan_docs_give</has_info>
<precondition>dialogs_zaton.is_has_docs_sultanu</precondition>
<phrase_list>
   <phrase id="1">
       <text>Ну типа молодцом. Держи тебе скромненький презент.</text>
       <give_info>quest_sultan_docs_done</give_info>
   </phrase>
   <phrase id="0">
       <has_info>quest_has_docs</has_info>
       <text>Вот твоя водяра</text>
       <action>dialogs_zaton.transfer_docs_to_sultan</action>
       <next>1</next>
   </phrase>
</phrase_list>
</dialog>
</game_dialogs>

 

 



info_zaton
<game_information_portions>
<info_portion id="quest_sultan_docs_give"></info_portion>
<info_portion id="quest_has_docs"></info_portion>
<info_portion id="quest_sultan_docs_done"></info_portion>

 

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

SibireaStalker

function quest_sultan_docs_give()

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

end

задание Гг выдаешь, а в task_zaton походу не прописал....

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

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

Народ а как вырезать сюжетные квесты?И что бы например когда переходишь с юпитера на затон первый раз не вылетала про скаты?

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

Старлей, читай последние странички форума, много интересного найдёшь... :ny_use_search:

SibireaStalker, чтобы отключить выдачу заданий на вертолеты, нужно открыть файл configs\scripts\zaton\zat_b101_logic.ltx и найти секцию [sr_idle]

 

Там будет такой код:

on_info = {!black_screen -zat_b101_give_task +zat_a1_game_start} sr_idle@save %=give_task(zat_b101_heli_5_crash) +zat_b101_give_task =give_task(jup_b8_heli_4_crash) +jup_b8_give_task =give_task(zat_b28_heli_3_crash) =give_task(zat_b100_heli_2_crash) =give_task(jup_b9_heli_1_crash) +jup_b9_give_task =set_active_task(zat_b28_heli_3_crash)%

Меняем его на вот это:

on_info = {!black_screen -zat_b101_give_task +zat_a1_game_start} sr_idle@save

Вот собственно и все. Задания отключены :ny_smile:

 

Zeek, task zaton - отдельный файл или это в том же скрипте? Как прописать-то? Что-то в туторе этого не было... Или я невнимательно читал.... :dash2:

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

SibireaStalker

Или я невнимательно читал.

Перечитай тутор, последний спойлер

Открываем файл 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

 

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

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

Zeek, оказалось вылет не то чтобы совсем пустой..

 

stack trace:

001B:0255105B lua.JIT.1.1.4.dll

 

 

а в tm_zaton прописал так:

Код
[quest_sultan_docs_give]
icon = ui_inGame2_Laboratoriya_X8
prior = 1
storyline = false
title = {=actor_has_item(vodka)}vodka_barmen_prinesti_name, vodka_barmen_naiti_name
descr = quest_sultan_docs_description
target = {=actor_has_item(shev_docs)}zat_b7_bandit_boss_sultan
condlist_0 = {=actor_has_item("shev_docs")} complete

 

 

Как договорились, в ЛС кидаю комплект.

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

Тутор по созданию квеста - убить сталкера.

Открываем

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\creatures\spawn_sections_zaton.ltx

Пишим в самом верху это:

 

[test_smg-mod_test]:stalker 
$spawn                     = "respawn\test_smg-mod_test" 
character_profile     = test_smg-mod_test 
spec_rank = novice 
community = stalker 
story_id = test_smg-mod_test

 

Далее

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gameplay\character_desc_zaton.ltx

В самый конец пишим это перед </xml>

<specific_character id="test_smg-mod_test" team_default="1"> 
           <name>Скалолаз</name> 
           <icon>ui_inGame2_Soldier_2</icon> 
           <map_icon x="1" y="0"> 
           </map_icon> 
           <bio>Опытный сталкер. Детальная информация отсутствует.</bio> 

           <class>test_smg-mod_test</class> 
           <community>stalker</community> 
           <terrain_sect>stalker_terrain</terrain_sect> 
           <snd_config>characters_voice\human_01\military\</snd_config> 

           <rank>40</rank> 
           <reputation>0</reputation> 

           <visual>actors\stalker_ucheniy\stalker_ucheniy_1_face_2</visual> 
           <supplies> 

               [spawn] \n 
               wpn_ak74u \n 
               ammo_5.45x39_fmj = 1 \n 
               wpn_pm \n 
               ammo_9x18_fmj = 1 \n 
               grenade_rgd5 = 2 \n 

#include "gameplay\character_items_nd.xml" 
#include "gameplay\character_drugs.xml" 
#include "gameplay\character_drugs_mil.xml" 
             </supplies> 
#include "gameplay\character_criticals_4.xml" 
           </specific_character>

 

Тут же ищим строчку

 

<!-- Бармен на базе сталкеров -->

И пишим ниже строчкой после этого <actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog> это

 

<actor_dialog>lapsh8_quest_dialog</actor_dialog> 
     <actor_dialog>lapsh8_quest_prines</actor_dialog>

 

Далее

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gameplay\dialogs_zaton.ltx

Пишим в начале ниже строкой <game_dialogs> это:

 

<game_dialogs> 
<dialog id="lapsh8_quest_dialog">          
<dont_has_info>quest_lapsh8_done</dont_has_info>          
<dont_has_info>quest_lapsh8_give</dont_has_info> 
<phrase_list>          
<phrase id="1">          
<text>Есть, убить одного лошка и скажи спасибо сайту smg-mod.ucoz.ru</text>          
<give_info>quest_lapsh8_give</give_info>          
<action>dialogs_zaton.quest_kill_nps_start</action>          
</phrase>          
<phrase id="0">          
<text>Работка есть? Я тест провожу квеста от lsm-team.ru</text>          
<next>1</next>          
</phrase>          
</phrase_list>          
</dialog>          

<dialog id="lapsh8_quest_prines">          
<has_info>quest_lapsh8_give</has_info>          
<dont_has_info>quest_lapsh8_done</dont_has_info> 
<has_info>test_nps_mertv</has_info>          
<phrase_list>          
<phrase id="1">          
<text>Ой радость то какая! Нубяра научился делать квест!</text>          
<give_info>quest_lapsh8_done</give_info>          
</phrase>          
<phrase id="0">          
<text>Грохнул я его...спасибо скажу lsm-team.ru</text>          
<next>1</next>          
</phrase>          
</phrase_list>          
</dialog>

 

Далее

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gameplay\info_zaton.ltx

В начале после <game_information_portions> ниже строкой пишим это:

 

<info_portion id="quest_lapsh8_done"></info_portion> 
          <info_portion id="quest_lapsh8_give"></info_portion> 
          <info_portion id="test_nps_mertv"></info_portion>

 

Далее

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gameplay\npc_profile.ltx

В начале после <xml> ниже строкой пшим это:

 

 

<!-- наш нпс smg-mod--> 
          <character id="test_smg-mod_test"> 
           <class>test_smg-mod_test</class> 
          </character>

 

Далее

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\misc\tm_zaton.ltx

В самый конец пишим это:

 

 

[lapsh8_give]          
icon = ui_inGame2_Bezopasnoe_mesto 
prior = 2          
storyline = false          
title = {+test_nps_mertv}test_prinesti_name, test_naiti_name          
descr = test_descr          
target = {+test_nps_mertv} zat_a2_stalker_barmen, nps 
condlist_0 = {+quest_lapsh8_done} complete          
reward_money = 1

 

Далее

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\scripts

Создаем тут папку smg-mod, а там test_smg-mod_test.ltx

 

Должен получиться такой путь:

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\scripts\smg-mod\test_smg-mod_test.ltx

 

И в этом файле пишим:

 

 

[logic]          
on_death = death 
active = remark1          
danger = danger_ignore          

[danger_ignore]          
ignore_distance = 5          

[death] 
on_info = %+test_nps_mertv% 

[remark1]          
no_move = true          
anim = sit_ass 
on_actor_dist_le = 2| remark@hello          
meet = meet_guide          

[meet_guide]          
abuse = false          
use = true          
allow_break = false          
meet_on_talking = false          

[remark@hello]          
no_move = true          
meet = meet_guide          
on_actor_dist_le = 10| remark1

Далее идем сюда

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\text\rus\st_quests_general.ltx

 

В конце перед </string_table> пишим это:

 

<string id="test_naiti_name "> 
           <text>Убийство: Убить сталкера и сказать спасибо smg-mod.ucoz.ru</text> 
          </string> 
          <string id="test_descr "> 
           <text>Убить сталкера и сказать спасибо smg-mod.ucoz.ru</text> 
          </string> 
          <string id="test_prinesti_name"> 
           <text>Убийство: рассказать бармену и сказать спасибо smg-mod.ucoz.ru</text> 
          </string>

 

Так, теперь нам надо открыть скрипт с помощью блокнота

Идем сюда:

D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\scripts\dialogs_zaton.script

В самое начало пишим:

function quest_kill_nps_start()          
task_manager.get_task_manager():give_task("lapsh8_give")          
end

 

Теперь находим распакованый all.spawn и находим там файл alife_zaton.ltx

В конец пишим это, но номер не должен повторяться!

 

[1866] 
; cse_abstract properties 
section_name = stalker 
name = test_smg-mod_test 
position = 223.34001159668,55.243835449219,8.9725513458252 
direction = 0,0,0 

; cse_alife_trader_abstract properties 
money = 500 
character_profile = test_smg-mod_test 

; cse_alife_object properties 
game_vertex_id = 55 
distance = 0 
level_vertex_id = 1317923 
object_flags = 0xffffffff 
custom_data = <<END 
[story_object] 
story_id = nps 
[logic] 
cfg = scripts\smg-mod\test_smg-mod_test.ltx 
END 

; cse_visual properties 
visual_name = actors\stalker_soldier\stalker_soldier_2 

; cse_alife_creature_abstract properties 
g_team = 0 
g_squad = 0 
g_group = 0 
health = 1 
dynamic_out_restrictions =          
dynamic_in_restrictions =          

upd:health = 1 
upd:timestamp = 0 
upd:creature_flags = 0 
upd:position = 223.34001159668,55.243835449219,8.9725513458252 
upd:o_model = 0 
upd:o_torso = 0,0,0 
upd:g_team = 0 
upd:g_squad = 0 
upd:g_group = 0 

; cse_alife_monster_abstract properties 
base_in_restrictors = yan_bunker_door_zomby_restrictor 

upd:next_game_vertex_id = 65535 
upd:prev_game_vertex_id = 65535 
upd:distance_from_point = 0 
upd:distance_to_point = 0 

; cse_alife_human_abstract properties 
predicate5 = 2,2,1,1,2 
predicate4 = 1,0,0,1 

; cse_ph_skeleton properties 

upd:start_dialog =          

; se_stalker properties

 

 

Запаковываем и запускаем игру.

 

Квест берем у бороды, а нпс, которого надо убить находится на партовых кранах на верху.

 

 

 

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

ZeeK, а что нужно в конслите и он_комплите прописать если:

1) Задание обыскать тайники? (Условно X и Y)

2) Задание преодолеть локацию? (например, Лиманск?)

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

SibireaStalker

преодолеть локацию

ну создать спейс_рестриктор, при заходе в который Гг выдается инфа...а по ней квест засчитывается

Ну или как ПЫСы

condlist_0 = {=actor_in_zone(zat_a2_sr_noweap)} complete

зарегать только в скриптах нада новую зону...

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

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

Всем привет!

Возникли вопросы.

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

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

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

 

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

Ximul

ставилась на нужного нпс,

Нужно сделать спец. id В spawn_sections нужно указать story_id = твоего уникального НПС например story_id = zat_b14_stalker_1

потом можно спокойно ставить метку на этот айди в задании в tm_локация

target = zat_b14_stalker_1

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

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

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

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

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

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

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

Войти

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

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

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