ich würde gerne die letzte map "testmap" auf die zweite Seite des Warprings packen (wapringquest aus den kori files). Leider Fehlt mir der Befehl, damit dies auch angezeit wird. Die buttons für "weiter" und "zurück" scheinen bereits zu existieren. zudem soll die map nur mithilfe eines Seelensteins betreten werden. ich sehe, dass die funktion da ist (bei" if table.getn(warpneedstrings) > 0 "), jedoch weiß ich nicht, wie diese zu verwenden ist.
PHP 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 = {1119323, 7952},
},
},
{--Spinnendungeons
name = "Spinnendungeons",
{--Spinnendungeons 1
name = "SD1",
koord = {60000, 497000},
},
{--Spinnendungeons 2
name = "SD2",
koord = {703800, 462500},
},
{--Spinnendungeons 3
name = "SD3",
koord = {97649, 571124},
},
{--Spinnendungeons 3
name = "SD3 Boss",
koord = {69018, 609960},
},
},
{--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},
},
},
{--90er Maps
name = "90er Maps",
{--Donnerberge
name = "Donnerberge",
koord = {1134500, 1654600},
},
{--Gautamakliff
name = "Gautamakliff",
koord = {1226300, 1681100},
},
{--Kap des Drachenfeuers
name = "Kap des Drachenfeuers",
koord = {1104300, 1788500},
},
{--Nephritbucht
name = "Nephritbucht",
koord = {1086900, 1655800},
},
},
{--100er Maps
name = "100er Maps",
{--Rotdrachen-Festung
name = "Rotdrachen-Festung",
koord = {614265, 706964},
},
{--Nemeres Warte
name = "Nemeres Warte",
koord = {433025, 167605},
},
{--Verwunschener Wald
name = "Verwunschener Wald",
koord = {801800, 1499000},
},
{--Tempel der Ochao
name = "Tempel der Ochao",
koord = {884800, 1447000},
},
},
{--Spezial Maps
name = "Spezialmap",
{--farmmap
name = "testmap",
koord = {850195, 388887},
},
},
}
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
Mit freundlichen Grüßen,
Curlston






