Quest
► Show Spoiler
quest demon_den begin
state start begin
when 20348.chat."Vrei sã pãºeºti în Turn?" begin
local min_level = 55
local time = get_time()
local cooldown = pc.getqf("demonden_cooldown")
local current_cd = (cooldown-time)/60
local get_minutes = math.floor(current_cd)
local get_seconds = math.floor(math.mod(current_cd, 1)*60)
local sayminutes, actual_cd
if current_cd == 1 then
sayminutes = "minut"
actual_cd = get_minutes..":"..get_seconds
elseif current_cd < 1 then
sayminutes = ""
actual_cd = "--:--"
else
sayminutes = "minute"
actual_cd = get_minutes..":"..get_seconds
end
local entry_coord = { ["index"] = 66, ["x"] = 2048, ["y"] = 6656 };
local start_coord = { ["index"] = 66, ["x"] = 2048+134, ["y"] = 6656+147 };
say_title(mob_name(npc.get_race())..":[ENTER]")
if pc.get_level() >= min_level and time >= cooldown then
say("Acest turn este plin cu demoni. Doar cei mai puternici")
say("pot ajunge la ultimul etaj.")
say("Se spune, cã toþi care au intrat în turn,")
say("nu au mai ieºit în viaþa.")
say_size(350,345)
say("Turnul Demonilor a fost rescris, acum dispune de 4 etaje:")
say_reward("- Etajul I: Gãseºte piatra corectã.")
say_reward("- Etajul II: Gãseºte cheia pentru cele 3 Turnuri.")
say_reward("- Etajul III: Încarcã tableta pe care ai gãsit-o la Demon.")
say_reward("- Etajul IV: Omoarã Moartea Albastra.")
say("")
say_title_center_red("ATENÞIE: Temniþa are cooldown 30 de minute.")
say("Vrei sã intrii în Turnul Demonilor?")
say("") if(select("Da", "Nu") == 1) then
pc.remove_item(50184, pc.count_item(50184))
--pc.warp(entry_coord["x"]*100, entry_coord["y"]*100)
d.new_jump(entry_coord["index"], entry_coord["x"]*100, entry_coord["y"]*100)
d.set_regen_file(get_locale_base_path().."/quest/dungeon/demonden/regen_floor1.txt");
d.setf("demonden_floor", 1)
d.notice("Turnul Demonilor: Sparge Metinul Umbrei pentru al gãsit pe cel corect.")
--server_timer("demonden_1floor", 5, d.get_map_index())
end
elseif time < cooldown then
say_color("semi light green", "Imi pare rau, trebuie sa mai astepti: "..actual_cd.." "..sayminutes)
say("[ENTER][ENTER]")
else
say(string.format("Nivelul minim pentru a intra în acest turn este %d.", min_level))
end
end
when kill with npc.get_race() == 8009 and DemonTowerzone.isInDungeon() begin
local pos = { {130, 689}, {159, 699}, {195, 691}, {206, 653}, {194, 621} };
local rng = number(1,5)
if rng == 1 then
d.spawn_mob(8015, pos[1][1], pos[1][2])
d.spawn_mob(8015, pos[2][1], pos[2][2])
d.spawn_mob(8015, pos[3][1], pos[3][2])
d.spawn_mob(8015, pos[4][1], pos[4][2])
local vid = d.spawn_mob(8015, pos[5][1], pos[5][2])
d.set_unique("real_metin", vid)
elseif rng == 2 then
d.spawn_mob(8015, pos[1][1], pos[1][2])
d.spawn_mob(8015, pos[2][1], pos[2][2])
d.spawn_mob(8015, pos[3][1], pos[3][2])
d.spawn_mob(8015, pos[5][1], pos[5][2])
local vid = d.spawn_mob(8015, pos[4][1], pos[4][2])
d.set_unique("real_metin", vid)
elseif rng == 3 then
d.spawn_mob(8015, pos[1][1], pos[1][2])
d.spawn_mob(8015, pos[2][1], pos[2][2])
d.spawn_mob(8015, pos[4][1], pos[4][2])
d.spawn_mob(8015, pos[5][1], pos[5][2])
local vid = d.spawn_mob(8015, pos[3][1], pos[3][2])
d.set_unique("real_metin", vid)
elseif rng == 4 then
d.spawn_mob(8015, pos[1][1], pos[1][2])
d.spawn_mob(8015, pos[3][1], pos[3][2])
d.spawn_mob(8015, pos[4][1], pos[4][2])
d.spawn_mob(8015, pos[5][1], pos[5][2])
local vid = d.spawn_mob(8015, pos[2][1], pos[2][2])
d.set_unique("real_metin", vid)
elseif rng == 5 then
d.spawn_mob(8015, pos[2][1], pos[2][2])
d.spawn_mob(8015, pos[3][1], pos[3][2])
d.spawn_mob(8015, pos[4][1], pos[4][2])
d.spawn_mob(8015, pos[5][1], pos[5][2])
local vid = d.spawn_mob(8015, pos[1][1], pos[1][2])
d.set_unique("real_metin", vid)
end
-- for i = 1, 4 do
-- local range = number(1, table.getn(pos))
-- d.spawn_mob(8015, pos[1], pos[2])
-- table.remove(pos, range)
-- end
-- local vid = d.spawn_mob(8015, pos[5][1], pos[5][2]);
d.notice("Turnul Demonilor: Acest etaj poate fi completat doar atunci când gãseºti piatra corectã.")
--chat(vid)
end
when kill with npc.get_race() == 8015 and DemonTowerzone.isInDungeon() begin
if(npc.get_vid() == d.get_unique_vid("real_metin")) then
d.notice("Turnul Demonilor: Felicitãri! Ai gãsit piatra corectã, vei fi teleportat la urmãtorul etaj.")
--chat('')
--d.notice("[DT] Felicitari, noua provocare va incepe in cateva momente.")
--d.notice("[DT] Pregateste-te!")
DemonTowerzone.ClearDungeon()
timer("demonden_2floor", 5)
else
d.notice("Turnul Demonilor: Aceastã piatrã nu este cea pe care o caut eu.")
--chat('')
end
end
when demonden_2floor.timer begin
local next_coord = { ["index"] = 66, ["x"] = 2048+369, ["y"] = 6656+401 };
local pos = { {416, 448}, {395, 457}, {426, 427} };
d.regen_file(get_locale_base_path().."/quest/dungeon/demonden/regen_floor2.txt");
for i=1, 3 do
d.spawn_mob(20073, pos[1], pos[2])
end
d.notice("Turnul Demonilor: Omoarã monºtrii pentru a obþine "..item_name(50084)..".")
d.notice("Turnul Demonilor: Aceasta te va ajuta sã deschizi "..mob_name(20073)..".")
d.setf("demonden_floor", d.getf("demonden_floor") + 1)
d.setf("demonden_2floor_key", 3)
d.setf("demonden_2floor_key_drop", 1)
d.jump_all(next_coord["x"], next_coord["y"])
end
when kill with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 2 begin
local required_kills = 25
local current_kills = d.getf("2floor_kills") + 1
d.setf("2floor_kills", current_kills)
if d.getf("demonden_2floor_key_drop") == 1 then
d.notice("Turnul Demonilor: Monºtrii necesari pânã la urmãtoarea cheie: "..current_kills.."/"..required_kills)
end
if current_kills == required_kills then
if d.getf("demonden_2floor_key_drop") == 1 then
game.drop_item_with_ownership(50084, 1)
d.setf("demonden_2floor_key_drop", 0)
d.setf("2floor_kills", 0)
chat('')
d.notice("Turnul Demonilor: Ai primit cheia, te rog foloseºte-o pentru a deschide "..mob_name(20073)..".")
--chat('')
--d.notice("demonden_2floor_key_drop "..d.getf("demonden_2floor_key_drop"))
else
return
end
end
end
when devil_stone5.take with item.get_vnum() == 50084 and DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 2 begin
local current_seals = d.getf("demonden_2floor_key") - 1
if d.getf("demonden_2floor_key_drop") == 0 then
npc.purge()
pc.remove_item(item.get_vnum(), 1)
d.setf("demonden_2floor_key", current_seals)
d.setf("demonden_2floor_key_drop", 1)
d.setf("2floor_kills", 0)
--d.notice("[DT] Mai sunt "..current_seals.."x "..mob_name(20073).." de deschis pentru a avansa la urmatorul etaj.")
if current_seals == 0 then
d.setf("demonden_2floor_key_drop", 3)
timer("demonden_2floor_boss_phase", 5)
DemonTowerzone.ClearDungeon();
d.notice("Turnul Demonilor: Ai înfuriat "..mob_name(1091)..". Pregãteºte-te sã mori!")
else
d.notice("Turnul Demonilor: Au mai rãmas "..current_seals.." "..mob_name(20073).." de deschis pentru a avansa la urmãtorul etaj.")
end
end
end
when demonden_2floor_boss_phase.timer begin
local pos = { 385, 404 };
d.notice("Turnul Demonilor: "..mob_name(1091)..": Cine îndrãzneºte sã pãºeascã în temniþa mea? Vei plãti pentru asta, muritorule!")
d.spawn_mob(1091, pos[1], pos[2])
end
when 1091.kill with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 2 begin
local loot_table = { 50232, 71084, 50307,25040,50134,39196 }
local loot_table_qty = { 1, 50, 1, 5, 5, 5 }
local loot_table_chance = { 100, 50, 70, 50, 50, 60 }
local loot_table_rng = number(1,100)
local boss_lootable = pc.getqf("demonden_1boss_loot")
d.notice("Turnul Demonilor: Felicitãri aventurierule! Ai învins "..mob_name(1091).." cu succes.")
d.notice("Turnul Demonilor: În scurt timp vei fii teleportat la urmãtorul etaj.")
if boss_lootable == 0 then
for i=1, 3 do
if loot_table_rng < loot_table_chance+1 then
game.drop_item_with_ownership(loot_table, loot_table_qty)
end
end
pc.setqf("demonden_1boss_loot", 1)
else
d.notice("Turnul Demonilor: !~")
d.notice("Turnul Demonilor: Deja ai obtinut recompensa pentru al doilea etaj.")
end
pc.give_item2(50184, 1)
timer("demonden_3floor", 15)
end
when demonden_3floor.timer begin
local next_coord = { ["index"] = 66, ["x"] = 2048+590, ["y"] = 6656+403 };
d.setf("demonden_floor", d.getf("demonden_floor")+1)
d.setf("demonden_3floor_tablet_collected", 0)
d.regen_file(get_locale_base_path().."/quest/dungeon/demonden/regen_floor3.txt");
d.notice("Turnul Demonilor: Încarcã tableta pe care ai gãsit-o în tolba Regelui Demon cu esenþa adepþilor Moartei Albastre.")
d.jump_all(next_coord["x"], next_coord["y"])
end
when kill with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 3 begin
local required_kills = 50
local current_kills = d.getf("3floor_kills") + 1
d.setf("3floor_kills", current_kills)
if d.getf("demonden_3floor_tablet_collected") == 0 then
d.notice("Turnul Demonilor: Esenþa adepþilor colectatã: "..current_kills.."/"..required_kills)
end
if current_kills >= required_kills and d.getf("demonden_3floor_tablet_collected") == 0 then
d.notice("Turnul Demonilor: Tableta a fost încãrcatã cu succes.")
d.notice("Deschide inventarul ºi foloseste "..item_name(50185).."pentru a putea avansa la urmãtorul etaj.")
--d.notice("Turnul Demonilor: Deschide inventarul ºi foloseste "..item_name(50185)..".")
d.setf("demonden_3floor_tablet_collected", 1)
pc.remove_item(50184, 1)
pc.give_item2(50185, 1)
end
end
when 50185.use with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 3 begin
d.notice("Turnul Demonilor: Ai reuºit sã colectezi cantitatea necesarã pentru a încãrca tableta Regelui Demon.")
d.notice("Turnul Demonilor: Vei avansa la ultimul etaj în câteva momente.")
item.remove()
timer("demonden_4floor", 5)
end
when demonden_4floor.timer begin
local next_coord = { ["index"] = 66, ["x"] = 2048+590, ["y"] = 6656+403 };
local pos = { {640, 461}, {641, 453}, {630, 459}, {627, 468}, {635, 452} };
DemonTowerzone.ClearDungeon();
d.setf("demonden_floor", d.getf("demonden_floor")+1)
d.notice("Turnul Demonilor: Omoarã Moartea Albastrã ºi adepþii acestuia pentru a termina temniþa.")
--d.notice("[DT] Iti doresc mult succes in batalia ta contra acestui titan!")
d.spawn_mob(1095, pos[1][1], pos[1][2])
d.spawn_mob(1065, pos[2][1], pos[2][2])
d.spawn_mob(1066, pos[3][1], pos[3][2])
d.spawn_mob(1067, pos[4][1], pos[4][2])
d.spawn_mob(1068, pos[5][1], pos[5][2])
d.jump_all(next_coord["x"], next_coord["y"])
end
when 1095.kill with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 4 begin
--local pos = { {650, 419}, {647, 414} };
--local loot_table = { 54707, 80000, 86035, 50307, 30439, 39196 };
--local loot_table_qty = { 1, 1, 1, 1, 1, 5 };
--local loot_table_chance = { 100, 100, 70, 70, 70, 70 };
--local loot_table_rng = number(1,100)
--local blacksmith = { 20074, 20075, 20076 };
--local blacksmith_rng = number(1,3)
--local spawn_rng = number(1, 100)
local time = get_time()
local cooldown = 60*30 -- cooldown: 30 minutes
--for i=1, 6 do
-- if loot_table_rng < loot_table_chance+1 then
-- game.drop_item_with_ownership(loot_table, loot_table_qty)
-- end
--end
clear_server_timer("DemonTowerzone_time_out", get_server_timer_arg());
server_timer("DemonTowerzone_time_out", 60, d.get_map_index());
d.notice("Turnul Demonilor: Felicitãri aventurierule, ai reuºit sã dobori Moartea Albastrã iar pentru asta vei fi recompensat pe mãsurã!")
d.notice("Turnul Demonilor: În 60 de secunde vei fi teleportat la baza Turnului!")
pc.setqf("demonden_cooldown", time+cooldown)
pc.setqf("demonden_1boss_loot", 0)
--notice_all("[DT] "..pc.get_name().." a doborat Moartea albastra cu succes.")
--if spawn_rng <= 25 then
--d.spawn_mob(blacksmith[blacksmith_rng], pos[1][1], pos[1][2])
--d.notice("[DT] Ooh, wow! "..mob_name(blacksmith[blacksmith_rng]).." a apãrut.")
--end
--d.spawn_mob(20090, pos[2][1], pos[2][2])
end
when DemonTowerzone_time_out.server_timer begin
if (d.select(get_server_timer_arg())) then
--d.notice("Turnul Demonilor: Timpul a expirat, vei fi teleportat la baza Turnului.")
d.exit_all();
end
end
when 39198.use begin
local time = get_time()
local cooldown = pc.getqf("demonden_cooldown")
local current_cd = (cooldown-time)/60
local get_minutes = math.floor(current_cd)
local get_seconds = math.floor(math.mod(current_cd, 1)*60)
local sayminutes, actual_cd
if current_cd == 1 then
sayminutes = "minut"
actual_cd = get_minutes..":"..get_seconds
elseif current_cd < 1 then
sayminutes = ""
actual_cd = "--:--"
else
sayminutes = "minute"
actual_cd = get_minutes..":"..get_seconds
end
if time >= cooldown then
notice("Turnul Demonilor: Nu ai cooldown pentru turnul demonilor.")
else
say_title(item_name(item.get_vnum())..":[ENTER]")
say_color("semi light green", "Esti sigur ca vrei sa resetezi cooldownul?[ENTER]Cooldown: "..actual_cd.." "..sayminutes.."[ENTER][ENTER][ENTER][ENTER][ENTER][ENTER]")
local reset_options = select("Da, sunt sigur", "Nu, m-am razgandit")
if reset_options == 1 then
setskin(NOWINDOW)
notice("Turnul Demonilor: Ai resetat cooldownul cu succes.")
pc.setqf("demonden_cooldown", 0)
pc.remove_item(item.get_vnum(), 1)
elseif reset_options == 2 then
return
end
end
end
end
end
state start begin
when 20348.chat."Vrei sã pãºeºti în Turn?" begin
local min_level = 55
local time = get_time()
local cooldown = pc.getqf("demonden_cooldown")
local current_cd = (cooldown-time)/60
local get_minutes = math.floor(current_cd)
local get_seconds = math.floor(math.mod(current_cd, 1)*60)
local sayminutes, actual_cd
if current_cd == 1 then
sayminutes = "minut"
actual_cd = get_minutes..":"..get_seconds
elseif current_cd < 1 then
sayminutes = ""
actual_cd = "--:--"
else
sayminutes = "minute"
actual_cd = get_minutes..":"..get_seconds
end
local entry_coord = { ["index"] = 66, ["x"] = 2048, ["y"] = 6656 };
local start_coord = { ["index"] = 66, ["x"] = 2048+134, ["y"] = 6656+147 };
say_title(mob_name(npc.get_race())..":[ENTER]")
if pc.get_level() >= min_level and time >= cooldown then
say("Acest turn este plin cu demoni. Doar cei mai puternici")
say("pot ajunge la ultimul etaj.")
say("Se spune, cã toþi care au intrat în turn,")
say("nu au mai ieºit în viaþa.")
say_size(350,345)
say("Turnul Demonilor a fost rescris, acum dispune de 4 etaje:")
say_reward("- Etajul I: Gãseºte piatra corectã.")
say_reward("- Etajul II: Gãseºte cheia pentru cele 3 Turnuri.")
say_reward("- Etajul III: Încarcã tableta pe care ai gãsit-o la Demon.")
say_reward("- Etajul IV: Omoarã Moartea Albastra.")
say("")
say_title_center_red("ATENÞIE: Temniþa are cooldown 30 de minute.")
say("Vrei sã intrii în Turnul Demonilor?")
say("") if(select("Da", "Nu") == 1) then
pc.remove_item(50184, pc.count_item(50184))
--pc.warp(entry_coord["x"]*100, entry_coord["y"]*100)
d.new_jump(entry_coord["index"], entry_coord["x"]*100, entry_coord["y"]*100)
d.set_regen_file(get_locale_base_path().."/quest/dungeon/demonden/regen_floor1.txt");
d.setf("demonden_floor", 1)
d.notice("Turnul Demonilor: Sparge Metinul Umbrei pentru al gãsit pe cel corect.")
--server_timer("demonden_1floor", 5, d.get_map_index())
end
elseif time < cooldown then
say_color("semi light green", "Imi pare rau, trebuie sa mai astepti: "..actual_cd.." "..sayminutes)
say("[ENTER][ENTER]")
else
say(string.format("Nivelul minim pentru a intra în acest turn este %d.", min_level))
end
end
when kill with npc.get_race() == 8009 and DemonTowerzone.isInDungeon() begin
local pos = { {130, 689}, {159, 699}, {195, 691}, {206, 653}, {194, 621} };
local rng = number(1,5)
if rng == 1 then
d.spawn_mob(8015, pos[1][1], pos[1][2])
d.spawn_mob(8015, pos[2][1], pos[2][2])
d.spawn_mob(8015, pos[3][1], pos[3][2])
d.spawn_mob(8015, pos[4][1], pos[4][2])
local vid = d.spawn_mob(8015, pos[5][1], pos[5][2])
d.set_unique("real_metin", vid)
elseif rng == 2 then
d.spawn_mob(8015, pos[1][1], pos[1][2])
d.spawn_mob(8015, pos[2][1], pos[2][2])
d.spawn_mob(8015, pos[3][1], pos[3][2])
d.spawn_mob(8015, pos[5][1], pos[5][2])
local vid = d.spawn_mob(8015, pos[4][1], pos[4][2])
d.set_unique("real_metin", vid)
elseif rng == 3 then
d.spawn_mob(8015, pos[1][1], pos[1][2])
d.spawn_mob(8015, pos[2][1], pos[2][2])
d.spawn_mob(8015, pos[4][1], pos[4][2])
d.spawn_mob(8015, pos[5][1], pos[5][2])
local vid = d.spawn_mob(8015, pos[3][1], pos[3][2])
d.set_unique("real_metin", vid)
elseif rng == 4 then
d.spawn_mob(8015, pos[1][1], pos[1][2])
d.spawn_mob(8015, pos[3][1], pos[3][2])
d.spawn_mob(8015, pos[4][1], pos[4][2])
d.spawn_mob(8015, pos[5][1], pos[5][2])
local vid = d.spawn_mob(8015, pos[2][1], pos[2][2])
d.set_unique("real_metin", vid)
elseif rng == 5 then
d.spawn_mob(8015, pos[2][1], pos[2][2])
d.spawn_mob(8015, pos[3][1], pos[3][2])
d.spawn_mob(8015, pos[4][1], pos[4][2])
d.spawn_mob(8015, pos[5][1], pos[5][2])
local vid = d.spawn_mob(8015, pos[1][1], pos[1][2])
d.set_unique("real_metin", vid)
end
-- for i = 1, 4 do
-- local range = number(1, table.getn(pos))
-- d.spawn_mob(8015, pos[1], pos[2])
-- table.remove(pos, range)
-- end
-- local vid = d.spawn_mob(8015, pos[5][1], pos[5][2]);
d.notice("Turnul Demonilor: Acest etaj poate fi completat doar atunci când gãseºti piatra corectã.")
--chat(vid)
end
when kill with npc.get_race() == 8015 and DemonTowerzone.isInDungeon() begin
if(npc.get_vid() == d.get_unique_vid("real_metin")) then
d.notice("Turnul Demonilor: Felicitãri! Ai gãsit piatra corectã, vei fi teleportat la urmãtorul etaj.")
--chat('')
--d.notice("[DT] Felicitari, noua provocare va incepe in cateva momente.")
--d.notice("[DT] Pregateste-te!")
DemonTowerzone.ClearDungeon()
timer("demonden_2floor", 5)
else
d.notice("Turnul Demonilor: Aceastã piatrã nu este cea pe care o caut eu.")
--chat('')
end
end
when demonden_2floor.timer begin
local next_coord = { ["index"] = 66, ["x"] = 2048+369, ["y"] = 6656+401 };
local pos = { {416, 448}, {395, 457}, {426, 427} };
d.regen_file(get_locale_base_path().."/quest/dungeon/demonden/regen_floor2.txt");
for i=1, 3 do
d.spawn_mob(20073, pos[1], pos[2])
end
d.notice("Turnul Demonilor: Omoarã monºtrii pentru a obþine "..item_name(50084)..".")
d.notice("Turnul Demonilor: Aceasta te va ajuta sã deschizi "..mob_name(20073)..".")
d.setf("demonden_floor", d.getf("demonden_floor") + 1)
d.setf("demonden_2floor_key", 3)
d.setf("demonden_2floor_key_drop", 1)
d.jump_all(next_coord["x"], next_coord["y"])
end
when kill with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 2 begin
local required_kills = 25
local current_kills = d.getf("2floor_kills") + 1
d.setf("2floor_kills", current_kills)
if d.getf("demonden_2floor_key_drop") == 1 then
d.notice("Turnul Demonilor: Monºtrii necesari pânã la urmãtoarea cheie: "..current_kills.."/"..required_kills)
end
if current_kills == required_kills then
if d.getf("demonden_2floor_key_drop") == 1 then
game.drop_item_with_ownership(50084, 1)
d.setf("demonden_2floor_key_drop", 0)
d.setf("2floor_kills", 0)
chat('')
d.notice("Turnul Demonilor: Ai primit cheia, te rog foloseºte-o pentru a deschide "..mob_name(20073)..".")
--chat('')
--d.notice("demonden_2floor_key_drop "..d.getf("demonden_2floor_key_drop"))
else
return
end
end
end
when devil_stone5.take with item.get_vnum() == 50084 and DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 2 begin
local current_seals = d.getf("demonden_2floor_key") - 1
if d.getf("demonden_2floor_key_drop") == 0 then
npc.purge()
pc.remove_item(item.get_vnum(), 1)
d.setf("demonden_2floor_key", current_seals)
d.setf("demonden_2floor_key_drop", 1)
d.setf("2floor_kills", 0)
--d.notice("[DT] Mai sunt "..current_seals.."x "..mob_name(20073).." de deschis pentru a avansa la urmatorul etaj.")
if current_seals == 0 then
d.setf("demonden_2floor_key_drop", 3)
timer("demonden_2floor_boss_phase", 5)
DemonTowerzone.ClearDungeon();
d.notice("Turnul Demonilor: Ai înfuriat "..mob_name(1091)..". Pregãteºte-te sã mori!")
else
d.notice("Turnul Demonilor: Au mai rãmas "..current_seals.." "..mob_name(20073).." de deschis pentru a avansa la urmãtorul etaj.")
end
end
end
when demonden_2floor_boss_phase.timer begin
local pos = { 385, 404 };
d.notice("Turnul Demonilor: "..mob_name(1091)..": Cine îndrãzneºte sã pãºeascã în temniþa mea? Vei plãti pentru asta, muritorule!")
d.spawn_mob(1091, pos[1], pos[2])
end
when 1091.kill with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 2 begin
local loot_table = { 50232, 71084, 50307,25040,50134,39196 }
local loot_table_qty = { 1, 50, 1, 5, 5, 5 }
local loot_table_chance = { 100, 50, 70, 50, 50, 60 }
local loot_table_rng = number(1,100)
local boss_lootable = pc.getqf("demonden_1boss_loot")
d.notice("Turnul Demonilor: Felicitãri aventurierule! Ai învins "..mob_name(1091).." cu succes.")
d.notice("Turnul Demonilor: În scurt timp vei fii teleportat la urmãtorul etaj.")
if boss_lootable == 0 then
for i=1, 3 do
if loot_table_rng < loot_table_chance+1 then
game.drop_item_with_ownership(loot_table, loot_table_qty)
end
end
pc.setqf("demonden_1boss_loot", 1)
else
d.notice("Turnul Demonilor: !~")
d.notice("Turnul Demonilor: Deja ai obtinut recompensa pentru al doilea etaj.")
end
pc.give_item2(50184, 1)
timer("demonden_3floor", 15)
end
when demonden_3floor.timer begin
local next_coord = { ["index"] = 66, ["x"] = 2048+590, ["y"] = 6656+403 };
d.setf("demonden_floor", d.getf("demonden_floor")+1)
d.setf("demonden_3floor_tablet_collected", 0)
d.regen_file(get_locale_base_path().."/quest/dungeon/demonden/regen_floor3.txt");
d.notice("Turnul Demonilor: Încarcã tableta pe care ai gãsit-o în tolba Regelui Demon cu esenþa adepþilor Moartei Albastre.")
d.jump_all(next_coord["x"], next_coord["y"])
end
when kill with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 3 begin
local required_kills = 50
local current_kills = d.getf("3floor_kills") + 1
d.setf("3floor_kills", current_kills)
if d.getf("demonden_3floor_tablet_collected") == 0 then
d.notice("Turnul Demonilor: Esenþa adepþilor colectatã: "..current_kills.."/"..required_kills)
end
if current_kills >= required_kills and d.getf("demonden_3floor_tablet_collected") == 0 then
d.notice("Turnul Demonilor: Tableta a fost încãrcatã cu succes.")
d.notice("Deschide inventarul ºi foloseste "..item_name(50185).."pentru a putea avansa la urmãtorul etaj.")
--d.notice("Turnul Demonilor: Deschide inventarul ºi foloseste "..item_name(50185)..".")
d.setf("demonden_3floor_tablet_collected", 1)
pc.remove_item(50184, 1)
pc.give_item2(50185, 1)
end
end
when 50185.use with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 3 begin
d.notice("Turnul Demonilor: Ai reuºit sã colectezi cantitatea necesarã pentru a încãrca tableta Regelui Demon.")
d.notice("Turnul Demonilor: Vei avansa la ultimul etaj în câteva momente.")
item.remove()
timer("demonden_4floor", 5)
end
when demonden_4floor.timer begin
local next_coord = { ["index"] = 66, ["x"] = 2048+590, ["y"] = 6656+403 };
local pos = { {640, 461}, {641, 453}, {630, 459}, {627, 468}, {635, 452} };
DemonTowerzone.ClearDungeon();
d.setf("demonden_floor", d.getf("demonden_floor")+1)
d.notice("Turnul Demonilor: Omoarã Moartea Albastrã ºi adepþii acestuia pentru a termina temniþa.")
--d.notice("[DT] Iti doresc mult succes in batalia ta contra acestui titan!")
d.spawn_mob(1095, pos[1][1], pos[1][2])
d.spawn_mob(1065, pos[2][1], pos[2][2])
d.spawn_mob(1066, pos[3][1], pos[3][2])
d.spawn_mob(1067, pos[4][1], pos[4][2])
d.spawn_mob(1068, pos[5][1], pos[5][2])
d.jump_all(next_coord["x"], next_coord["y"])
end
when 1095.kill with DemonTowerzone.isInDungeon() and d.getf("demonden_floor") == 4 begin
--local pos = { {650, 419}, {647, 414} };
--local loot_table = { 54707, 80000, 86035, 50307, 30439, 39196 };
--local loot_table_qty = { 1, 1, 1, 1, 1, 5 };
--local loot_table_chance = { 100, 100, 70, 70, 70, 70 };
--local loot_table_rng = number(1,100)
--local blacksmith = { 20074, 20075, 20076 };
--local blacksmith_rng = number(1,3)
--local spawn_rng = number(1, 100)
local time = get_time()
local cooldown = 60*30 -- cooldown: 30 minutes
--for i=1, 6 do
-- if loot_table_rng < loot_table_chance+1 then
-- game.drop_item_with_ownership(loot_table, loot_table_qty)
-- end
--end
clear_server_timer("DemonTowerzone_time_out", get_server_timer_arg());
server_timer("DemonTowerzone_time_out", 60, d.get_map_index());
d.notice("Turnul Demonilor: Felicitãri aventurierule, ai reuºit sã dobori Moartea Albastrã iar pentru asta vei fi recompensat pe mãsurã!")
d.notice("Turnul Demonilor: În 60 de secunde vei fi teleportat la baza Turnului!")
pc.setqf("demonden_cooldown", time+cooldown)
pc.setqf("demonden_1boss_loot", 0)
--notice_all("[DT] "..pc.get_name().." a doborat Moartea albastra cu succes.")
--if spawn_rng <= 25 then
--d.spawn_mob(blacksmith[blacksmith_rng], pos[1][1], pos[1][2])
--d.notice("[DT] Ooh, wow! "..mob_name(blacksmith[blacksmith_rng]).." a apãrut.")
--end
--d.spawn_mob(20090, pos[2][1], pos[2][2])
end
when DemonTowerzone_time_out.server_timer begin
if (d.select(get_server_timer_arg())) then
--d.notice("Turnul Demonilor: Timpul a expirat, vei fi teleportat la baza Turnului.")
d.exit_all();
end
end
when 39198.use begin
local time = get_time()
local cooldown = pc.getqf("demonden_cooldown")
local current_cd = (cooldown-time)/60
local get_minutes = math.floor(current_cd)
local get_seconds = math.floor(math.mod(current_cd, 1)*60)
local sayminutes, actual_cd
if current_cd == 1 then
sayminutes = "minut"
actual_cd = get_minutes..":"..get_seconds
elseif current_cd < 1 then
sayminutes = ""
actual_cd = "--:--"
else
sayminutes = "minute"
actual_cd = get_minutes..":"..get_seconds
end
if time >= cooldown then
notice("Turnul Demonilor: Nu ai cooldown pentru turnul demonilor.")
else
say_title(item_name(item.get_vnum())..":[ENTER]")
say_color("semi light green", "Esti sigur ca vrei sa resetezi cooldownul?[ENTER]Cooldown: "..actual_cd.." "..sayminutes.."[ENTER][ENTER][ENTER][ENTER][ENTER][ENTER]")
local reset_options = select("Da, sunt sigur", "Nu, m-am razgandit")
if reset_options == 1 then
setskin(NOWINDOW)
notice("Turnul Demonilor: Ai resetat cooldownul cu succes.")
pc.setqf("demonden_cooldown", 0)
pc.remove_item(item.get_vnum(), 1)
elseif reset_options == 2 then
return
end
end
end
end
end
Regen floor1
► Show Spoiler
regen
g 172 653 10 10 0 0 180s 100 1 1007
g 209 661 10 10 0 0 180s 100 1 1008
g 169 684 10 10 0 0 180s 100 1 1005
g 207 690 10 10 0 0 180s 100 1 1008
g 184 598 10 10 0 0 180s 100 1 1003
g 140 599 10 10 0 0 180s 100 1 1002
g 130 607 10 10 0 0 180s 100 1 1001
g 126 608 10 10 0 0 180s 100 1 1001
g 205 610 10 10 0 0 180s 100 1 1001
g 198 611 10 10 0 0 180s 100 1 1002
g 205 613 10 10 0 0 180s 100 1 1003
g 186 615 10 10 0 0 180s 100 1 1004
g 137 621 10 10 0 0 180s 100 1 1004
g 132 627 10 10 0 0 180s 100 1 1001
g 119 652 10 10 0 0 180s 100 1 1002
g 107 664 10 10 0 0 180s 100 1 1001
g 110 667 10 10 0 0 180s 100 1 1003
g 111 667 10 10 0 0 180s 100 1 1002
g 125 673 10 10 0 0 180s 100 1 1003
g 131 700 10 10 0 0 180s 100 1 1001
g 137 703 10 10 0 0 180s 100 1 1003
g 184 623 10 10 0 0 180s 100 1 1004
g 194 627 10 10 0 0 180s 100 1 1004
g 173 631 10 10 0 0 180s 100 1 1004
g 159 634 10 10 0 0 180s 100 1 1005
g 159 636 10 10 0 0 180s 100 1 1005
g 152 637 10 10 0 0 180s 100 1 1005
g 164 639 10 10 0 0 180s 100 1 1004
g 171 641 10 10 0 0 180s 100 1 1005
g 149 645 10 10 0 0 180s 100 1 1004
g 203 648 10 10 0 0 180s 100 1 1005
g 147 649 10 10 0 0 180s 100 1 1003
g 132 655 10 10 0 0 180s 100 1 1003
g 152 655 10 10 0 0 180s 100 1 1004
g 141 659 10 10 0 0 180s 100 1 1005
g 154 665 10 10 0 0 180s 100 1 1005
g 130 667 10 10 0 0 180s 100 1 1006
g 150 668 10 10 0 0 180s 100 1 1006
g 150 669 10 10 0 0 180s 100 1 1006
g 148 671 10 10 0 0 180s 100 1 1005
g 131 674 10 10 0 0 180s 100 1 1004
g 149 674 10 10 0 0 180s 100 1 1004
g 149 677 10 10 0 0 180s 100 1 1006
g 149 679 10 10 0 0 180s 100 1 1006
g 153 680 10 10 0 0 180s 100 1 1003
g 156 700 10 10 0 0 180s 100 1 1004
g 160 702 10 10 0 0 180s 100 1 1006
g 169 711 10 10 0 0 180s 100 1 1005
m 165 699 0 0 0 0 0s 100 1 8009
//m 130 689 0 0 0 0 0s 100 1 8015
//m 159 699 0 0 0 0 0s 100 1 8015
//m 195 691 0 0 0 0 0s 100 1 8015
//m 206 653 0 0 0 0 0s 100 1 8015
//m 194 621 0 0 0 0 0s 100 1 8015
//m 146 692 0 0 0 0 0s 100 1 1071
//m 142 694 0 0 0 0 0s 100 1 1071
//m 149 695 0 0 0 0 0s 100 1 1071
//m 197 641 0 0 0 0 0s 100 1 1071
//m 202 640 0 0 0 0 0s 100 1 1071
//m 200 635 0 0 0 0 0s 100 1 1071
//m 193 682 0 0 0 0 0s 100 1 1071
//m 195 688 0 0 0 0 0s 100 1 1071
//m 199 682 0 0 0 0 0s 100 1 1071
g 172 653 10 10 0 0 180s 100 1 1007
g 209 661 10 10 0 0 180s 100 1 1008
g 169 684 10 10 0 0 180s 100 1 1005
g 207 690 10 10 0 0 180s 100 1 1008
g 184 598 10 10 0 0 180s 100 1 1003
g 140 599 10 10 0 0 180s 100 1 1002
g 130 607 10 10 0 0 180s 100 1 1001
g 126 608 10 10 0 0 180s 100 1 1001
g 205 610 10 10 0 0 180s 100 1 1001
g 198 611 10 10 0 0 180s 100 1 1002
g 205 613 10 10 0 0 180s 100 1 1003
g 186 615 10 10 0 0 180s 100 1 1004
g 137 621 10 10 0 0 180s 100 1 1004
g 132 627 10 10 0 0 180s 100 1 1001
g 119 652 10 10 0 0 180s 100 1 1002
g 107 664 10 10 0 0 180s 100 1 1001
g 110 667 10 10 0 0 180s 100 1 1003
g 111 667 10 10 0 0 180s 100 1 1002
g 125 673 10 10 0 0 180s 100 1 1003
g 131 700 10 10 0 0 180s 100 1 1001
g 137 703 10 10 0 0 180s 100 1 1003
g 184 623 10 10 0 0 180s 100 1 1004
g 194 627 10 10 0 0 180s 100 1 1004
g 173 631 10 10 0 0 180s 100 1 1004
g 159 634 10 10 0 0 180s 100 1 1005
g 159 636 10 10 0 0 180s 100 1 1005
g 152 637 10 10 0 0 180s 100 1 1005
g 164 639 10 10 0 0 180s 100 1 1004
g 171 641 10 10 0 0 180s 100 1 1005
g 149 645 10 10 0 0 180s 100 1 1004
g 203 648 10 10 0 0 180s 100 1 1005
g 147 649 10 10 0 0 180s 100 1 1003
g 132 655 10 10 0 0 180s 100 1 1003
g 152 655 10 10 0 0 180s 100 1 1004
g 141 659 10 10 0 0 180s 100 1 1005
g 154 665 10 10 0 0 180s 100 1 1005
g 130 667 10 10 0 0 180s 100 1 1006
g 150 668 10 10 0 0 180s 100 1 1006
g 150 669 10 10 0 0 180s 100 1 1006
g 148 671 10 10 0 0 180s 100 1 1005
g 131 674 10 10 0 0 180s 100 1 1004
g 149 674 10 10 0 0 180s 100 1 1004
g 149 677 10 10 0 0 180s 100 1 1006
g 149 679 10 10 0 0 180s 100 1 1006
g 153 680 10 10 0 0 180s 100 1 1003
g 156 700 10 10 0 0 180s 100 1 1004
g 160 702 10 10 0 0 180s 100 1 1006
g 169 711 10 10 0 0 180s 100 1 1005
m 165 699 0 0 0 0 0s 100 1 8009
//m 130 689 0 0 0 0 0s 100 1 8015
//m 159 699 0 0 0 0 0s 100 1 8015
//m 195 691 0 0 0 0 0s 100 1 8015
//m 206 653 0 0 0 0 0s 100 1 8015
//m 194 621 0 0 0 0 0s 100 1 8015
//m 146 692 0 0 0 0 0s 100 1 1071
//m 142 694 0 0 0 0 0s 100 1 1071
//m 149 695 0 0 0 0 0s 100 1 1071
//m 197 641 0 0 0 0 0s 100 1 1071
//m 202 640 0 0 0 0 0s 100 1 1071
//m 200 635 0 0 0 0 0s 100 1 1071
//m 193 682 0 0 0 0 0s 100 1 1071
//m 195 688 0 0 0 0 0s 100 1 1071
//m 199 682 0 0 0 0 0s 100 1 1071