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

[CoP] Квесты


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

Я так и не понял - Как написать СЮЖЕТНЫЙ Квест? Например: Пошёл туда,  убил тех и тех и сразу же по ПДА пришло задание: мол сгоняй туда и забери важный документ/Артефакт. А потом придти к квесто дателю. Отдать квест и получить продолжение... Как?

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

Я так и не понял - Как написать СЮЖЕТНЫЙ Квест? Например: Пошёл туда,  убил тех и тех и сразу же по ПДА пришло задание: мол сгоняй туда и забери важный документ/Артефакт. А потом придти к квесто дателю. Отдать квест и получить продолжение... Как?

Ну как-как... Со старта игры выдаем сюжетное задание - "пойти туда, убить тех". Спавним "тех" в "туда" и ставим на них метку.  Дальше у тебя не очень понятно, но схема та-же: спавним "документ/Артефакт" и выдаем задание на его подбор. Отлавливаем момент, когда нужный предмет у ГГ, дальше по учебнику - меняем задание и таргет на "отдать-принести".

Если такие вещи слишком сложны-непонятны - читать хелпы к СДК, туторы на этом сайте и сталкервики и вникать, вникать. Короче мозг нужно немного напрячь. Но с квестами в ЗП - вообще никаких проблем нету.

А вообще совет - при составлении квеста, создай четкий алгоритм - что, где, когда, должно случится, что делать, если это не случилось, что делать, если случилось не то, что задумано, а после этого уже пиши квест.

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

Сделал все как было сказано. Запустил игру взял у Бороды квест. Нашел бутылку водки. А когда подхожу отдать ему водку диалога нет. Помогите!

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

Спасибо огромное, реально простой и полезный урок!

 

Есть ли урок по созданию квеста на уничтожение сквада нпс полностью?

 

Всем доброго вечера!
Возник вопрос, как сделать что бы у квестого нпс не появлялся определённый диалог до выполнение квеста от другого нпс?

- Пролетарии всех стран, соединяйтесь!

 

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

@WizziGun, поставить в диалоге проверку на инфопоршень или прекондишен.

<dialog id="qwertyuiop">
  <has_info>infoportion</has_info>
  <phrase_list>
...
Изменено пользователем naxac
  • Спасибо 1
  • Согласен 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@XMK По вашей логике, те кто что-то не знает не должны этому учиться, а должны просто всё бросить?

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

COP. Пропадают ли вещи, заспавненые скриптом? Допустим, если выкинуть пару стволов игроком - они пропадут со временем, а если заспавнить через скрипт те же предметы (или в all.spawn) они будут пропадать?

Ссылка на комментарий
1 час назад, Rietmon сказал:

Если можно, полную функцию для этого и с пояснениями, а то вообще ничего не получается.

Давай-ка ты сначала почитаешь по-внимательнее тему "Уроки по модостроению" ?

  • Согласен 1
Ссылка на комментарий
3 часа назад, AndreySol сказал:

Давай-ка ты сначала почитаешь по-внимательнее тему "Уроки по модостроению" ?

function z_one_find_d_kardan_two() 
if db.actor:object("zapiska_alpinist") then 
db.actor:give_info_portion("first_z_alpinist_d_kardan2")
return true 
end 
return false 
end

Вот. у меня получилось это. Но не работает. Поршень зарегистрирован и вписан в диалог, что бы без него он не появлялся.

Изменено пользователем Rietmon
Ссылка на комментарий
12 минут назад, Rietmon сказал:

Но не работает

Ф-ция z_one_find_d_kardan_two() должна быть вызвана каким-то способом - в диалоге, в другой скриптовой ф-ции, из спейс-рестриктора, из логики. Зависит от того, как ты это запланируешь в своем квесте.

Судя по содержимому твоей ф-ции - требуется выдать и-п по факту появления у актера нужного предмета. Такого на этом сайте описано просто огромное кол-во, по этому кратко один из распространенных способов: в скрипт актера bind_stalker.script добавить обработчик on_item_take, в него и перенести содержимое из вышеприведенной тобой ф-ции. Подробнее - делай поиск по выделенному выше слову и вперед...

Ссылка на комментарий
16 минут назад, AndreySol сказал:

on_item_take

Побегал по сайту, но понятнее вообще не стало. Что, куда прописывать. Можешь объяснить на пальцах специально для моего случая? Был бы очень признателен!

При помощи диалога, "action" заспавнил эту записку, но при ее подборе (или проверка наличия в инвентаре - неважно) - должен выдаваться И-П, который откроет след. диалог. Можно ли это сделать проще?

Изменено пользователем Rietmon
Ссылка на комментарий
59 минут назад, Rietmon сказал:

При помощи диалога, "action" заспавнил эту записку, но при ее подборе (или проверка наличия в инвентаре - неважно) - должен выдаваться И-П, который откроет след. диалог. Можно ли это сделать проще?

В таком случае тебе не нужен инфопоршень. В диалоге, где нужно проверить наличие предмета, добавляем прекондишен:

<dialog id="qwertyuiop">
    <precondition>script.func_name</precondition>
    <phrase_list>
...

В скрипт пишем:

function actor_has_zapiska_alpinist()
    return db.actor:object("zapiska_alpinist") ~= nil
end

Всё.

  • Полезно 1

Ранее был известен под ником BoBaH_671.

Ссылка на комментарий
1 минуту назад, BoBaH_671 сказал:

Всё.

Я тоже не глупый и делал так - но функция была бесполезна - диалога либо не было вовсе, либо он показывался не зависимо от того, есть ли у меня предмет, или нету. Поэтому перешел на поршень. Сложнее - но работает.

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

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

  • Спасибо 1

Ранее был известен под ником BoBaH_671.

Ссылка на комментарий
3 минуты назад, BoBaH_671 сказал:

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

function Название функции()
if db.actor:object("название предмета") then
return true
end
return false
end

Я пользовался этой функцией, после чего в условие вписывал файл_скрипта.имя_функции - реакция была, как уже говорил выше.

А мне надо функция лишь на открытие диалога после подбора записки.

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

Может, ты спутал precondition и action? Перепроверь. Твоя функция эквивалентна той, что я скинул выше. Не может не работать без причины.

Ранее был известен под ником BoBaH_671.

Ссылка на комментарий
2 минуты назад, BoBaH_671 сказал:

Может, ты спутал precondition и action? Перепроверь. Твоя функция эквивалентна той, что я скинул выше. Не может не работать без причины.

Да в том-то и дело, что нет. Все было сделано по гайду. Даже скрины есть этой аномалии движка. Может, это могло быть из-за слишком сложного диалога? В нем много разветвленийю

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

Задался таким вопросом. Как вычислить координаты новой иконки квеста? С помощью чего?

Уже разобрался, в sie узнал крайние верхние левые и правые координаты.

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

- Пролетарии всех стран, соединяйтесь!

 

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

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

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

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

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

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

Войти

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

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

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