Code:
------------------------------- -- SERVERFILE BY HOPE v2 ------------------------------- quest devils_catacomb begin state start begin when 20367.chat."Intră în Catacomba Diavolului" with pc.get_level() < 75 and pc.get_map_index() != 206 begin say_title("Paznicul catacombei:") say("") say("Nu voi lasa în Catacomba Diavolului un") say("cavaler lipsit de experiență ca tine.") say("") say("Este pentru siguranța ta.") say("") say_reward("Nivel necesar: 75") say("") end when 20367.chat."Intră în Catacomba Diavolului" with pc.get_level() >= 75 and pc.get_map_index() != 206 begin say_title("Paznicul catacombei:") say("") say("Dorești să intri în Catacomba Diavolului?") say("") local s = select("Da, vreau să intru.", "Nu, vreau să plec.") if s == 1 then if pc.count_item(30319) < 1 then say_title("Paznicul catacombei:") say("") say("Nu poți intra fără ") say_item_vnum(30319) say("") return end pc.warp(314700,1210100) end end when 20367.chat."Înapoi în Templul Întunecat" with pc.get_map_index() == 206 begin say_title("Paznicul catacombei:") say("") say("Ești sigur că vrei să te dai bătut") say("și să te întorci în Templul Întunecat?") say("") local s = select("Da, sunt prea slab.", "Nu!") if s == 1 then pc.warp(591400, 99900) end end function get_devil_base() local x = pc.get_local_x() local y = pc.get_local_y() if pc.get_map_index() == 206 and x > 30 and y > 45 and x < 450 and y < 450 then return 1 end if pc.get_map_index() >= 2060000 and pc.get_map_index() < 2070000 then if x > 30 and y > 45 and x < 450 and y < 450 then return 1 elseif x > 540 and y > 39 and x < 1000 and y < 462 then return 2 elseif x > 1048 and y > 35 and x < 1455 and y < 458 then return 3 elseif x > 31 and y > 541 and x < 564 and y < 1058 then return 4 elseif x > 650 and y > 540 and x < 1050 and y < 955 then return 5 elseif x > 1175 and y > 576 and x < 1420 and y < 810 then return 6 elseif x > 46 and y > 1091 and x < 102 and y < 1164 then return 7 end end return 0 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[i] = d.getf("player"..tostring(i)) end return players end function checkbase3item(pindex) local self_checked = false local self = pc.select(d.getf("player"..tostring(pindex))) if pc.count_item(30319) < 1 and self_checked == false then warp_to_village() else pc.remove_item(30319, 1) end if pc.get_vid() == self then self_checked = true end pc.select(self) end function get_remaining_minutes() local m = 60 - (get_global_time() - d.getf("start_time"))/60 if m <= 1 then return "un minut" else return string.format("%d de minute", m) end end when login with devils_catacomb.get_devil_base() == 1 begin addimage(20, 12, "catacombs.tga") say("") say("") say("") say("") say_title("Catacomba Diavolului: Nivel 1") say("") say("Distruge creaturile pentru a primi Cheia") say("Suflet Cristalizat. Aceasta deschide poarta") say("etajului 2.") say("") say_item("Cheie suflet cristalizat", 30311, "") pc.remove_item(30311, pc.count_item(30311)) pc.remove_item(30312, pc.count_item(30312)) end when kill with devils_catacomb.get_devil_base() == 1 begin chance = math.random ( 1 , 100 ) if chance == 1 then game.drop_item(30311, 1) end end when 30101.take with item.vnum == 30311 and devils_catacomb.get_devil_base() == 1 begin if not party.is_party() then say_title("Statuia Kud:") say("") say("Trebuie să fii intr-o grupă.") say("") return end if not party.is_leader() then say_title("Statuia Kud:") say("") say("Trebuie să fi liderul unei grupe.") say("") return end if party.is_leader() then item.remove() npc.purge() say_title("Statuia Kud:") say("") say("Intrarea a fost deblocată.") say("Treci repede!") say("") wait() say_title("Statuia Kud:") say("") say("Aici începe adevărata aventură. De acum ai o") say("oră pentru a explora Catacomba Diavolului.") say("") wait() d.new_jump_all(206, 3626, 12083) d.clear_regen() d.regen_file("data/dungeon/devilscatacomb/base2_regen.txt") d.regen_file("data/dungeon/devilscatacomb/base2_npc.txt") d.setf("doors", 0) d.setf("start_time", get_global_time()) server_timer("dc_time_expired", 60*60, d.get_map_index()) server_timer("dc_time_notice", 55*60, d.get_map_index()) end end when login with pc.in_dungeon() == true and devils_catacomb.get_devil_base() != 0 begin pc.set_warp_location(65, 5914, 999) devils_catacomb.register_player(pc.get_vid()) loop_timer("base7_smashout", 10) if party.is_leader() == true then d.setf("leader", pc.get_vid()) end if devils_catacomb.get_devil_base() != 2 then return end say_title("Catacomba Diavolului: Nivel 2") say("") say("Sparge porțile și distruge sigiliul pentru") say("a trece mai departe.") say("Ti-au mai rămas "..devils_catacomb.get_remaining_minutes()..".") say("") end when logout with pc.in_dungeon() == true and devils_catacomb.get_devil_base() > 1 begin devils_catacomb.unregister_player(pc.get_vid()) end when 30111.kill or 30112.kill or 30113.kill or 30114.kill or 30115.kill or 30116.kill or 30117.kill or 30118.kill or 30119.kill with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 2 begin d.setf("doors", d.getf("doors") + 1) d.notice("Ați spart "..d.getf("doors").." uși din 11.") end when 30103.click with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 2 and pc.get_vid() == d.getf("leader") begin if d.getf("doors") < 11 then say_title("Piatră Testoasă:") say("") say("Ai spart doar "..d.getf("doors").." uși din 11.") say("Revin-o când le-ai spart pe toate.") say("") return end npc.lock() say_title("Piatră Testoasă:") say("") say("Doar cei care au cap mumificat pot trece") say("mai departe.") say("") say_reward("Dacă nu ai cap mumificat vei fi teleportat") say_reward("afară din Catacomba Diavolului.") say("") wait() local s = select("Da, lasă-ma să trec.", "Nu am capul mumificat.") if s == 1 then if pc.count_item(30319) < 1 then say_title("Piatră Testoasă:") say("") say("Nu ai capul mumificat.") say("Vei fi teleportat afară din Catacomba Diavolului.") say("") pc.warp(591400, 99900) return end say_title("Piatră Testoasă:") say("") say("Imediat vei fi teleportat la nivelul 3.") say("") timer("base3_jump", 4) wait() else say_title("Piatră Testoasă:") say("") say("Nu ai capul mumificat.") say("Vei fi teleportat afară din Catacomba Diavolului.") say("") wait() pc.warp(591400, 99900) end end when base3_jump.timer begin if d.getf("base3jump") == 1 then return end d.setf("base3jump", 1) d.purge() if pc.count_item(30319) < 1 then d.exit_all() else pc.remove_item(30319, 1) end d.jump_all(4443, 12282) d.notice("Caută piatra Metin corectă și distruge-o.") d.notice("Ti-au mai rămas "..devils_catacomb.get_remaining_minutes()..".") d.clear_regen() d.regen_file("data/dungeon/devilscatacomb/base3_regen.txt") d.regen_file("data/dungeon/devilscatacomb/base3_stone_regen.txt") end when 8038.kill with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 3 and d.getf("warp_countdown_mode") != 1 begin local stone_count = d.getf("stone_count") stone_count = stone_count + 1 if stone_count >= 5 or number(1, 5) == 5 then d.notice("Ai găsit piatra Metin corectă. Acum vei fi teleportat la nivelul 4.") d.setf("warp_countdown_mode", 1) server_timer("base4_jump", 4, pc.get_map_index()) else d.setf("stone_count", stone_count + 1) d.notice("Piatra Metin este falsă. Găsește-o pe cea adevărată.") end end when base4_jump.server_timer begin if d.select(get_server_timer_arg()) then d.purge() d.jump_all(3144, 12617) d.clear_regen() d.regen_file("data/dungeon/devilscatacomb/base4_regen.txt") end end when 30104.click with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 4 begin npc.purge() say_title("Fragment de Rună:") say("") say("Ai găsit ieșirea din labirint!") say("") server_timer("base5_jump", 4, pc.get_map_index()) end when base5_jump.server_timer begin if d.select(get_server_timer_arg()) then d.purge() d.jump_all(3918, 12922) d.notice("Înfrânge Gardienii Demoni pentru a primi Totemul Schimonosit. După ce ai găsit totemul du-te") d.notice("și pune-l pe obeliscul din vârful muntelui.") d.notice("Ti-au mai rămas "..devils_catacomb.get_remaining_minutes()..".") local pos = { {850, 588}, {714, 655}, {701, 817}, {987, 838}, {994, 657}, } cid = number(1, 5) d.spawn_mob(2591, pos[cid][1], pos[cid][2]) d.regen_file("data/dungeon/devilscatacomb/base5_regen.txt") end end when 2591.kill with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 5 begin game.drop_item(30312, 1) end when 30102.take with item.vnum == 30312 and pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 5 begin item.remove() d.purge() d.notice("Ecoul strigătului de sânge coagulat se aude din adâncul Catacombei Diavolului.") d.notice("Charon s-a trezit!") d.jump_all(4339, 12702) d.clear_regen() d.spawn_mob(2597, 1305, 703) d.regen_file("data/dungeon/devilscatacomb/base6_regen.txt") server_loop_timer('base6_update', 10, pc.get_map_index()) d.notice("Înfrânge-l pe Charon și demonii lui pentru a trece la următorul nivel.") d.notice("Ti-au mai rămas "..devils_catacomb.get_remaining_minutes()..".") end when base6_update.server_timer begin if not d.select(get_server_timer_arg()) then server_timer("base6_update_stop_timer", 1, get_server_timer_arg()) return end end when 2597.kill with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 6 begin say("L-ai învis pe Charon! Ai ajuns la ultimul[ENTER]nivel al Catacombei Diavolului![ENTER]") server_timer("base7_jump", 5, get_server_timer_arg()) end when base6_update_stop_timer.server_timer begin clear_server_timer("base6_update", get_server_timer_arg()) end when base7_jump.server_timer begin clear_server_timer("base6_update", get_server_timer_arg()) if not d.select(get_server_timer_arg()) then return end d.purge() d.jump_all(3146, 13185) d.clear_regen() d.regen_file("data/dungeon/devilscatacomb/base7_regen.txt") d.set_unique("boss", d.spawn_mob(2598, 74, 1105)) server_loop_timer("base7_boss_update", 10, get_server_timer_arg()) d.notice("Înfruntă-l pe Azrael!") d.notice("Ti-au mai rămas "..devils_catacomb.get_remaining_minutes()..".") d.setf("level", 7) end when base7_boss_update.server_timer begin if d.select(get_server_timer_arg()) then if d.is_unique_dead("boss") then d.clear_regen() d.purge() clear_server_timer("dc_time_expired", get_server_timer_arg()) say_in_map(d.get_map_index(), color256(255, 230, 186).."Catacomba Diavolului:[ENTER][ENTER]"..color256(196, 196, 196).."Azrael a fost ucis. Înșfârsit[ENTER]pacea se poate reîntoarce în Catacombe.[ENTER]Acum vei fi teleportat afară.[ENTER]") server_timer("base7_update_stop_timer", 1, get_server_timer_arg()) server_timer("dc_end_jump", 60, get_server_timer_arg()) end return end server_timer("base7_update_stop_timer", 1, get_server_timer_arg()) end when base7_update_stop_timer.server_timer begin clear_server_timer("base7_boss_update", get_server_timer_arg()) end when base7_smashout.timer begin if d.getf("level") == 7 and devils_catacomb.get_devil_base() != 7 and d.select(pc.get_map_index()) then d.jump_all(3146, 13185) end end when dc_end_jump.server_timer begin if d.select(get_server_timer_arg()) then d.setf("level", 0) clear_server_timer("dc_time_expired", get_server_timer_arg()) clear_server_timer("base7_smashout", get_server_timer_arg()) clear_server_timer("base7_update_stop_timer", get_server_timer_arg()) clear_server_timer("base7_boss_update", get_server_timer_arg()) clear_server_timer("base6_update_stop_timer", get_server_timer_arg()) clear_server_timer("base6_update", get_server_timer_arg()) clear_server_timer("base5_jump", get_server_timer_arg()) clear_server_timer("base4_jump", get_server_timer_arg()) d.clear_regen() d.exit_all() end end when dc_time_expired.server_timer begin if d.select(get_server_timer_arg()) then d.setf("level", 0) d.notice("Timpul a expirat. Vei fi teleportat afară din Catacomba Diavolului.") clear_server_timer("base7_smashout", get_server_timer_arg()) clear_server_timer("base7_update_stop_timer", get_server_timer_arg()) clear_server_timer("base7_boss_update", get_server_timer_arg()) clear_server_timer("base6_update_stop_timer", get_server_timer_arg()) clear_server_timer("base6_update", get_server_timer_arg()) clear_server_timer("base5_jump", get_server_timer_arg()) clear_server_timer("base4_jump", get_server_timer_arg()) d.clear_regen() d.exit_all() end end when dc_time_notice.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Ti-au mai rămas "..devils_catacomb.get_remaining_minutes()..".") end end end end
From all the time the quest expire 10 minutes... And he say : time expired...