Jump to content

Recommended Posts

  • Premium
SYSERR: Jul  9 11:33:35 :: heart_idle: losing 55 seconds. (delay occured)
SYSERR: Jul  9 11:35:21 :: Click: CQuestManager::Click(pid=2, target_npc_name=Baricada de Lemn) - NOT EXIST NPC RACE VNUM[20375]
SYSERR: Jul  9 11:35:36 :: Entergame: !GetMovablePosition (name Admin33 614800x707200 map 62 changed to 730700x689800)
SYSERR: Jul  9 11:35:46 :: Entergame: !GetMovablePosition (name Admin33 614800x707200 map 62 changed to 730700x689800)
SYSERR: Jul  9 11:36:41 :: RunState: LUA_ERROR: [string "flame_dungeon"]:25: attempt to call global `get_special_item_group' (a nil value) WITH ERRORCODE 1
SYSERR: Jul  9 11:36:41 :: RunState: LUA_STATE: index 1349952704 ref 3
SYSERR: Jul  9 11:36:41 :: WriteRunningStateToSyserr: LUA_ERROR: quest flame_dungeon.run click
SYSERR: Jul  9 11:36:45 :: RunState: LUA_ERROR: [string "flame_dungeon"]:25: attempt to call global `get_special_item_group' (a nil value) WITH ERRORCODE 1
SYSERR: Jul  9 11:36:45 :: RunState: LUA_STATE: index 1349952704 ref 3
SYSERR: Jul  9 11:36:45 :: WriteRunningStateToSyserr: LUA_ERROR: quest flame_dungeon.run click
SYSERR: Jul  9 11:36:47 :: RunState: LUA_ERROR: [string "flame_dungeon"]:25: attempt to call global `get_special_item_group' (a nil value) WITH ERRORCODE 1
SYSERR: Jul  9 11:36:47 :: RunState: LUA_STATE: index 1349952704 ref 3
SYSERR: Jul  9 11:36:47 :: WriteRunningStateToSyserr: LUA_ERROR: quest flame_dungeon.run click
SYSERR: Jul  9 11:36:49 :: RunState: LUA_ERROR: [string "flame_dungeon"]:25: attempt to call global `get_special_item_group' (a nil value) WITH ERRORCODE 1
SYSERR: Jul  9 11:36:49 :: RunState: LUA_STATE: index 1349952704 ref 3
SYSERR: Jul  9 11:36:49 :: WriteRunningStateToSyserr: LUA_ERROR: quest flame_dungeon.run click
SYSERR: Jul  9 11:41:31 :: hupsig: SIGHUP, SIGINT, SIGTERM signal has been received. shutting down.
SYSERR: Jul  9 11:41:56 :: pid_deinit: 
 
 
and the quest is this 
quest flame_dungeon begin
    state start begin   
        when 20394.click with pc.get_level() >= 90 begin
            pc.give_item2(71175, 1)
            set_state(run)
        end
    end
 
    state run begin
     
    function setting()
        return
        {
        ["bossroom_entry_pos"] = {8109,6867},
        ["boss_pos"] = {686,637},
        ["doors_pos"] = {
            {320,394},
            {293,359},
            {333,321},
            {378,320},
            {400,355},
            {394,401}
        },
        ["idoors_pos"] = {
            {268,447},
            {234,359},
            {300,264},
            {454,217},
            {470,355},
            {467,469}
        },
        ["doors_dir"] = {135,90,210,152,90,223},
        ["idoors_dir"] = {135,90,210,135,90,239},
        ["dungeon_entry_pos"] = {7766, 6719},-- ??? ?? ???? ?
        ["DUNGEON_MAN_bpos"] = {690,722},
        ["DUNGEON_MAN_pos"] = {354,362},
        ["LEVEL2_STONE_pos"] = {195,352},
        ["LEVEL4_TARGET_pos"] = {470,175},
        ["LEVEL5_STONE_pos"] = {
                {486, 345},
                {511, 336},
                {525, 349},
                {521, 365},
                {503, 372},
                {486, 365},
                {500, 354}
        },
        ["LEVEL6_TARGET_pos"] = {511,480},
        ["outside_entry_pos"] = {5980,7075}, --??????? ??? ?
         
        }
    end
    function is_flamed(idx) -- ???? ??? ?? 
        return idx >= 351 * 10000 and idx < (351 + 1) *10000
    end
    function make_dungeon() -- ?? ???
        local setting = flame_dungeon.setting()
        d.new_jump_party(351, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
        d.regen_file("data/dungeon/flame_dungeon/npc.txt")
        d.setf("level",0)
        for i=1,6 do
            d.set_unique("door"..i, d.spawn_mob_ac_dir(20387, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i]))
        end
        for i=1,6 do
            d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i]))
        end
        d.setf("clear_count",0)
        d.setf("started",0)
        d.setf("dungeon_enter",0) -- ????? ?????? // ??? : 0 ?? : 1 // ??? ??????? ?? ??
        d.setf("counter_11", 180)
        d.setf("counter_13", 180)
    end
    function go_boss() -- ??? ?? 
        local setting = flame_dungeon.setting()
        if pc.get_level() < 104 then --????
            say("Seu nivel nao e suficiente para continuar.[ENTER]Volte, quando tiver atingido pelo menos nivel 104.")
            return
        else
            --if pc.getf("main_quest_flame_lv103", "__status")==main_quest_flame_lv103.__COMPLETE__ then -- ????? ??
                say("Sera que voce quer avancar[ENTER]para conhecer o seu destino?")
                local warp = select("Avancar","Talvez mais tarde")
                if warp == 1 then
                    d.setf("level",17)
                    d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
                    d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_fild_boss.txt")
                    d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])
                end
            --else
            --    say("Pode apenas avancar quando tiver[ENTER]concluido a missao de nivel 103.")
            --    return
            --end
        end
    end
    function level_clear() -- ?? ???, ?????, ?????
        d.setf("level",0)
        d.clear_regen()
        d.purge_area(750000,620000,817400,689400) -- ??? -- d.purge() ????
    end
    function clear_timer(inx) -- ??? ????
        clear_server_timer ("flame_dungeon_0m_left_timer", inx)
        clear_server_timer ("flame_dungeon_1m_left_timer", inx)
        clear_server_timer ("flame_dungeon_5m_left_timer", inx)
        clear_server_timer ("flame_dungeon_10m_left_timer", inx)
        clear_server_timer ("flame_dungeon_15m_left_timer", inx)
        clear_server_timer ("flame_dungeon_30m_left_timer", inx)
        clear_server_timer ("flame_dungeon_45m_left_timer", inx)
        clear_server_timer ("flame_dungeon_ticket_remove", inx) 
    end
     
        when login begin
            local idx = pc.get_map_index()
            local setting = flame_dungeon.setting()
            if idx == 351 then
                --pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
            elseif flame_dungeon.is_flamed(idx) then -- ?? ??, ??? ?? ??
            ------------------------------------------------------------------------------------------------------------------------------------------------------
            --??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
            --???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
            ------------------------------------------------------------------------------------------------------------------------------------------------------
                --pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
                local ticketGroup = {get_special_item_group (10033)}
                if d.getf("dungeon_enter") == 0 then -- ???? ???
                    local canPass = false
                    for i=1, table.getn(ticketGroup),2 do
                        if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
                            canPass = true
                            break
                        end
                    end
 
                    if get_global_time() - pc.getf("flame_dungeon","exit_time") < 30 * 60 then -- ??????? ????
                        notice_multiline("O periodo de espera para re-entrada na[ENTER]Fortaleza Dragao Vermelho ainda nao expirou.",d.notice)
                        say("O periodo de espera para re-entrada na[ENTER]Fortaleza Dragao Vermelho ainda nao expirou.")
                        timer("flame_dungeon_warp_timer", 5)
                    elseif not canPass then
                        notice_multiline("Apenas um grupo pode invadir a Fortaleza Dragao[ENTER]Vermelho. Alem disso, e necessario uma[ENTER]autorizacao para entrar.",d.notice)
                        say("Eu posso deixar voce entrar se[ENTER]voce tiver em posse de um passe.")
                        timer("flame_dungeon_warp_timer", 5)
                    elseif pc.get_level() < 100 then
                        notice_multiline("O nivel de todos os membros do grupo deve ser[ENTER]pelo menos 100. Caso contrario, eu nao posso[ENTER]deixar continuar.",d.notice)
                        say("Eu vou deixar passar se todos os membros do grupo,[ENTER]tiverem no minimo nivel 100.")
                        timer("flame_dungeon_warp_timer", 5)
                    end
                elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- ????? ??? ???????
                     
                    for i=1, table.getn(ticketGroup),2 do
                        if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
                            pc.remove_item(ticketGroup[i], ticketGroup[i+1])
                            break
                        end
                    end
                    pc.setf("flame_dungeon","ticket_delete",1)
                end
            else
                pc.setf("flame_dungeon","ticket_delete",0)
            end
        end
        when flame_dungeon_warp_timer.timer begin
            local setting = flame_dungeon.setting()
            pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
        end
        when logout begin
            local idx = pc.get_map_index()
            if flame_dungeon.is_flamed(idx) then 
                if d.getf("dungeon_enter") == 1 then -- ???? ?? ?? ? ????
                    pc.setf("flame_dungeon","exit_time",get_global_time()) -- ???? ???? ??? ??? ??, ?? ???? ??? or ?? ???? ???
                end
                 
 
            end
        end
        when 20394.chat."Fortaleza Dragao Vermelho" begin
         
            local setting = flame_dungeon.setting()
            if party.is_party() then
                local party_check = 0
                if d.find(party.getf("dungeon_index")) then
                    party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())
                end
                 
                if d.find(party.getf("dungeon_index")) and party_check then
                    if get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then -- ?? ?? 5? ??
                        local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))
                        if dungeon_level == 17 then -- ??
                            pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party.getf("dungeon_index"))
                        else
                            pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party.getf("dungeon_index"))
                        end
                    else -- 5? ???? ? ?? ??
                        say_title(mob_name(20394))
                        say("Voce esteve mais de cinco minutos fora da[ENTER]Fortaleza Dragao Vermelho e[ENTER]agora nao pode entrar.")
                    end
                else
                    local pids = {party.get_member_pids()}
                    local noTicketMembers = {}
                    local notEnoughLevelMembers = {}
                    local ticketCheck = true
                    local levelCheck = true
                    local ticketGroup = {get_special_item_group (10033)}
                    for i, pid in next, pids, nil do
                        q.begin_other_pc_block(pid)
                        local canPass = false
                        for idx=1, table.getn(ticketGroup),2 do
                            if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
                                canPass = true
                                break
                            end
                        end
                         
                        if not canPass then
                            table.insert(noTicketMembers, pc.get_name())
                            ticketCheck = false
                        end
                        if pc.level < 100 then
                            table.insert(notEnoughLevelMembers, pc.get_name())
                            levelCheck = false
                        end
                        q.end_other_pc_block()
                    end
 
                    if not ticketCheck then
                        say_title(mob_name(20394))
                        say("Atencao! Para entrar na Fortaleza Dragao[ENTER]Vermelho, exige-se que cada membro do grupo[ENTER]tenha um passe para entrar. Os membros que nao[ENTER]teem passe sao:")
                        for i, name in next, noTicketMembers, nil do
                            say(color(1,1,0), "    "..name)
                        end
                        if levelCheck then
                            return
                        else
                            wait()
                        end
                    end
 
                    if not levelCheck then
                        say_title(mob_name(20394))
                        say("Atencao! Para entrar na Fortaleza Dragao[ENTER]Vermelho, todos os membros do grupo devem ter[ENTER]nivel 100, os jogadores que actualmente nao[ENTER]atingiram o nivel sao:")
                        for i, name in next, notEnoughLevelMembers, nil do
                            say(color(1,1,0), "    "..name)
                        end
                        return
                    end
 
                    if party.is_leader() then
                        say("Voce quer entrar na Fortaleza Dragao Vermelho?")
                        local warp = select("Entrar","Talvez mais tarde")
                        if warp == 1 then
                            if party.is_map_member_flag_lt("exit_time", get_global_time() - 30 * 60 ) then
                                flame_dungeon.make_dungeon()
                            else
                                say("O periodo de espera para re-entrada na[ENTER]Fortaleza Dragao Vermelho ainda nao expirou.")
                            end
                        end
                         
                        party.setf("flame_dungeon_boss_kill_count", 0)
                         
                    else
                        say("Apenas o lider do grupo pode solicitar a entrada.")
                    end
                end
            else
                say("Eu aprecio a sua coragem, mas so voce[ENTER]nao pode entrar na Fortaleza Dragao Vermelho.[ENTER]Defina um grupo forte e eu vou conceder a entrada.")
            end
        end
        when 20394.chat."Test : Teleporte para instancia" with pc.is_gm() begin -- ????
            local setting = flame_dungeon.setting()
            pc.setf("flame_dungeon","fdRtest",1)
            pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, 351)
        end
         
         
        when 20394.chat."TEST : Init time limit init" with pc.is_gm() begin -- ????
            pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
            say("Done")
        end
        when 20385.chat."Test : Informacao" with pc.is_gm() begin -- ????
            say("monstros_11 : "..d.getf("counter_11"))
            say("monstros_13 : "..d.getf("counter_13"))
            say("server time : "..get_server_timer_arg())
            say("numero de monstros : "..d.count_monster())
            say("level : "..d.getf("level"))
            say("Dmap index : "..d.get_map_index())
            say("Pmap index : "..pc.get_map_index())
            say("access limit : "..pc.getf("flame_dungeon","exit_time"))
            say("global time : "..get_global_time())
            if flame_dungeon.is_flamed(d.get_map_index()) then
                say("in dungeon") -- is_flamed ?? ??
            end
            if d.is_unique_dead("stone1") then
                say("stone1 is dead")
            else
                say("stone1 is not dead")
            end
        end
        when 20385.chat."ativar instancia" with pc.is_gm() begin -- ????
            say("??? ???")
            flame_dungeon.clear_timer(d.get_map_index())
            flame_dungeon.make_dungeon()
        end
        when 20385.chat."Test : Boss Room" with pc.is_gm() begin -- ????
            flame_dungeon.go_boss()
        end
         
        when 20385.chat."testar sair" with pc.is_gm() begin -- ???? ??? ?? ? ?? ???
            local setting = flame_dungeon.setting()
            say("??? ????????")
            local warp = select("Sim","Nao")
            if warp == 1 then
                pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
            end
        end
        when flame_dungeon_45m_left_timer.timer begin
            notice_multiline(string.format("Tempo restante: %d minuto(s)", 45),d.notice)
            notice_multiline("Depois do tempo, o grupo e teleportado[ENTER]para fora da fortaleza.",d.notice)
            timer("flame_dungeon_30m_left_timer", 15*60)
        end
        when flame_dungeon_30m_left_timer.timer begin
            notice_multiline(string.format("Tempo restante: %d minuto(s)", 30),d.notice)
            notice_multiline("Depois do tempo, o grupo e teleportado[ENTER]para fora da fortaleza.",d.notice)
            timer("flame_dungeon_15m_left_timer", 15*60)
        end
        when flame_dungeon_15m_left_timer.timer begin
            notice_multiline(string.format("Tempo restante: %d minuto(s)", 15),d.notice)
            notice_multiline("Depois do tempo, o grupo e teleportado[ENTER]para fora da fortaleza.",d.notice)
            timer("flame_dungeon_5m_left_timer", 10*60)
        end
        when flame_dungeon_5m_left_timer.timer begin
            notice_multiline(string.format("Tempo restante: %d minuto(s)", 5),d.notice)
            notice_multiline("Depois do tempo, o grupo e teleportado[ENTER]para fora da fortaleza.",d.notice)
            timer("flame_dungeon_1m_left_timer", 4*60)
        end
        when flame_dungeon_1m_left_timer.timer begin
            notice_multiline(string.format("Tempo restante: %d minuto(s)", 1),d.notice)
            notice_multiline("Depois do tempo, o grupo e teleportado[ENTER]para fora da fortaleza.",d.notice)
            timer("flame_dungeon_0m_left_timer", 60)
        end
        when flame_dungeon_0m_left_timer.timer begin
            local setting = flame_dungeon.setting()
            notice_multiline("Seu tempo expirou. Dentro de 10 segundos voce[ENTER]sera teleportado para os portoes da fortaleza.",d.notice)
            notice_multiline("Em dez segundos, o grupo e teleportado[ENTER]da Fortaleza Dragao Vermelho.",d.notice)
            timer("exit_dungeon",10)    
        end
 
 
        when 20385.chat."O despertar do Am-heh" with npc.lock() begin -- '0x'? x?? ?? ??? ?? ? ?? ?? , '1x'? x?? ?? ??? ???
            local setting = flame_dungeon.setting()
            if d.getf("started") == 0 then
                say("O Am-heh foi despertado.")
                say("Os portoes da Fortaleza Dragao Vermelho[ENTER]seram fechados dentro de uma hora.")
                wait()
                d.setf("started",1)
                timer("flame_dungeon_45m_left_timer",15*60)
                notice_multiline("Tempo restante: 60 Minuto(s) ",d.notice)
                notice_multiline("Depois do tempo, o grupo e teleportado[ENTER]para fora da fortaleza.",d.notice)
                 
                local pids = {party.get_member_pids()}
                local ticketGroup = {get_special_item_group (10033)}
                for i, pid in next, pids, nil do
                    q.begin_other_pc_block(pid)
                    local canPass = false
                    for idx=1, table.getn(ticketGroup),2 do
                        if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
                            canPass = true
                            pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])
                            break
                        end
                    end
                     
                    if not canPass then
                        pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
                    end
                    q.end_other_pc_block()
                end
                d.setqf2("flame_dungeon","ticket_delete",1)
                d.setf("dungeon_enter",1)
                 
                party.setf("dungeon_index", d.get_map_index())
                d.setf("party_leader_pid", party.get_leader_pid())
            end
            if d.getf("level") < 7 then --???? ???
                if d.getf("clear_count") == 6 then -- ? ??? ??? ???
                    d.setf("level",7)
                else
                    local rand = number(1,6)--???? ????? ?? ???? ?? ?? ?????? ???
                    local setlev = 0
                    d.setf("level",7) -- ?? ?? ??? ?? ??? ?????? ??? ????? ????
                    for i=1,50 do
                        setlev = setlev + 1
                        if setlev > 6 then
                            setlev = 1
                        end
                        if not d.is_unique_dead("door"..setlev) then
                            rand = rand - 1
                            if rand == 0 then
                                d.setf("level",setlev)
                                d.setf("clear_count",d.getf("clear_count")+1)
                                break
                            end
                        end
                    end
                end
            end
                if d.getf("level") == 1 then
                    say("Missao: Aventure-se no anel de demonios[ENTER]e surja como vencedor.")
                    notice_multiline("Missao: Aventure-se no anel de demonios[ENTER]e surja como vencedor.",d.notice)
                    d.kill_unique("door1")
                    d.kill_unique("idoor1")
                    d.setf("level",11)
                    local counter_11 = 180
                    d.regen_file ("data/dungeon/flame_dungeon/".."fd_a.txt")
                elseif d.getf("level") == 11 then
                    say("Nao foram derrotados todos os demonios.")
                    say_title("Restantes: ", counter_11)
                elseif d.getf("level") == 2 then
                        say("Tarefa: Encontre a engrenagem de ouro,[ENTER]substituindo o mecanismo oculto[ENTER]na estela de Isfet.")
                        notice_multiline("Tarefa: Encontre a engrenagem de ouro, substituindo [ENTER] o mecanismo oculto na estela de Isfet.",d.notice)
                        d.spawn_mob(20386, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ??? ??
                        d.kill_unique("door2")
                        d.kill_unique("idoor2")
                        d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_b.txt")
                        d.setf("level",12)
                elseif d.getf("level") == 12 then
                    say("O mecanismo na estela de Isfet so pode ser[ENTER]acionado com a roda de engrenagem de ouro.[ENTER]Volta quando a tarefa foi cumprida.")
                elseif d.getf("level") == 3 then
                    say("Missao: Aventure-se no anel de demonios e[ENTER]surja como vencedor.")
                    notice_multiline("Missao: Aventure-se no anel de demonios e[ENTER]surja como vencedor.",d.notice)
                    d.kill_unique("door3")
                    d.kill_unique("idoor3")
                    d.setf("level",13)
                    local counter_13 = 180
                    d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt")
                elseif d.getf("level") == 13 then
                    say("Nao foram derrotados todos os demonios.")
                    say_title("Restantes: ", counter_13)
                elseif d.getf("level") == 4 then -- 474 178
                    say("Tarefa: Derrote Ignator, guarda das brasas.")
                    notice_multiline("Tarefa: Derrote Ignator, guarda das brasas.",d.notice)
                    d.setf("level",14)
                    d.kill_unique("door4")
                    d.kill_unique("idoor4")
                    d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_d.txt")
                    d.spawn_mob(6051,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- ????? ??
                elseif d.getf("level") == 14 then
                    say("Ignator ainda nao foi derrotado.[ENTER]Fortaleca-se ou recebera a condenacao eterna.[ENTER]Volte se a tarefa for cumprida.")
                elseif d.getf("level") == 5 then -- 510 355
                    say("Missao: Procurar as Pedras de Maat e coloca-as[ENTER]na ordem correta nas 7 estelas de Isfet.")
                    say("Se usares a Pedra de Maat na estela errada,[ENTER]a pedra ira partir-se.")
                    notice_multiline("Missao: Procurar as Pedras de Maat e coloca-as[ENTER]na ordem correta nas 7 estelas de Isfet.",d.notice)
                    notice_multiline("Se usares a Pedra de Maat na estela errada,[ENTER]a pedra ira partir-se.",d.notice)
                    d.kill_unique("door5")
                    d.kill_unique("idoor5")
                    d.setf("level",15)
                    d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
                    local vis = { 0,0,0,0,0,0,0}
                    for i=1,7 do
                        vis[i] = 0
                    end
                    for i = 1, 7 do -- ???? ???
                        local ran = number(1,7)
                        local st = 0
                        for j = 1, 50 do
                            st = st + 1
                            if st > 7 then
                                st = 1
                            end
                            if vis[st] == 0 then
                                ran = ran - 1
                                if ran == 0 then
                                    vis[st] = 1
                                    d.set_unique("stone5_"..st, d.spawn_mob(20386, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
                                    break
                                end
                            end
                        end
                    end 
                elseif d.getf("level") == 15 then
                    say("Errar e humano! Portanto, escolha com sabedoria[ENTER]para resolver o misterio. Volte se a tarefa[ENTER]for cumprida.")
                elseif d.getf("level") == 6 then -- 507 490
                    say("Tarefa: So quem nao tem medo do calor abrasador,[ENTER]ira destruir a Metin do purgatorio.")
                    notice_multiline("Tarefa: So quem nao tem medo do calor abrasador,[ENTER]ira destruir a Metin do purgatorio.",d.notice)
                    d.setf("level",16)
                    d.kill_unique("door6")
                    d.kill_unique("idoor6")
                    d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_f.txt")
                    d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- ?????? ??
                elseif d.getf("level") == 16 then
                    say(" ")
                    say("Vamos colocar a Metin do purgatorio em cinzas.[ENTER]Volta se a tarefa for cumprida.")
                elseif d.getf("level") == 7 then
                    flame_dungeon.go_boss()
                else
                    say(" ")
                end
            npc.unlock()        
        end
     
        when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 11 begin -- 2?? ??? ?? ??
            if d.getf("counter_11") == 0 then -- 1?? ??? ???
                notice_multiline("Todos os demonios foram derrotados.",d.notice)
                notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)
                flame_dungeon.level_clear()
            else
                d.setf("counter_11",d.getf("counter_11")-1)
            end
        end
 
        when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 13 begin -- 2?? ??? ?? ??
            if d.getf("counter_13") == 0 then -- 1?? ??? ???
                notice_multiline("Todos os demonios foram derrotados.",d.notice)
                notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)
                flame_dungeon.level_clear()
            else
                d.setf("counter_13",d.getf("counter_13")-1)
            end
        end
 
        when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2?? ??? ?? ??
            local i = number(1, 100) -- 100?? 1 ??? ????
            if i == 1 then
                game.drop_item (30329, 1)
            end
        end
        when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin -- 2?? ?? ????
            local i = number(1, 5) -- 5?? 1 ??? ?? ??
            if i == 1 then
                npc.purge()
                item.remove()
                notice_multiline("A estela de Isfet foi destruida.",d.notice)
                notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)
                flame_dungeon.level_clear()
            else
                item.remove()
                say("Esta peca e falsa e foi destruida.[ENTER]Procura a original.")
            end
        end
 
        when 6051.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
            notice_multiline("Ignator, guarda das brasas, foi destruido.",d.notice)
            notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)
            flame_dungeon.level_clear()
        end
 
        when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5?? ??? ?? ??
            local i = number(1, 30) -- 30?? 1 ??? ????
            if i == 1 then
                game.drop_item (30330, 1)
            end
        end
        when 20386.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin -- 5?? ???? ????
            local setting = flame_dungeon.setting()
            if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????
                npc.purge()
                item.remove()
                say("Essa foi uma escolha sabia.[ENTER]Destrua agora a proxima estela.")
                d.setf("stonekill",2) -- 2? ?? ???
                if d.count_monster() < 100 then
                    d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_2") then 
                if d.getf("stonekill") == 2 then -- 2??? ?? ??? 2???? ??? ??? ?
                    npc.purge()
                    item.remove()
                    say("Essa foi uma escolha sabia.[ENTER]Destrua agora a proxima estela.")
                    d.setf("stonekill",3)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Ordem errada. A Pedra de Maat foi destruida.")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
                if d.getf("stonekill") == 3 then
                    npc.purge()
                    item.remove()
                    say("Essa foi uma escolha sabia.[ENTER]Destrua agora a proxima estela.")
                    d.setf("stonekill",4)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Ordem errada. A Pedra de Maat foi destruida.")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
                if d.getf("stonekill") == 4 then
                    npc.purge()
                    item.remove()
                    say("Essa foi uma escolha sabia.[ENTER]Destrua agora a proxima estela.")
                    d.setf("stonekill",5)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Ordem errada. A Pedra de Maat foi destruida.")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
                if d.getf("stonekill") == 5 then
                    npc.purge()
                    item.remove()
                    say("Essa foi uma escolha sabia.[ENTER]Destrua agora a proxima estela.")
                    d.setf("stonekill",6)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Ordem errada. A Pedra de Maat foi destruida.")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
                if d.getf("stonekill") == 6 then
                    npc.purge()
                    item.remove()
                    say("Essa foi uma escolha sabia. Destrua agora a ultima[ENTER]estela e Maat triunfara sobre Isfet.")
                    d.setf("stonekill",7)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Ordem errada. A Pedra de Maat foi destruida.")
                end
            else
                if d.getf("stonekill") == 7 then
                    npc.purge()
                    item.remove()
                    notice_multiline("A estela de Isfet foi destruida.",d.notice)
                    notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)
                    flame_dungeon.level_clear()
                else
                    item.remove()
                    say("Ordem errada. A Pedra de Maat foi destruida.")
                end
            end
        end
 
        when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ??? ???? ?
            notice_multiline("A Metin do purgatorio foi destruida.",d.notice)
            notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)
            flame_dungeon.level_clear()
        end
 
        when 6091.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- ?? ????
            notice_multiline("Razador foi destruido.",d.notice)
            notice_multiline("Todos os lutadores seram teleportados[ENTER]em um minuto do Templo do Dragao.",d.notice)
            timer("exit_dungeon", 60)
            flame_dungeon.level_clear()
             
            if party.is_party() then
                party.setf("flame_dungeon_boss_kill_count", 1)
            end
             
        end
         
        when exit_dungeon.timer begin
            local setting = flame_dungeon.setting()
            flame_dungeon.clear_timer(d.get_map_index())
            d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2])
            d.exit_all()
            d.setf("party_leader_pid", 0)
        end
         
    end
end

 

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Popular Days

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • 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.