Lyn2 Posted December 26, 2017 at 01:12 AM Share Posted December 26, 2017 at 01:12 AM Boas noites. Eu duvido que alguém tenha disponibilidade para ajudar ou fazer um tut de como criar uma dungeon simples. A minha dúvida é, eu quero fazer uma quest Dungeon num mapa pequenino. Exemplo , matar os 10 monstros e passar para a segunda ronda, matar x's monstros e passar para a terceira, no máximo 5 rondas. Tentei criar uma dungeon, já feita do NewAge, porém ele teleporta para o mapa, mas não faz mais nada. Mas se deixar ele padrão, ele vai para a torre, faz tudo direitinho. Mas a minha intenção é fazer uma dungeon noutro mapa e não na torre. quest lv_30_wo begin state start begin function () if pc.in_dungeon() and pc.get_map_index() >= 8907100 and pc.get_map_index() < 1167600 then return true else return false end end when 20060.click begin local ilosc = 1 local id_przep = 19 say_title(mob_name(20060)..": ") say("Witaj "..pc.getname().."! ") say("") say("Aby dostaæ siê na dungeon musisz spe³niæ, ") say("moje wymagania ! ") say("Wymagania: ") say_green("- Musisz mieæ 30 Lv. + ") say_green("- Musisz mieæ "..item_name(id_przep).." "..ilosc.."x. ") say("") say_red("Czy chcia³ byœ wejœæ na Dungeon? ") say("") local s = select("Tak ", " Nie") if s == 1 then if pc.count_item(id_przep) >= ilosc then if pc.get_level() >= 10 then pc.remove_item(id_przep, ilosc) pc.setqf("dungstart", 1) d.join(354) else chat("|cFF00ff33[Informacja]|h|cFFFFFFFF|h Não tens nível suficiente. ") end else chat("|cFF00ff33[Informacja]|h|cFFFFFFFF|h Nie masz "..item_name(id_przep).." w Ekwipunku. ") end end end when login with lv_30_wo.inlv_30_wo() and pc.getqf("dungstart") == 1 begin d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Witaj w Wie¿y Orków. ") d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Aby dostaæ siê do przywódcy pokonaj potwory ! ") d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Na wyzwanie masz 30min. ") d.setf("lv_30_wo1", 0) d.setf("lv_30_wo2", 0) d.setf("lv_30_wo3", 0) d.regen_file("data/kamil/30/1.txt") pc.setqf("dungstart", 0) d.setf("level_wo", 1) timer('zabezpiecz_czas1', 5*60) end when 651.kill or 652.kill or 653.kill or 654.kill or 655.kill or 656.kill or 657.kill with lv_30_wo.inlv_30_wo() and d.getf("level_wo") == 1 begin d.setf("lv_30_wo1", d.getf("lv_30_wo1")+1) if d.getf("lv_30_wo1") >= 201 then d.kill_all() d.clear_regen() d.setf("level_wo", 2) d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Brawo pokona³eœ orków ale to dopiero poczatek! ") timer("timer_lv_30_wo1", 5) end end when timer_lv_30_wo1.timer with lv_30_wo.inlv_30_wo() and d.getf("level_wo") == 2 begin d.spawn_mob(8008, 144, 638) d.spawn_mob(8008, 175, 640) d.spawn_mob(8008, 174, 666) d.spawn_mob(8008, 151, 670) d.setf("level_wo", 3) d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Zniszcz Metiny Duszy ") end when 8008.kill with lv_30_wo.inlv_30_wo() and d.getf("level_wo") == 3 begin d.setf("lv_30_wo2", d.getf("lv_30_wo2")+1) if d.getf("lv_30_wo2") >= 4 then d.kill_all() d.setf("level_wo", 4) d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Brawo pokona³eœ Metiny Duszy! ") timer("timer_lv_30_wo2", 5) end end when timer_lv_30_wo2.timer with lv_30_wo.inlv_30_wo() and d.getf("level_wo") == 4 begin d.regen_file("data/kamil/30/1.txt") d.setf("level_wo", 5) d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Zabij wszystkie potwory. ") end when 651.kill or 652.kill or 653.kill or 654.kill or 655.kill or 656.kill or 657.kill with lv_30_wo.inlv_30_wo() and d.getf("level_wo") == 5 begin d.setf("lv_30_wo3", d.getf("lv_30_wo3")+1) if d.getf("lv_30_wo3") >= 201 then d.kill_all() d.clear_regen() d.setf("level_wo", 6) d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Brawo pokona³eœ orków za 20sec. pojawi siê przywódca! ") timer("timer_lv_30_wo3", 20) end end when timer_lv_30_wo3.timer with lv_30_wo.inlv_30_wo() and d.getf("level_wo") == 6 begin d.spawn_mob(692, 144, 638) d.setf("level_wo", 7) d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Pokonaj przywódcê! ") end when 692.kill with lv_30_wo.inlv_30_wo() and d.getf("level_wo") == 7 begin d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Gratulacje uda³o wam siê! Zostaniecie wyteleportowani za 30 sec. ") timer('wyjscie', 30) end when wyjscie.timer with lv_30_wo.inlv_30_wo() and d.getf("level_wo") == 7 begin d.exit_all() d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Nie uda³o siê, zostaniecie wylogowani!") end when zabezpiecz_czas1.timer with lv_30_wo.inlv_30_wo() and d.getf("level_wo") >= 1 begin d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Pozosta³o 25 minut! ") timer('zabezpiecz_czas2', 5*60) end when zabezpiecz_czas2.timer with lv_30_wo.inlv_30_wo() and d.getf("level_wo") >= 1 begin d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Pozosta³o 20 minut! ") timer('zabezpiecz_czas3', 5*60) end when zabezpiecz_czas3.timer with lv_30_wo.inlv_30_wo() and d.getf("level_wo") >= 1 begin d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Pozosta³o 15 minut! ") timer('zabezpiecz_czas4', 5*60) end when zabezpiecz_czas4.timer with lv_30_wo.inlv_30_wo() and d.getf("level_wo") >= 1 begin d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Pozosta³o 10 minut! ") timer('zabezpiecz_czas5', 5*60) end when zabezpiecz_czas5.timer with lv_30_wo.inlv_30_wo() and d.getf("level_wo") >= 1 begin d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Pozosta³o 5 minut! ") timer('zabezpiecz_czas6', 5*60) end when zabezpiecz_czas6.timer with lv_30_wo.inlv_30_wo() begin d.exit_all() d.notice("|cFFff6600[Wie¿a Orków]|h|cFFFFFFFF|h Nie uda³o siê, zostaniecie wylogowani!") end end end Meti corretamente na pasta Data etc tudo direitinho, mudei as coordenadas e o Index e não faz mais nada. Acreditem que eu odeio pedir ajuda, mas desta vez tou nas aranhas mesmo Link to comment Share on other sites More sharing options...
PACI Posted December 26, 2017 at 07:42 AM Share Posted December 26, 2017 at 07:42 AM (edited) Escrevi isto num instante. Se quiseres aprender a construir dungeons, esta é, a meu ver, uma base simples e facil de entender. quest my_simple_dungeon begin state start begin function setting() return { ["MAP_INDEX"] = 0, ["ENTRY_POS"] = {0, 0}, ["FLOORS"] = { {0, 0}, -- 1 {0, 0}, -- 2 -- etc }, ["TASKS"] = { {101, 20}, {102, 30}, -- etc }, -- etc } end function in_dungeon() local dunMapIdx = my_simple_dungeon.setting().MAP_INDEX return pc.get_map_index() >= dunMapIdx * 10000 and pc.get_map_index() < (dunMapIdx + 1) * 10000 end function join() local setting = my_simple_dungeon.setting() if party.is_party() then d.new_jump_party(setting.MAP_INDEX, setting.ENTRY_POS[1], setting.ENTRY_POS[2]) else d.join(setting.MAP_INDEX) end end when MY_DUNGEON_GUARDIAN.chat."Dungeon" begin say("Entrar?") if select("Y", "N") == 2 then return end my_simple_dungeon.join() end when login with my_simple_dungeon.in_dungeon() begin local setting = my_simple_dungeon.setting() if d.getf("level") == 0 then -- d.regen_file(".../regen_1.txt") -- d.spawn_mob(0, 0, 0) -- vnum, x, y d.notice("Mata "..setting.TASKS[1][2].." "..mob_name(setting.TASKS[1][1])) d.setf("level", 1) end end when kill with not npc.is_pc() and my_simple_dungeon.in_dungeon() begin local level = d.getf("level") local tasks = my_simple_dungeon.setting().TASKS if npc.get_race() ~= tasks[level][1] then return end local killCount = d.getf("kill_count") + 1 if killCount < tasks[level][2] then d.setf("kill_count", killCount) return end d.notice("Nivel "..level.." completo. 5 segundos para subir.") d.setf("kill_count", 0) server_timer("my_simple_dungeon_jump_timer", 5, d.get_map_index()) end when my_simple_dungeon_jump_timer.server_timer with d.select(get_server_timer_arg()) begin local setting = my_simple_dungeon.setting() local nextLevel = d.getf("level") + 1 local task = setting.TASKS[nextLevel] d.setf("level", nextLevel) d.notice("Mata "..task[2].." "..mob_name(task[1])) -- d.regen_file(".../regen_"..nextLevel..".txt") -- d.spawn_mob(0, 0, 0) -- vnum, x, y d.jump_all(setting.FLOORS[nextLevel][1], setting.FLOORS[nextLevel][2]) end end end Edited December 26, 2017 at 09:23 AM by PACI Link to comment Share on other sites More sharing options...
Lyn2 Posted December 26, 2017 at 01:45 PM Author Share Posted December 26, 2017 at 01:45 PM (edited) Muito obrigado Paci, eu tive a ver por acaso os teus posts no zone !! Essa quest serve bem como base obrigado pela atenção e paciência!!! Forte abraço!! Ps: Meti no servidor, funciona na perfeição!!! Edited December 26, 2017 at 02:33 PM by lynm2 Link to comment Share on other sites More sharing options...
Lyn2 Posted December 27, 2017 at 02:30 AM Author Share Posted December 27, 2017 at 02:30 AM Sorry por o doublepost. Esqueces-te de meter no ultimo nível d.setf("level", 2) eu bem andava aqui as voltas e ele não fazia mais nada nem moobs apareciam, nem imaginas quantas horas tive a ver o que seria haha mas mesmo assim ja adicionei algumas funções como: d.kill_all() d.clear_regen() Mas como disses-te, esta quest serve como base hehe abraço! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now