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

Создание квеста

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

В статье по созданию примитивного квеста ты отдаеш водку два раза я пробовал править скрипт на отдачу но у меня не получилось вот скрипт function is_has_vodka_borode()

if db.actor:object("af_cristall") then

Return true - эту функцию я убирал несработало

End

Return false - эту функцию я убрал когда не получилось с 1 функцией

End

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


Ссылка на сообщение
Поделиться на других сайтах

@bios, попробуй так:

function is_has_vodka_borode()
  return db.actor:object("af_cristal")~=nil
end

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

naxac.gif

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


Ссылка на сообщение
Поделиться на других сайтах

@bios, Есть удобные и проверенные функции для квестов от Сяка.

local items_count=0
local itemin=nil

function have_item_namber(itm,need_namber)
local actor=db.actor
items_count=0
itemin=itm
actor:iterate_inventory(cheking_item,actor)
if items_count>=need_namber then
return true
else
return false
end
end
function cheking_item(actor,item)
local items=item:section()
if items==itemin then
items_count=items_count+1
end
end
function create_items(npc,section,number)
for i=1,number do
alife():create(section,
npc:position(),
npc:level_vertex_id(),
npc:game_vertex_id(),
npc:id())
end
end
local reloc_params={}
local stalk
function out_item_namber(itm_section,need_number)
reloc_params.itm_section=itm_section
reloc_params.itm_cnt=need_number
reloc_params.itm_cnt_found=0
db.actor:iterate_inventory(checkout_items_count,db.actor)
reloc_params.itm_cnt_found=0
if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then
db.actor:iterate_inventory(out_items_count,db.actor)
end
news_manager.relocate_item(db.actor, "out", itm_section)
reloc_params={}
end
function relocate_item_namber(stalker,itm_section,need_number)
stalk=stalker
reloc_params.itm_section=itm_section
reloc_params.itm_cnt=need_number
reloc_params.itm_cnt_found=0
db.actor:iterate_inventory(checkout_items_count,db.actor)
reloc_params.itm_cnt_found=0
if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then
db.actor:iterate_inventory(reloc_items_count,db.actor)
end
news_manager.relocate_item(db.actor, "out", itm_section)
reloc_params={}
end
function checkout_items_count(actor,item)
if item.section and item:section()==reloc_params.itm_section then
reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1
end
end
function reloc_items_count(actor,item)
if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then
db.actor:transfer_item(item, stalk)
reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1
end
end
function out_items_count(actor,item)
if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then
amk.remove_item_from_inventory(item, actor)
reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1
end
end

Пример использования.

function escape_sid_doki_have()
    return sak.have_item_namber("sid_document",1) ~= false  
end
function give_escape_sid_doki(first_speaker, second_speaker) 
    sak.out_item_namber("sid_document", 1)
end
function complete_escape_sid_doki_quest(first_speaker, second_speaker)  
    dialogs.relocate_money(second_speaker, 5000, "in")
dialogs.relocate_item_section(second_speaker, "wpn_toz34_vip", "in")
end 

 

 

Intrel Core i5 9400F, MSI GF GTX 1050 Ti GAMING X 4G, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

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


Ссылка на сообщение
Поделиться на других сайтах

Всем привет народ, как сделать так чтобы при общение с НПС, через 10 секунд он стал ГГ враг. Платформа ЗП.

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


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, как в оригинальном тч создать квест на поиск и разговор с ранее заспавненым нпс?

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


Ссылка на сообщение
Поделиться на других сайтах

@Stalkeruga_238

Руками... и головой наверное. А еще поиском воспользоваться...

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


Ссылка на сообщение
Поделиться на других сайтах

Всем привет
Хочу спросить а как делать квест(ы) с под квестами, на подобии "поговорить с волком, встретится с людми волка и т.д"
И еще один вопрос, как сделать так чтобы квест активировался автоматически после выполнения предыдущего(сразу) пример "Помочь отбиться от бандитов, и когда дальше проходишь по свалке, сразу появляется другое задание помочь (Серому) с звуковым сообщением с просьбой о помощи..."

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


Ссылка на сообщение
Поделиться на других сайтах

@Пикадоний

Загляни в раздел "Уроки по модостроению" - там сразу же на первой странице, пример создания квеста...

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


Ссылка на сообщение
Поделиться на других сайтах

 

@Пикадоний

Загляни в раздел "Уроки по модостроению" - там сразу же на первой странице, пример создания квеста...

 

 

Это не совсем то что я ищу...

Я ищу как сделать чтобы после выполнения одного задания давали другое, как в оригинале...

Приносишь флешку сидору, потом он дают сразу другое задание, а если не брать его то появится авто задание "Взять спец задание у сидора"...

Изменено пользователем Пикадоний

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


Ссылка на сообщение
Поделиться на других сайтах
@Пикадоний, "задания, квесты и етс" являются всего лишь гемплейной терминологией, внешняя (видимая на экране) часть производится набором специфических файликов (ты их должен знать), НО все взаимодействия между "внутренними событиями" чаще всего происходят посредством инфопорций, которые в свою очередь выдаются разными способами. К примеру тот случай в ТЧ со "спецзаданием Сидорыча" выполняется с помощью рестриктора (он построился после соответствующего диалога, а ты вышел из этого поля, или зашёл в него), или с помощью логики самого Сидорыча, когда в ней включилась секция, где ты отдалился от Сидорыча на "н"-метров и выдался поршень, а по этому поршню выдалось "задание". Или же по таймеру... Придётся и это постигать, хотя бы азы. Изменено пользователем Korpus

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


