Jump to content

Searching Blazing Purgatory vanilla core


Recommended Posts

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

-----------------------
--- Script in web   ---
-- Trad. by Lollozzo --
-----------------------

quest purgatorio begin
    state start begin
        function CheckMembers()
            local pids = {party.get_member_pids()}
            local riding_horse    = false
            local anello_exp = false
            local anello_exp_equip = false
            for i = 1, table.getn(pids), 1 do
                q.begin_other_pc_block(pids[i])
                if pc.count_item(70005) > 0 then
                anello_exp = true
                end
                local oggetto = item.select_cell(188)
                local vnum = item.get_vnum()
                if vnum == 70005 then
                anello_exp_equip = true
                end

                q.end_other_pc_block()
            end
            if anello_exp == true then
            say("Non è possibile entrare in questo dungeon")
            say("con anello exp in inventario.")            
            return false
            end
            if anello_exp_equip == true then
            say("Non è possibile entrare in questo dungeon")
            say("con anello exp indossato.")            
            return false
            end
        end
        function Unmount()
            local pids = {party.get_member_pids()}
            local riding_horse    = false
            for i = 1, table.getn(pids), 1 do
                q.begin_other_pc_block(pids[i])
                command("unmount")
                q.end_other_pc_block()
            end
        end

        when 20351.chat."Le Porte dell'Inferno" with pc.get_map_index() == 62 begin
            if purgatorio.CheckMembers() == false then  
                return
            end
            
            say_title("Guardiano dell'Inferno")
            say("Il Dio di tutti i demoni, Sung Mahi, si è risvegliato,")
            say("la fine dell'umanità è vicina!")
            say("Combatti, valoroso guerriero, con")
            say("il tuo gruppo affinchè liberiate")
            say("il mondo dalla distruzione del nuovo Male!")
            say("")
            say("")
            say("")
            wait()
            say_title("Guardiano dell'Inferno")
            say("Per poter accedere alla mappa")
            say("dove essere minimo livello 170")
            say("ed avere con voi la Pergamena del passaggio ")
            say("Sei pronto ad affrontare la sfida?")
            say("")
            say("")
            wait()
            say_title("Guardiano dell'Inferno")
            if get_time() < game.get_event_flag("purgatorio_next_open") and !pc.is_gm() then
                say("Il Purgatorio è chiuso.[ENTER]")
                return
            end
            if pc.count_item(70005) > 0 then
            say("Non è possibile entrare in questo dungeon")
            say("con anello exp in inventario.")            
            return
            end
            local oggetto = item.select_cell(188)
            local vnum = item.get_vnum()
            if vnum == 70005 then
                say("Non è possibile entrare in questo dungeon")
                say("con anello exp indossato.")
                return
            end        
            if pc.get_level() >= 170 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(71095) > 0 or pc.is_gm() then
                            say_reward("Vuoi iniziare la sfida con il tuo gruppo?")
                            if select("Si","No, grazie.") == 1 then
                                pc.remove_item(71095,1)
                                command("unmount")
                                purgatorio.Unmount()
                                game.set_event_flag("purgatorio_next_open", get_time()+60*60)
                                notice_all("Il purgatorio sarà chiuso per 60 minuti a partire da adesso")
                                d.join(351)
                            end
                        else
                            say_reward("Non puoi passare!")
                            say_item_vnum(71095)
                        end
                    else
                        say_reward("Per poter accedere devi essere il leader del gruppo!")
                    end
                else
                    say_reward("Devi appartenere ad un gruppo!")
                end
            else
                say_reward("Devi essere livello superiore a 170 per poter entrare!")
            end
        end

        when login with pc.get_map_index() >= 3510000 and pc.get_map_index() <= 3515000 begin
            say("Vai, il dungeon è cominciato!")
            say("Combattete!")
            say("")
            if party.is_party() then
                if party.is_leader() then
                    --blazingpurgatory.start()
                     d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                    d.setf("purgatory_gate_sequence",number(1,7))
                    local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}}
                    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()
                    local secondsLeft = (d.getf("time") - get_time())
                    local minutesLeft = math.ceil(secondsLeft / 60)
                    d.notice("Tempo rimanente: "..minutesLeft.." minuti!")
                    
                    
                    
                end
            else
                if pc.is_gm() then
                    --blazingpurgatory.start()
                     d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                    d.setf("purgatory_gate_sequence",number(1,7))
                    local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}}
                    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()
                    local secondsLeft = (d.getf("time") - get_time())
                    local minutesLeft = math.ceil(secondsLeft / 60)
                    d.notice("Tempo rimanente: "..minutesLeft.." minuti!")
                    
                    
                    
                    
                end
            end
        end
         
                  
         
        when purgatorytimenotice.server_timer begin
            if d.select(get_server_timer_arg()) then
                --blazingpurgatory.NoticeTime()
                local secondsLeft = (d.getf("time") - get_time())
                local minutesLeft = math.ceil(secondsLeft / 60)
                d.notice("Tempo rimanente: "..minutesLeft.." minuti!")
            end
        end

        when purgatorytime.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Il tempo è scaduto!")
                d.exit_all()
            end
        end
         
        when 20385.click with pc.get_map_index() >= 3510000 and pc.get_map_index() <= 3515000 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("Pensavate di aver finito? No!")
                d.notice("Ora vi aspetta Razador!")
                timer("warp_to_boss",5)
            else
                     
                d.setf("purgatory_level",d.getf("purgatory_level")+1)
                --blazingpurgatory.purge()
                
                d.setf("block_altar",0)
                d.clear_regen()
                d.kill_all()
                --blazingpurgatory.LoadGates()
                local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}}
                    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")])
                
                
                d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                if d.getf("purgatory_level") == 6 then
                    d.setf("purgatory_level",7)
                end
                    
                --blazingpurgatory.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(8058,507,489)
                -- 8034
                end


                
                d.setf("block_altar",1)
                 
                --blazingpurgatory.NoticeTime()
                local secondsLeft = (d.getf("time") - get_time())
                local minutesLeft = math.ceil(secondsLeft / 60)
                d.notice("Tempo rimanente: "..minutesLeft.." minuti!")
                    
                d.notice("Si è aperta una stanza!")
            end
        end

        when warp_to_boss.timer begin
            d.jump_all(8111,6864)
            d.notice("Razador:")
            d.notice("La resistenza è inutile! Sung Mahi resusciterà!")
            d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_7.txt")
            --blazingpurgatory.NoticeTime()
            local secondsLeft = (d.getf("time") - get_time())
            local minutesLeft = math.ceil(secondsLeft / 60)
            d.notice("Tempo rimanente: "..minutesLeft.." minuti!")         
        end     
         
        when kill with pc.get_map_index() >= 3510000 and pc.get_map_index() <= 3515000 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("Ritorna alle Fauci del purgatorio")
                    --blazingpurgatory.purge()
                    d.setf("block_altar",0)
                    d.clear_regen()
                    d.kill_all()
                    --blazingpurgatory.LoadGates()
                    local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}}
                        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")])


                    
                    d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                    if d.getf("purgatory_level") == 6 then
                        d.setf("purgatory_level",7)
                    end

                    
                end
            elseif 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") == 2 then
                d.setf("kill_count_bp",d.getf("kill_count_bp") +1)
                if d.getf("kill_count_bp") == 50 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("Ritorna alle Fauci del purgatorio")
                   -- blazingpurgatory.purge()
                     d.setf("block_altar",0)
                    d.clear_regen()
                    d.kill_all()
                    --blazingpurgatory.LoadGates()
                    local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}}
                        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")])
                    
                    d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                    if d.getf("purgatory_level") == 6 then
                        d.setf("purgatory_level",7)
                end         
                end
            --8034
            elseif d.getf("actual_round") == 6 and npc.get_race() == 8058 then
                d.notice("Ritorna alle Fauci del purgatorio")
               -- blazingpurgatory.purge()  
                 d.setf("block_altar",0)
                d.clear_regen()
                d.kill_all()
                ---blazingpurgatory.LoadGates()
                 local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}}
                    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")])
                
                
                d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                if d.getf("purgatory_level") == 6 then
                d.setf("purgatory_level",7)
                end


                
            elseif d.getf("actual_round") == 7 and npc.get_race() == 6091 then
                d.notice("Razador è morto!")
                game.drop_item_with_ownership(53552, 1)                
                d.clear_regen()
                d.kill_all()
                timer("exit_flame", 20)    
                end
        end
        when exit_flame.timer begin
            d.exit_all()
        end
        when 20081.take with pc.get_map_index() >= 3510000 and pc.get_map_index() <= 3515000  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("Ritorna alle Fauci del purgatorio")
                        -- blazingpurgatory.purge()  
                        d.setf("block_altar",0)
                        d.clear_regen()
                        d.kill_all()
                        ---blazingpurgatory.LoadGates()
                        local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}}
                        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")])
                        d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                        if d.getf("purgatory_level") == 6 then
                            d.setf("purgatory_level",7)
                        end
                        
                        
                    else
                        say("Questa Pietra Maat è sbagliata")
                    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}}
                        local blazing
                        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
                        blazing =  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
                        blazing = 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
                        blazing = 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
                        blazing = 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
                        blazing = 5
                        else
                        blazing = 6
                        end        
                        if blazing == 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("Ritorna alle Fauci del purgatorio")
                                -- blazingpurgatory.purge()  
                                d.setf("block_altar",0)
                                d.clear_regen()
                                d.kill_all()
                                ---blazingpurgatory.LoadGates()
                                local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}}
                                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")])
                                d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
                                if d.getf("purgatory_level") == 6 then
                                    d.setf("purgatory_level",7)
                                end
                        else
                            d.notice("Mancano ancora "..6-d.getf("pillarcount").." Steli!")
                        end
                        elseif blazing == 6 then
                        syschat("Avvicinati alla stele")
                        elseif blazing != sequence[d.getf("sequence")][d.getf("pillarcount")] then
                        pc.remove_item(item.get_vnum(),1)
                        syschat("Questa Pietra non è quella giusta")
                    end
                end
            end
        end
    end
end
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



  • Similar Content

  • Activity

    1. 2

      Feeding game source to LLM

    2. 0

      Target Information System

    3. 2

      Feeding game source to LLM

    4. 2

      anti exp explanation pls

    5. 2

      Feeding game source to LLM

    6. 2

      anti exp explanation pls

    7. 0

      [GR2] Positioning an object added with "Attach"

  • Recently Browsing

    • No registered users viewing this page.
×
×
  • 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.