Quest Run Azrael

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Închis
Avatar utilizator
mesterulbun
Nou Venit

Nou Venit
Mesaje: 16
Membru din: 19 Dec 2014, 15:56
Aprecieri: 19  
Mulţumiri: 1  
Medalii

*Problemă/Întrebare: De la etajul 3 ma teleporteaza direct la 5. Iar de la 6 dupa ce omor pe toti nu ma teleporteaza la 7 .
Tipologie server: PVM hard
*Resursă folosită: am sa postez quest-ul aici ( e luat de pe just4metin )
*ServerFiles utilizat: Spyke
*Syserr: nimic
Poză: nu este necesara
*Detalii suplimentare: Am implementat acest quest am incercat sa fac run-ul, functioneaza perfect din toate punctele de vedere mai putin cele enumerate mai sus. Imi puteti da un quest functional ? sau sa-l modificati pe cel existent. Multumesc :)
quest devils_catacomb begin
   state start begin
      when 20367.chat."Intra î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 experienta ca tine.")
         say("")
         say("Este pentru siguranta ta.")
         say("")
         say_reward("Nivel necesar: 75")
         say("")
      end
      when 20367.chat."Intra în Catacomba Diavolului" with pc.get_level() >= 75 and pc.get_map_index() != 206 begin
         say_title("Paznicul catacombei:")
         say("")
         say("Doresti sa intri în Catacomba Diavolului?")
         say("")
         local s = select("Da, vreau sa intru.", "Nu, vreau sa plec.")
         if s == 1 then
            if pc.count_item(30319) < 1 then
               say_title("Paznicul catacombei:")
               say("")
               say("Nu poti intra fara ")
               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("Esti sigur ca vrei sa te dai batut")
         say("si sa 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 = 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 sa fii intr-o grupa.")
            say("")
            return
         end         
         if not party.is_leader() then
            say_title("Statuia Kud:")
            say("")
            say("Trebuie sa 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 deblocata.")
            say("Treci repede!")
            say("")
            wait()
            say_title("Statuia Kud:")
            say("")            
            say("Aici începe adevarata aventura. De acum ai o")
            say("ora 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", 30*60, d.get_map_index())
            server_timer("dc_time_notice", 45*60, d.get_map_index())
            server_timer("dc_time_notice", 50*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 portile si distruge sigiliul pentru")
         say("a trece mai departe.")   
         say("Ti-au mai ramas "..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("Ati spart "..d.getf("doors").." usi 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("Piatra Testoasa:")
         say("")      
         say("Ai spart doar "..d.getf("doors").." usi din 11.")   
         say("Revin-o când le-ai spart pe toate.")
         say("")
         return
         end
         npc.lock()
         say_title("Piatra Testoasa:")
         say("")
         say("Doar cei care au cap mumificat pot trece")
         say("mai departe.")
         say("")
         say_reward("Daca nu ai cap mumificat vei fi teleportat")
         say_reward("afara din Catacomba Diavolului.")
         say("")
         wait()
         local s = select("Da, lasa-ma sa trec.", "Nu am capul mumificat.")
         if s == 1 then
            if pc.count_item(30319) < 1 then
               say_title("Piatra Testoasa:")
               say("")
               say("Nu ai capul mumificat.")
               say("Vei fi teleportat afara din Catacomba Diavolului.")
               say("")
               pc.warp(591400, 99900)
               return
            end
            say_title("Piatra Testoasa:")
            say("")
            say("Imediat vei fi teleportat la nivelul 3.")
            say("")
            timer("base3_jump", 4)
            wait()
         else
            say_title("Piatra Testoasa:")
            say("")
            say("Nu ai capul mumificat.")
            say("Vei fi teleportat afara 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("Cauta piatra Metin corecta si distruge-o.")
         d.notice("Ti-au mai ramas "..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 gasit piatra Metin corecta. Acum vei fi teleportat la nivelul 5.")
            d.setf("warp_countdown_mode", 1)
            server_timer("base5_jump", 5, pc.get_map_index())
         else
            d.setf("stone_count", stone_count + 1)
            d.notice("Piatra Metin este falsa. Gaseste-o pe cea adevarata.")
         end
      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. Dupa ce ai gasit totemul du-te")
            d.notice("si pune-l pe obeliscul din vârful muntelui.")
            d.notice("Ti-au mai ramas "..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.spawn_mob(30102, 848, 739)

            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 strigatului 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 si demonii lui pentru a trece la urmatorul nivel.")
         d.notice("Ti-au mai ramas "..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("Înfrunta-l pe Azrael!")   
         d.notice("Ti-au mai ramas "..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. Însfârsit[ENTER]pacea se poate reîntoarce în Catacombe.[ENTER]Acum vei fi teleportat afara.[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 afara 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 ramas "..devils_catacomb.get_remaining_minutes()..".")
         end
      end
      
   end
end   
Avatar utilizator
[GabrieL]
Utilizator interzis !

Utilizator interzis !
Mesaje: 288
Membru din: 31 Aug 2014, 10:24
Server: Metin2Class
Regat: Shinsoo
Aprecieri: 21  
Mulţumiri: 445  
Discord: Copiază ID
Medalii

Ia pe râd fiecare index al mapelor și vezi dacă corespunde indexul din quest cu cel din server.

[ Postat de pe Android ] Imagine
Avatar utilizator
mesterulbun
Nou Venit

Nou Venit
Mesaje: 16
Membru din: 19 Dec 2014, 15:56
Aprecieri: 19  
Mulţumiri: 1  
Medalii

Da , corespunde :) Dar tot nu functioneaza ...
Avatar utilizator
mesterulbun
Nou Venit

Nou Venit
Mesaje: 16
Membru din: 19 Dec 2014, 15:56
Aprecieri: 19  
Mulţumiri: 1  
Medalii

Rezolvat , era de la DMG-u de GM . Cu cont normal a mers :)
Avatar utilizator
Kazuhiri
Nivel 9

Nivel 9
Mesaje: 2088
Membru din: 26 Mar 2017, 19:14
Server: Demetris
Regat: Shinsoo
Aprecieri: 396  
Mulţumiri: 3227  
  Rezolvări prob.: 2
Discord: Copiază ID
Medalii

rezolvat
Demetris2 Imagine
Afișează semnătura
Închis
Răspunsuri
1
Vizualizări
562
Răspunsuri
1
Vizualizări
36
Răspunsuri
4
Vizualizări
1730
Răspunsuri
2
Vizualizări
343

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 66 vizitatori