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

[CoP] Квесты


XMK

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

а будет продолжение? Очень интересно!

что именно? Задавайте вопросы, по возможности отвечу

 

Dead men Если ты этого не знаешь, зачем лезешь в квестостроение?

Поделиться этим сообщением


Ссылка на сообщение
XMK как я понял предмет который от нас требуется прописывается в скрипте?

да, это прекондишн для диалога

 

на обновление задания стоит:

title = {=actor_has_item(vodka)}vodka_barmen_prinesti_name,

 

На что влияет приоритет квеста и его сюжетность/не сюжетность?

после выполнения какого либо квеста, вероятность что игра переключится на этот

 

Репутация игрока скорее тоже не изменится.

чтоб изменить репу игрока у сталкеров при выполнении квеста (пример) надо дописать:

on_complete = %=inc_faction_goodwill_to_actor(stalker:200)%

 

 

Как поставить ограничитель, что бы квест раньше н-времени не появлялся?

в диалог проверки на инфопоршни вставляй

статья по диалогам:

http://www.stalkerin.gameru.net/wiki/index...%D0%BE%D1%80%29

 

Guzerus

<dont_has_info> проверка на отсутствие опр.инфопоршня

<has_info> проверка на присутствие опр.инфопоршня

<precondition>файл.функция</precondition> сюда можно запихать функцию, в которой можешь проверить всё что угодно

Поделиться этим сообщением


Ссылка на сообщение
Эмм не помогает вот другой пример

через браузер открой файл он тебе покажет где косяк

 

Здесь сначала идёт 1,потом 0. Я всегда с нуля начинаю. Это просто автор так написал,или правило такое?

это просто я в стиле ПЫСов диалоги пишу

 

ZeeK В диалоге прописываешь <action>файл.функция_запуска_музыки</action>

логику включайте!

 

Всем остальным! Задаем вопросы касательно создания квестов, а не диалогов!

Поделиться этим сообщением


Ссылка на сообщение
Любой квест запускается инфопошем - а вызов инфопоша завязать можно на предмет и т.д.

прикол в том, что нет... надо всё завязывать на функцию xr_effect.give_task(ID) (если ты только не имел ввиду, то что я написал ниже)

 

Как сделать что бы квест сам включался просто так?

on_init - инфопоршень, который "включает" задание

 

но я не проверял, лучше вызывай в нужном моменте функцию, данную выше

 

 

Night_SH вот 2 статьи (Создание Диалогов | Создание Диалогов (Полный Обзор)). Учись писать диалоги, потом принимайся за квесты

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

Поделиться этим сообщением


Ссылка на сообщение
function has_eye3(task, objective)

if db.actor ~= nil then

return db.actor:object("af_eye") ~= nil

end

return false

end --не работает...

потому что надо

function has_eye3(task, objective)
if db.actor ~= nil and db.actor:object("af_eye") ~= nil then
return true
end
return false
end

function has_lck_to_boroda(task, objective) - аналогично

 

function eye_out(first_speaker, second_speaker)

dialogs.relocate_item_section(second_speaker, "af_eye", "out") --в диалоге сообщение мол арт отдан а в инвентаре он остается

end

 

dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "af_eye")

 

function lck_out(first_speaker, second_speaker)

аналогично

Поделиться этим сообщением


Ссылка на сообщение

Он не возвращает значение true если у тебя есть предмет, я же тебе выше писал!

 

function has_lck_to_boroda(task, objective)

if db.actor ~= nil and db.actor:object("lck") ~= nil then

return true

end

return false

end

Поделиться этим сообщением


Ссылка на сообщение
Не флудим!


Теперь другой вопрос, как выдать поршн когда подобрал предмет?

открываем bind_stalker.script, находим там function actor_binder:on_item_take (obj) и под ней пишем

if obj and obj.section_name then
  if obj:section_name()=="kolbasa" then
     if not has_alife_info("ИНФОПОРШЕНЬ") then give_info("ИНФОПОРШЕНЬ") end
  end
end

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

ну дак инфопоршень то пропиши.... в info_zaton.xml к примеру.

 

инфопоршень прописан.

идентификатор проверь

 

Ещё вот такой вылет:

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

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

Поделиться этим сообщением


Ссылка на сообщение
И будет ли продолжаться тема? Хотелось бы еще посмотреть квесты на устранение неприятных личностей-таких как Умник в ТЧ например...

 

будет время... Собсна в квестах по устранению нет ничего сложного

 

 

какую функцию нада писать для квестов на убийство левых мужиков?

в детч_каллбек вставлять проверку по ID сталкера

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

Поделиться этим сообщением


Ссылка на сообщение

судя по всему, on_init является не условием запуска квеста, а тем что выполняется после выдачи квеста.

 

функция send_tip есть в xr_effect

 

