Jump to content

Lorthir

Premium
  • Posts

    28
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Lorthir

  1. Hi I've an error!

     

    When I enter in BP, and click on the NPC (inse) the mobs wont show!

     

    Anyone knows why?

    quest blazingpurgatory begin
        state start begin
            
            when 20351.chat."Os Portões do Purgatório Ardente" with pc.get_map_index() == 62 begin
                say_title("Guarda da Arena")
    			say("")
                say("O Deus de todos os demónios, Sung Mahi, é despertado!")
                say("O fim da humanidade aproxima-se...")
    			say("")
                say("No entanto, o seu poder vê-se enfraquecido!")			
                say("Mas isso é apenas uma questão de tempo...")
    			say("")
                say("Os seus súbditos não vão descansar até que")
                say("que o seu mestre desperte novamente.")                        
                wait()
                say_title("Guarda da Arena")
                say("")
                say("Razador, o Demónio do Fogo, e seu mais fiel seguidor")
                say("a quem foi confiada a tarefa de libertar o lendário")
                say("Dragão do Fogo, está agora no contra-ataque.")           
                say("")
                wait()
                say_title("Guarda da Arena")
                if pc.get_level() >= 100 or pc.is_gm() then
                    if party.is_party() or pc.is_gm()  then
                        if party.is_leader() or pc.is_gm() then
                            if pc.count_item(30189) > 0 or pc.is_gm() then
                                say_reward("Queres mesmo desafiar o Razador e os seus seguidores?")
                                if select("Sim, para a batalha!","Não") == 1 then
                                    pc.remove_item(30189,1)
                                    d.join(235)
                                end
                            else
                                say_reward("Precisas de Lágrimas do Deus Dragão!")
                                say_item_vnum(30189)
                            end
                        else
                            say_reward("Tens de liderar um grupo para accionares!")
                        end
                    else
                        say_reward("Tens de pertencer a um grupo para entrares!")
                    end
                else
                    say_reward("Tens de ser nível igual ou superior a 100!")
                end
            end
    
            when login with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin
                say("Dirige-te ao altar, e lá encontrarás")
                say("as tarefas do inferno!")
                say("")
                if party.is_party() then
                    if party.is_leader() then
                        blazingpurgatory.start()
                    end
                else
                    if pc.is_gm() then
                        blazingpurgatory.start()
                    end
                end
            end
            
            function start()
                d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                d.setf("purgatory_gate_sequence",number(1,7))
                local sequence = {{1,2,3,4,5,6},{4,1,3,2,5,6},{2,5,3,1,4,6},{3,1,6,2,4,5},{5,3,2,4,6,1},{6,1,5,2,4,3},{6,3,5,3,1,4}}
                for i = 1, 6 do
                    d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_"..sequence[d.getf("purgatory_gate_sequence")][i]..".txt")
                end
                d.setf("acutal_round",0)
                d.setf("time", get_time()+60*60*1)
                server_timer("purgatorytime",3600,pc.get_map_index())
                server_loop_timer("purgatorytimenotice",300,pc.get_map_index())
                blazingpurgatory.NoticeTime()
            end            
            
            when purgatorytimenotice.server_timer begin
                if d.select(get_server_timer_arg()) then
                    blazingpurgatory.NoticeTime()
                end
            end
    
            when purgatorytime.server_timer begin
                if d.select(get_server_timer_arg()) then
                    d.notice("O tempo acabou!")
                    d.exit_all()
                end
            end
            
            when 20385.click with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 and d.getf("block_altar") == 0 begin
                if d.getf("purgatory_level") == 7 then
                    d.setf("block_altar",1)
                    d.setf("actual_round",7)
                    d.notice(",")
                    d.notice("Terminaste todas as tarefas do purgatório! Agora irás defrontar o Razador!")
                    timer("warp_to_boss",5)
                else
                        
                    d.setf("purgatory_level",d.getf("purgatory_level")+1)
                    blazingpurgatory.purge()
                    blazingpurgatory.LoadStage()
                    d.setf("block_altar",1)
                    
                    blazingpurgatory.NoticeTime()
                    d.notice("A câmara foi aberta!")
                end
            end
    
            when warp_to_boss.timer begin
                d.jump_all(8111,6864)
                d.notice("Razador")
                d.notice("Resistir é inútil! O Sung Mahi ressurgirá novamente!")
                d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_7.txt")
                blazingpurgatory.NoticeTime()
            end    
            
            when kill with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin
                if d.getf("actual_round") == 1 or d.getf("actual_round") == 3 then
                    d.setf("kill_count_bp1",d.getf("kill_count_bp1") +1)
                    if d.getf("kill_count_bp1") == d.getf("bp_kill_to_next") then
                        d.notice("Regressa ao altar!")
                        blazingpurgatory.purge()
                    end
                elseif d.getf("actual_round") == 2 or d.getf("actual_round") == 5 then
                    d.setf("kill_count_bp",d.getf("kill_count_bp") +1)
                    if d.getf("kill_count_bp") == d.getf("kill_to_drop_key") then
                        game.drop_item_with_ownership(50084,1)
                        d.setf("kill_count_bp",0)
                    end
                elseif d.getf("actual_round") == 4 and npc.get_race() == 6009 then
                    if number(1,5) == 1 then
                        d.notice("Regressa ao altar!")
                        blazingpurgatory.purge()
                    end
                elseif d.getf("actual_round") == 6 and npc.get_race() == 8034 then
                    d.notice("Regressa ao altar!")
                    blazingpurgatory.purge()    
                elseif d.getf("actual_round") == 7 and npc.get_race() == 6091 then
                    d.notice("O Razador foi derrotado!")
                    d.clear_regen()
                    d.kill_all()
                end
            end
    
            when 20081.take with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin
                if item.get_vnum() == 50084 then
                    if d.getf("actual_round") == 2 then
                        pc.remove_item(item.get_vnum(),1)
                        if number(1,8) == 1 then
                            npc.purge()
                            d.notice("Regressa ao altar!")
                            blazingpurgatory.purge()
                        else
                            syschat("Esta Pedra-Chave está errada!")
                        end
                    elseif d.getf("actual_round") == 5 then
                        local sequence = {{1,2,3,4,5,5},{4,3,2,1,5,5},{4,5,3,1,2,2},{5,3,4,2,1,1},{5,1,3,4,2,2}}
                        if blazingpurgatory.GetPillarID() == sequence[d.getf("sequence")][d.getf("pillarcount")] then
                            pc.remove_item(item.get_vnum(),1)
                            npc.purge()
                            d.setf("pillarcount", d.getf("pillarcount")+1)
                            if d.getf("pillarcount") == 6 then
                                d.notice("Regressa ao altar!")
                                blazingpurgatory.purge()
                            else
                                d.notice("Ainda tens que abrir "..6-d.getf("pillarcount").." Selo(s)!")
                            end
                        elseif blazingpurgatory.GetPillarID() == false then
                            syschat("Aumenta (usando Zoom) para veres de mais perto o Selo!")
                        elseif blazingpurgatory.GetPillarID() != sequence[d.getf("sequence")][d.getf("pillarcount")] then
                            pc.remove_item(item.get_vnum(),1)
                            syschat("Este não é o Selo da direita!")
                        end
                    end
                end
            end
                        
            function LoadStage()
                if d.getf("actual_round") == 1 then -- Alle Monster tötenw
                    d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_1.txt")
                    d.setf("bp_kill_to_next",241)
                    d.setf("kill_count_bp1",0)
                elseif d.getf("actual_round") == 2 then
                    d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_2.txt")
                    d.setf("kill_to_drop_key",50)
                    d.spawn_mob(20081,195,352)
                elseif d.getf("actual_round") == 3 then
                    d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_3.txt")
                    d.setf("bp_kill_to_next",240)
                    d.setf("kill_count_bp1",0)
                elseif d.getf("actual_round") == 4 then
                    d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_4.txt")
                elseif d.getf("actual_round") == 5 then
                    d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_5.txt")
                    local sequence = {{1,2,3,4,5},{4,3,2,1,5},{4,5,3,1,2},{5,3,4,2,1},{5,1,3,4,2}}
                    local n = number(1,5)
                    local coords = {{502,354},{517,354},{487,354},{502,339},{502,369}}
                    for i = 1, 5 do
                        d.spawn_mob(20081, coords[i][1],coords[i][2])
                    end
                    d.setf("pillarcount", 1)
                    d.setf("sequence",n)
                    d.setf("kill_to_drop_key",100)
                elseif d.getf("actual_round") == 6 then
                    d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_6.txt")
                    d.spawn_mob(8034,507,489)
                end
            end    
    
            function purge()
                d.setf("block_altar",0)
                d.clear_regen()
                d.kill_all()
                blazingpurgatory.LoadGates()
                d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                if d.getf("purgatory_level") == 6 then
                    d.setf("purgatory_level",7)
                end
            end        
    
            function LoadGates()
                local sequence = {{1,2,3,4,5,6},{4,1,3,2,5,6},{2,5,3,1,4,6},{3,1,6,2,4,5},{5,3,2,4,6,1},{6,1,5,2,4,3},{6,3,5,3,1,4}}
                for i = 1, 6-d.getf("purgatory_level") do
                    d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_"..sequence[d.getf("purgatory_gate_sequence")][i]..".txt")
                end
                d.setf("actual_round",sequence[d.getf("purgatory_gate_sequence")][7-d.getf("purgatory_level")])
            end        
            
            function NoticeTime()
                local secondsLeft = (d.getf("time") - get_time())
                local minutesLeft = math.ceil(secondsLeft / 60)
                d.notice("Tempo restante: "..minutesLeft.." Minutos!")
            end
    
            function GetPillarID()
                if pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then
                    return 1
                elseif pc.get_local_x() >= 517 - 5 and pc.get_local_x() <= 517 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then
                    return 2
                elseif pc.get_local_x() >= 487 - 5 and pc.get_local_x() <= 487 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then
                    return 3
                elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 339 - 5 and pc.get_local_y() <= 339 + 5 then
                    return 4
                elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 369 - 5 and pc.get_local_y() <= 369 + 5 then
                    return 5
                else
                    return false
                end
            end
        
        end
    end
    
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.