bräuchte Hilfe bei meiner Dungeonquest:
PHP Code:
quest hafenrun begin
state start begin
function s4() -- Droppender Mob in Ebene 4 | Koordinaten
return {
{444, 72}, {447, 94}, {425, 120}, {450, 124},
{438, 81}, {434, 101}, {414, 122}, {440, 105},
{435, 71}, {421, 111}, {438, 117}, {430, 98},
}
end
function s5() -- Metins in Ebene 5 | Koordinaten (20 Metins)
return {
{96, 422}, {122, 373}, {112, 410}, {142, 412},
{71, 416}, {137, 385}, {100, 410}, {165, 439},
{80, 393}, {135, 404}, {90, 377}, {172, 435},
{102, 397}, {144, 416}, {153, 423}, {169, 420},
{122, 373}, {130, 440}, {143, 448}, {119, 429},
}
end
when 20092.chat."Hafen-Run" with game.get_event_flag("hafenrun_avail") <= get_time() begin
say_title(string.format("%s", mob_name(npc.get_race())))
say("")
say("Du möchtest also den Hafen-Run betreten?")
if not party.is_party() then
say("Du bist in keiner Gruppe.")
say("Du kannst nur als Gruppe den Dungeon meistern.")
say("")
return
end
if not party.is_leader() then
say("Es tut mir leid, aber nur Gruppenanführer können")
say("eine Dungeonrunde erstellen.")
say("")
return
end
if pc.get_level() < 35 then
say("Dein Level ist zu niedrig.")
say("")
return
end
if pc.count_item(50008) < 1 then
say(string.format("Dir fehlt %s mal %s.", 1, item_name(50008)))
say("")
return
end
say("Bitte lege ein Passwort fest, mit welchem deine")
say("Gruppenmitglieder der Runde beitreten können.")
say("ACHTUNG: Es sind nur Zahlen erlaubt!")
local pass = input()
if pass == nil or tostring(pass) == "" then return end
if tonumber(pass) == false then
say_title(string.format("%s", mob_name(npc.get_race())))
say("")
say("Für das Passwort sind nur Zahlen zugelassen.")
say("")
return
end
if string.len(pass) < 4 then
say_title(string.format("%s", mob_name(npc.get_race())))
say("")
say("Das Passwort muss mindestens 4 Zeichen lang sein!")
say("")
return
end
say_title(string.format("%s", mob_name(npc.get_race())))
say("")
say("Das Passwort wurde festgelegt.")
say("Gebe deinen Gruppenmitgliedern das Passwort, damit")
say("sie der Dungeonrunde beitreten können.")
say("")
say_reward("Das Passwort: "..pass)
say("")
if pc.count_item(50008) < 1 then
say_title("Dir fehlen Items")
say("")
say("Du hast Bugusing versucht.")
say("Schande über dich!")
say("")
return
end
pc.remove_item(50008, 1)
game.set_event_flag("hafenrun_avail", get_time() + 60*10)
game.set_event_flag("hafenrun_pass", tonumber(pass))
end
when 20092.chat."X-Dungeon" with game.get_event_flag("hafenrun_avail") > get_time() begin
say_title(string.format("%s", mob_name(npc.get_race())))
say("")
say("Bitte gebe das Passwort ein, um der Dungeonrunde")
say("beizutreten.")
local pass = input()
if pass == nil or tostring(pass) == "" then return end
if tonumber(pass) == false then
say_title(string.format("%s", mob_name(npc.get_race())))
say("")
say("Für das Passwort sind nur Zahlen zugelassen.")
say("")
return
end
if game.get_event_flag("hafenrun_pass") != tonumber(pass) then
say_title(string.format("%s", mob_name(npc.get_race())))
say("")
say("Deine Eingabe war nicht korrekt.")
say("")
return
end
timer("check_bugger", 10)
pc.warp(4356073, 4352495)
end
when check_bugger.timer begin
if not pc.in_dungeon() then
if pc.get_204() == 204 then
warp_to_village()
end
end
end
when 20092.chat."Jetzt teleportieren" with party.is_leader() begin
say_title(string.format("%s", mob_name(npc.get_race())))
say("")
if party.get_near_count() < 2 then
say("Ihr seid zu wenig!")
say("")
return
elseif party.get_near_count() > 8 then
say("Ihr seid zu viele!")
say("")
return
else
party.chat("Ihr werdet in Ebene 1 teleportiert.")
timer("stage_1_1", 5)
end
end
when stage_1_1.timer begin
--chat("TesT")
d.new_jump_all(pc.get_map_index(), 43219+363, 43219+403)
end
when login with pc.in_dungeon() and pc.get_map_index() >= (6 * 10000) and pc.get_map_index() < (7 * 10000) and party.is_leader()begin
d.notice("Monsterwelle in 30 Sekunden.")
timer("stage_1_2", 30)
end
when stage_1_2.timer begin
d.regen_file("data/dungeon/havenrun/regen_1.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), 395, 75, "data/dungeon/havenrun/regen_1.txt")
timer("stage_2_1", 10)
end
when stage_2_1.timer begin
d.set_warp_at_eliminate(4, d.get_204(), 340, 203)
d.check_eliminated()
local vid = d.spawn_mob(101, 410, 315)
d.set_unique("boss", vid)
d.notice("Hinter dem Wald erwartet euch ein Bossmonster!")
server_loop_timer("check_for_dead_e3_boss", 10, pc.get_204())
end
when check_for_dead_e3_boss.server_timer begin
if d.select(get_server_timer_arg()) then
if d.revived() then
server_timer("check_for_dead_e3_boss_stop", 1, get_server_timer_arg())
end
if d.is_unique_dead("boss") then
server_timer("check_for_dead_e3_boss_stop", 1, get_server_timer_arg())
end
end
end
when check_for_dead_e3_boss_stop.server_timer begin
clear_server_timer("check_for_dead_e3_boss", get_server_timer_arg())
if d.revived() then d.exit_all() return end
d.jump_all(426, 88)
d.regen_file("data/dungeon/havenrun/regen_5.txt")
local x = hafenrun.s4()
local p = x[number(1, table.getn(x))]
d.set_unique("real", d.spawn_mob(MOB_E4, p[1], p[2]))
server_loop_timer('e4_time_1', 60, pc.get_204())
d.setf('time', 5)
d.notice("Ihr habt 5 Minuten Zeit, das richtige Monster zu töten und das")
d.notice("benötigte Item zu erhalten.")
end
when e4_time_1.server_timer begin
if d.getf('time') == 0 then
server_timer("clear_me_e4", 1, get_server_timer_arg())
end
d.notice("Ihr habt noch "..d.getf('time').." Minuten.")
d.setf('time', d.getf('time') - 1)
end
when clear_me_e4.server_timer begin
clear_server_timer("e4_time_1", get_server_timer_arg())
d.exit_all()
end
when MOB_E4.kill with pc.in_dungeon() and pc.get_map_index >= 204*10000 and pc.get_map_index() < (204+1)*10000 begin
if d.is_unique_dead("real") then
game.drop_item(E4_ITEM, 1)
end
end
when 30123.take with item.get_vnum() == E4_ITEM begin
clear_server_timer("e4_time_1", pc.get_204())
d.notice("Ihr habt auch diese Ebene erfolreich gemeistert.")
d.jump_all(178, 455)
local posses = hafenrun.s5()
local rnd = 20
local jump = false
local co = 1
for i = 1, table.getn(posses) do
if not jump then
local k = number(1, rnd)
if k == 1 then
local vi = d.spawn_mob(8008, posses[i][1], posses[i][2])
d.set_unique("right", vi)
jump = true
else
d.set_unique("fake" .. c , d.spawn_mob(8008, posses[i][1], posses[i][2]))
rnd = rnd - 1
c = c + 1
end
else
d.set_unique("fake" .. c , d.spawn_mob(8008, posses[i][1], posses[i][2]))
c = c + 1
end
end
end
when 8008.kill with pc.in_dungeon() and pc.get_204 >= 204*10000 and pc.get_204() < (204+1)*10000 begin
if d.is_unique_dead("right") then
for i = 1, 19 do
if not d.is_unique_dead("fake"..i) then
d.purge_unique("fake"..i)
end
end
end
d.jump_all(96, 98)
d.set_unique("boss1", d.spawn_mob(101, 96, 109))
d.set_unique("boss2", d.spawn_mob(101, 86, 97))
d.set_unique("boss3", d.spawn_mob(101, 127, 94))
d.set_unique("boss4", d.spawn_mob(101, 111, 115))
end
when BOSS_1.kill with pc.in_dungeon() and pc.get_204 >= 204*10000 and pc.get_204() < (204+1)*10000 begin
local x = true
for i = 1, 4 do
if not d.is_unique_dead("boss"..i) then
x = false
end
end
if x then
d.jump_all(87, 299)
d.set_unique("endboss", d.spawn_mob(101, 118, 206))
end
end
when BOSS_2.kill with pc.in_dungeon() and pc.get_204 >= 204*10000 and pc.get_204() < (204+1)*10000 begin
local x = true
for i = 1, 4 do
if not d.is_unique_dead("boss"..i) then
x = false
end
end
if x then
d.jump_all(87, 299)
d.set_unique("endboss", d.spawn_mob(101, 118, 206))
end
end
when BOSS_3.kill with pc.in_dungeon() and pc.get_204 >= 204*10000 and pc.get_204() < (204+1)*10000 begin
local x = true
for i = 1, 4 do
if not d.is_unique_dead("boss"..i) then
x = false
end
end
if x then
d.jump_all(87, 299)
d.set_unique("endboss", d.spawn_mob(101, 118, 206))
end
end
when BOSS_4.kill with pc.in_dungeon() and pc.get_204 >= 204*10000 and pc.get_204() < (204+1)*10000 begin
local x = true
for i = 1, 4 do
if not d.is_unique_dead("boss"..i) then
x = false
end
end
if x then
d.jump_all(87, 299)
d.set_unique("endboss", d.spawn_mob(101, 118, 206))
end
end
when 101.kill with pc.in_dungeon() and pc.get_204 >= 204*10000 and pc.get_204() < (204+1)*10000 begin
d.clear_regen()
d.notice("Du hast es geschafft!")
if party.is_leader() then
notice_all("Die Gruppe von "..tostring(pc.get_name()).." hat die geheimnisvollen Inseln bezwungen")
notice_all("und ist in der Hafenstadt eingetroffen!")
end
server_timer("warp_away", 120, pc.get_204())
end
when warp_away.server_timer begin
d.exit_all()
end
end
end
Wer Zeit & Lust hat und sich egold dazuverdienen möchte, kann mir auch gerne seine Skype-Addy via PN schreiben.
Lg







