sasha47007 3 Опубликовано 18 Августа 2008 Поделиться Опубликовано 18 Августа 2008 Почитал что сдесь написано, но мне надо чтоб квест появился при старте новой игры, то есть, я появляюсь, и появляется квест-поговорить с Барменом Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-117159
n6260 152 Опубликовано 19 Августа 2008 Поделиться Опубликовано 19 Августа 2008 Почитал что сдесь написано, но мне надо чтоб квест появился при старте новой игры, то есть, я появляюсь, и появляется квест-поговорить с Барменом Ты не флуди... Тебе ясно сказали: образец есть - развивай. Что бы квест появился - надо обязательно какую то привязку для него. Т.е. или с кем-то поговорить, или что-то найти, или еще как - т.е. должно произойти какое то действие которое вызовет появление задания - ты в игре много видел квестов, которые появляются "просто так"? Так что читай и дерзай. А вот если будут ошибки какие вылезать - пиши и тебе помогут. 256 символов Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-117297
Смокер 5 Опубликовано 16 Сентября 2008 Поделиться Опубликовано 16 Сентября 2008 Ребята! Хочу сделать так, чтобы труп военного ( кстати его лучше спайнить около дерева недалеко от насыпи.А то получается что он прошел раненый через блокпост под мостом, а его друганы вояки, просто послали подальше.По логике, если патрулируется насыпь,и есть блок пост-то он должен быть уже на южном блокпосту или даже в госпитале) и квест по поиску экспедиции появлялся после выполнения квеста по золотым "лопухам".Так-же хочу сделать, чтобы после доставки ноута Якуту, начинался квест по поиску Клыка, а после него квест по Призраку. Прочитал несколько раз разные описания, но так и не понял.Подскажите-на какие функции скриптов обратить внимание. Ребята! Хочу сделать так, чтобы труп военного ( кстати его лучше спайнить около дерева недалеко от насыпи.А то получается что он прошел раненый через блокпост под мостом, а его друганы вояки, просто послали подальше.По логике, если патрулируется насыпь,и есть блок пост-то он должен быть уже на южном блокпосту или даже в госпитале) и квест по поиску экспедиции появлялся после выполнения квеста по золотым "лопухам".Так-же хочу сделать, чтобы после доставки ноута Якуту, начинался квест по поиску Клыка, а после него квест по Призраку. Прочитал несколько раз разные описания, но так и не понял.Подскажите-на какие функции скриптов обратить внимание. Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-126875
Silent Forest 0 Опубликовано 20 Сентября 2008 Поделиться Опубликовано 20 Сентября 2008 Подскажите, плз, скрипт для изымания денег у главгероя (определенной суммы, как плату за информацию). И еще, функцию проверки количества денег у персонажа. Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-128934
dan 6 Опубликовано 20 Сентября 2008 Поделиться Опубликовано 20 Сентября 2008 Подскажите, плз, скрипт для изымания денег у главгероя (определенной суммы, как плату за информацию). И еще, функцию проверки количества денег у персонажа. Пример из amk: проверяем наличие 30000 function actor_has_money_30000() return db.actor:money()>=30000 end отдаем 30000 function give_money_30000(t1,t2) local npc=t1 if npc:id()==db.actor:id() then npc=t2 end dialogs.relocate_money(npc,30000,"out") end Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-128940
Wawka 6 Опубликовано 21 Сентября 2008 Поделиться Опубликовано 21 Сентября 2008 Silent Forest, либо можно и по другому (по крайней мере, я таким кодом пользуюсь). Пример проверки наличия денег: function have_money_30000(actor,npc) return actor:money() > 30000 end Изымание: function give_money_30000(actor, npc) dialogs.relocate_money(actor, 30000, "out") end have_money_30000 и give_money_30000 - это произвольное название функции - можно назвать как душе угодно. Главное, чтоб в action диалога было то же самое название. Пример - функция записана в скрипте wawka_dialog.script, тогда в диалоге проверка будет выглядить: <action>wawka_dialog.have_money_30000</action> А изъятие: <action>wawka_dialog.give_money_30000</action> Сразу говорю, в чём различия\недостатки\преимущества данных вариантов - не знаю Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-129157
Silent Forest 0 Опубликовано 22 Сентября 2008 Поделиться Опубликовано 22 Сентября 2008 Пример из amk: проверяем наличие 30000 function actor_has_money_30000() return db.actor:money()>=30000 end Функция вернет false, если денег нет? Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-129688
Wawka 6 Опубликовано 22 Сентября 2008 Поделиться Опубликовано 22 Сентября 2008 Функция вернет false, если денег нет?В таких тонкостях скриптов не разбираюсь - но на практике, денег нет, диалог не появляется. Деньги есть - появляется. Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-129694
Kostya V 36 Опубликовано 22 Сентября 2008 Поделиться Опубликовано 22 Сентября 2008 В таких тонкостях скриптов не разбираюсь - но на практике, денег нет, диалог не появляется. Деньги есть - появляется. Пример из amk: проверяем наличие 30000 function actor_has_money_30000() return db.actor:money()>=30000 end Эта функция для проверки денег у ГГ. Чтобы диалог не начинался надо вставить в начале диалога <precondition>new_dialog.actor_has_money_30000</precondition> И тогда если нет столько денег, то диалог не появиться. Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет! Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-129717
ferrari314 3 Опубликовано 30 Сентября 2008 Поделиться Опубликовано 30 Сентября 2008 создал квестик ----------------------------------------------------------------------------------------------- <dialog id="export_weapons_1"> <phrase_list> <phrase id="0"> <text>zdorova_sidor,_mogno_y_teba_orygie zakazat?</text> <next>1</next> </phrase> <phrase id="1"> <text>da,_y_mena_est_lr300_i_svd</text> <next>2</next> <next>3</next> </phrase> <phrase id="2"> <text>davai_lr300</text> <next>21</next> </phrase> <phrase id="21"> <text>prinesi_3_konservu</text> <next>22</next> <next>0</next> </phrase> <phrase id="22"> <preconditions>export_weapons_1.have_a_conserva</preconditions> <action>export_weapons_1.otdat_conserva</action> <text>prines_ia_tvoi_konservu</text> <next>23</next> </phrase> <phrase id="23"> <text>dergi_svoiy_vintovky</text> <action>export_weapons_1.vzat_vintovky</action> <next>0</next> </phrase> <phrase id="3"> <text>bla-bla</text> <next>31</next> </phrase> <phrase id="31"> <text>bla-bla</text> <next>32</next> </phrase> <phrase id="32"> <text>bla-bla</text> <next>0</next> </phrase> </phrase_list> </dialog> ---------------------------------------------------------------------- function have_a_conserva(task, objective) if db.actor ~= nil then return db.actor:object("conserva") ~= nil end return false end function otdat_konserva(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "conserva", "out") end function vzat_vintovky(first_speaker, second_speaker) dialogs.relocate_item_section(first_speaker, "wpn_lr300", "in") end все работает, но консервы не исчезают - это раз. Как их сделать по ттри не врублюсь, ведь если ставить function otdat_konserva(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "conserva", "out") dialogs.relocate_item_section(second_speaker, "conserva", "out") dialogs.relocate_item_section(second_speaker, "conserva", "out") end пропадает все равно одна, если вызывать одну функцию три раза - вылет... хз..хз.. что делать о_0 Истина где-то рядом... Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134033
Wawka 6 Опубликовано 30 Сентября 2008 Поделиться Опубликовано 30 Сентября 2008 Если установлен НЛС, то можно вот таким образом: function otdat_konserva(first_speaker, second_speaker) sak.out_item_namber("conserva", 3) end Если нет НЛС, то помимо вышеуказанного, нужно дописать в свой скрипт вот это (пусть меня поправят, если я не прав): 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 И в sak.out_item_namber("conserva", 3), вместо sak пропиши свой скрипт, в который добавишь второй код. К примеру, вышеуказанное записано в скрипт ferrari.script: function otdat_konserva(first_speaker, second_speaker) ferrari.out_item_namber("conserva", 3) end Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134047
Сяк 61 Опубликовано 30 Сентября 2008 Поделиться Опубликовано 30 Сентября 2008 поправлю - кроме вышеуказанной функции необходимы функции подсчета и проверки: 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 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134048
ferrari314 3 Опубликовано 30 Сентября 2008 Поделиться Опубликовано 30 Сентября 2008 Сяк, огромное спасибо, НЛЦ стоит, упрощу себе задачу. . Но реакции - ноль. Консервы не исчезають Кто виноват и что делать? Истина где-то рядом... Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134076
Сяк 61 Опубликовано 30 Сентября 2008 Поделиться Опубликовано 30 Сентября 2008 Сяк, огромное спасибо, НЛЦ стоит, упрощу себе задачу. . Но реакции - ноль. Консервы не исчезають Кто виноват и что делать? ты вызываешь sak.out_item_namber("conserva", 3) или свою делаешь? Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134090
ferrari314 3 Опубликовано 30 Сентября 2008 Поделиться Опубликовано 30 Сентября 2008 вызваю твою Истина где-то рядом... Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134092
Сяк 61 Опубликовано 30 Сентября 2008 Поделиться Опубликовано 30 Сентября 2008 вызваю твою Тогда внимательно проверяй все - где то накосячил с вызовом. Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134096
ferrari314 3 Опубликовано 30 Сентября 2008 Поделиться Опубликовано 30 Сентября 2008 Вот это я понял, а где накосячил - недопру. Истина где-то рядом... Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134103
dan 6 Опубликовано 30 Сентября 2008 Поделиться Опубликовано 30 Сентября 2008 Вот это я понял, а где накосячил - недопру. Вот еще простая функция передачи предмета function atp_barman_wpn_addon_sil_762_ar(first_speaker, second_speaker) local item = "" local actor, trader if db.actor and db.actor:id() == first_speaker:id() then actor = first_speaker trader = second_speaker else actor = second_speaker trader = first_speaker end flamethrower.relocate_n_items_section(trader, "vodka", "out", 10) dialogs.relocate_item_section(actor, "wpn_addon_sil_762_ar", "in", 1) end Только запомни если передаешь один предмет то используешь dialogs.relocate_item_section если больше одного flamethrower.relocate_n_items_section И ничего дописывать не надо, правда это только на АМК прокатит, либо тебе нужен будет скрипт амк flamethrower.script Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134225
ferrari314 3 Опубликовано 1 Октября 2008 Поделиться Опубликовано 1 Октября 2008 И последнее, как сделать проверку наличия нескольких предматов(думустем тех-же трех консерв) Истина где-то рядом... Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134591
sirwalrus 0 Опубликовано 1 Октября 2008 Поделиться Опубликовано 1 Октября 2008 И последнее, как сделать проверку наличия нескольких предматов(думустем тех-же трех консерв) 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 PS за скриптик спасибо колмогору Вызывать так function have_4kolbasa() return barter.have_item_namber("kolbasa",4) ~= false end А соответствено have_4kolbasa()засунуть в прекондишн в диалоге можно Кровосос кровососу - друг, товарищ и КОРМ! Ссылка на комментарий https://www.amk-team.ru/forum/topic/847-sozdanie-kvesta/page/4/#findComment-134601
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти