quest deviltower_zone begin
state start begin
when login begin
if pc.get_map_index() == 66 then
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() <= 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
if pc.get_level() < 40 then
say(locale.deviltower_man_say_you_cant)
else
say(locale.deviltower_man_say)
local s = select(locale.deviltower_enter,locale.deviltower_n o_enter)
if s == 1 then
-- warp into!
pc.warp(216500,727000)
end
end
end
when devil_stone1.kill begin
timer("devil_stone1_1", 5)
end
when 30121.take with item.vnum == 30185 begin
item.remove()
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_2_regen.txt")
end
when 30121.chat."Wer bist du?" begin
say("Sei gegrüßt Fremder!")
say("Ich bin der Wächter der zweiten, geheimem Ebne")
say("Um sie zu betreten, musst du mir")
say("ein spezeilles Item bringen")
say("Dies kriegst du nur vom Blauen Tod!")
say_item("Schwarzes Eis", 30185, "")
wait()
say("Zieh es einfach auf mich,")
say("und ich werde dir und deinen Gefährten")
say("den Weg in die geheime Ebne zeigen...")
end
when devil_stone1_1.timer begin
local mapto7= pc.count_item(30302) -- ®ø·À¤£ª¾¬O§_¦s¦bªº¯u¤`ÆF¶ð
pc.remove_item(30302,mapto7)
local boxto7= pc.count_item(30300) -- ®ø·À¤£ª¾¬O§_¦s¦bªº¤£ª¾¦Wªº½c¤l
pc.remove_item(30300,boxto7)
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
--d.set_exit_all_at_eliminate(6)
--d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
d.check_eliminated()
--d.exit_all()
end
function get_4floor_stone_pos()
local positions = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- positions[i][1] = positions[i][1] * 100
-- positions[i][2] = positions[i][2] * 100
-- end
return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.setf("level", 4)
-- ¦A²{¤j¶q©Çª«¤Î»s³y¯u¥ÛÀY©M°²¥ÛÀY
--d.regen_file("data/dungeon/deviltower4_regen.txt")
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
d.notice("Du hast den Metin des Teufels");
d.notice("Zerstört!");
d.notice("Du hast nun 15Min Zeit, den Richtigen");
d.notice("Metin des Sturzes zu zerstören!");
d.notice("Nur duch Zerstörung ddes Richtigen kommtst du weiter!");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Es verbleiben noch 10min!")
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("Es verbleiben noch 5min!")
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.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("Die falschen Metinsteine Verschwinden...");
end
end
end
else
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Du hast den Richtigen Metin des Sturzes zerstört!");
d.notice("Du wirst in den 5ten Stock 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 im 5ten Stock")
d.notice("Auf dieser Ebene ist viel Können gefragt!")
d.notice("Einige Monster droppen einen 'Schlüsselsein'")
d.notice("Ziehe diesen Stein auf die Säulen,")
d.notice("und komme auf Ebene6!")
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())
-- 5¼ÓÄ~Äò¦A²{
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
-- 5¼Ó«Ê¦L¥Û¦A²{
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("³Es verbleiben noch 15min!")
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("Es verbleiben noch 10min!")
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("³Es verbleiben noch 5min!")
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.exit_all()
end
end
--when devil_stone4.kill begin
--d.setf("level", 5)
--d.setf("stone_count", 4)
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
--d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--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
-- ±¼¤UÂê°Í
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/deviltower6_regen.txt")
d.notice("Du hast das Siegel geöffnet!")
d.notice("Du wirst nun auf die 6te Ebene zu dem Dämonenkönig geportet!")
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("Du hast ein Siegel geöffnet! "..d.getf("stone_count").." verbleiben noch!")
end
end
when devil_stone6.kill begin
-- Geschickt, um eine Karte, wo die Verfeinerung St.
-- Ansonsten ¡¼fnen Sie ein neues Lian Sheng
-- 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.notice("Der Dämonenkönig wurde getötet. In wenigen Sekunden")
d.notice("wird dich ein Schmied belohnen.")
timer("schmied_spawn",10)
--d.check_eliminated()
--local reward_alchemist = {20074, 20075, 20076}
--d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
--d.setqf("can_refine", 1)
end
when schmied_spawn.timer begin
d.check_eliminated()
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf("can_refine", 1)
end
--------------------------------------
-- ¥Ñ¶i¤J7¼Ó¦Ü¨ì¹F8¼Ó¤§«e
--------------------------------------
when 20074.chat."Zu den Höheren Stockwerken.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000begin
npc.lock()
say(""..mob_name(20074).."")
say("In den Höheren Ebenen des Turms")
say("wartet der Sensenmann auf dich!")
say("Du musst mindestens LV75 sein!")
say("Bist du sicher das du voranschreiten willst?")
wait()
if pc.level >=75 then
say("Du bist mutig..")
say("Ich werde dich Teleportieren...")
say("")
npc.purge()
timer("devil_jump_7", 6)
return
end
say("Du bist unter Level75!")
say("Du wirst weiter oben nur Grausame Qualen zuspüren bekommen...")
say("Ich Teleportiere dich jetzt runter...zu deiner Sicherheit...")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20075.chat."Zu den Höheren Stockwerken.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
npc.lock()
say(""..mob_name(20075).."")
say("In den Höheren Ebenen des Turms")
say("wartet der Sensenmann auf dich!")
say("Du musst mindestens LV75 sein!")
say("Bist du sicher das du voranschreiten willst?")
wait()
if pc.level >=75 then
say("Du bist mutig..")
say("Ich werde dich Teleportieren...")
say("")
npc.purge()
timer("devil_jump_7", 6)
return
end
say("Du bistt unter Level75!")
say("Du wirst weiter oben nur Grausame Qualen zuspüren bekommen...")
say("Ich Teleportiere dich jetzt runter...zu deiner Sicherheit...")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20076.chat."Zu den Höheren Stockwerken.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
npc.lock()
say(""..mob_name(20076).."")
say("In den Höheren Ebenen des Turms")
say("wartet der Sensenmann auf dich!")
say("Du musst mindestens LV75 sein!")
say("Bist du sicher das du voranschreiten willst?")
wait()
if pc.level >=75 then
say("Du bist mutig..")
say("Ich werde dich Teleportieren...")
say("")
npc.purge()
timer("devil_jump_7", 6)
return
end
say("Du bist unter Level75!")
say("Du wirst weiter oben nur Grausame Qualen zuspüren bekommen...")
say("Ich Teleportiere dich jetzt runter...zu deiner Sicherheit...")
say("")
wait()
pc.warp(590500, 110500)
return
end
when devil_jump_7.timer begin
d.clear_regen()
d.spawn_mob(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+638)
end
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/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
-- ±¼¤U¯u¦a¹Ï
game.drop_item(30302, 1)
d.clear_regen()
else
-- ±¼¤U°²¦a¹Ï
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
-- ¶Ç°e¨ì8¼Ó
say("Du wirst in den 7ten Stock Teleportiert..")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
--------------------------------------------
-- ¥Ñ¶i¤J8¼Ó¦Ü¨ì¹F9¼Ó¤§«e
--------------------------------------------
when devil_jump_8.timer begin
d.setf("level", 8)
d.jump_all(2048+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.count_item(30302)-- ®ø·À¯u¤`ÆF¶ð
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
-- ±¼¤U¯uÂê°Í
game.drop_item(30304, 1)
else
-- ±¼¤U°²Âê°Í
game.drop_item(30303, 1)
end
else
return
end
end
when 20366.take with item.vnum == 30304 begin
-- 9¼Ó«Ê¦L¸Ñ°£
npc.purge()
item.remove()
d.kill_all()
timer("devil_jump_9", 6)
end
---------------------------------------------
-- ¥Ñ¶i¤J9¼Ó¦Üµ²§ô
---------------------------------------------
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.clear_regen()
d.regen_file("data/dungeon/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.notice("Du hast das Oberhaupt der Dämonen getötet...")
d.notice("Du bist wahrhaft ein mächtiger kämpfer...")
d.kill_all()
timer("devil_jump_10", 6)
end
---------------------------------------------
-- ¥Ñ¶i¤J9¼Ó¦Üµ²§ô
---------------------------------------------
when devil_jump_10.timer begin
d.setf("level", 10)
d.clear_regen()
d.jump_all(2048+590, 6656+403)
d.regen_file("data/dungeon/deviltower10_regen.txt")
d.spawn_mob(1094, 602, 442)
end
when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.check_eliminated()
timer("devil_jump_11", 6)
end
---------------------------------------------
-- ¥Ñ¶i¤J9¼Ó¦Üµ²§ô
---------------------------------------------
when devil_jump_11.timer begin
d.setf("level", 11)
d.clear_regen()
d.jump_all(2048+590, 6656+155)
d.regen_file("data/dungeon/deviltower11_regen.txt")
d.spawn_mob(1095, 610, 194)
end
when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
d.kill_all()
d.notice("Du hast das geschafft, was keiner gedacht hat...")
d.notice("Du hast den Blauten Tod getötet...")
d.notice("Nun erscheinen 3 Schmiede...")
d.notice("In 2min wirst du herraus telepotiert!")
d.check_eliminated()
--d.spawn_mob(20366, 690, 158);
d.spawn_mob(20074,600,168,0,0,1);
d.spawn_mob(20075,605,178,0,0,1);
d.spawn_mob(20076,610,188,0,0,1);
d.setqf("can_refine", 3)
timer("lolbai", 120)
end
when lolbai.timer begin
d.exit_all()
end
when 2591.kill begin
d.kill_all()
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower4_2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_2_regen.txt")
d.check_eliminated()
end
when 8024.kill with pc.in_dungeon() begin
d.setf("level", 4)
-- ¦A²{¤j¶q©Çª«¤Î»s³y¯u¥ÛÀY©M°²¥ÛÀY
--d.regen_file("data/dungeon/deviltower4_regen2.txt")
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8025, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8025, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update2', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
d.notice("Du hast den Metin Zerstört!");
d.notice("Du hast nun 15Min Zeit, den Richtigen");
d.notice("Metin zu zerstören!");
d.notice("Nur duch Zerstörung des richtigen kommtst du weiter!");
end
when devil_stone4_update2.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("Die falschen Metinsteine verschwinden...");
end
end
end
else
server_timer("devil_stone4_end2", 5, get_server_timer_arg())
d.notice("Du hast den Richtigen Metin zerstört!");
d.notice("Du wirst in den 5ten Stock 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_end2.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 im 5ten Stock")
d.notice("Auf dieser Ebene ist viel können gefragt!")
d.notice("Einige Monster droppen einen 'Scharfen Stein'")
d.notice("Ziehe diese Stein auf die Kisten")
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_update2', get_server_timer_arg())
-- 5¼ÓÄ~Äò¦A²{
d.set_regen_file("data/dungeon/deviltower5_2_regen.txt")
-- 5¼Ó«Ê¦L¥Û¦A²{
d.spawn_mob(20359, 421, 452)
d.spawn_mob(20359, 380, 460)
d.spawn_mob(20359, 428, 414)
d.spawn_mob(20359, 398, 392)
d.spawn_mob(20359, 359, 426)
end
end
when 2542.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
-- ±¼¤UÂê°Í
game.drop_item(50084, 1)
d.setf("count", 0)
end
end
when 20359.take with item.vnum == 30064 and pc.in_dungeon() 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/deviltower6_2_regen.txt")
d.notice("Du hast alle Kisten geöffnet!")
d.notice("Du wirst nun auf die 6te Ebene zum Geisterkönig geportet!")
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("Du hast eine Kiste geöffnet! "..d.getf("stone_count").." verbleiben noch!")
end
end
when 2592.kill begin
d.kill_all()
d.check_eliminated()
local reward_alchemist = {20200, 20200, 20200}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
--d.setqf("can_refine", 1)
end
end
end
|