Bei mir existiert leider das Problem, dass wenn ich nur noch einen einzigen Seelenstein im Inventar habe und ich diesen lesen will, verschwindet er, nachdem ich einen Skill aufwerten möchte, bzw. sofern ich Neutral bin, "trainieren" eingegeben habe.
quest training_grandmaster_skill begin
state start begin
when 50513.use begin
say_title("Seelenstein")
local seelicount = pc.count_item(50513)
if pc.get_skill_group() == 0 then
say("Du besitzt keine Fertigkeiten, die")
say("gegroßmeistert werden können.")
return
end
if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
if pc.is_skill_book_no_delay() then
say("Durch den Gebrauch einer Exorzismus-")
say("Schriftrolle kannst du einen weiteren")
say("Seelenstein lesen!")
wait()
say_title("Seelenstein")
else
say("Du hast heute bereits einen Seelenstein gelesen!")
return
end
end
local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
local vnum_list = result[1]
local name_list = result[2]
if table.getn(vnum_list) == 0 then
say("Du besitzt keine Fertigkeiten, die")
say("gegroßmeistert werden können.")
return
end
say("Welche Fertigkeit möchtest du trainieren?")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Abbrechen")
local s=select_table(menu_list)
if table.getn(menu_list) == s then
return
end
local skill_name=name_list[s]
local skill_vnum=vnum_list[s]
local skill_level = pc.get_skill_level(skill_vnum)
local cur_alignment = pc.get_real_alignment()
local need_alignment = 1000+500*(skill_level-30)
test_chat("Momentaner Rang: "..cur_alignment)
test_chat("Benötigter Rang: "..need_alignment)
local title=string.format("%s auf G%d trainieren", skill_name, skill_level-30+1)
if skill_level-30+1==10 then
title=string.format("%s auf P trainieren", skill_name)
end
pc.remove_item(50513, 1)
say_title(title)
say("Durch das Lesen von Seelensteinen müssen")
say("dir als Zeichen des Opfers Rangpunkte")
say("abgezogen werden.")
say("")
if cur_alignment<-19000+need_alignment then
say_reward("Du hast zu wenig Rangpunkte!")
return
end
if cur_alignment<0 then
say_reward(string.format("Benötigter Rang: %d -> %d", need_alignment, need_alignment*2))
say_reward("Beim erfolgreichen Einlesen des")
say_reward("Seelensteines wird dir doppelt")
say_reward("so viel Rangpunkte abgezogen.")
need_alignment=need_alignment*2
elseif cur_alignment<need_alignment then
say_reward(string.format("Benötigter Rang: %d", need_alignment))
say_reward("Beim erfolgreichen Einlesen des")
say_reward("Seelensteines wird dir doppelt")
say_reward("so viel Rangpunkte abgezogen.")
else
say_reward(string.format("Benötigter Rang: %d", need_alignment))
end
say("")
local s=select("Lesen", "Abbrechen")
if s==2 then
return
end
if cur_alignment>=0 and cur_alignment<need_alignment and pc.count_item(50513)<1 then
say_title(string.format("%s bestätigen", title))
say("Das Lesen eines Seelensteines kostet Rang,")
say("wenn du diesen Seelenstein ließt,")
say("kommst du in den negativen Bereich.")
say("Bitte Bestätige das du diesen Seelenstein")
say("wirklich lesen möchtest! Das tust du indem")
say("du in den Textfeld das Wort")
say_reward("trainieren")
say("eingibst.")
local s=input()
if s!="trainieren" then
return
end
end
end
if get_time() < pc.getqf("next_time") then
if pc.is_skill_book_no_delay() then
pc.remove_skill_book_no_delay()
else
say("Bitte an die Admins wenden!")
return
end
end
pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment>0 and pc.count_item(50513)>0 then
if pc.learn_grand_master_skill(skill_vnum) then
pc.change_alignment(-need_alignment)
say_title(string.format("%s erfolgreich", title))
if 40 == pc.get_skill_level(skill_vnum) then
say(string.format("%s ist nun perfekt Gemeistert.", skill_name))
say("Herzlichen Glückwunsch!")
else
say(string.format("Das Großmeistern war erfolgreich!", skill_name, skill_level-30+1+1))
end
say("")
say_reward("Erfolgreich!")
say_reward(string.format("Es wurden %d Rangpunkte verbraucht", need_alignment))
say("")
else
say_title(string.format("%s fehlgeschlagen", title))
say("Das Großmeistern ist fehlgeschlagen.")
say("")
local rang = number(need_alignment/3, need_alignment/2)
say_reward("Fehlgeschlagen! Es wurden "..rang.." Rangpunkte verbraucht")
say("")
pc.change_alignment(-rang)
end
end
end
function BuildGrandMasterSkillList(job, group)
GRAND_MASTER_SKILL_LEVEL = 30
PERFECT_MASTER_SKILL_LEVEL = 40
local skill_list = special.active_skill_list[job+1][group]
local ret_vnum_list = {}
local ret_name_list = {}
table.foreach(skill_list,
function(i, skill_vnum)
local skill_level = pc.get_skill_level(skill_vnum)
if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
table.insert(ret_vnum_list, skill_vnum)
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
if name == nil then name=skill_vnum end
table.insert(ret_name_list, name)
end
end)
return {ret_vnum_list, ret_name_list}
end
end
end
Ich benutze die Daroo Files und den 2011 Client for 1678Files.
Ich hoffe Ihr könnt mir bei meinem Problem weiterhelfen.
quest main_quest_lv1 begin
state start begin
when login or levelup with pc.get_level() == 1 begin
end
when letter begin
send_letter("Willkommen bei Irelia2")
end
when button or info begin
say_title("Willkommen bei Irelia2")
say("Herzlich Willkommen bei Irelia2")
say("Dies ist ein Server vom Jahre 2017")
say("Er soll euch Zeigen wie das Feeling von Metin2")
say("in diesen Jahren ist Ihr werdet hier Deutsche")
say("sowohl auch Fremdsprachige Quests finden")
say("")
say("Durch viel suchen auf den einzelnen Maps")
say("Werdet ihr verstecke NPC oder auch Quests finden")
say("die so nicht auftauchen")
say("")
say("Wir wuenschen euch viel Spass auf unseren Server")
say("")
say("ps Ihr solltet euch mit Level 9 zur Gemi begeben")
end
end
end
Fehler: main_quest_lv1.quest:1:must start with ´quest´
Error occured on compile main_quest_lv1.quest
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-110] Map 1", {--Rotes Reich name = "[01-110] Rotes Reich", koord = {474100, 955000}, }, {--Gelbes Reich name = "[01-110] Gelbes Reich", koord = {63525, 166543}, }, {--Blaues Reich name = "[01-110] Blaues Reich", koord = {960100, 268800}, } }, {--Map2 name = "[01-110] Map 2", {--Rotes Reich name = "[01-110] Rotes Reich", koord = {352200, 882200}, }, {--Gelbes Reich name = "[01-110] Gelbes Reich", koord = {145900, 239800}, }, {--Blaues Reich name = "[01-110] Blaues Reich", koord = {863700, 246300}, } }, {--Standart Maps name = "[01-55] Standart Maps (Lv. 1 - Lv. 55)", {--Orktal Mitte name = "[01-55] Orktal", koord = {333074, 747167}, }, {--Hwang-Tempel name = "[01-55] Tempel", koord = {553600, 144100}, }, {--Wüste Mitte name = "[01-55] Wüste", koord = {297300, 547900}, }, {--Eisland Mitte name = "[01-55] Eisland", koord = {436900, 216100}, }, } }, {--Spinnendungeons name = "[40-90] Dungeon", {--Spinnendungeons 1 name = "[40-55] Spinnendungeon 1 (Lv. 40 - 55)", koord = {60000, 497000}, }, {--Spinnendungeons 2 name = "[55-75] Spinnendungeon 2 (Lv. 55 - 75)", koord = {703800, 462500}, } {--Spinnendungeons 3 name = "[75-90] Spinnendungeon 2 (Lv. 75 - 90)", koord = {703800, 462500}, } }, {--Farmmap name = "[01-110] Besondere Maps", {--Grotte 1 name = "[01-90] Farmmap (Lv. 1 - Lv. 90", koord = {10000, 1207800}, }, {--Grotte 2 name = "[90-110] Farmmap (Lv. 90 - Lv. 110", koord = {241800, 1275000}, } }, {--Runs name = "[90] Runs", {--Drachenraum name = "[90] Drachenraum", koord = {181473, 1220674}, }, {--Rotdrachen-Festung name = "[90] Rotdrachen-Festung", koord = {614265, 706964}, }, {--Nemeres Warte name = "[90] Nemeres Warte", koord = {433025, 167605}, } } } 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
quest bossrun begin
state start begin
when 30123.chat."bossrun betreten" with pc.get_map_index() == 1 or 21 or 41 begin
say("".. pc.get_name() ..":")
say("Ich habe eine Notitz gefunden")
say("Es ist schwer etwas zu entzifern.")
wait()
say("".. pc.get_name() ..":")
say("Ich glaube es handelt sich um die")
say("Meerjungfrau die von Kryos2s")
say("Sklaven gefangen genommen wurde.")
wait()
say("".. pc.get_name() ..":")
say("Ah nun kann ich etwas entzifern..")
say("Es sieht so aus als stamm diese Notitz")
say("höchstpersönlich von Kryos2!")
wait()
say_red("Kryos2:")
say("Herzlichen Glückwunsch!")
say("Du hast einen freien eintritt in die Hölle")
say("erhalten!")
wait()
if pc . get_level ( ) < 40 then
say_reward("Mindestlevel 40!. Komme wieder, wenn du Level 40 bist!")
elseif pc . get_level ( ) > 55 then
say_reward("Max Level 55!")
else
say("Eure erste Aufgabe besteht darin")
say("den Metin der Seele zu bezwingen!")
say("Aber seht euch vor! Nur wer das Oberhaupt tötet")
say("und die Meerjungfrau rettet")
say("bekommt auch die Belohnung!")
wait()
say("Möchtest du die Meerjungfrau retten?")
local s = select("Ja", "Nein")
if s == 1 then
pc.warp(1249775 , 1248377)
pc.remove_item(30160,1)
else
return
end
end
end
when 8008.kill with pc.get_map_index()==303 begin
local jump1 = number(40, 90)
if jump1<=50 then
chat("Du hattest Glück!")
chat("Du wirst gleich weiter teleportiert!")
timer("bossrun", 5)
else
chat("Kryos2 lacht über deine nutzlosen versuche.")
chat("Bezwinge erneut einen Metin der Seele!")
end
end
when bossrun.timer begin
d.setf("bossrunlevel", 1)
d.new_jump_all(303, 12495, 12480)
local vid = d.spawn_mob(1990, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1990.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 2)
timer("bossrun2", 5)
end
end
when bossrun2.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1991, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1991.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 3)
timer("bossrun3", 5)
end
end
when bossrun3.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1992, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1992.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 4)
timer("bossrun4", 5)
end
end
when bossrun4.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1993, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1993.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 5)
timer("bossrun5", 5)
end
end
when bossrun5.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1994, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1994.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 6)
timer("bossrun6", 5)
end
end
when bossrun6.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1995, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1995.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 7)
timer("bossrun7", 5)
end
end
when bossrun7.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1996, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1996.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 8)
timer("bossrun8", 5)
end
end
when bossrun8.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(8007, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 8007.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 9)
timer("bossrun9", 5)
end
end
when bossrun9.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(8008, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 8008.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 11)
timer("bossrun10", 5)
end
end
when bossrun10.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(691, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 691.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 12)
d.notice("Ihr habt es geschaft die Meerjungfrau zu retten.")
d.notice("Dies war eine nicht allzu leichte Aufgabe.")
d.notice("Nun sollt ihr eine Belohnung erhalten.")
d.kill_all()
timer("meerjungfrau_end_port", 10)
end
end
when meerjungfrau_end_port.timer begin
d.jump_all(12495, 12480)
d.spawn_mob(9003, 147, 135)
timer("bossrun_escape_timer", 60)
d.notice("Ihr werdet in 1 Minuten rausgeportet")
end
when 9003.chat."Belohnung" with pc.in_dungeon() and pc.getqf("belo") == 0 begin
say("du hast deine Belohnung von ")
say("Oberork erhalten")
return
end
when bossrun_escape_timer.timer begin
d.setf("bossrunlevel", 0)
pc.setqf("belo",0)
-- warp_to_village()
warp_all_to_village(pc.get_map_index(), 30)
end
end
end
kann mir einer die quest so einstellen das wenn man denn 691 gekillt hat das der npc 9003 garnicht erscheint ? und das es nach denn kill nach 1 min raus geportet wird
Es ist eigl alles richtig, putty zeigt auch keine Fehler an, Wapring ist auf Typ 18 in der DB und die local_list wurde auch angepasst.
Das Problem: Warpring ingame nicht anklickbar, jemand eine Lösung?
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},
},
name = "Standart Maps",
},
{--Wüste Mitte
name = "Wüste",
koord = {297300, 547900},
},
},
}
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
haben mit folgender Quest das Problem, dass die Quest nach dem abschließen nicht verschwindet.
Aufgabe abgeschlossen bleibt stehen und nach einem Relog kann man sie wieder abgeben.
PHP Code:
quest auftrag_10_haendler begin state start begin function checkStats() local count1 = pc.getqf("state1") local count2 = pc.getqf("state2")
if count1 == 100 and count2 == 50 then return true end return false end end state start begin when login or levelup or enter with pc.get_level() >= 32 begin set_state(gemischt) end
end
state gemischt begin when letter begin send_letter("Dringende bitte um Hilfe") local v=find_npc_by_vnum(9003) if 0==v then else target.vid("__TARGET__", v, "Dringende bitte um Hilfe") end end when button or info begin ----"123456789012345678901234567890123456789012345678901234567890"| say_title("Die Gemischtwarenhändlerin braucht Hilfe") say("") say("Suche die Gemischtwarenhändlerin auf.") say("") end when __TARGET__.target.click begin target.delete("__TARGET__") say_title("Gemischtwarenhändlerin:") say("") say("Hey, da bist du ja endlich!") say("Wir haben ein großes Problem!") say("") ----"123456789012345678901234567890123456789012345678901234567890"| say("Seit die Spinnenkönigin tot ist laufen die Spinnen") say("Amok und bedrohen unsere Handels Wege.") wait() say_title("Gemischtwarenhändlerin:") say("") ----"123456789012345678901234567890123456789012345678901234567890"| say("So fehlen uns jetzt wichtige Waren die wir") say("dringend benötigen.") say("Du musst dich darum kümmern.") say("") say("Du wirst die Spinnen in der Wüste finden.") wait() say_title("Gemischtwarenhändlerin:") say("") say("Töte alle den sie stören den Handel.") say("") say_reward("Töte 100 Klauenspinnen") say_reward("Töte 50 Soldatenspinnen") set_state(Spinnen) pc.setqf("kill_count2",0) pc.setqf("kill_count",0) end
end state Spinnen begin when letter begin send_letter("Spinnenplage")
if auftrag_10_haendler.checkStats() == true then say_title("Du hast alle Gegner erledigt.") say("") say("Glückwunsch.") say("") set_state(fertig) end end
when info or button begin say_title("Spinnenplage") say("Jage und töte die Spinnen:") say_reward("Du hast schon "..pc.getqf("state1").." von 100 x Klauenspinnen getötet.") say_reward("Du hast schon "..pc.getqf("state2").." von 50 x Soldatenspinnen getötet") end
when 2004.kill begin local count1 = pc.getqf("state1") + 1 if count1 <= 100 then pc.setqf("state1", count1) q.set_counter("Klauenspinnen", count1) end if auftrag_10_haendler.checkStats() == true then say_title("Du hast alle Gegner erledigt.") say("") say("Glückwunsch.") say("") set_state(fertig) end end
when 2005.kill begin local count2 = pc.getqf("state2") + 1 if count2 <= 50 then pc.setqf("state2", count2) q.set_counter("Soldatenspinnen", count2) end if auftrag_10_haendler.checkStats() == true then say_title("Du hast alle Gegner erledigt.") say("") say("Glückwunsch.") say("") set_state(fertig) end end end
state fertig begin when letter begin local v=find_npc_by_vnum(9003) if 0==v then else target.vid("__TARGET__", v, "Aufgabe abgeschlossen") end end when letter begin send_letter("Aufgabe abgeschlossen") end when button or info begin say_title("Alle Spinnen getötet") say("") say("Du hast deine Aufgabe erfolgreich erfüllt.") say("Suche die Gemischtwarenhändlerin auf und") say("berichte ihr von deinem Erfolg.") say("") end when __TARGET__.target.click begin target.delete("__TARGET__") say_title("Gemischtwarenhändlerin:") say("") ----"123456789012345678901234567890123456789012345678901234567890"| say("Hey da bist du ja wieder."..pc.get_name()..".") say("") say("Wie man sieht hast du alle Spinnen getötet!") say("Ich empfehle dir nehme ein Bad du riechst ein wenig!") say("") wait() say_title("Gemischtwarenhändlerin:") say("") ----"123456789012345678901234567890123456789012345678901234567890"| say("Wir sind dir zu großem Dank verpflichtet.") say("") say("Schaue gerne mal wieder vorbei vielleicht lohnt") say("es sich ja mal für dich oder für mich.") say("") say("Natürlich habe ich noch") say("eine Belohnung für dich.") say("") wait() say_title("Gemischtwarenhändlerin:") say("") ----"123456789012345678901234567890123456789012345678901234567890"| say_title("Belohnung:") say("") say_reward("Du erhältst 1000 Ruf bei den Händlern.") say_reward("Du bekommst 100.000 Yang.") pc.change_money(100000) say("") mysql_query("UPDATE player.player SET RufHaendler = RufHaendler+1000 WHERE id ='"..pc.get_player_id().."'") send_client_stats() clear_letter() set_quest_state("auftrag_11_haendler", "haendler11") set_state(__complete) end end state __complete begin end end
d.notice("Findet den richtigen Metinstein und zerstört ihn."); d.notice("Die falschen Metinsteine werden verschwinden!"); d.notice("Ihr habt 15 Minuten zeit!"); end
when devil_stone4_fail1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 10 Minuten") server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg()) end end
when devil_stone4_fail2.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 5 Minuten") server_timer('devil_stone4_fail', 5*60, get_server_timer_arg()) end end
when devil_stone4_fail.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Die Zeit ist abgelaufen") d.notice("Ihr werdet nun nach draußen teleportiert") d.exit_all() clear_server_timer('devil_stone4_update', get_server_timer_arg()) end end
when devil_stone4_update.server_timer begin if d.select(get_server_timer_arg()) then if not d.is_unique_dead("real") then for i = 1, 6 do if d.getf("fakedead" .. i) == 0 then if d.unique_get_hp_perc("fake" .. i) < 50 then d.purge_unique("fake" .. i) d.setf("fakedead" .. i, 1) d.notice("Der falsche Metinstein ist verschwunden.."); end end end else --d.clear_regen() --d.regen_file("data/dungeon/deviltower/deviltower5_regen.txt") server_timer("devil_stone4_end", 5, get_server_timer_arg()) d.notice("Ihr habt den richtigen Metinstein zerstört."); d.notice("Ihr werdet nun in die nächste Ebene teleportiert") clear_server_timer('devil_stone4_fail1', get_server_timer_arg()) clear_server_timer('devil_stone4_fail2', get_server_timer_arg()) clear_server_timer('devil_stone4_fail', get_server_timer_arg()) end else server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg()) end end
when devil_stone4_stop_timer.server_timer begin clear_server_timer('devil_stone4_update', get_server_timer_arg()) end
when devil_stone4_end.server_timer begin if d.select(get_server_timer_arg()) then d.setf("level", 5) d.setf("stone_count", 5) d.notice("Du bist nun in der 5. Ebene") d.notice("Öffne alle Alten Siegel um in die nächste Ebene zu gelangen.") d.notice("Du hast 20 Minuten Zeit um alle Siegel zu öffnen.") d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2]) server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg()) clear_server_timer('devil_stone4_update', get_server_timer_arg())
d.spawn_mob(20073, 421, 452) d.spawn_mob(20073, 380, 460) d.spawn_mob(20073, 428, 414) d.spawn_mob(20073, 398, 392) d.spawn_mob(20073, 359, 426) end end when devil_stone5_fail1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 15 Minuten") server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg()) end end
when devil_stone5_fail2.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 10 Minuten") server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg()) end end
when devil_stone5_fail3.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 5 Minuten") server_timer('devil_stone5_fail', 5*60, get_server_timer_arg()) end end
when devil_stone5_fail.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Die Zeit ist abgelaufen") d.notice("Ihr werdet nun nach draußen teleportiert") d.exit_all() end end
when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin local KILL_COUNT_FOR_DROP_KEY = 50 --if is_test_server() then --KILL_COUNT_FOR_DROP_KEY = 1 --end local n =d.getf("count") + 1 d.setf("count", n) if n == KILL_COUNT_FOR_DROP_KEY then -- bla bla 3 game.drop_item(50084, 1) d.setf("count", 0) end end when devil_stone5.take with item.vnum == 50084 begin npc.purge() item.remove() d.setf("stone_count", d.getf("stone_count") - 1) if d.getf("stone_count") <= 0 then d.setf("level", 6) d.clear_regen() d.regen_file("data/dungeon/deviltower/deviltower6_regen.txt")
d.notice("Ihr habt alle alten Siegel geöffnet. Ihr werdet nun") d.notice("in die 6. Ebene teleportiert.") d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2]) clear_server_timer('devil_stone5_fail1', get_server_timer_arg()) clear_server_timer('devil_stone5_fail2', get_server_timer_arg()) clear_server_timer('devil_stone5_fail3', get_server_timer_arg()) clear_server_timer('devil_stone5_fail', get_server_timer_arg()) else d.notice("Es verbleibt eine Anzahl von "..d.getf("stone_count").." Siegeln") end end
when devil_stone6.kill begin --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2]) d.kill_all() -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4) d.check_eliminated() timer("stolzerking_killed", 5) end when stolzerking_killed.timer begin cmdchat("CMD1") d.spawn_mob(9012, 395, 200) d.spawn_mob(20074, 392, 209) d.spawn_mob(20075, 405, 209) d.spawn_mob(20076, 399, 209) d.spawn_mob(9003, 402, 200) d.setqf("can_refine", 1) d.notice("Du hast den Stolzen Dämonenkönig getötet und damit den 1. Teil des Dungeons abgeschlossen.") d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.") d.notice("Falls du für den 2. Teil des Dungeons etwas benötigst kannst du es bei der Gemischtwarenhändlerin kaufen.") d.notice("Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.") timer("zeit_zum_uppen", 110) end when zeit_zum_uppen.timer begin d.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.") timer("zeit_bis_mordesebene", 10) end
when zeit_bis_mordesebene.timer begin d.clear_regen()
when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin local cont = d.getf("7_stone_kill") + 1 d.setf("7_stone_kill", cont)
if cont >= 4 then d.setf("7_stone_kill", 0) d.set_regen_file("data/dungeon/deviltower/deviltower7_regen.txt") end end
when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin game.drop_item(30300, 1) end
when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin pc.remove_item("30300", 1)
local pct = number(1,10)
if pct == 1 then -- bla bla 7 game.drop_item(30302, 1) d.clear_regen() else -- bla bla 8 game.drop_item(30301, 1)
end end
when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin -- bla bla 9 say_title("Karte der Zin-Grotte") say("") say("Herzlichen Glückwunsch! Du hast die richtige Karte") say("gefunden.") say("") say_reward("Du wirst jetzt in die nächste Ebene teleportiert.") pc.remove_item("30302", 1) timer("devil_jump_8", 6) d.clear_regen() end when devil_jump_8.timer begin d.setf("level", 8) d.jump_all(2048+590, 6656+403) d.set_regen_file("data/dungeon/deviltower/deviltower8_regen.txt") d.spawn_mob(20366, 640, 460) local _count= pc.count_item(30302)-- bla bla 11 pc.remove_item(30302,_count)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin local pct1 = number(1, 5) if pct1 == 1 then local pct2 = number(1, 10) if pct2 == 1 then -- bla bla 12 game.drop_item(30304, 1) else -- bla bla 13 game.drop_item(30304, 1) end else return end end
when 20366.take with item.vnum == 30304 begin -- bla bla 14 npc.purge() item.remove() d.kill_all() timer("devil_jump_9", 6)
end when devil_jump_9.timer begin d.setf("level", 9) d.jump_all(2048+590, 6656+155) d.regen_file("data/dungeon/deviltower/deviltower9_regen.txt") end when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin d.kill_all() timer("sensi_killed", 5) end when sensi_killed.timer begin cmdchat("CMD1") d.kill_all() d.spawn_mob(9012, 618, 187) d.spawn_mob(20074, 611, 179) d.spawn_mob(20075, 620, 170) d.spawn_mob(20076, 628, 179) d.spawn_mob(9003, 621, 187) d.setqf("can_refine", 1) d.notice("Du hast den Sensenmann getötet und damit den 2. Teil des Dungeons abgeschlossen.") d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.") d.notice("Falls du den Dungeon fortführen möchtest, kannst du dir bei der Gemischtwarenhändlerin") d.notice("erneut Tränke kaufen. Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.") timer("zeit_nach_sensi", 110) end when zeit_nach_sensi.timer begin d.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.") timer("zeit_bis_gemeinerking", 10) end when zeit_bis_gemeinerking.timer begin d.jump_all(2048+590, 6656+155) d.kill_all() d.spawn_mob(1094, 620, 170) d.notice("Der Gemeine Dämonenkönig treibt hier sein Unwesen.") d.notice("Töte ihn, um auf die nächste Ebene zu gelangen.") end when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin timer("zeit_bis_bt", 10) d.notice("Du hast den Gemeinen Dämonenkönig getötet.") d.notice("In 10 Sekunden wirst du auf die letzte Ebene teleportiert.") end when zeit_bis_bt.timer begin d.jump_all(2048+590, 6656+155) d.kill_all() d.spawn_mob(1095, 620, 170) d.notice("Du befindest dich auf der letzten Ebene des Dämonenturmes.") d.notice("Töte den Blauen Tod und du wirst reich belohnt!") end when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin cmdchat("CMD1") d.kill_all() d.spawn_mob(9012, 618, 187) d.spawn_mob(20074, 611, 179) d.spawn_mob(20075, 620, 170) d.spawn_mob(20076, 628, 179) d.spawn_mob(9003, 621, 187) d.setqf("can_refine", 1) d.notice("Du hast den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.") d.notice("Herzlichen Glückwunsch!") d.notice("Du darfst erneut einen Gegenstand bei den dämonischen Schmieden verbessern. Viel Glück!") notice_all("".. pc.get_name() .." hat den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.") end end end
Guten Tag Epvp,
könnt Ihr einmal bitte meine DT Quest kontrollieren... denn ich bekomme sehr oft in der Syserr folgenden Fehler:
PHP Code:
SYSERR: Oct 13 03:33:25 :: SetDungeon: Russ is trying to reassigning dungeon (current 0x2afb9e00, new party 0x2afb9e00)
d.notice("Findet den richtigen Metinstein und zerstört ihn.");
d.notice("Die falschen Metinsteine werden verschwinden!");
d.notice("Ihr habt 15 Minuten zeit!");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 10 Minuten")
server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 5 Minuten")
server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
end
when devil_stone4_update.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 50 then
d.purge_unique("fake" .. i)
d.setf("fakedead" .. i, 1)
d.notice("Der falsche Metinstein ist verschwunden..");
end
end
end
else
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower/deviltower5_regen.txt")
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Ihr habt den richtigen Metinstein zerstört.");
d.notice("Ihr werdet nun in die nächste Ebene teleportiert")
clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
clear_server_timer('devil_stone4_fail', get_server_timer_arg())
end
else
server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
end
end
when devil_stone4_stop_timer.server_timer begin
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
when devil_stone4_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("level", 5)
d.setf("stone_count", 5)
d.notice("Du bist nun in der 5. Ebene")
d.notice("Öffne alle Alten Siegel um in die nächste Ebene zu gelangen.")
d.notice("Du hast 20 Minuten Zeit um alle Siegel zu öffnen.")
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
d.spawn_mob(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
end
end
when devil_stone5_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 15 Minuten")
server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 10 Minuten")
server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail3.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 5 Minuten")
server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
end
end
when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
local KILL_COUNT_FOR_DROP_KEY = 50
--if is_test_server() then
--KILL_COUNT_FOR_DROP_KEY = 1
--end
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
-- bla bla 3
game.drop_item(50084, 1)
d.setf("count", 0)
end
end
when devil_stone5.take with item.vnum == 50084 begin
npc.purge()
item.remove()
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.setf("level", 6)
d.clear_regen()
d.regen_file("data/dungeon/deviltower/deviltower6_regen.txt")
d.notice("Ihr habt alle alten Siegel geöffnet. Ihr werdet nun")
d.notice("in die 6. Ebene teleportiert.")
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
clear_server_timer('devil_stone5_fail', get_server_timer_arg())
else
d.notice("Es verbleibt eine Anzahl von "..d.getf("stone_count").." Siegeln")
end
end
when devil_stone6.kill begin
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
d.kill_all()
-- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
timer("stolzerking_killed", 5)
end
when stolzerking_killed.timer begin
cmdchat("CMD1")
d.spawn_mob(9012, 395, 200)
d.spawn_mob(20074, 392, 209)
d.spawn_mob(20075, 405, 209)
d.spawn_mob(20076, 399, 209)
d.spawn_mob(9003, 402, 200)
d.setqf("can_refine", 1)
d.notice("Du hast den Stolzen Dämonenkönig getötet und damit den 1. Teil des Dungeons abgeschlossen.")
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
d.notice("Falls du für den 2. Teil des Dungeons etwas benötigst kannst du es bei der Gemischtwarenhändlerin kaufen.")
d.notice("Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
timer("zeit_zum_uppen", 110)
end
when zeit_zum_uppen.timer begin
d.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
timer("zeit_bis_mordesebene", 10)
end
when zeit_bis_mordesebene.timer begin
d.clear_regen()
when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local cont = d.getf("7_stone_kill") + 1
d.setf("7_stone_kill", cont)
if cont >= 4 then
d.setf("7_stone_kill", 0)
d.set_regen_file("data/dungeon/deviltower/deviltower7_regen.txt")
end
end
when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(30300, 1)
end
when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("30300", 1)
local pct = number(1,10)
if pct == 1 then
-- bla bla 7
game.drop_item(30302, 1)
d.clear_regen()
else
-- bla bla 8
game.drop_item(30301, 1)
end
end
when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- bla bla 9
say_title("Karte der Zin-Grotte")
say("")
say("Herzlichen Glückwunsch! Du hast die richtige Karte")
say("gefunden.")
say("")
say_reward("Du wirst jetzt in die nächste Ebene teleportiert.")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
when devil_jump_8.timer begin
d.setf("level", 8)
d.jump_all(2048+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.count_item(30302)-- bla bla 11
pc.remove_item(30302,_count)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local pct1 = number(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
-- bla bla 12
game.drop_item(30304, 1)
else
-- bla bla 13
game.drop_item(30304, 1)
end
else
return
end
end
when 20366.take with item.vnum == 30304 begin
-- bla bla 14
npc.purge()
item.remove()
d.kill_all()
timer("devil_jump_9", 6)
end
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.regen_file("data/dungeon/deviltower/deviltower9_regen.txt")
end
when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
timer("sensi_killed", 5)
end
when sensi_killed.timer begin
cmdchat("CMD1")
d.kill_all()
d.spawn_mob(9012, 618, 187)
d.spawn_mob(20074, 611, 179)
d.spawn_mob(20075, 620, 170)
d.spawn_mob(20076, 628, 179)
d.spawn_mob(9003, 621, 187)
d.setqf("can_refine", 1)
d.notice("Du hast den Sensenmann getötet und damit den 2. Teil des Dungeons abgeschlossen.")
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
d.notice("Falls du den Dungeon fortführen möchtest, kannst du dir bei der Gemischtwarenhändlerin")
d.notice("erneut Tränke kaufen. Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
timer("zeit_nach_sensi", 110)
end
when zeit_nach_sensi.timer begin
d.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
timer("zeit_bis_gemeinerking", 10)
end
when zeit_bis_gemeinerking.timer begin
d.jump_all(2048+590, 6656+155)
d.kill_all()
d.spawn_mob(1094, 620, 170)
d.notice("Der Gemeine Dämonenkönig treibt hier sein Unwesen.")
d.notice("Töte ihn, um auf die nächste Ebene zu gelangen.")
end
when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
timer("zeit_bis_bt", 10)
d.notice("Du hast den Gemeinen Dämonenkönig getötet.")
d.notice("In 10 Sekunden wirst du auf die letzte Ebene teleportiert.")
end
when zeit_bis_bt.timer begin
d.jump_all(2048+590, 6656+155)
d.kill_all()
d.spawn_mob(1095, 620, 170)
d.notice("Du befindest dich auf der letzten Ebene des Dämonenturmes.")
d.notice("Töte den Blauen Tod und du wirst reich belohnt!")
end
when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
cmdchat("CMD1")
d.kill_all()
d.spawn_mob(9012, 618, 187)
d.spawn_mob(20074, 611, 179)
d.spawn_mob(20075, 620, 170)
d.spawn_mob(20076, 628, 179)
d.spawn_mob(9003, 621, 187)
d.setqf("can_refine", 1)
d.notice("Du hast den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
d.notice("Herzlichen Glückwunsch!")
d.notice("Du darfst erneut einen Gegenstand bei den dämonischen Schmieden verbessern. Viel Glück!")
notice_all("".. pc.get_name() .." hat den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
end
end
end
give_basic_weapon_new.quest:44:syntax error : [string "start"]:5: `)' expected (to close `(' at line 4) near `<eof>'
Error occured on compile give_basic_weapon_new.quest
when button or info begin
say_title("Willkommen auf MT2")
say("Für einen guten Start bekommt ihr paar Geschenke!!!")
say("Falls ihr hilfe braucht meldet euch bei einen Teamler")
say("mfg euer [SA]"
end
end
end
give_basic_weapon_new.quest:44:syntax error : [string "start"]:5: `)' expected (to close `(' at line 4) near `<eof>'
Error occured on compile give_basic_weapon_new.quest
when button or info begin
say_title("Willkommen auf MT2")
say("Für einen guten Start bekommt ihr paar Geschenke!!!")
say("Falls ihr hilfe braucht meldet euch bei einen Teamler")
say("mfg euer [SA]"
end
end
state __complete begin
end
end
Habe 40files by Viruz
Probiers mal, ansonsten nimm eine andere Quest, weil du in dieser Quest bekommt ein Spieler alles und nicht das was er braucht (Sura bekommt Krieger Eq), zumindest sieht es so aus..
Kann einer bitte die Quest auf den aktuellen Stand bringen (von Coden her)
PHP Code:
when sensi_killed.timer begin cmdchat("CMD1") d.kill_all() d.spawn_mob(9012, 618, 187) d.spawn_mob(20074, 611, 179) d.spawn_mob(20075, 620, 170) d.spawn_mob(20076, 628, 179) d.spawn_mob(9003, 621, 187) d.setqf("can_refine", 1) d.notice("Du hast den Sensenmann getötet und damit den 2. Teil des Dungeons abgeschlossen.") d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.") d.notice("Falls du den Dungeon fortführen möchtest, kannst du dir bei der Gemischtwarenhändlerin") d.notice("erneut Tränke kaufen. Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.") timer("zeit_nach_sensi", 110) end when zeit_nach_sensi.timer begin d.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.") timer("zeit_bis_gemeinerking", 10) end when zeit_bis_gemeinerking.timer begin d.jump_all(2048+590, 6656+155) d.kill_all() d.spawn_mob(1094, 620, 170) d.notice("Der Gemeine Dämonenkönig treibt hier sein Unwesen.") d.notice("Töte ihn, um auf die nächste Ebene zu gelangen.") end when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin timer("zeit_bis_bt", 10) d.notice("Du hast den Gemeinen Dämonenkönig getötet.") d.notice("In 10 Sekunden wirst du auf die letzte Ebene teleportiert.") end when zeit_bis_bt.timer begin d.jump_all(2048+590, 6656+155) d.kill_all() d.spawn_mob(1095, 620, 170) d.notice("Du befindest dich auf der letzten Ebene des Dämonenturmes.") d.notice("Töte den Blauen Tod und du wirst reich belohnt!") end when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin cmdchat("CMD1") d.kill_all() d.spawn_mob(9012, 618, 187) d.spawn_mob(20074, 611, 179) d.spawn_mob(20075, 620, 170) d.spawn_mob(20076, 628, 179) d.spawn_mob(9003, 621, 187) d.setqf("can_refine", 1) d.notice("Du hast den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.") d.notice("Herzlichen Glückwunsch!") d.notice("Du darfst erneut einen Gegenstand bei den dämonischen Schmieden verbessern. Viel Glück!") notice_all("".. pc.get_name() .." hat den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.") end
Kann einer bitte die Quest auf den aktuellen Stand bringen (von Coden her)
PHP Code:
when sensi_killed.timer begin cmdchat("CMD1") d.kill_all() d.spawn_mob(9012, 618, 187) d.spawn_mob(20074, 611, 179) d.spawn_mob(20075, 620, 170) d.spawn_mob(20076, 628, 179) d.spawn_mob(9003, 621, 187) d.setqf("can_refine", 1) d.notice("Du hast den Sensenmann getötet und damit den 2. Teil des Dungeons abgeschlossen.") d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.") d.notice("Falls du den Dungeon fortführen möchtest, kannst du dir bei der Gemischtwarenhändlerin") d.notice("erneut Tränke kaufen. Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.") timer("zeit_nach_sensi", 110) end when zeit_nach_sensi.timer begin d.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.") timer("zeit_bis_gemeinerking", 10) end when zeit_bis_gemeinerking.timer begin d.jump_all(2048+590, 6656+155) d.kill_all() d.spawn_mob(1094, 620, 170) d.notice("Der Gemeine Dämonenkönig treibt hier sein Unwesen.") d.notice("Töte ihn, um auf die nächste Ebene zu gelangen.") end when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin timer("zeit_bis_bt", 10) d.notice("Du hast den Gemeinen Dämonenkönig getötet.") d.notice("In 10 Sekunden wirst du auf die letzte Ebene teleportiert.") end when zeit_bis_bt.timer begin d.jump_all(2048+590, 6656+155) d.kill_all() d.spawn_mob(1095, 620, 170) d.notice("Du befindest dich auf der letzten Ebene des Dämonenturmes.") d.notice("Töte den Blauen Tod und du wirst reich belohnt!") end when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin cmdchat("CMD1") d.kill_all() d.spawn_mob(9012, 618, 187) d.spawn_mob(20074, 611, 179) d.spawn_mob(20075, 620, 170) d.spawn_mob(20076, 628, 179) d.spawn_mob(9003, 621, 187) d.setqf("can_refine", 1) d.notice("Du hast den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.") d.notice("Herzlichen Glückwunsch!") d.notice("Du darfst erneut einen Gegenstand bei den dämonischen Schmieden verbessern. Viel Glück!") notice_all("".. pc.get_name() .." hat den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.") end
quest kurbis begin state start begin when 33008.chat."Halloween Event" with pc.is_gm() begin if game.get_event_flag("kürbisse_drop") == 0 then say("Das Event ist gerade nicht Aktive.") say("Willst du es Aktivieren") local s = select ("Ja", "Nein") if s == 1 then say("Halloween Event wurde aktiviert!") game.set_event_flag("kürbisse_drop", 1) notice_all("Das Halloween Event wurde aktiviert!") else return end else say("Das Halloween Event ist aktiviert") say("Möchtest du es deaktivieren?") local s = select("Ja","Nein") if s == 1 then say("Das Halloween Event wurde deaktiviert!") game.set_event_flag("kürbisse_drop", 0) notice_all("Das Halloween Event wurde deaktiviert!") else return end end end when 33008.chat."Halloween Event" begin say_title ("Sei gegrüsst, "..pc.get_name().."!") say ("Das Halloween-Event hat begonnen und jetzt") say ("heisst es, dass jeder Spieler die Chance hat,") say ("etwas Besonderes zu gewinnen.") say ("Als Alternativ-Drop wurden Kürbisse aktiviert,") say ("die man von jedem Monster erhalten kann.") say ("Daher solltest du diese gut aufbewahren, denn") say ("man bekommt am Ende eine kleine Überraschung.") say ("Man kann ab 25 Kürbise bis 200 Stück etwas gewinnen") wait() say_title ("Ab Bestimmter Anzahl von Kürbissen:") say ("") say_reward ("25 = Muschel") say_reward ("50 = Frucht des Lebens") say_reward ("100 = Kürbismasken-Karte") say_reward ("200 = 3 Perlen jeder Sorte") end when 33008.chat."Kürbisse tauschen" with pc.count_item(50095) >= 4 begin say_title (""..pc.get_name()..":") say ("Ich habe Kürbisse und möchte diese tauschen.") local a = select ("25 Kürbisse", "50 Kürbisse", "100 Kürbisse", "200 Kürbisse", "Abbrechen") if a == 5 return end elseif a == 1 then if pc.count_item(50095) >= 25 then pc.give_item2(27987) pc.remove_item(50095, 25) else say ("Du hast zu wenig kuerbise") end
elseif a == 2 then if pc.count_item(50095) >= 50 then pc.give_item2(71107) pc.remove_item(50095, 50) else say("Du hast zu wenig Kuerbise") end elseif a == 3 then if pc.count_item(50095) >= 100 pc.give_item2(30323) pc.remove_item(50095, 100) else say("Du hast zuwenig kuerbise") end elseif a == 4 then if pc.count_item(50095) >= 200 then pc.give_item2(27992) pc.give_item2(27993) pc.give_item2(27994) pc.give_item2(27992) pc.give_item2(27993) pc.give_item2(27994) pc.give_item2(27992) pc.give_item2(27993) pc.give_item2(27994) pc.remove_item(50095, 200) end end end when kill with game.get_event_flag("kürbisse_drop") == 1 begin if not npc.is_pc() then local drop = math.random(1, 10) if drop < 3 then game.drop_item(50095, 1) end end end end end
quest highlvlmaps begin
state start begin
when 30180.use begin
local warp = {--koord Pflicht, rest optional!
{--Highlvl Maps
name = "Highlvl Maps",
{--Kap des Drachenfeuers Lv.100
name = "Kap des Drachen",
koord = {1104300, 1788500},
minlevel = 100,
maxlevel = 180,
},
{--Donnerberge Lv.120
name = "Donnerberge Lv.120",
koord = {1134500, 1654600},
minlevel = 120,
maxlevel = 180,
},
{--Gautamakliff Lv.135
name = "Gautamakliff Lv.135",
koord = {1226300, 1681100},
minlevel = 135,
maxlevel = 180,
},
{--Nephritbucht Lv.150
name = "Gautamakliff Lv.150",
koord = {1086900, 1655800},
minlevel = 150,
maxlevel = 180,
},
},
{--Farmmaps
name = "Farmmap 1 Lv.50",
{--Farmmap 1 Lv.50
name = "Farmmap 1 Lv.50",
koord = {297300, 547900},
minlevel = 50,
maxlevel = 180,
},
{--Farmmap 2 Lv.100
name = "Farmmap 2 Lv.100",
koord = {436900, 216100},
minlevel = 100,
maxlevel = 180,
},
},
}
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