Guten Tag habe auf meinen Server derer Warpring quest versuche schon die ganze zeit bei der grotte,grotte2 und Drachen Raum eine Level Sperre rein zu hauen wo mann sich erst ab 75 hin porten kann kann mir da einer helfen und es bei meiner Warping quest hinzufügt.
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 = "Map 1",
- {--Rotes Reich
- name = "Rotes Reich",
- koord = {474100, 955000},
- },
- {--Gelbes Reich
- name = "Gelbes Reich",
- koord = {63525, 166543},
- },
- {--Blaues Reich
- name = "Blaues Reich",
- koord = {960100, 268800},
- },
- },
- {--Map2
- name = "Map 2",
- {--Rotes Reich
- name = "Rotes Reich",
- koord = {352200, 882200},
- },
- {--Gelbes Reich
- name = "Gelbes Reich",
- koord = {145900, 239800},
- },
- {--Blaues Reich
- name = "Blaues Reich",
- koord = {863700, 246300},
- },
- },
- {--Standart Maps
- name = "Standart Maps",
- {--Orktal Mitte
- name = "Orktal",
- koord = {333074, 747167},
- },
- {--Hwang-Tempel
- name = "Tempel",
- koord = {553600, 144100},
- },
- {--Wüste Mitte
- name = "Wüste",
- koord = {297300, 547900},
- },
- {--Eisland Mitte
- name = "Eisland",
- koord = {436900, 216100},
- },
- {--Feuerland Mitte
- name = "Feuerland",
- koord = {601300, 687900},
- },
- {--Dämonenturm
- name = "Dämonenturm",
- koord = {590406, 110717},
- },
- {--Schlangenfeld
- name = "Schlangenfeld",
- koord = {1059000, 726200},
- },
- {--Land der Riesen
- name = "Land der Riesen",
- koord = {828300, 763500},
- },
- {--Geisterwald
- name = "Geisterwald",
- koord = {288700, 5700},
- },
- {--Roter Wald
- name = "Roter Wald",
- koord = {1119500, 70300},
- },
- },
- {--Spinnendungeons
- name = "Spinnendungeons",
- {--Spinnendungeons 1
- name = "SD1",
- koord = {60000, 497000},
- },
- {--Spinnendungeons 2
- name = "SD2",
- koord = {703800, 462500},
- },
- },
- {--Grotte der Verbannung
- name = "Grotte der Verbannung",
- {--Grotte 1
- name = "Grotte 1",
- koord = {10000, 1207800},
- },
- {--Grotte 2
- name = "Grotte 2",
- koord = {241800, 1275000},
- },
- {--Drachenraum
- name = "Drachenraum",
- koord = {181473, 1220674},
- },
- },
- }
- 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
es wäre nett wenn diese Strucktur vorhanden bleibt.
weil ich habe mich mit dieser strucktur schon angefreundet
lg AceWavee