Code:
quest snowdungeon begin state start begin -- Ebene 0 when 20397.chat."Der Wächter der Warte" with pc.get_map_index() == 240 begin say_gold("Wächter zur Warte") say_white("Wer wagt es meine Ruhe zu stören?") say("Du möchtest in die Warte, und das Land verteidigen?") say(" Bist du denn verrückt geworden!") say("Die Nemeres Warte ist erst ab Level **** betretbar") say("") say_reward("Möchtest du den Dungeon dennoch betreten?") say("") if select("Hab dir nicht zugehört...","Nein!") == 1 then if pc.get_level() >= **** then d.join(240) else say_reward("Du musst Level *** sein, um die Warte zu betreten!") end else syschat("[Dungeon] Besser ist es.") end end -- Ebene 1 when login with pc.get_map_index() >= 2400000 and pc.get_map_index() <= 2405000 begin chat("[Dungeon] Willkommen in der Nemeres Warte. Eure 1. Aufgabe lautet: Tötet die Frostmonster! ") chat("[Dungeon] Ihr habt 60 Minuten zeit!") if party.is_party() then if party.is_leader() then snowdungeon.start() end else snowdungeon.start() end end -- Funktionen when 20398.take begin if d.getf("actual_round") == 5 then if item.get_vnum() == 30332 then item.remove() local u = math.random(1,100) if u <= 15 then npc.purge() d.setf("siegel",d.getf("siegel")+1) if d.getf("siegel") == 5 then d.notice("[Dungeon] Ihr habt alle Würfel zerstört!") snowdungeon.purge() timer("nextlevel",10) else d.notice("[Dungeon] Ein Würfel wurde zerstört. Es verbleiben noch "..5-d.getf("siegel")..". Würfel!") end else chat("[Dungeon]Es hat leider nicht funktioniert, der Nordstern ist verschwunden!") end end end end when 30331.use begin if d.getf("actual_round") == 2 then d.notice("[Dungeon] Der Frostschlüssel gewährt euch Einlass in die nächste Ebene...") -- Level 3 d.setf("kill_count_sd3","0") d.setf("sd3_kill_to_next","***") d.setf("actual_round",3) d.set_regen_file("data/dungeon/snowdungeon/nivel_3.txt") d.notice("[Dungeon] Aufgabe 3: Tötet weiterhin Frostmonster, gebt nicht auf!") -- Level 3 pc.remove_item(30331,1) d.jump_all(5120+761,1536+268) end end when 30333.use begin if d.getf("actual_round") == 8 then if number(1,5) == 1 then -- Level 9 d.notice("[Dungeon] Aufgabe 9: Zerstöre die Säule des Norddrachen!!") d.jump_all(5120+848,1536+689) d.set_regen_file("data/dungeon/snowdungeon/nivel_9.txt") d.setf("actual_round",9) d.spawn_mob(20399, 849, 659) -- Level 9 pc.remove_item(30333,1) else d.notice("[Dungeon] Das ist ein billiges Eisblumenschlüssel-Imitat. Wirf es lieber weg, bringt eh nichts!") pc.remove_item(30333,1) end end end when kill with pc.get_map_index() >= 2400000 and pc.get_map_index() <= 2405000 begin if d.getf("actual_round") == 6 and npc.get_race() == 8035 then d.notice("[Dungeon] Der Metin der Kälte zerbricht in seine Einzelteile und entfaltet seine Macht.") d.notice("[Dungeon] Szel, der dunkle Frosthauptmann, wartet auf euch.") timer("nextlevel",10) end if d.getf("actual_round") == 7 and npc.get_race() == 6151 then d.notice("[Dungeon] Was !? Auch Szel habt ihr besiegt? Okay, ich lasse nun meine stärksten Assasinen") d.notice("[Dungeon] frei. Mal sehen wie ihr mit denen fertig werder ihr Spatzenhirne!") snowdungeon.purge() timer("nextlevel",10) end if d.getf("actual_round") == 9 and npc.get_race() == 20399 then d.notice("[Dungeon] Die Säule des Norddrachen war die letzte Hürde zu Nemeres.") d.notice("[Dungeon] Macht euch bereit für den Endkampf gegen den Wächter der Warte!") snowdungeon.purge() timer("nextlevel",10) end if d.getf("actual_round") == 10 and npc.get_race() == 6191 then if party.is_party() then if party.is_leader() then notice_all("Die Gruppe von "..pc.get_name().." hat die Nemeres Warte durchquert und Nemeres gestürzt!") end else notice_all(pc.get_name().." hat die Nemeres Warte durchquert und Nemeres gestürzt!") end d.notice("Ihr habt es geschafft Abenteurer! Nemeres und seine dunkle Gefolgschaft ist gestürzt,") d.notice("bedient euch ruhig an seinen Schätzen, ich habe keine Verwendung mehr dafür.") d.setf("actual_round","0") d.clear_regen() d.kill_all() d.spawn_mob(9012, 928, 338) end if d.getf("actual_round") == 1 then d.setf("kill_count_sd1",d.getf("kill_count_sd1") +1) if d.getf("kill_count_sd1") == d.getf("sd_kill_to_next") then d.notice("[Dungeon] Die 1. Aufgabe wurde erfolgreich abgeschlossen.") d.notice("[Dungeon] Ihr werdet in die nächste Ebene teleportiert...") snowdungeon.purge() timer("nextlevel",10) end elseif d.getf("actual_round") == 2 then if number(1,150) == 11 then game.drop_item_with_ownership(30331,1) end elseif d.getf("actual_round") == 3 then d.setf("kill_count_sd3",d.getf("kill_count_sd3") +1) if d.getf("kill_count_sd3") == d.getf("sd3_kill_to_next") then snowdungeon.purge() d.notice("[Dungeon] Auch diese Aufgabe ist hiermit abgeschlossen,") d.notice("[Dungeon] Viel Glück in Ebene 4 ihr Maden!") timer("nextlevel",10) end elseif d.getf("actual_round") == 4 then d.setf("kill_count_sd4",d.getf("kill_count_sd4") +1) if d.getf("kill_count_sd4") == d.getf("sd4_kill_to_next") then snowdungeon.purge() d.notice("[Dungeon] Die Armee wurde erschlagen.") d.notice("[Dungeon] Es geht weiter, bereit für Ebene 5? Los geht's!") timer("nextlevel",10) end elseif d.getf("actual_round") == 5 then if number(1,25) == 19 then game.drop_item_with_ownership(30332,1) end elseif d.getf("actual_round") == 6 then d.setf("kill_count_sd6",d.getf("kill_count_sd6") +1) if d.getf("kill_count_sd6") == d.getf("sd6_kill_to_next") then d.notice("[Dungeon] Du dachtest das wärs schon? Kill den Metin der Kälte und wir schauen weiter ;)") snowdungeon.purge() timer("level7metin",5) end elseif d.getf("actual_round") == 8 then if number(1,150) < 2 then game.drop_item_with_ownership(30333,1) end end end ------ when level7metin.timer begin if d.getf("actual_round") == 6 then d.spawn_mob(8035, 743, 495) end end when nextlevel.timer begin if d.getf("actual_round") == 1 then -- Level 2 d.jump_all(5120+421,1536+264) d.setf("actual_round",2) d.set_regen_file("data/dungeon/snowdungeon/nivel_2.txt") d.notice("[Dungeon] Aufgabe 2: Findet den richtigen Frostschlüssel und benutzt ihn.") elseif d.getf("actual_round") == 3 then -- Level 4 d.jump_all(5120+174,1536+526) d.setf("actual_round",4) d.setf("kill_count_sd4","0") d.setf("sd4_kill_to_next","200") d.set_regen_file("data/dungeon/snowdungeon/nivel_4.txt") d.notice("[Dungeon] Aufgabe 4: Die Monster wollen nicht Ruhe lassen, einer allein ist vielleicht nicht so stark,") d.notice("[Dungeon] aber wie kommt ihr mit einer gesamten Armee von Eismonstern klar, Abenteurer?") elseif d.getf("actual_round") == 4 then -- Level 5 d.jump_all(5120+421,1536+533) d.setf("actual_round",5) d.set_regen_file("data/dungeon/snowdungeon/nivel_5.txt") ------------- local sequence = {{1,2,3,4,5},{4,3,2,1,5},{4,5,3,1,2},{5,3,4,2,1},{5,1,3,4,2}} local n = number(1,5) local coords = {{391,490},{451,490},{463,455},{380,456},{420,422}} for i = 1, 5 do d.spawn_mob(20398, coords[i][1],coords[i][2]) end d.setf("box_opened", 1) d.setf("sequence",n) ----------- d.notice("[Dungeon] Aufgabe 5: Genug vom Kämpfen. Zieht die Nordsterne auf die Würfel... Das Problem dabei?") d.notice("[Dungeon] Nur die Monster besitzen diesen Schlüssel, also weiter geht der Kampf um Nemeres.") elseif d.getf("actual_round") == 5 then -- Level 6 d.jump_all(5120+746,1536+536) d.setf("actual_round",6) d.setf("kill_count_sd6","0") d.setf("sd6_kill_to_next","150") d.set_regen_file("data/dungeon/snowdungeon/nivel_6.txt") d.notice("[Dungeon] Aufgabe 6: Ich wahr gerade übrigens zu faul, den Text 'Ihr werdet nun weiterteleportiert.'") d.notice("[Dungeon] zu kopieren... meine Faulheit wird immer schlimmer. Tötet die Monster um weiterzukommen!") elseif d.getf("actual_round") == 6 then -- Level 7 d.jump_all(5120+304,1536+719) d.setf("actual_round",7) d.spawn_mob(6151, 282, 662) elseif d.getf("actual_round") == 7 then -- Level 8 d.jump_all(5120+569,1536+642) d.setf("actual_round",8) d.set_regen_file("data/dungeon/snowdungeon/nivel_8.txt") d.notice("[Dungeon] Aufgabe 8: Nutzt den richtigen Eisblumenschlüssel um zur 9.Ebene zu gelangen!") elseif d.getf("actual_round") == 9 then -- Level 10 Boss d.spawn_mob(6191, 927, 323) d.jump_all(5120+928,1536+390) d.setf("actual_round",10) end end function start() d.set_regen_file("data/dungeon/snowdungeon/nivel_1.txt") d.setf("actual_round",1) d.setf("sd_kill_to_next",200) d.setf("kill_count_sd1",0) end function purge() d.kill_all() d.clear_regen() end -- Ende end end