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

[CoP] Квесты

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

Хотел сделать обмен артов, да вот проблема вышла, вылет , ошибка в файле диалогов: error reading Atrributes/

 

я так понял проблема в том что я где что-то неправильно написал.

 

 

<?xml version='1.0' encoding="windows-1251"?>

<game_dialogs>

 

<dialog id="art_change">

<phrase_list>

<phrase id="0">

<text>я слышал ты интерисуешся артефактами,так вроде? </text>

<next>1</next>

</phrase>

<phrase id="1">

<text>Да было такое дело...У тебя какой арт? Я тебе его на что-то поменяю, ок? </text>

<next>2</next>

<next>3</next>

<next>4</next>

<next>5</next>

</phrase>

<phrase id="2">

<text>Чел отстань</text>

</phrase>

<phrase id="3">

<text>Медуза, пойдет?</text>

<precondition>new_dialogs_functions.art_change_medusa</precondition>

<next>6</next>

</phrase>

<phrase id="4>

<text>Бенгальский огонь, возьмешь?</text>

<precondition>new_dialogs_functions.art_change_bengal</precondition>

<next>7</next>

</phrase>

<phrase id="5>

<text>Каменный цветок , будешь брать?</text>

<precondition>new_dialogs_functions.art_change_flower</precondition>

<next>8</next>

</phrase>

<phrase id="6>

<text>Конечно!За него получишь 3, нет наверное 5 аптечек.</text>

<action>new_dialogs_functions.art_change_medusa_transfer</action>

<next>9</next>

</phrase>

<phrase id="7>

<text>Да уж повеселимся на новый год. Ладно за него я тебе дам немного аммуниции.Выбирай, или патроны 9х18 4 пачки, или под калаш 74 2 пачки , ну или 7.62х39-под 47 калаш,2 пачки и так их трудно найти, так что ты уж извини, ну так что выбираешь?</text>

<next>10</next>

<next>11</next>

<next>12</next>

</phrase>

<phrase id="8>

<text>Возьму конечно ты за него что хочешь получить? Может 3 антирада подкинуть, или детектор "медведь"? Или патронами возьмешь для пистолетов-пулеметов 9х19? 3 пачки дам. </text>

<next>13</next>

<next>14</next>

<next>15</next>

</phrase>

<phrase id="9>

<text>Жлобство конечно, но и на аптечках спасибо</text>

<action>new_dialogs_functions.medusa_barmen_reward1</action>

</phrase>

<phrase id="10>

<text>Давай под пм.</text>

<action>new_dialogs_functions.art_change_bengal_transfer</action>

<action>new_dialogs_functions.bengal_barmen_reward2</action>

</phrase>

<phrase id="11>

<text>Для калаша 74.</text>

<action>new_dialogs_functions.art_change_bengal_transfer</action>

<action>new_dialogs_functions.bengal_barmen_reward1</action>

</phrase>

<phrase id="12>

<text>Для Калаша 47.</text>

<action>new_dialogs_functions.art_change_bengal_transfer</action>

<action>new_dialogs_functions.bengal_barmen_reward3</action>

</phrase>

<phrase id="13>

<text>Давай свои антирады .</text>

<action>new_dialogs_functions.art_change_flower_transfer</action>

<action>new_dialogs_functions.flower_barmen_reward1</action>

</phrase>

<phrase id="14>

<text>ну давай медведь хоть прибыль больше будет.</text>

<action>new_dialogs_functions.art_change_flower_transfer</action>

<action>new_dialogs_functions.flower_barmen_reward2</action>

</phrase>

<phrase id="15>

<text>3 бронебойных пачки?! Ты что-то щедрый, чтож не буду упускать момент.</text>

<action>new_dialogs_functions.art_change_flower_transfer</action>

<action>new_dialogs_functions.bengal_barmen_reward3</action>

</phrase>

</phrase_list>

</dialog>

</game_dialogs>

 

 

помогите плиз может вы найдете ошибку..

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

Может кто подскажет, как сотворить квест в котором никого убивать не надо, а скажем после разговора с НПС он выдаёт квест найти пропавших товарищей (ну как аналогично у Кардана было) и после нахождения всех, возвращаешься и сообщаешь, что они живы или, что некоторые их них живы и квест выполняется ...

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

Доброго дня. Подскажите, как поставить таймер на квест? Необходимо, чтобы через два часа после взятия задания оно автоматически проваливалось. Насколько помню, в ТЧ за это отвечала строка "time", но в ЗП и ЧН подобное отсутствует.

 

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

Jurok

В квесте пишешь что при получении инфопоршня1 квест провален. Далее делаешь таймер на 2 часа, что-бы он выдавал инфопоршень1 через 2 часа. Далее выдаешь актору квест и запускаешь инфоршень. Немного кривовато но работает

Freedom

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

