Nu pica cheie la etaj 5 in DT ma poate ajuta cnv?
las questul mai jos.
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(590500, 110500)
end
pc.set_warp_location(65, 5905, 1105)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5905, 1105)
deviltower_zone.register_player(pc.get_vid())
end
end
when logout begin
if pc.count_item(30300) >= 1 then
pc.remove_item(30300, pc.count_item(30300))
end
if pc.count_item(30302) >= 1 then
pc.remove_item(30302, pc.count_item(30302))
end
if pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
deviltower_zone.unregister_player(pc.get_vid())
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
if pc.get_level() < 40 then
say_title("Garda a Demonilor:")
say(locale.deviltower_man_say_you_cant)
else
say_title("Garda a Demonilor:")
say(locale.deviltower_man_say)
local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
if s == 1 then
pc.warp(216500,727000)
end
end
end
when kill with npc.get_race() == 8015 begin
timer("devil_stone1_1", 8)
end
when devil_stone1_1.timer begin
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 kill with npc.get_race() == 1091 begin
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()
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;
positions = positions[j];
positions[j] = t;
end
end
return positions
end
when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 8016 begin
d.setf("level", 4)
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[2]))
end
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
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("Ai ajuns la Poarta Alegerii la etajul 4.");
d.notice("Multe pietre Metin false îti vor irita ochii si urechile.");
d.notice("Gaseste piatra Metin corecta si distruge-o. Ai 15 minute.");
d.notice("Aceasta este singura modalitate de a trece aceasta poarta.");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Minute ramase: 10")
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("Minute ramase: 5")
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()) and d.getf("level") == 4 then
d.notice("Timpul a expirat.")
d.exit_all()
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("Piatra Metin falsa a disparut...");
end
end
end
else
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Te-ai bazat pe instinct si ai reusit!");
d.notice("Ai distrus piatra Metin corecta.")
d.purge()
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
clear_server_timer('devil_stone4_update', get_server_timer_arg())
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())
d.setf("level", 5)
d.setf("stone_count", 5)
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
d.notice("Ai ajuns la Poarta Sigilata la etajul 5.")
d.notice("Câtiva demoni au Piatra Cheie, care poate fi")
d.notice("folosita pentru a deschide Sigiliile Antice.")
d.notice("Deschide cele 5 sigilii în 20 de minute")
d.notice("pentru a avansa la etajul urmator!")
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
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("Minute ramase: 15")
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("Minute ramase: 10")
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("Minute ramase: 5")
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()) and d.getf("level") == 5 then
d.notice("Timpul a expirat.")
d.exit_all()
end
end
when kill with pc.in_dungeon() and d.getf("level") == 5 and npc.get_race() == 1062 begin
local KILL_COUNT_FOR_DROP_KEY = 50
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
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.clear_regen()
d.kill_all()
d.notice("Ai deschis toate sigliile.")
d.notice("Vei avansa la etajul 6!")
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())
d.setf("level", 6)
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
d.regen_file("data/dungeon/deviltower6_regen.txt")
d.notice("Învinge toti demonii apoi omoara regele.")
else
d.notice("Sigiliul a fost rup! Au mai ramas "..d.getf("stone_count")..".")
end
end
when kill with npc.get_race() == 1092 begin
d.kill_all()
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 20074.chat."Etajele de vârf ale turnului" or 20075.chat."Etajele de vârf ale turnului" or 20076.chat."Etajele de vârf ale turnului" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
if not npc.lock() then
say("")
say("Ati gasit drumul pâna la etajul 6.")
say("Necesita multa îndemânare sa ajungi aici ...")
return
end
say_title(mob_name(npc.get_race()))
say("Vrei sa mergi catre etajul 7?")
say("Pentru a merge la urmatorul etaj trebuie")
say("sa ai minim nivel 75.")
wait()
if pc.level >=75 then
say_title(mob_name(npc.get_race()))
say("Ai suficienta experienta in")
say("lupta si te voi lasa sa mergi mai departe.")
say("Mult noroc!")
say("")
local gec = select("Du-te!","Anuleaza ","Mai raman putin")
if gec == 1 then
timer("devil_jump_7",6)
npc.unlock()
npc.purge()
return
elseif gec == 2 then
npc.unlock()
return
elseif gec == 3 then
npc.unlock()
pc.warp(590500, 110500)
end
else
say_title(mob_name(npc.get_race()))
say("Ai nevoie de mai mult antrenament")
say("pentru a te lasa sa treci mai departe.")
say("Revin-o când esti destul de puternic..")
say("")
npc.unlock()
wait()
pc.warp(590500, 110500)
return
end
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 kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 8018 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 kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 8019 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,8)
if pct == 1 then
game.drop_item(30302, 1)
d.clear_regen()
else
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
-- 8ÃþÀ¸·Î ¿öÇÁ
if d.getf( "level" ) != 7 then
pc.remove_item( "30302", 1)
return
end
say("Cu aceasta harta poti avansa la nivelul urmator!")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
--------------------------------------------
-- 8Ãþ ÁøÀÔºÎÅÍ 9Ãþ ±îÁö
--------------------------------------------
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)
pc.remove_item(30302,_count)
end
when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 1040 begin
if d.getf("level") < 9 then
local pct1 = number(1, 10)
if pct1 == 1 then
local pct2 = number(1, 4)
if pct2 == 1 then
-- ÁøÂ¥ ¿¼è µå·Ó
game.drop_item(30304, 1)
else
-- °¡Â¥ ¿¼è µå·Ó
game.drop_item(30303, 1)
end
else
return
end
end
end
when 20366.take with item.vnum == 30304 begin
-- ºÀÀÎ ÇØÃ¼ 9Ãþ ¤¡¤¡
npc.purge()
item.remove()
timer("devil_jump_9", 8)
end
---------------------------------------------
-- 9Ãþ ÁøÀÔºÎÅÍ ¿Ï·á±îÁö
---------------------------------------------
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.regen_file("data/dungeon/deviltower9_regen.txt")
end
when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 1093 begin
d.kill_all()
timer("devil_end_jump", 30)
end
when devil_end_jump.timer begin
d.exit_all()
end
function register_player(vid)
local player_count = d.getf("player_count")
player_count = player_count + 1
d.setf("player_count", tonumber(player_count))
d.setf(string.format("player%d", player_count), tonumber(vid))
end
function unregister_player(vid)
local player_count = d.getf("player_count")
local found = false
for i = 1, player_count, 1 do
if found == true then
d.setf(string.format("player%d", tonumber(i)), d.getf(string.format("player%d", i+1)))
end
p = d.getf("player"..tostring(i))
if p == vid then
i = i -1
found = true
end
end
if found == true then
d.setf("player_count", tonumber(player_count - 1))
end
end
function get_players()
local players = {}
local player_count = d.getf("player_count")
for i = 1, player_count, 1 do
players = d.getf("player"..tostring(i))
end
return players
end
function give_dc_access(pindex)
local self_checked = false
local self = pc.select(d.getf("player"..tostring(pindex)))
--pc.setqf("dcenter", 1)
pc.setf("deviltower_zone", "dcenter", 1)
pc.select(self)
end
end
end
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(590500, 110500)
end
pc.set_warp_location(65, 5905, 1105)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5905, 1105)
deviltower_zone.register_player(pc.get_vid())
end
end
when logout begin
if pc.count_item(30300) >= 1 then
pc.remove_item(30300, pc.count_item(30300))
end
if pc.count_item(30302) >= 1 then
pc.remove_item(30302, pc.count_item(30302))
end
if pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
deviltower_zone.unregister_player(pc.get_vid())
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
if pc.get_level() < 40 then
say_title("Garda a Demonilor:")
say(locale.deviltower_man_say_you_cant)
else
say_title("Garda a Demonilor:")
say(locale.deviltower_man_say)
local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
if s == 1 then
pc.warp(216500,727000)
end
end
end
when kill with npc.get_race() == 8015 begin
timer("devil_stone1_1", 8)
end
when devil_stone1_1.timer begin
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 kill with npc.get_race() == 1091 begin
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()
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;
positions = positions[j];
positions[j] = t;
end
end
return positions
end
when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 8016 begin
d.setf("level", 4)
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[2]))
end
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
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("Ai ajuns la Poarta Alegerii la etajul 4.");
d.notice("Multe pietre Metin false îti vor irita ochii si urechile.");
d.notice("Gaseste piatra Metin corecta si distruge-o. Ai 15 minute.");
d.notice("Aceasta este singura modalitate de a trece aceasta poarta.");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Minute ramase: 10")
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("Minute ramase: 5")
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()) and d.getf("level") == 4 then
d.notice("Timpul a expirat.")
d.exit_all()
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("Piatra Metin falsa a disparut...");
end
end
end
else
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Te-ai bazat pe instinct si ai reusit!");
d.notice("Ai distrus piatra Metin corecta.")
d.purge()
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
clear_server_timer('devil_stone4_update', get_server_timer_arg())
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())
d.setf("level", 5)
d.setf("stone_count", 5)
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
d.notice("Ai ajuns la Poarta Sigilata la etajul 5.")
d.notice("Câtiva demoni au Piatra Cheie, care poate fi")
d.notice("folosita pentru a deschide Sigiliile Antice.")
d.notice("Deschide cele 5 sigilii în 20 de minute")
d.notice("pentru a avansa la etajul urmator!")
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
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("Minute ramase: 15")
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("Minute ramase: 10")
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("Minute ramase: 5")
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()) and d.getf("level") == 5 then
d.notice("Timpul a expirat.")
d.exit_all()
end
end
when kill with pc.in_dungeon() and d.getf("level") == 5 and npc.get_race() == 1062 begin
local KILL_COUNT_FOR_DROP_KEY = 50
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
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.clear_regen()
d.kill_all()
d.notice("Ai deschis toate sigliile.")
d.notice("Vei avansa la etajul 6!")
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())
d.setf("level", 6)
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
d.regen_file("data/dungeon/deviltower6_regen.txt")
d.notice("Învinge toti demonii apoi omoara regele.")
else
d.notice("Sigiliul a fost rup! Au mai ramas "..d.getf("stone_count")..".")
end
end
when kill with npc.get_race() == 1092 begin
d.kill_all()
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 20074.chat."Etajele de vârf ale turnului" or 20075.chat."Etajele de vârf ale turnului" or 20076.chat."Etajele de vârf ale turnului" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
if not npc.lock() then
say("")
say("Ati gasit drumul pâna la etajul 6.")
say("Necesita multa îndemânare sa ajungi aici ...")
return
end
say_title(mob_name(npc.get_race()))
say("Vrei sa mergi catre etajul 7?")
say("Pentru a merge la urmatorul etaj trebuie")
say("sa ai minim nivel 75.")
wait()
if pc.level >=75 then
say_title(mob_name(npc.get_race()))
say("Ai suficienta experienta in")
say("lupta si te voi lasa sa mergi mai departe.")
say("Mult noroc!")
say("")
local gec = select("Du-te!","Anuleaza ","Mai raman putin")
if gec == 1 then
timer("devil_jump_7",6)
npc.unlock()
npc.purge()
return
elseif gec == 2 then
npc.unlock()
return
elseif gec == 3 then
npc.unlock()
pc.warp(590500, 110500)
end
else
say_title(mob_name(npc.get_race()))
say("Ai nevoie de mai mult antrenament")
say("pentru a te lasa sa treci mai departe.")
say("Revin-o când esti destul de puternic..")
say("")
npc.unlock()
wait()
pc.warp(590500, 110500)
return
end
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 kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 8018 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 kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 8019 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,8)
if pct == 1 then
game.drop_item(30302, 1)
d.clear_regen()
else
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
-- 8ÃþÀ¸·Î ¿öÇÁ
if d.getf( "level" ) != 7 then
pc.remove_item( "30302", 1)
return
end
say("Cu aceasta harta poti avansa la nivelul urmator!")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
--------------------------------------------
-- 8Ãþ ÁøÀÔºÎÅÍ 9Ãþ ±îÁö
--------------------------------------------
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)
pc.remove_item(30302,_count)
end
when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 1040 begin
if d.getf("level") < 9 then
local pct1 = number(1, 10)
if pct1 == 1 then
local pct2 = number(1, 4)
if pct2 == 1 then
-- ÁøÂ¥ ¿¼è µå·Ó
game.drop_item(30304, 1)
else
-- °¡Â¥ ¿¼è µå·Ó
game.drop_item(30303, 1)
end
else
return
end
end
end
when 20366.take with item.vnum == 30304 begin
-- ºÀÀÎ ÇØÃ¼ 9Ãþ ¤¡¤¡
npc.purge()
item.remove()
timer("devil_jump_9", 8)
end
---------------------------------------------
-- 9Ãþ ÁøÀÔºÎÅÍ ¿Ï·á±îÁö
---------------------------------------------
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.regen_file("data/dungeon/deviltower9_regen.txt")
end
when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.get_race() == 1093 begin
d.kill_all()
timer("devil_end_jump", 30)
end
when devil_end_jump.timer begin
d.exit_all()
end
function register_player(vid)
local player_count = d.getf("player_count")
player_count = player_count + 1
d.setf("player_count", tonumber(player_count))
d.setf(string.format("player%d", player_count), tonumber(vid))
end
function unregister_player(vid)
local player_count = d.getf("player_count")
local found = false
for i = 1, player_count, 1 do
if found == true then
d.setf(string.format("player%d", tonumber(i)), d.getf(string.format("player%d", i+1)))
end
p = d.getf("player"..tostring(i))
if p == vid then
i = i -1
found = true
end
end
if found == true then
d.setf("player_count", tonumber(player_count - 1))
end
end
function get_players()
local players = {}
local player_count = d.getf("player_count")
for i = 1, player_count, 1 do
players = d.getf("player"..tostring(i))
end
return players
end
function give_dc_access(pindex)
local self_checked = false
local self = pc.select(d.getf("player"..tostring(pindex)))
--pc.setqf("dcenter", 1)
pc.setf("deviltower_zone", "dcenter", 1)
pc.select(self)
end
end
end





