Meine Warpring.quest
Code:
quest warpring begin state start begin when 70007.use or 9012.chat.gameforge.map_warp._10_npcChat or 20009.chat.gameforge.neutral_warp._10_npcChat begin local warp = {--koord Pflicht, rest optional! {--Map1 name = "[01-20] Map 1", {--Rotes Reich name = "[01-20] Rotes Reich", koord = {474100, 955000}, }, {--Gelbes Reich name = "[01-20] Gelbes Reich", koord = {63525, 166543}, }, {--Blaues Reich name = "[01-20] Blaues Reich", koord = {960100, 268800}, }, }, {--Map2 name = "[20-35] Map 2", {--Rotes Reich name = "[20-35] Rotes Reich", koord = {352200, 882200}, }, {--Gelbes Reich name = "[20-35] Gelbes Reich", koord = {145900, 239800}, }, {--Blaues Reich name = "[20-35] Blaues Reich", koord = {863700, 246300}, }, }, {--Standart Maps name = "[35-55] Standart Maps", {--Orktal Mitte name = "[35-55] Orktal", koord = {333074, 747167}, }, {--Hwang-Tempel name = "[35-55] Tempel", koord = {553600, 144100}, }, {--Wüste Mitte name = "[35-55] Wüste", koord = {297300, 547900}, }, {--Eisland Mitte name = "[35-55] Eisland", koord = {436900, 216100}, }, {--Feuerland Mitte name = "[35-55] Feuerland", koord = {601300, 687900}, }, {--Dämonenturm name = "[35-55] Dämonenturm", koord = {590406, 110717}, }, {--Schlangenfeld name = "[35-55] Schlangenfeld", koord = {1059000, 726200}, }, }, {--Spinnendungeons name = "[55-75] Anspruchsvolle Maps", {--Spinnendungeons 1 name = "[55-65] Spinnendungeon 1", koord = {60000, 497000}, }, {--Spinnendungeons 2 name = "[65-75] Spinnendungeon 2", koord = {703800, 462500}, }, }, {--Grotte der Verbannung name = "[150-200] Besondere Maps", {--Grotte 1 name = "[150-200] Grotte(FP)", koord = {10000, 1207800}, }, {--Grotte 2 name = "[150-200] Grotte (SP)", koord = {241800, 1275000}, }, {--Drachenraum name = "[200-Dungeon] Drachenraum", koord = {181473, 1220674}, }, }, {--90er Maps name = "[55-120] Farmmaps", {--Donnerberge name = "[55-89] Donnerberge", koord = {1134500, 1654600}, }, {--Gautamakliff name = "[90-120] Gautamakliff", koord = {1226300, 1681100}, }, }, {--100er Maps name = "[90-200] Levelmaps", {--Rotdrachen-Festung name = "[90-100] Rotdrachen-Festung", koord = {614265, 706964}, }, {--Nemeres Warte name = "[100-125] Nemeres Warte", koord = {433025, 167605}, }, {--Verwunschener Wald name = "[125-140] Verwunschener Wald", koord = {801800, 1499000}, }, {--Tempel der Ochao name = "[140-160]Tempel der Ochao", koord = {884800, 1447000}, }, {--Kap des Drachenfeuers name = "[160-190] Drachenkap", koord = {1104300, 1788500}, }, {--Nephritbucht name = "[190-200] Nephritbucht", koord = {1086900, 1655800}, }, }, }, warpring.showwarps(warp) end function warp(tbl) local level = pc.get_level() if tbl.minlevel and level < tbl.minlevel then say("Dein Level ist zu niedrig, um diese Map zu betreten.") say("Minimal Level: "..tbl.minlevel) select("Abbrechen") return elseif tbl.maxlevel and level > tbl.maxlevel then say("Dein Level ist zu hoch, um diese Map zu betreten.") say("Maximal Level: "..tbl.maxlevel) select("Abbrechen") return end while not pc.can_warp() do say("Du kannst dich noch nicht teleportieren, da du in") say("den letzten 10 Sekunden gehandelt hast.") if select("Erneut versuchen", "Abbrechen") == 2 then return end end local warpneedstrings = warpring.get_warpneedstrings(tbl) if table.getn(warpneedstrings) > 0 then say("Um diese Map zu betreten benötigst du folgende") say("Dinge:") for _,v in ipairs(warpneedstrings) do say(v) end say("") say("Möchtest du trotzdem fortfahren?") if select("Teleportieren", "Abbrechen") == 2 then return end end if not warpring.check_and_remove_warpneeds(tbl) then say("Dir fehlt mindestens eins der benötigten Dinge.") select("Abbrechen") return end pc.warp(tbl.koord[1], tbl.koord[2]) end function get_warpneedstrings(tbl) local warpneeds = {} if tbl.itemneed and table.getn(tbl.itemneed) > 0 then for _,v in ipairs(tbl.itemneed) do table.insert(warpneeds, "- "..v[2].."x "..item_name(v[1])) end end if tbl.goldneed and tbl.goldneed > 0 then table.insert(warpneeds, "- "..tbl.goldneed.." Yang") end return warpneeds end function check_warpneeds(tbl) if tbl.itemneed and table.getn(tbl.itemneed) > 0 then for _,v in ipairs(tbl.itemneed) do if pc.count_item(v[1]) < v[2] then return false end end end if tbl.goldneed and tbl.goldneed > 0 then if pc.get_gold() < tbl.goldneed then return false end end return true end function remove_warpneeds(tbl) if tbl.itemneed and table.getn(tbl.itemneed) > 0 then for _,v in ipairs(tbl.itemneed) do pc.remove_item(v[1], v[2]) end end if tbl.goldneed and tbl.goldneed > 0 then pc.change_gold(-tbl.goldneed) end end function check_and_remove_warpneeds(tbl) if not warpring.check_warpneeds(tbl) then return false end warpring.remove_warpneeds(tbl) return true end function get_warpnames(tbl) local level = pc.get_level() local names = {} for _,v in ipairs(tbl) do if v.minlevel and level < v.minlevel then v.name = v.name.." (ab Lv. "..v.minlevel..")" elseif v.maxlevel and level > v.maxlevel then v.name = v.name.." (bis Lv. "..v.maxlevel..")" end table.insert(names, v.name) end return names end function showwarps(tbl) local warpnames = warpring.get_warpnames(tbl) local s = tbl[select3(warpnames)] or false if not s then return end if s.koord then warpring.warp(s) return end warpring.showwarps(s) end end end
Simpel : Das Item ging - ich hab die Ports etc bissl. vertauscht & dann ging sie nicht mehr. Warpring ist in db noch auf Typ 18 und die quest die VNUM ist auch die gleiche. Sprich muss an der quest liegen. hoffe ihr wisst woran