Пытался сделать подобным образом:

function timer_proval_quest()
    if level.get_time_hours()>=0 and level.get_time_hours()<2 then
    give_info("proval_quest")
end
Квест:
[quest_conserva_give]
icon = ui_inGame2_Pripasi
prior = 2
storyline = false
title = {=actor_has_item(conserva) =actor_has_item(conserva)}noah_conserva_prinesti_name, noah_conserva_naiti_name
descr = noah_conserva_descr
target = {=actor_has_item(conserva) =actor_has_item(conserva)}zat_b18_noah
condlist_0 = {+quest_conserva_done} complete
condlist_1 = {+zat_b18_noah_dead} fail
condlist_2 = {+proval_quest} fail
Не сработало. Подскажите, чём допустил ошибку?

 

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

Обязтельно использовать AMK таймеры? Наверяка ведь можно обойтись без их применения.

 

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

Не понял что это такое:

if level.get_time_hours()>=0 and level.get_time_hours()<2 then

это получается что если время от 0 до 2 ночи (или дня, не помню как там время работает) то должен выдаваться поршень? Это раз. А два что это такое:

give_info("proval_quest")

это не диалог, тут надо по другому. Тут надо

db.actor:give_info_portion("proval_quest")

Freedom

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

Jurok, level.get_time_hours это, вроде как, игровые часы, т.е. сколько часов ты провел в игре.

 

Как я понял, по истечении 2 часов после выдачи, квест проваливается, если его не выполнить.

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

Допустим,

qtime = level.get_time_days()*24+level.get_time_hours()+2

 

А потом сравниваешь

function timer_proval_quest()

if qtime <= level.get_time_days()*24+level.get_time_hours() then

db.actor:give_info_portion("proval_quest")

end

 

Ну вроде как-то так.

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

Всем привет! Подскажите как сделать квест что бы нужно было принести несколько разных предметов? Склько не пробывал не получалось......

 

И подскажите пожалуйста... У меня квест принести предмет а как сделать метку на этот предмет????

 

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

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

Не соответствует правилам. N6260

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

1. Легко.

[vintorez_q1]
icon = ui_inGame2_Put_v_pripyat
prior = 50
storyline = false
title = {=actor_has_item(wpn_vintorez_m2)}vintorez_name_2, {=actor_has_item(wpn_pm)}vintorez_name_3, vintorez_name_1
descr = vintorez_descr
target = {=actor_has_item(wpn_vintorez_m2)}zat_a2_stalker_barmen
condlist_0 = {+vintorez_done} complete
condlist_1 = {+vintorez_fail} fail

 

2.

target = kolbasa

 

3. Выдать поршень а в диалоге проверку

<has_info>...</has_info>

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

кровоSTALKER <has_info>...</has_info> я не понял как сделать проверку на квест :wacko2: (моного разных проверок знаю а на квест нет :dash2: )

 

и не сечет как сделать метку тоже не понял traget = "и нужная вещь" а метки нет :unsure: (например автоматов много что на все будут метки ставится)

Не соответствует правилам. N6260

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

