Ich denke ich werde nicht viel dazu sagen müssen
sie entspricht indirekt etwas der Dämonenturm 1 Quest.
Dennoch ist sie etwas eigen und hat andere Inhalte
Code:
quest dt2 begin state start begin when login begin if pc.get_map_index() == 270 then if pc.get_x() < 204800+88 or pc.get_y() < 665600+577 or pc.get_x() > 204800+236 or pc.get_y() > 665600+737 then pc.warp((5376+514)*100, (512+478+4)*100, 65) end pc.set_warp_location(65, 5376+514, 512+478+4) elseif pc.get_map_index() >= 2700000 and pc.get_map_index() < 2700000 then pc.set_warp_location(65, 5376+514, 512+478+4) end end when 30301.chat."Deviltower 2" begin say_title("Wächter des Dämonenturms 2") say("") say("Die lange Zeit mit einem Fluch belegten") say("Höhlen der Dämonen, tief im Berg des Dämonenturms") say("wurden nun von den Stärksten Kriegern des") say("Reiches wieder geöffnet. Leider scheiterten") say("sie an den Aufgaben der Dämonen. Nun liegt es") say("in deiner Hand den Zombiesensenmann zu töten.") wait() if pc.get_level() < 99 then say("Du hast noch nicht genügend Erfahrung gesammelt. Komme wieder, wenn du Level 100 bist!") else say("Möchtest du die Zombiehölen betreten?") local s = select ( "Betreten" , "In das Shinsoo Reich teleportieren" , "In das Chunjo Reich teleportieren" , "In das Jinno Reich teleportieren" , "Abbrechen" ) if s == 1 then pc.warp(20491900, 66621500) elseif s == 2 then say("Du wirst nun in das Shinsoo Reich teleportiert!") local s = select("OK") pc.warp (469300, 964200) elseif s == 3 then say("Du wirst nun in das Chunjo Reich teleportiert!") local s = select("OK") pc.warp (55700, 157900) elseif s == 4 then say("Du wirst nun in das Jinno Reich teleportiert!") local s = select("OK") pc.warp(969600, 278400) end end end when 8026.kill begin if pc.get_map_index() == 270 then timer("zombie_cave_warp_1", 6) end end when zombie_cave_warp_1.timer begin local mapto7= pc.count_item(30305) pc.remove_item(30305,mapto7) local boxto7= pc.count_item(30310) pc.remove_item(30310,boxto7) d.new_jump_all(270, special.zombiecavern[1][1], special.zombiecavern[1][2]) d.regen_file("data/dungeon/deviltower2_2_regen.txt") d.set_warp_at_eliminate(4, d.get_map_index(), special.zombiecavern[2][1], special.zombiecavern[2][2], "data/dungeon/deviltower2_3_regen.txt") end when 2523.kill with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 begin d.notice("Der Dämonenkönig wurde getötet, doch") d.notice("es verbleiben noch ein paar weitere") d.notice("Anführer, die es zu töten gilt.") timer("jumpto_king1", 5) d.kill_all() end when jumpto_king1.timer begin d.new_jump_all(270, special.zombiecavern[3][1], special.zombiecavern[3][2]) d.regen_file("data/dungeon/deviltower2_4_regen.txt") end when 8023.kill with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 begin d.setf("deviltower2_town", 4) server_timer('deviltower2_stone4_abort1', 5*60, pc.get_map_index()) d.set_regen_file("data/dungeon/deviltower2_flame_regen.txt") d.spawn_mob(11509, 368, 629) d.spawn_mob(11509, 419, 630) d.spawn_mob(11509, 428, 653) d.spawn_mob(11509, 422, 679) d.spawn_mob(11509, 395, 689) d.spawn_mob(11509, 369, 679) d.spawn_mob(11509, 361, 658) d.setf("feuerdermacht", 7) d.notice("7 Feuer der Macht - 15 Minuten."); d.notice("Zerstört alle oder erfahrt den Fluch"); d.notice("des Zombiekönigs."); end when deviltower2_stone4_abort1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 10 Minuten") server_timer('deviltower2_stone4_abort2', 5*60, get_server_timer_arg()) end end when deviltower2_stone4_abort2.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 5 Minuten") server_timer('deviltower2_stone4_abort', 5*60, get_server_timer_arg()) end end when deviltower2_stone4_abort.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Die Zeit ist abgelaufen.") d.notice("Ihr werdet nun mit dem Fluch des Zombiekönigs") d.notice("belegt und nach draußen teleportiert.") pc.polymorph(2528, 60*30*1) pc.warp((5376+514)*100, (512+478+4)*100, 65) clear_server_timer('deviltower2_stone4_abort1', get_server_timer_arg()) end end when 11509.kill with pc.in_dungeon() and d.getf("deviltower2_town") == 4 begin if d.getf("feuerdermacht") > 1 then d.setf("feuerdermacht", d.getf("feuerdermacht") - 1) d.notice("Es verbleibt eine Anzahl von ".. d.getf("feuerdermacht") .." Feuer der Macht.") else timer("zombie_cave_stoneto_next", 5) d.notice("Ihr habt es geschafft. Alle Feuer der Macht") d.notice("wurden zerstört. Ihr werdet nun in die") d.notice("nächste Etage teleportiert") clear_server_timer('deviltower2_stone4_abort1', get_server_timer_arg()) clear_server_timer('deviltower2_stone4_abort2', get_server_timer_arg()) clear_server_timer('deviltower2_stone4_abort', get_server_timer_arg()) end end when zombie_cave_stoneto_next.timer begin d.setf("deviltower2_town", 5) d.setf("z_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.zombiecavern[4][1], special.zombiecavern[4][2]) server_timer('zombie_cave_stone5_fail1', 5*60, get_server_timer_arg()) d.set_regen_file("data/dungeon/deviltower2_5_regen.txt") d.spawn_mob(30103, 421, 452) d.spawn_mob(30103, 380, 460) d.spawn_mob(30103, 428, 414) d.spawn_mob(30103, 398, 392) d.spawn_mob(30103, 359, 426) end when zombie_cave_stone5_fail1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 15 Minuten") server_timer('zombie_cave_stone5_fail2', 5*60, get_server_timer_arg()) end end when zombie_cave_stone5_fail2.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 10 Minuten") server_timer('zombie_cave_stone5_fail3', 5*60, get_server_timer_arg()) end end when zombie_cave_stone5_fail3.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Verbleibende Zeit: 5 Minuten") server_timer('zombie_cave_stone5_fail', 5*60, get_server_timer_arg()) end end when zombie_cave_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") pc.polymorph(2528, 60*30*1) pc.warp((5376+514)*100, (512+478+4)*100, 65) end end when 2510.kill with pc.in_dungeon() and d.getf("deviltower2_town") == 5 begin local KILL_COUNT_FOR_DROP_KEY = 50 local n =d.getf("z_count") + 1 d.setf("z_count", n) if n == KILL_COUNT_FOR_DROP_KEY then game.drop_item(30309, 1) d.setf("z_count", 0) end end when 30103.take with item.vnum == 30309 begin npc.purge() item.remove() d.setf("z_stone_count", d.getf("z_stone_count") - 1) if d.getf("z_stone_count") <= 0 then d.setf("deviltower2_town", 6) d.clear_regen() d.regen_file("data/dungeon/deviltower2_6_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.zombiecavern[5][1], special.zombiecavern[5][2]) clear_server_timer('zombie_cave_stone5_fail1', get_server_timer_arg()) clear_server_timer('zombie_cave_stone5_fail2', get_server_timer_arg()) clear_server_timer('zombie_cave_stone5_fail3', get_server_timer_arg()) clear_server_timer('zombie_cave_stone5_fail', get_server_timer_arg()) else d.notice("Es verbleibt eine Anzahl von "..d.getf("z_stone_count").." Siegeln") end end when 2524.kill with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 begin d.kill_all() d.check_eliminated() d.spawn_mob(20351, 425, 216) end when 20351.chat."Die weiteren Ebenen.." with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 begin say_title("Wächter des Untergrundes") say("") say("Es gibt noch einige weitere Kammern, voll mit") say("mächtigen Dämonen. Allein können wir gegen sie") say("nicht ankommen.. Ich werde euch nun in den") say("nächsten Raum teleportieren.") wait() timer("deviltower_jump_7", 2) return end when deviltower_jump_7.timer begin d.clear_regen() d.spawn_mob(8025, 639, 658) d.spawn_mob(8025, 611, 637) d.spawn_mob(8025, 596, 674) d.spawn_mob(8025, 629, 670) d.setf("deviltower2_town", 7) d.jump_all(204800+590, 665600+638) end when 8025.kill with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 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/deviltower2_7_regen.txt") end end when 8027.kill with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 begin game.drop_item(30310, 1) end when 30310.use with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 begin pc.remove_item("30310", 1) local pct = number(1,10) if pct == 1 then game.drop_item(30305, 1) d.clear_regen() else game.drop_item(30306, 1) end end when 30305.use with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 begin pc.remove_item("30305", 1) say_title("Karte der Zombiehölen") say("") say("Mit dieser Karte gelangt ihr in die nächste") say("Kammer des Zombieturms.") say("") say("Viel Glück!") say("") d.clear_regen() wait() timer("deviltower_jump_8", 2) end when deviltower_jump_8.timer begin d.setf("deviltower2_town", 8) d.jump_all(204800+590, 665600+403) d.set_regen_file("data/dungeon/deviltower2_8_regen.txt") d.spawn_mob(30102, 640, 460) local _count= pc.count_item(30305) pc.remove_item(30305,_count) end when 2520.kill with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 and d.getf("deviltower2_town") == 8 begin local pct1 = number(1, 5) if pct1 == 1 then local pct2 = number(1, 10) if pct2 == 1 then game.drop_item(30307, 1) else game.drop_item(30308, 1) end else return end end when 2521.kill with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 and d.getf("deviltower2_town") == 8 begin local pct1 = number(1, 5) if pct1 == 1 then local pct2 = number(1, 10) if pct2 == 1 then game.drop_item(30307, 1) else game.drop_item(30308, 1) end else return end end when 2522.kill with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 and d.getf("deviltower2_town") == 8 begin local pct1 = number(1, 5) if pct1 == 1 then local pct2 = number(1, 10) if pct2 == 1 then game.drop_item(30307, 1) else game.drop_item(30308, 1) end else return end end when 30102.take with item.vnum == 30307 begin npc.purge() item.remove() d.notice("Das letzte Siegel wurde geöffnet. Ihr werdet") d.notice("nun dem Zombiesensenmann gegenübertreten.") timer("deviltower_jump_9", 4) end when deviltower_jump_9.timer begin d.setf("deviltower2_town", 9) d.jump_all(204800+590, 665600+155) d.regen_file("data/dungeon/deviltower2_9_regen.txt") end when 2525.kill with pc.in_dungeon() and pc.get_map_index() >= 2700000 and pc.get_map_index() < 2710000 begin d.kill_all() d.notice("Ihr habt den Dämonenensenmann getötet.") d.notice("Dies war eine nicht allzu leichte Aufgabe.") d.notice("Nun sollt ihr eine Belohnung erhalten.") timer("deviltower_end_port" , 2) end when deviltower_end_port.timer begin d.spawn_mob(9012, 607, 218) d.setqf("deviltower_zone", "refineing", 1) d.spawn_mob(20074, 621, 189) d.spawn_mob(20075, 615, 187) d.spawn_mob(20076, 610, 185) end end end
die sind allerdings leer Values ecetera müsst
ihr in der Quest selbst anpassen sprich NPC's & Mobbs.
Die Regendatei müsst ihr auch füllen das ist euer
einzigster Job den ihr selbst auf die Reihe bringen müsst.
Tipp:
Die Regenfiles vom Dämonenturm 1
helfen euch dabei für die Koordspawns im Dt2
Edit:
Sucht in der questlib.lua nach folgender Function:
Code:
special.devil_tower = { --{ 123, 608 }, { 2048+126, 6656+384 }, { 2048+134, 6656+147 }, { 2048+369, 6656+629 }, { 2048+369, 6656+401 }, { 2048+374, 6656+167 }, { 2048+579, 6656+616 }, { 2048+578, 6656+392 }, { 2048+575, 6656+148 }, }
Code:
special.zombiecavern = { { 204800+126, 665600+384 }, { 204800+134, 665600+147 }, { 204800+369, 665600+629 }, { 204800+369, 665600+401 }, { 204800+374, 665600+167 }, { 204800+579, 665600+616 }, { 204800+578, 665600+392 }, { 204800+575, 665600+148 }, }
aber ich beachte lieber die dabei die Ordentlichkeit.