Ссылка на сообщение
Поделиться на других сайтах

Приветствую всех форумчан. Дело такое: создал я квест на поиск документов( ну как квест - документы просто прописаны в спавн через скрипт и гг по наводкам их ищет). Хочу реализовать нормальный квест по их сдаче - чтобы после нахождения всех документов ГГ приходила СМС и начинался квест. Но толком реализовать не получается - мододел я зелёный :unsure: . Просьба всем, кто знает как это сделать или располагает соответствующими знаниями помочь в этом деле (может есть уроки по созданию квестов такого типа или кто-то сам этим уже занимался). Спасибо заранее.

Лучше сделать мод с 0, чем пытаться залатать багованный.

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


Ссылка на сообщение
Поделиться на других сайтах

Intrel Core i5 9400F, MSI GF GTX 1050 Ti GAMING X 4G, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

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


Ссылка на сообщение
Поделиться на других сайтах

 

 

чтобы после нахождения всех документов ГГ приходила СМС и начинался квест

Ох и говняный(на мой взгляд) это стиль в геймплее\сюжете: откуда заинтересованный персонаж узнает что ГГ, в черт знает скольких километрах от него, нашел какую-то папочку\кейс ? Лучше сделай, после нахождения всех документов, появление соответствующей ветки в диалоге нужного непися.

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


Ссылка на сообщение
Поделиться на других сайтах
чтобы после нахождения всех документов ГГ приходила СМС и начинался квест

Я конечно не квестер, но предполагаю, что тебе надо сперва повесить функцию проверки на определенные предметы в инвентаре ГГ, и выдавать поршень, когда они все у тебя на руках. А на выдачу этого поршня повесить выполнение функции по приходу СМС и активации квеста. Как-нибудь так, что ли..

 

Функция по проверке предметов:

 

 

local t_wpn = {
"ПРЕДМЕТ1",
"ПРЕДМЕТ1",
"ПРЕДМЕТ1"
}

function search_ALL_weapons_complete()
  local gg = db.actor
   if gg then
     for i=1,#t_wpn do
   if not gg:object(t_wpn) then
  return false
 end
end
gg:give_info_portion("ПОРШЕНЬ")
    return true
  end
 return false
end

 

 

Так же кроме give_info_portion можно повесить любые другие функции, ту же выдачу СМС. Вешать все это дело в апдейт бинд_сталкера.

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

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 10 PRO x64 / Samsung Curved 27" x2

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


Ссылка на сообщение
Поделиться на других сайтах

 

 

Вешать все это дело в апдейт бинд_сталкера.

Вай, вай... Что-ж Вы так жестоко-то? Это ради одного квеста НА КАЖДОМ апдейте тормошить инвентарь и т.д.?

Может лучше воспользоваться ф-цией on_item_take(из bind_stalker.script) ? Которая будет срабатывать только при появлении в инвентаре предметов, что происходит значительно реже, чем апдейт актора...

Ну допустим документов для квеста 3 и для каждого своя секция в конфиге. В on_item_take проверяем наличие предметов с этими секциями, как появятся все 3 - запускаем квест, а дальнейшую проверку отсекаем инфо-порцией, которая будет квест запускать.

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


Ссылка на сообщение
Поделиться на других сайтах

 

 

Вай, вай... Что-ж Вы так жестоко-то? Это ради одного квеста НА КАЖДОМ апдейте тормошить инвентарь и т.д.?

Не говори, а ещё лучше ввести систему сигналов = и вообще забыть про бинд_сталкер, и не лезть туда больше, и нервы целы, и нагруз на движок меньше...

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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


Ссылка на сообщение
Поделиться на других сайтах

Привет всем. Имеется такая проблема делаю квест на убийство нпс( спавн  через скрипт) Как  поставить метку на него(нпс) пробовал прописывать в файле tasks_escape.xml в строке <object_story_id>esc_vasuok_npc</object_story_id>  прописывать имя которое задавал в файле game_story_ids.ltx новой строкой -  093 = "esc_vasuok_npc" . Но метка не появлялась  Что я делаю не так?  Или надо метку задавать скриптом, если да то где можно прочитать как это сделать. Заранее спасибо.

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


Ссылка на сообщение
Поделиться на других сайтах
Что я делаю не так?

Если ты объявил нужный story_id в game_story_ids.ltx, а затем прописал его в каком-то задании(task), и метка на объекте не появляется - то скорее всего, ты забыл привязать этот story_id к самому объекту. Сделать это можно несколькими способами: в СДК в свойствах объекта, в соответствующем alife-файле распакованного(декомпилированного) all.spawn'а или нет-пакетом при скриптовом создании непися(это видимо тот вариант, что тебе нужен).

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

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


Ссылка на сообщение
Поделиться на других сайтах

Если ты объявил нужный story_id в game_story_ids.ltx, а затем прописал его в каком-то задании(task), и метка на объекте не появляется - то скорее всего, ты забыл привязать этот story_id к самому объекту. Сделать это можно несколькими способами: в СДК в свойствах объекта, в соответствующем alife-файле распакованного(декомпилированного) all.spawn'а или нет-пакетом при скриптовом создании непися(это видимо тот вариант, что тебе нужен).

А где можно узнать как то сделать?

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


Ссылка на сообщение
Поделиться на других сайтах

 

 

как то сделать?

Уточни - какой из трех способов тебе нужен ?

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


Ссылка на сообщение
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

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