Всем привет! Люди у меня одна проблема: сделал квест, но для квеста создал нового персонажа. Квест работает вроде нормально за исключением одной проблемы: метка на новом персонаже не ставиться! :( . Если кто знает что делать, пожалуйста подскажите!

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

Нужна помощь.

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

Суть квеста.

Выдаётся задание на убийство матёрого кабана

Идём убиваем, после убийства получаем другое задание вернутся и получить награду.

Кабан

 

creatures\spawn_sections_marsh.ltx

[mar_boar_old]:boar_old

$spawn = "monsters\bears\mar_boar_old"

story_id = mar_boar_old

custom_data = scripts\marsh\marsh_swm_add\mar_boar_old_logic.ltx

 

логика

scripts\marsh\mar_boar_old_logic.ltx

[logic]

suitable = {=check_npc_name(mar_boar_old)} true

active = mob_walker@mar_boar_old

monster_job = true

on_death = death

prior = 200

 

 

[mob_walker@mar_boar_old]

path_walk = mar_boar_old_walk

path_look = mar_boar_old_look

combat_ignore_cond = false

show_spot = false

danger = danger

aggressive = true

target = story | actor

 

[danger]

ignore_distance = 0

 

[death]

on_info = %+mar_boar_old_dead%

 

 

Диалоги configs\gameplay\swm_dialogs.xml

<dialog id="mar_boar_old_hunt_quest_start">

<dont_has_info>mar_boar_old_hunt_quest_done</dont_has_info>

<dont_has_info>mar_boar_old_hunt_quest_give</dont_has_info>

<phrase_list>

<phrase id="0">

<text>mar_boar_old_hunt_quest_start_dialog_0</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>mar_boar_old_hunt_quest_start_dialog_1</text>

<next>2</next>

</phrase>

<phrase id="2">

<text>mar_boar_old_hunt_quest_start_dialog_2</text>

<next>3</next>

</phrase>

<phrase id="3">

<text>mar_boar_old_hunt_quest_start_dialog_3</text>

<next>4</next>

</phrase>

<phrase id="4">

<text>mar_boar_old_hunt_quest_start_dialog_4</text>

<next>5</next>

</phrase>

<phrase id="5">

<text>mar_boar_old_hunt_quest_start_dialog_5</text>

<next>6</next>

<next>61</next>

</phrase>

<phrase id="61">

<text>mar_boar_old_hunt_quest_start_dialog_61</text>

<action>dialogs.break_dialog</action>

</phrase>

<phrase id="6">

<text>mar_boar_old_hunt_quest_start_dialog_6</text>

<give_info>mar_boar_old_hunt_quest_give</give_info>

<action>swm_dialogs.swm_mar_boar_old_hunt_quest_start</action>

<action>swm_dialogs.spawn_swm_mar_boar_old_monsters</action>

</phrase>

</phrase_list>

</dialog>

 

<!--------------------------->

 

<dialog id="mar_boar_old_hunt_quest_ubil">

<has_info>mar_boar_old_hunt_quest_give</has_info>

<precondition>swm_dialogs.тут должна быть проверка на убийство кабана!!!</precondition>

<phrase_list>

<phrase id="0">

<text>mar_boar_old_hunt_quest_ubil_dialog_0</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>mar_boar_old_hunt_quest_ubil_dialog_1</text>

<next>2</next>

</phrase>

<phrase id="2">

<text>mar_boar_old_hunt_quest_ubil_dialog_2</text>

<next>3</next>

</phrase>

<phrase id="3">

<text>mar_boar_old_hunt_quest_ubil_dialog_3</text>

<next>4</next>

</phrase>

<phrase id="4">

<text>mar_boar_old_hunt_quest_ubil_dialog_4</text>

<action>dialogs.break_dialog</action>

<give_info>mar_boar_old_hunt_quest_done</give_info>

</phrase>

</phrase_list>

</dialog>

 

 

Скрипты scripts\swm_dialogs.script

--Запуск квеста у Следопыта на килл кабана-------------------------------------------------

function swm_mar_boar_old_hunt_quest_start()

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

end

 

--Спавн кабасика---------------------------------------------------------------------------------

function spawn_swm_mar_boar_old_monsters()

alife():create("mar_boar_old",vector():set(-284.212738037109,1.50543403625488,23.1587047576904),6753,1087)

end

 

--Нужный скрипт на проверку убийства кабана !!!------------

 

 

misc\tm_swm.ltx

;--//Квест у Следопыта охота на вепря---------------------------------------------------

[mar_boar_old_hunt_quest_give]

icon = ui_inGame2_Ohota_na_Burerov

prior = 2

storyline = false

title = {+mar_boar_old_dead} mar_boar_old_hunt_take_reward_name, mar_boar_old_hunt_kill_mar_boar_old_name

descr = {+mar_boar_old_dead} mar_boar_old_hunt_take_reward_text, mar_boar_old_hunt_kill_mar_boar_old_text

target = {+mar_boar_old_dead} mar_hunter_sledopyt, mar_boar_old

condlist_0 = {+mar_boar_old_hunt_quest_done} complete

 

 

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

slayer_kch, вот пример из моих разработок по случайно генерируемым квестам:

[lob_q3_psevdodog]
icon = ui_inGame2_Monsters_Wave
prior = 30
storyline = false
title = {=actor_has_item(mutant_psevdodog_booty)}lob_psevdodog_name_2, lob_psevdodog_name_1
descr = lob_psevdodog_descr
target = {=actor_has_item(mutant_psevdodog_booty)}zat_lob
condlist_0 = {+psevdodog_done} complete

 

    if obj:section() == "mutant_psevdodog_booty" and has_alife_info("psevdodog_start") and not has_alife_info("psevdodog_find") then
     db.actor:give_info_portion("psevdodog_find")
    end

Только здесь у меня нужно добыть часть тела монстра). Ну а что бы сделать твой квест нужно кабанчику написать логику типа такой:

;[spawner];спавнить только ночью
;cond = {!is_day}

[logic]
active = remark1
on_death = death@chimera_dead

[death@chimera_dead]
on_info = %+mil_chimera_death%;даём поршень при смерти мутанта

[remark1]
no_move = true
on_actor_dist_le = 4|%+mil_chimera_palevo%;мутант нас "увидел"

 

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

хог, пропиши своему персонажу story_id, а потом ставь метку на этот стори-ай-ди
В ЗП файл стори айди пуст, вообще. Теперь метка ставится без этой пресловутой фичи.
Ссылка на комментарий

Требуется помощь:

[jup_gavaec_observe_the_jupiter_factory]

icon = ui_inGame2_Issledovatelskaya_gruppa

prior = 50

storyline = false

title = {+info_kaska_diary, =actor_has_item(jup_vova_photo)} observe_the_collectror_name_3, {=actor_has_item(jup_vova_photo)} observe_the_collectror_name_2, {+info_kaska_diary} observe_the_collectror_name_1, {-info_kaska_diary, -actor_has_item(jup_vova_photo)} observe_the_collectror_name

descr = observe_the_collectror_descr

target = {+info_kaska_diary, =actor_has_item(jup_kaska_diary), =actor_has_item(jup_vova_photo)}jup_a6_stalker_barmen

condlist_0 = {+observe_jup_end} complete

on_complete = %=add_actor_rank(5)%

 

Всё вроде бы работает, но, при получении задания отображается не текст, а {+info_kaska_diary в заголовке. Как исправить? Ах да, и ещё, при подбирании нужный предметов и при получении нужных поршней квест всё равно не меняет своё имя(. Как править?

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

iDreD

Спасибо за ответ но немного не то.

Вот разобрался не надо никаких апдейтов в бинд сталкере и т д всё проще вот недостающее

function is_has_mar_boar_old_dead(first_speaker, second_speaker)

if has_alife_info("mar_boar_old_dead")

and not has_alife_info("mar_boar_old_hunt_quest_done") then

return false

end

return true

end

 

 

<dialog id="mar_boar_old_hunt_quest_start">

<dont_has_info>mar_boar_old_hunt_quest_give</dont_has_info>

<phrase_list>

<phrase id="0">

<text>mar_boar_old_hunt_quest_start_dialog_0</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>mar_boar_old_hunt_quest_start_dialog_1</text>

<next>2</next>

</phrase>

<phrase id="2">

<text>mar_boar_old_hunt_quest_start_dialog_2</text>

<next>3</next>

</phrase>

<phrase id="3">

<text>mar_boar_old_hunt_quest_start_dialog_3</text>

<next>4</next>

<next>41</next>

</phrase>

<phrase id="4">

<text>mar_boar_old_hunt_quest_start_dialog_4</text>

<next>5</next>

</phrase>

<phrase id="41">

<text>mar_boar_old_hunt_quest_start_dialog_41</text>

<action>dialogs.break_dialog</action>

 

</phrase>

<phrase id="5">

<text>mar_boar_old_hunt_quest_start_dialog_5</text>

<next>6</next>

</phrase>

<phrase id="6">

<text>mar_boar_old_hunt_quest_start_dialog_6</text>

<give_info>mar_boar_old_hunt_quest_give</give_info>

<action>swm_dialogs.swm_mar_boar_old_hunt_quest_start</action>

<action>swm_dialogs.spawn_swm_mar_boar_old_monsters</action>

</phrase>

</phrase_list>

</dialog>

 

<!--------------------------->

 

<dialog id="mar_boar_old_hunt_quest_ubil">

<has_info>mar_boar_old_hunt_quest_give</has_info>

<has_info>mar_boar_old_dead</has_info>

<dont_has_info>mar_boar_old_hunt_quest_done</dont_has_info>

<phrase_list>

<phrase id="0">

<text>mar_boar_old_hunt_quest_ubil_dialog_0</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>mar_boar_old_hunt_quest_ubil_dialog_1</text>

<next>2</next>

</phrase>

<phrase id="2">

<text>mar_boar_old_hunt_quest_ubil_dialog_2</text>

<next>3</next>

</phrase>

<phrase id="3">

<text>mar_boar_old_hunt_quest_ubil_dialog_3</text>

<action>swm_dialogs.actor_give_10000</action>

<next>4</next>

</phrase>

<phrase id="4">

<text>mar_boar_old_hunt_quest_ubil_dialog_4</text>

<action>dialogs.break_dialog</action>

<give_info>mar_boar_old_hunt_quest_done</give_info>

</phrase>

</phrase_list>

</dialog>

 

 

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

Dash Cross,

<phrase id="4>

не хватает символа после 4

Аналогично ниже до последней фразы.

 

ЗЫ: Юзай notepad ++, там есть подсветка синтаксиса.

 

 

Jurok

При выдачи задания выполни:

xr_logic.pstor_store(db.actor,"любоеназваниепеременной",GetGameMinutes())

и куда нибудь в апдейд актора засунь:

    if GetGameMinutes() - xr_logic.pstor_retrieve(db.actor,"названиепеременнойвведеннойвыше",0) > 120 then
        выдаем инфопоршень на провал задания
    end

Первое что пришло в голову...

 

 

iDreD, условия без запятых пиши...

не +info_kaska_diary, =actor_has_item(jup_vova_photo)

а +info_kaska_diary =actor_has_item(jup_vova_photo)

 

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...