Теперь я задам наверное самый тупой вопрос, из всех тех, что когда-либо тут задавал)) Может кто-нибудь скинуть что-то типа шаблона квестов. Ну, например квест биолога я нашел, а как сделать например, чтобы один НИП, отправлял к другому НИПу, тот попросил что-то принести? К примеру как торговка отправила к Йонаху, а он отправил за глиной, а потом он дал то, что тебе надо и ты вернулся к торговке и получил награду, как сделать квест такого типа? Я поискал в FTP, но ничего не нашел... И да, вопрос number two, когда компилируешь квесты, которые написал сам (как я уже говорил, что разобрался более или менее с кв. по типу биолога) так вот, в конце компиляции написало "quest name must give", в квесте имя есть, в honhong_list тоже вписал, куда-то еще надо вписывать?
quest biolog4 begin state start begin end state run begin when login or levelup with pc.level>=60 begin set_state(information) end end state information begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, " Биолог Шагираб ") end send_letter(" Специальное задание Биолога ") end
when button or info begin say_title(" Специальное задание Биолога ") say("") say(" Биолог, Шагираб, ученик Уриэля ") say(" просит твоей помощи. ") say(" Скорее найдите его. ") say("") end
when __TARGET__.target.click or 20084.chat." Мне нужна твоя помощь " begin target.delete("__TARGET__") say_title(" Биолог Шагираб: ") --- l say("") say(" Ох... привет. Я вновь прошу твоей помощи. ") say(" Я собираю информацию о монстрах ") say(" и травах нашей империи ") say(" но мне трудно собирать предметы одному... ") say(" сейчас я собираю инфомацию о монстрах в, ") say(" Сохане, и я думаю, что.... ") say(" Ты бы мог мне помочь с этим. ") say(" Пожалуйста помоги мне, ") say(" и я не забуду твою помошь. ") say("") wait() say_title(" Биолог Шагираб: ") say("") say(" Сейчас я изучаю монстров из Сохана ") say(" и для этого мне необходимы их Ледяные Пули... ") say("") wait() say_title(" Биолог Шагираб ") say("") say(" Ты мог бы принести мне несколько этих Ледяных Пуль: ") say_item_vnum(30050) say("") set_state(go_to_disciple) pc.setqf("duration",0) pc.setqf("collect_count",0) pc.setqf("drink_drug",0) end end state go_to_disciple begin when letter begin send_letter(" Специальный запрос Биолога ") end
when button or info begin say_title(" Специальный запрос Биолога ") say("") say(" Биологу нужны Ледяные Пули ") say(" из Долины. ") say(" Принисите ему 15 таких Ледяных Пуль, ") say(" и он щедро вас вознаградит . ") say_item_vnum(30050) say_reward(" Вы нашли "..pc.getqf("collect_count").." Ледяных Пуль ") say("") end
when 71035.use begin if get_time() < pc.getqf("durations") then say("") say(" Вы еще не можете ") say("") return end if pc.getqf("drink_drug")==1 then say("") say(" уже используется ") say("") return end if pc.count_item(30006)==99 then say_title(" Биолог Шагираб: ") say("") say(" Если вы выполняете квест на зубы, то ") say(" вы можете использовать зелье ") say("") return end pc.setqf("duration", get_time()-1) pc.remove_item(71035, 1) return end
when 20084.chat." GM: Пропустить " with pc.count_item(30050) >0 and pc.is_gm() and get_time() <= pc.getqf("duration") begin say(mob_name(20084)) say(" Йо на! Время пропущено. ") pc.setqf("duration", get_time()-1) return end
when 1107.kill begin local s = number(1, 20) if s == 1 then if pc.count_item(30050) < 15 then pc.give_item2(30050, 1) if pc.count_item(30050) == 15 then chat(" Вы нашли все Ледянные Пули. ") else chat(" Вы нашли Ледяную Пулю. ") end end end end
when 20084.chat." Я так занят... " with pc.count_item(30050) >0 begin if get_time() > pc.getqf("duration") then if pc.count_item(30050) > 0 then say_title(" Биолог Шагираб ") say("") say(" Хорошо... сейчас я проверю эту Ледяную Пулю. ") say("") pc.remove_item("30050",1) pc.setqf("duration",get_time()+7200) else say_title(" Биолог Шагираб: ") say(" У тебя нет "..item_name(30050).."! ") return end local s = 1 if s == 1 then if pc.getqf("collect_count")< 14 then local index =pc.getqf("collect_count")+1 pc.setqf("collect_count",index) say_title(" Биолог Шагираб ") say("") say(" Эта Книга отличного качества! ") say(" Пожалуйста, принисите мне еще "..15-pc.getqf("collect_count").. " Ледяных Пуль. ") say(" И тогда я смогу закончить свои ") say(" исследования. ") say("") say("") pc.setqf("drink_drug",0) return end say_title(" Биолог Шагираб: ") say("") say(" Вы собрали все Ледянные Пули, но ") say(" мне необходим еще один предмет... ") say(" Мне нужен Камень Души Ауртумрю ") say(" сможешь найти его для меня? ") say(" Ты сможешь добыть его в Сохане. ") say("") pc.setqf("collect_count",0) pc.setqf("drink_drug",0) pc.setqf("duration",0) set_state(key_item) return else say_title(" Биолог Шагираб: ") say(" К сожалению, эта Пуля получила сильные повреждения... ") say(" Я не смогу использовать ее для ") say(" исследований. Пожалуйста, найди мне другую. ") say("") pc.setqf("drink_drug",0) return end else say_title(" Биолог Шагираб: ") say("") say(" Не нужно торопиться, мой юнный друг. ") say(" Мне нужно некоторое время для того что бы проверить ") say(" эту Пулю. ") say("") say("") say("") say("") return end end end
state key_item begin when letter begin send_letter(" Найдите биолога ") if pc.count_item(30223)>0 then local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, "") end end end
when button or info begin if pc.count_item(30223) >0 then say_title(" Камень Души Ауртумрю ") say("") say_reward(" Принисите этот камень Биологу Шагирабу. ") say_reward(" Он ждет вас. ") say("") return end say_title(" Камень Души Ауртумрю ") say("") say(" Для исследований биологу Шагирабу ") say(" требуется Камень Души Ауртумрю. ") say_item_vnum(30223) say(" Найдите его в Сохане и принисите Шагирабу. ") say("") end
when 1102.kill or 1104.kill or 1105.kill begin local s = number(1, 40) if s == 1 and pc.count_item(30223)==0 then pc.give_item2(30223, 1) chat(" Вы нашли Камень Души Ауртумрю, возвращайтесь к Биологу ") end end
when __TARGET__.target.click or 20084.chat." Я нашел Камень души! " with pc.count_item(30223) > 0 begin target.delete("__TARGET__") if pc.count_item(30223) > 0 then say_title(" Биолог Шагираб ") say("") say(" Спасибо, юнный воин. ") say(" В награду ты получишь секретное зелье ") say(" и еще несколько полезных предметов. ") say("") say(" Сходите к Баек-Го за своей наградой. ") say(" Удачи. ") say("") say("") say("") pc.remove_item(30223,1) set_state(bio3_) else say_title(" Биолог Харигаб ") say(" У вас нет "..item_name(30223).."!") say("") return end end end
state bio3_ begin when letter begin send_letter(" Награда Биолога Шагираба ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET3__", v, " Баек - Го ") end end
when button or info begin say_title(" Награда Биолога Шагираба ") say("") say(" В качестве награды вы получили ") say(" от Биолога Шагираба рецепт ") say(" тайного зелья ") say(" Передайте это Баек-го, он создаст ") say(" для вас зелье. ") say("") end when __TARGET3__.target.click or 20018.chat." Секретный рецепт " begin target.delete("__TARGET3__") say_title(" Баек-го: ") say("") say(" Да... узнаю этот рецепт. Полагаю, этот рецепт ") say(" вручил вам биолог Ша..шаг... как там его... ") say(" Извини, меня подводит память. Ах, да, Биолог Шагираб! ") say("") say_reward(" Вы получили бонус: +50 к силе атаки ") say_reward(" Вы получили предмет: Лунная Шкатулка 30 шт ") affect.add_collect(apply.ATT_GRADE_BONUS, 50, 60*60*24*365*60) -- 60Years pc.give_item2(50011, 40) clear_letter() set_quest_state("biolog5", "run") set_state(__3complete) end end
Вы не поняли вопроса, это квест биолога, а биологовские квесты я нашел. Я же написал, нужен квест типа такого:
Подходишь к NPC (к примеру, 9001(торговец оружием)) Он говорит: траси-васи, иди к тому-то. Этот кто-то, к примеру, 9002 (торговец броней) говорит, так-то так-то, иди потребуй у (к примеру, телепортера (9012)) некую сумму, или какой-то предмет, чтобы окупить это, типа задолжал. Идем к нему, тот говорит, типа на мели - иди выбей то-то, выбиваешь - получаешь награду (опыт, например) Идешь к торговцу броней - отдаешь, получаешь еще награду, тоже опыт, потом он говорит инфу, что интересовала оружейника - и идем к оружейнику и тот уже, к примеру там янги и опыт дает. Все, квест окончен, следом, автоматом включается следующий - траси-васи иди туда, ну и т.д. - и так квестовая линия. Теперь, что меня интересует: 1. как сделать так, чтобы один отправлял к другому. 2. как сделать, чтобы давало опыт? 3. ( " tracivaci.quest" "run ") - эта команда активирует следующий квест? 4. собственно шаблон самого квеста, как я написал в первом посте, квест, напишу еще раз: --- Подходишь к торговке, торговка отправляет к Йонаху, Йонах отправляет за косточкой, приносишь, он дает то, что просила торговка - идешь к ней, квест сдан. Знает такое кто-нибудь?