reward_item необходимо протестировать, возможно у меня скоро это получится :)

 

Как при начале новой игры кинуть типс...

найти откуда выдаются квесты на вертолеты, оттуда же вызвать свой квест, типс выдается автоматом ("Новое задание: название"). если нужно доп.типс то там же где выдается квест вбить еще: news_manager.send_tip(db.actor, "текст", timeout, "sender", showtime)

 

timeout - задержка

sender - иконка

pioneer

mutant_hunter

detective

one_of_the_lads

kingpin

herald_of_justice

seeker

battle_systems_master

high_tech_master

skilled_stalker

leader

diplomat

research_man

friend_of_duty

friend_of_freedom

balance_advocate

wealthy

keeper_of_secrets

marked_by_zone

information_dealer

friend_of_stalkers

got_artefact

got_ammo

got_medicine

got_duty_light_armor

got_duty_heavy_armor

got_freedom_light_armor

got_freedom_heavy_armor

can_resupply

recent_surge

 

 

showtime - время показывания

 

 

Как будет время статью отредактирую и напишу для примера квест по сложней.

Поделиться этим сообщением


Ссылка на сообщение

Возможно просто текст указан без ковычек.

 

Po-meceniy лучше давай в таких случаях код квеста, легче будет сказать в чем проблема....

Поделиться этим сообщением


Ссылка на сообщение

Po-Meceniy А функции? Просто так же не вылетит на типс

 

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

Не ну вы ребята какие то странные :D пишите квест а вылетает мотиватор и логик

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

Поделиться этим сообщением


Ссылка на сообщение

ZeeK ну с места же тоже не вылетит, что-то ковырял

 

Po-meceniy тем более что стандартный типс выдаваемый при взятии квеста явно просто так не вылетит.

Поделиться этим сообщением


Ссылка на сообщение
Я подозреваю что дело в странном скрипте вызова задания:

а я подозреваю что дело в чьих то .. руках

 

В игре судя по всему ни один квест так не берется.

 

 

xr_effect.script:

function give_task(actor, obj, p)
    if p[1] == nil then
        abort("No parameter in give_task function.")
    end
    task_manager.get_task_manager():give_task(p[1])
end

 

вызывается из файлов логики.

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

Поделиться этим сообщением


Ссылка на сообщение
А почему тогда в этом уроке, квест вызывается из dialogs_zaton.script?

да вызови ты его хоть из bind_stalker, какая разница

 

title = {=actor_has_item(vodka)}vodka_barmen_prinesti_name, vodka_barmen_naiti_name

 

при взятии квеста Название его будет vodka_barmen_naiti_name

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

 

actor_has_item - это функция

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

Поделиться этим сообщением


Ссылка на сообщение

function has_ak74(task, objective)
    if db.actor ~= nil and db.actor:object("wpn_ak74") ~= nil then
        return true
    end
    return false
end

 

[Search_ak74_quest]
icon = ui_inGame2_Put_v_pripyat
prior = 2
storyline = false
title = {=actor_has_item(wpn_ak74)}barmen_ak74_prinesti, barmen_ak74_searsh
descr = barmen_ak74_desc
target = {=actor_has_item(wpn_ak74)}zat_a2_stalker_barmen
condlist_0 = {+prines_ak74} complete

 

<dialog id="Prines_ak74">
<dont_has_info>prines_ak74</dont_has_info>
<precondition>dialogs_zaton.has_ak74</precondition>
<phrase_list>
    <phrase id="1">
        <text>Спасибо, чувак. Выручил</text>
        <give_info>prines_ak74</give_info>
    </phrase>
    <phrase id="0">
        <text>Вот твой автомат</text>
        <action>dialogs_zaton.otdal_ak74</action>
        <next>1</next>
    </phrase>
</phrase_list>
</dialog>

    <string id="barmen_ak74_searsh">
        <text>Найти АК-74</text>
    </string>
    <string id="barmen_ak74_prinesti">
        <text>Принести автомат Бороде</text>
    </string>

 

 

 

потести, щас вроде должен работать

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

Поделиться этим сообщением


Ссылка на сообщение

Phantom1305

 

[kill_stalker]
icon = ui_inGame2_Zalozhnik
prior = 1
storyline = false
title = {+stalker_vasyu_killed}zabrat_reward, kill_vasya
descr = kill_vasya_descr
target = {+stalker_vasyu_killed} zat_b5_talk_to_sultan_id
condlist_0 = {+kill_stalker_done} complete

 

 

xr_motivator.script:

function motivator_binder:death_callback(victim, who)

 

if who:id()==db.actor:id() and victim:character_name()=="Вася" then
give_info("stalker_vasyu_killed")
end

 

 

ну или если у твоего "Васи" есть логика то добавь туда:

on_death = death

 

...

 

[death]

on_info = %+stalker_vasyu_killed%

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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