bios 0 Опубликовано 6 Декабря 2015 Поделиться Опубликовано 6 Декабря 2015 В статье по созданию примитивного квеста ты отдаеш водку два раза я пробовал править скрипт на отдачу но у меня не получилось вот скрипт function is_has_vodka_borode() if db.actor:object("af_cristall") then Return true - эту функцию я убирал несработало End Return false - эту функцию я убрал когда не получилось с 1 функцией End Ссылка на комментарий
naxac 2 445 Опубликовано 6 Декабря 2015 Поделиться Опубликовано 6 Декабря 2015 @bios, попробуй так: function is_has_vodka_borode() return db.actor:object("af_cristal")~=nil end Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 6 Декабря 2015 Поделиться Опубликовано 6 Декабря 2015 @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 2 Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
JoniDen 7 Опубликовано 10 Декабря 2015 Поделиться Опубликовано 10 Декабря 2015 Всем привет народ, как сделать так чтобы при общение с НПС, через 10 секунд он стал ГГ враг. Платформа ЗП. Ссылка на комментарий
Stalkeruga_238 2 Опубликовано 3 Марта 2016 Поделиться Опубликовано 3 Марта 2016 Подскажите, как в оригинальном тч создать квест на поиск и разговор с ранее заспавненым нпс? Ссылка на комментарий
UnLoaded 313 Опубликовано 3 Марта 2016 Поделиться Опубликовано 3 Марта 2016 @Stalkeruga_238 Руками... и головой наверное. А еще поиском воспользоваться... 1 Ссылка на комментарий
Пикадоний 0 Опубликовано 13 Марта 2016 Поделиться Опубликовано 13 Марта 2016 Всем приветХочу спросить а как делать квест(ы) с под квестами, на подобии "поговорить с волком, встретится с людми волка и т.д"И еще один вопрос, как сделать так чтобы квест активировался автоматически после выполнения предыдущего(сразу) пример "Помочь отбиться от бандитов, и когда дальше проходишь по свалке, сразу появляется другое задание помочь (Серому) с звуковым сообщением с просьбой о помощи..." Ссылка на комментарий
UnLoaded 313 Опубликовано 13 Марта 2016 Поделиться Опубликовано 13 Марта 2016 @Пикадоний Загляни в раздел "Уроки по модостроению" - там сразу же на первой странице, пример создания квеста... Ссылка на комментарий
Пикадоний 0 Опубликовано 14 Марта 2016 Поделиться Опубликовано 14 Марта 2016 (изменено) @Пикадоний Загляни в раздел "Уроки по модостроению" - там сразу же на первой странице, пример создания квеста... Это не совсем то что я ищу... Я ищу как сделать чтобы после выполнения одного задания давали другое, как в оригинале... Приносишь флешку сидору, потом он дают сразу другое задание, а если не брать его то появится авто задание "Взять спец задание у сидора"... Изменено 14 Марта 2016 пользователем Пикадоний Ссылка на комментарий
Korpus 49 Опубликовано 14 Марта 2016 Поделиться Опубликовано 14 Марта 2016 (изменено) @Пикадоний, "задания, квесты и етс" являются всего лишь гемплейной терминологией, внешняя (видимая на экране) часть производится набором специфических файликов (ты их должен знать), НО все взаимодействия между "внутренними событиями" чаще всего происходят посредством инфопорций, которые в свою очередь выдаются разными способами. К примеру тот случай в ТЧ со "спецзаданием Сидорыча" выполняется с помощью рестриктора (он построился после соответствующего диалога, а ты вышел из этого поля, или зашёл в него), или с помощью логики самого Сидорыча, когда в ней включилась секция, где ты отдалился от Сидорыча на "н"-метров и выдался поршень, а по этому поршню выдалось "задание". Или же по таймеру... Придётся и это постигать, хотя бы азы. Изменено 14 Марта 2016 пользователем Korpus Ссылка на комментарий
DarkSnowder 900 Опубликовано 20 Марта 2016 Поделиться Опубликовано 20 Марта 2016 Приветствую всех форумчан. Дело такое: создал я квест на поиск документов( ну как квест - документы просто прописаны в спавн через скрипт и гг по наводкам их ищет). Хочу реализовать нормальный квест по их сдаче - чтобы после нахождения всех документов ГГ приходила СМС и начинался квест. Но толком реализовать не получается - мододел я зелёный . Просьба всем, кто знает как это сделать или располагает соответствующими знаниями помочь в этом деле (может есть уроки по созданию квестов такого типа или кто-то сам этим уже занимался). Спасибо заранее. Лучше сделать мод с 0, чем пытаться залатать багованный. Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 20 Марта 2016 Поделиться Опубликовано 20 Марта 2016 , http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%BE%D0%B2 1 Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
UnLoaded 313 Опубликовано 20 Марта 2016 Поделиться Опубликовано 20 Марта 2016 чтобы после нахождения всех документов ГГ приходила СМС и начинался квест Ох и говняный(на мой взгляд) это стиль в геймплее\сюжете: откуда заинтересованный персонаж узнает что ГГ, в черт знает скольких километрах от него, нашел какую-то папочку\кейс ? Лучше сделай, после нахождения всех документов, появление соответствующей ветки в диалоге нужного непися. 1 Ссылка на комментарий
HellRatz 2 873 Опубликовано 20 Марта 2016 Поделиться Опубликовано 20 Марта 2016 (изменено) чтобы после нахождения всех документов ГГ приходила СМС и начинался квест Я конечно не квестер, но предполагаю, что тебе надо сперва повесить функцию проверки на определенные предметы в инвентаре ГГ, и выдавать поршень, когда они все у тебя на руках. А на выдачу этого поршня повесить выполнение функции по приходу СМС и активации квеста. Как-нибудь так, что ли.. Функция по проверке предметов: 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 можно повесить любые другие функции, ту же выдачу СМС. Вешать все это дело в апдейт бинд_сталкера. Изменено 20 Марта 2016 пользователем HellRatz GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
UnLoaded 313 Опубликовано 20 Марта 2016 Поделиться Опубликовано 20 Марта 2016 Вешать все это дело в апдейт бинд_сталкера. Вай, вай... Что-ж Вы так жестоко-то? Это ради одного квеста НА КАЖДОМ апдейте тормошить инвентарь и т.д.? Может лучше воспользоваться ф-цией on_item_take(из bind_stalker.script) ? Которая будет срабатывать только при появлении в инвентаре предметов, что происходит значительно реже, чем апдейт актора... Ну допустим документов для квеста 3 и для каждого своя секция в конфиге. В on_item_take проверяем наличие предметов с этими секциями, как появятся все 3 - запускаем квест, а дальнейшую проверку отсекаем инфо-порцией, которая будет квест запускать. 3 Ссылка на комментарий
Romann 620 Опубликовано 22 Марта 2016 Поделиться Опубликовано 22 Марта 2016 Вай, вай... Что-ж Вы так жестоко-то? Это ради одного квеста НА КАЖДОМ апдейте тормошить инвентарь и т.д.? Не говори, а ещё лучше ввести систему сигналов = и вообще забыть про бинд_сталкер, и не лезть туда больше, и нервы целы, и нагруз на движок меньше... Мать: 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. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
нерон 0 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 Привет всем. Имеется такая проблема делаю квест на убийство нпс( спавн через скрипт) Как поставить метку на него(нпс) пробовал прописывать в файле tasks_escape.xml в строке <object_story_id>esc_vasuok_npc</object_story_id> прописывать имя которое задавал в файле game_story_ids.ltx новой строкой - 093 = "esc_vasuok_npc" . Но метка не появлялась Что я делаю не так? Или надо метку задавать скриптом, если да то где можно прочитать как это сделать. Заранее спасибо. Ссылка на комментарий
UnLoaded 313 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 (изменено) Что я делаю не так? Если ты объявил нужный story_id в game_story_ids.ltx, а затем прописал его в каком-то задании(task), и метка на объекте не появляется - то скорее всего, ты забыл привязать этот story_id к самому объекту. Сделать это можно несколькими способами: в СДК в свойствах объекта, в соответствующем alife-файле распакованного(декомпилированного) all.spawn'а или нет-пакетом при скриптовом создании непися(это видимо тот вариант, что тебе нужен). Изменено 25 Марта 2016 пользователем UnLoaded Ссылка на комментарий
нерон 0 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 Если ты объявил нужный story_id в game_story_ids.ltx, а затем прописал его в каком-то задании(task), и метка на объекте не появляется - то скорее всего, ты забыл привязать этот story_id к самому объекту. Сделать это можно несколькими способами: в СДК в свойствах объекта, в соответствующем alife-файле распакованного(декомпилированного) all.spawn'а или нет-пакетом при скриптовом создании непися(это видимо тот вариант, что тебе нужен). А где можно узнать как то сделать? Ссылка на комментарий
UnLoaded 313 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 как то сделать? Уточни - какой из трех способов тебе нужен ? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти