Jump to content

Devilcatacomb problem


Recommended Posts

Hi,

I have big problem with devilcatacomb.

I don't have acces to catacombs.

cats.jpg

quest devilcatacomb_zone begin
    state start begin
    
    function is_closed()
        return (game.get_event_flag("dc_closed") > 0)    --close dialog
    end
    
    function setting()
        return
        {
        ["base"]={["x"] = 3072  , ["y"]= 12032 ,},
        ["floor1_s"] = { ["x"] = 20, ["y"] = 20, },
        ["floor1_e"] = { ["x"] = 500, ["y"] = 470,},
        ["floor2_s"] = { ["x"] = 510, ["y"] = 18, },
        ["floor2_e"] = { ["x"] = 978, ["y"] = 470,},
        ["floor1_entry"] = {["x"] = 73, ["y"] = 63,},
        ["floor2_entry"] = {["x"] = 550, ["y"] = 45,},
        ["floor3_entry"] = {["x"] = 1378, ["y"] = 249,},
        ["floor4_entry"] = {["x"] = 70, ["y"] = 592,},
        ["floor5_entry"] = {["x"] = 846, ["y"] = 898},
        ["floor6_entry"] = {["x"] = 1362, ["y"] = 666},
        ["floor7_entry"] = {["x"] = 73, ["y"] = 1156},
        ["map_idx"] = 216,
        ["rag"] = 30311,
        ["devil_king"] = 2591,
        ["reapers_credit1"] = 30319,
        ["reapers_credit2"] = 30320,
        ["reapers_credit3"] = 76002,
        ["floor3_stone"] = 8038,  
        ["floor3_stone_pos"] = {
                {1366,    150},
                {1366,    351},
                {1234,    365},
                {1234,    140},
                {1150,    135},
                {1130,    365},
                {1135,    253}
        },
        ["mob_regen_file_path"] = "data/dungeon/devilcatacomb/",
        ["floor4_regen_file"] = {"devilcatacomb_floor4_regen1.txt",
                               "devilcatacomb_floor4_regen2.txt",
                               "devilcatacomb_floor4_regen3.txt",
                               "devilcatacomb_floor4_regen4.txt",
                               "devilcatacomb_floor4_regen5.txt"} ,
        ["credit_stone"] = 30101,
        ["credit_stone_pos"] = {307,323},
        ["floor2_stone"] = 30103,
        ["floor2_stone_pos"] = {741,217},
        ["floor2_merchant_npc"] = 20368,
        ["floor2_merchant_npc_pos"] = {734,214},
        
        ["floor4_npc"] = 30104,
        ["floor4_npc_pos"] = {500, 717},
        ["devil_king_pos"] = {{673,829},{691,638},{848,568},{1026,642},{1008,862}},
        ["unlock_stone"] = 30312,
        ["floor5_stone"] = 30102,
        ["floor5_stone_pos"] = {848, 735},
        ["devil_great_king"] = 2597 ,
        ["devil_great_king_pos"] = {1303,704},
        ["devil_emperor"] = 2598,
        ["devil_emperor_pos"] = {74,1103},
        ["dc2_door_set_size"] = {4,2,3,2},
        ["dc2_door_set1"] = {
                                {{30111,    566,    117,    5},{30112,  562,    311,    5,},{30118, 663,    434,    7},{30119,  881,    434,    7}},
                                {{30116,    743,    390,    3},{30119,  612,    251,    1,}},
                                {{30113,    654,    211,    5},{30111,  707,    338,    7,},{30112, 775,    336,    7}},
                                {{30117,    733,    294,    3},{30113,  694,    271,    1,}}
                            },
        ["dc2_door_set2"] = {
                                {{30115,    942,    141,    5},{30116,  942,    245,    5},{30117,  942,    321,    5},{30115,  763,    64, 7}},
                                {{30118,    643,    116,    3},{30114,  900,    167,    1}},
                                {{30114,    850,    293,    5},{30113,  715,    164,    7},{30114,  817,    162,    7}},
                                {{30111,    802,    277,    1},{30112,  800,    241,    1}}
                            },
        }
    end
        when login begin
            local setting = devilcatacomb_zone.setting()
            local idx = pc.get_map_index()
            if idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then
--                pc.set_warp_location(65, 5914, 992)         -----------¾Æ±Íµ¿±¼ ÁÂÇ¥·Î
                local level = d.getf("level")
                -- warp locationÀÌ 0,0 ÀÌ¸é ½Ã½ºÅÛ »óÀ¸·Î, Á¾·á ½Ã, Á¾·á À§Ä¡¸¦ ½ÃÀÛ À§Ä¡·Î ÀúÀåÇÑ´Ù.
                d.set_warp_location (0, 0, 0)
                    
                if level == 2 then
                    say(gameforge.devilcatacomb_zone._10_say)
                    say(string.format(gameforge.devilcatacomb_zone._20_say, 60))
                elseif level == pc.getqf ("level") then
--                    say ("³«¿ÀµÇÁö ¾Ê±â À§ÇØ µ¿·áµé°ú ÇÕ·ùÇϽʽÿÀ.")
                    say(gameforge.devilcatacomb_zone._30_say)
                else
                    say(gameforge.devilcatacomb_zone._40_say)
--                    say ("´ç½ÅÀº ³«¿ÀµÇ¾ú½À´Ï´Ù. ¿ë½ÅÀÇ ÈûÀ» ºô¾î Àá½Ã µÚ µ¿±¼ ¹ÛÀ¸·Î À̵¿ÇÕ´Ï´Ù.")
                    timer ("devilcatacomb_ban_timer", 5)
                end
            end
            if idx == setting.map_idx then
                pc.setf("devilcatacomb_zone","last_exit_time", get_global_time())
                -- 2ÃþÀÌ»óÀ̸é, ÂѰܳª
                if pc.get_x() < setting.floor1_s.x + setting.base.x
                    or pc.get_y() < setting.floor1_s.y + setting.base.y
                    or pc.get_x() > setting.floor1_e.x + setting.base.x
                    or pc.get_y() > setting.floor1_e.y + setting.base.y
                then
                    -- ¾Æ±Íµ¿±¼ ÀÔ±¸·Î
--                    if not is_test_server() then
                        say(gameforge.devilcatacomb_zone._40_say)
                        timer ("devilcatacomb_ban_timer", 5)
--                    end
                else 
                    -- ¾Æ±Íµ¿±¼ ÀÔ±¸·Î
--                    pc.set_warp_location(65, 5914, 992)
                    say(gameforge.devilcatacomb_zone._50_say)
                end
            end
        end
        when logout begin
            local idx = pc.get_map_index()
            local setting = devilcatacomb_zone.setting()
            if idx == setting.map_idx or idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then
                pc.setf("devilcatacomb_zone","last_exit_time", get_global_time())
            end
        end
        when devilcatacomb_ban_timer.timer begin
            pc.warp((5914)*100, (992)*100, 65)
        end
        when warp_timer.timer begin
            local level = d.getf("level")
            local level_switch = {
                [3] = gameforge.devilcatacomb_zone._60_say,
                [4] = gameforge.devilcatacomb_zone._70_say,
                [5] = gameforge.devilcatacomb_zone._80_say,
                [6] = gameforge.devilcatacomb_zone._90_say,
            }
            local t = 3600 -(get_global_time() - d.getf("enter_time"))
            local t_r = math.mod (t, 60)
            local t_m = (t - t_r) / 60
            d.notice ( level_switch[level] )
            d.notice(string.format(gameforge.devilcatacomb_zone._20_say, t_m))
            d.set_warp_location (0, 0, 0)
        end
        when devilcatacomb_man.chat.gameforge.devilcatacomb_zone._100_npcChat with not devilcatacomb_zone.is_closed() begin
            local setting = devilcatacomb_zone.setting()
            if pc.get_level() < 75 then
                say(gameforge.devilcatacomb_zone._110_say)
            elseif pc.getf("deviltower_zone","9_done") == 0 then
                say(gameforge.devilcatacomb_zone._120_say)
            elseif ((get_global_time() - pc.getf("devilcatacomb_zone","last_exit_time")) < 1800) then
                say(gameforge.devilcatacomb_zone._130_say)
            else
                say(gameforge.devilcatacomb_zone._140_say)
                local s = select(gameforge.devilcatacomb_zone._150_select, gameforge.devilcatacomb_zone._160_select)
                if s == 1 then
                    pc.warp ((setting.floor1_entry.x + setting.base.x )* 100, (setting.floor1_entry.y + setting.base.y) * 100)
                end
            end
        end
    
        -- ¸ó½ºÅÍ°¡ Á×À¸¸é ¹ß»ýÇÏ´Â À̺¥Æ®.
        when kill begin
            local setting = devilcatacomb_zone.setting()
            -- ¾Æ±Íµ¿±¼ 1ÃþÀ̸é 1% È®·ü·Î ±Ý½Ã°ÇÀ» µå¶øÇÑ´Ù.
            if pc.get_x() > setting.floor1_s.x + setting.base.x
                    and pc.get_y() > setting.floor1_s.y + setting.base.y
                    and pc.get_x() < setting.floor1_e.x + setting.base.x
                    and pc.get_y() < setting.floor1_e.y + setting.base.y then
                local j = number(1, 100)
                if j == 1 then
                    game.drop_item (setting.rag, 1)
                end
            end
        end
    function spawn_doors ()
        local setting = devilcatacomb_zone.setting()
        for i = 1, 4 do
            local mob_set = setting.dc2_door_set1[i]
            local set_size = setting.dc2_door_set_size[i]
            for j = 1, set_size do
                d.set_unique (i.."_1_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4]))
            end
            mob_set = setting.dc2_door_set2[i]
            for j = 1, set_size do
                d.set_unique (i.."_2_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4]))
            end
        end
    end
        -- ±Ý½Ã°ÇÀ» ³ªÂûÀÎÁõ¼®¿¡ µå·¡±×Çϸé 2ÃþÀ¸·Î º¸³½´Ù. 2ÃþºÎÅÍ´Â ´øÀüÀÌ´Ù.
        when devilcatacomb_credit_stone. take  begin
            local setting = devilcatacomb_zone.setting()
        
            if item.vnum == setting.rag then 
                if not party.is_party() then
                    say(gameforge.devilcatacomb_zone._170_say)
                    return
                elseif party.is_in_dungeon() then
                    say(gameforge.devilcatacomb_zone._180_say)
                    return
                end
                item.remove()
                say(gameforge.devilcatacomb_zone._190_say)
                wait()
                say(gameforge.devilcatacomb_zone._200_say)
                wait()
                d.new_jump_party (setting.map_idx, setting.floor2_entry.x + setting.base.x  , setting.floor2_entry.y + setting.base.y )
                d.setqf2("devilcatacomb_zone","level", 2)
                d.setf ("level",2)
                d.regen_file (setting.mob_regen_file_path.."dc_2f_regen.txt")
                
                d.spawn_mob (setting.floor2_merchant_npc, setting.floor2_merchant_npc_pos[1], setting.floor2_merchant_npc_pos[2])
                d.spawn_mob (setting.floor2_stone, setting.floor2_stone_pos[1], setting.floor2_stone_pos[2])
                
                devilcatacomb_zone.spawn_doors ()
                server_timer('devilcatacomb_45m_left_timer',60 * 15, d.get_map_index())
                d.setf("enter_time", get_global_time())
            end    
        end
        
        when devilcatacomb_45m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 45))
                server_timer('devilcatacomb_30m_left_timer', 60 * 15, get_server_timer_arg())
            end
        end
        when devilcatacomb_30m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 30))
                server_timer('devilcatacomb_15m_left_timer', 60 * 15, get_server_timer_arg())
            end
        end
    
        when devilcatacomb_15m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 15))
                server_timer('devilcatacomb_5m_left_timer', 60 * 10, get_server_timer_arg())
            end
        end
        when devilcatacomb_5m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 5))
                server_timer('devilcatacomb_1m_left_timer', 60 * 4, get_server_timer_arg())
            end
        end
        
        when devilcatacomb_1m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 1))
                server_timer ("devilcatacomb_0m_left_timer", 60 * 1, get_server_timer_arg())
            end
        end
        
        when devilcatacomb_0m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice (gameforge.devilcatacomb_zone._210_dNotice)
                d.set_warp_location (65, 5914, 992)
                server_timer('devilcatacomb_exit_timer', 7, get_server_timer_arg())
            end
        end
    
    function is_dc2_doors_clear ()
        local setting = devilcatacomb_zone.setting()
        local clear = true
        for i = 1, 4 do
            local set_clear = true
            local mob_set = setting.dc2_door_set1[i]
            local set_size = setting.dc2_door_set_size[i]
            for j = 1, set_size do
                set_clear = set_clear and d.is_unique_dead (i.."_1_"..j)
            end
            if not set_clear then
                set_clear = true
                mob_set = setting.dc2_door_set2[i]
                for j = 1, set_size do
                    set_clear = set_clear and d.is_unique_dead (i.."_2_"..j)
                end
            end
            clear = clear and set_clear
        end
        return clear
    end
    
        -- ÇöȲ¼®À» Ŭ¸¯Çϸé 3Ãþ ÁøÀÔ ¿©ºÎ¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ°í
        -- ÁøÀԽà »ç½ÅÀÇÁõÇ¥¸¦ °Ë»çÇÑ´Ù.
        -- »ç½ÅÀÇ ÁõÇ¥°¡ ¾ø´Ù¸é ¹ÛÀ¸·Î ¿öÇÁµÈ´Ù.
        when devilcatacomb_floor2_stone.click begin
            local setting = devilcatacomb_zone.setting()
            
            if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then
                if not devilcatacomb_zone.is_dc2_doors_clear () then
                    say(gameforge.devilcatacomb_zone._220_say)
                    wait ()
                    return
                end
                say(gameforge.devilcatacomb_zone._230_say)
                wait()
                say(gameforge.devilcatacomb_zone._240_say)
                wait()
                local s = select(gameforge.devilcatacomb_zone._150_select, gameforge.devilcatacomb_zone._160_select)
                if s == 1 then
                    if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then
                        d.setf("devilcatacomb_floor2_stone_clicked", 1)
                        d.setqf2("devilcatacomb_zone","last_exit_time", get_global_time())
                        d.set_item_group ("reapers_credit", 3, setting.reapers_credit3, 1, setting.reapers_credit2, 1, setting.reapers_credit1, 1)
                        d.say_diff_by_item_group("reapers_credit", gameforge.devilcatacomb_zone._250_say, gameforge.devilcatacomb_zone._260_say)
                        timer ("devilcatacomb_floor3_enter_timer", 7)
                    end
                end
            else
                say(gameforge.devilcatacomb_zone._270_say)
            end
        end
        
        when devilcatacomb_floor3_enter_timer.timer begin
            local setting = devilcatacomb_zone.setting()
            d.set_warp_location (65, 5914, 992)
            d.exit_all_by_item_group ("reapers_credit")
            d.delete_item_in_item_group_from_all ("reapers_credit")
            d.purge ()
            d.jump_all (setting.floor3_entry.x + setting.base.x , setting.floor3_entry.y + setting.base.y)
            d.setf("level",3)
            d.setqf2("devilcatacomb_zone","level", 3)
            d.regen_file (setting.mob_regen_file_path.."dc_3f_regen.txt")
            timer("warp_timer",3)
            
            local position = setting.floor3_stone_pos
        
            local n = number(1,7)
            for i = 1, 7 do
                if (i != n)
                then
                    d.set_unique("fake"..i, d.spawn_mob( setting.floor3_stone, position[i][1], position[i][2]))
                end
            end
        
            local vid = d.spawn_mob( setting.floor3_stone, position[n][1], position[n][2])
            d.set_unique ("real",vid)
            if (is_test_server()) then
                -- real stone pos
                chat (position[n][1],position[n][2])
            end
    
        end
        when kill begin
            if npc.get_race() == 8038 then
                local setting = devilcatacomb_zone.setting()
                -- µ¹ÀÌ Æı«µÇ¸é ÁøÂ¥°¡ Á×¾ú´ÂÁö È®ÀÎÇغ»´Ù.
                -- ÁøÂ¥°¡ Á×¾úÀ¸¸é 4ÃþÀ¸·Î À̵¿ÇÑ´Ù.
                if d.is_unique_dead("real") then
                    d.notice(gameforge.devilcatacomb_zone._280_dNotice)
                    
                    d.setf ("level",4)
                    d.setqf2("devilcatacomb_zone","level", 4)
                    timer ("devilcatacomb_floor4_enter_timer", 3)
                else
                    d.notice(gameforge.devilcatacomb_zone._290_dNotice)
                end
            end
        end
        when devilcatacomb_floor4_enter_timer.timer begin
            local setting = devilcatacomb_zone.setting()
            local i = number (1, 5)
            timer("warp_timer",3)
            d.purge ()
            d.jump_all (setting.floor4_entry.x + setting.base.x , setting.floor4_entry.y + setting.base.y)
            d.regen_file (setting.mob_regen_file_path.."dc_4f_regen.txt")
            d.regen_file (setting.mob_regen_file_path..setting.floor4_regen_file[i])
            if (is_test_server()) then
                d.notice (setting.floor4_regen_file[i])
            end
            d.spawn_mob (setting.floor4_npc, setting.floor4_npc_pos[1], setting.floor4_npc_pos[2])
        end
        -- devilcatacomb_floor4_stone´Â Ŭ¸¯ ½Ã 4Ãþ¿¡¼­ 5ÃþÀ¸·Î À̵¿½ÃÅ°´Â npcÀÌ´Ù.
        when devilcatacomb_floor4_stone.click begin
            local setting = devilcatacomb_zone.setting()
            local n = number (1,5)
            say(gameforge.devilcatacomb_zone._300_say)
            wait()
            if (is_test_server()) then
                -- devil_king pos
                chat (setting.devil_king_pos[n][1], setting.devil_king_pos[n][2])
            end
            d.purge ()
            d.jump_all (setting.floor5_entry.x + setting.base.x, setting.floor5_entry.y + setting.base.y )
            d.setf ("level",5)
            d.setqf2("devilcatacomb_zone","level", 5)
            timer("warp_timer",3)
            d.regen_file (setting.mob_regen_file_path.."dc_5f_regen.txt")
            d.spawn_mob (setting.devil_king, setting.devil_king_pos[n][1], setting.devil_king_pos[n][2])
            d.spawn_mob (setting.floor5_stone, setting.floor5_stone_pos[1], setting.floor5_stone_pos[2])
        end
        
        -- ¾Æ±Í¿Õ(2591)ÀÌ Á×À¸¸é ºÀÀÎÇØü¼® µå¶ø
        when kill begin
            if npc.get_race() == 2591 then
                local setting = devilcatacomb_zone.setting()
                game.drop_item (setting.unlock_stone, 1)
            end
        end
        -- »ç½Å±ÝÁ¦ºñ(30102)¿¡ ±ÝÁ¦ÇØü¼®ºÀÀ» µå·¡±×ÇÏ¸é ¸ðµç ¸ó½ºÅ͸¦ Á×ÀÌ°í
        -- 6ÃþÀ¸·Î À̵¿Çϴ ŸÀ̸Ӹ¦ µ¿ÀÛ½ÃŲ´Ù.
        when devilcatacomb_floor5_stone.take begin
            local setting = devilcatacomb_zone.setting()
            if item.vnum == setting.unlock_stone then
                item.remove ()
                d.notice(gameforge.devilcatacomb_zone._310_dNotice)
                -- 6ÃþÀ¸·Î À̵¿
                d.clear_regen()
                d.purge()
                timer("devilcatacomb_floor6_timer",2)
            end
        end
        when devilcatacomb_floor6_timer.timer begin
            local setting = devilcatacomb_zone.setting()
            d.setf("level",6)
            d.setqf2("devilcatacomb_zone","level", 6)
            d.jump_all (setting.floor6_entry.x + setting.base.x, setting.floor6_entry.y + setting.base.y )
            d.regen_file (setting.mob_regen_file_path.."dc_6f_regen.txt")
            d.spawn_mob (setting.devil_great_king, setting.devil_great_king_pos[1], setting.devil_great_king_pos[2])
            timer("warp_timer",3)
        end
        
        -- ¾Æ°É(2597)ÀÌ Á×À¸¸é, 6ÃþÀÇ Å¸À̸Ó1ÀÌ µ¿ÀÛÇÑ´Ù.
        when kill begin
            if npc.get_race() == 2597 then
                server_timer ("floor6_eli_check_timer_1", 5,d.get_map_index())
            end
        end
        -- 6ÃþÀÇ Å¸À̸Ó1Àº ´øÀüÀÇ ¸ðµç ¸ó½ºÅÍ ¼ýÀÚ¸¦ º¸°í,
        -- 0À̸é 7ÃþÀ¸·Î ¿öÇÁÇϴ ŸÀ̸Ӹ¦ µ¿ÀÛÇÑ´Ù.
        -- ¹Ù·Î 7ÃþÀ¸·Î °¡Áö ¾Ê´Â ÀÌÀ¯´Â, À¯Àú¿¡°Ô ÁغñÇÒ ½Ã°£À» ÁÖ±â À§Çؼ­ÀÌ´Ù.
        -- 1À̸é ŸÀ̸Ó2¸¦ µ¿ÀÛ½ÃŲ´Ù.
        -- ŸÀ̸Ó1À» recursiveÇÏ°Ô µ¿ÀÛ½ÃÅ°Áö ¾ÊÀº °ÍÀº,
        -- ±×·² °æ¿ì resetÇÑ Å¸À̸Ó1ÀÌ µ¿ÀÛÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù.
        when floor6_eli_check_timer_1.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.count_monster() == 0 then
                    say_in_map (get_server_timer_arg(), gameforge.devilcatacomb_zone._320_say)
                    server_timer ("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
                else
                    server_timer ("floor6_eli_check_timer_2", 5, get_server_timer_arg())
                end
            end
        end
        when floor6_eli_check_timer_2.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.count_monster() == 0 then
                    say_in_map (get_server_timer_arg(), gameforge.devilcatacomb_zone._320_say)
                    server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
                else
                    server_timer ("floor6_eli_check_timer_1", 5, get_server_timer_arg())
                end
            end
        end
        
        when devilcatacomb_floor7_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                local setting = devilcatacomb_zone.setting()
                d.setf("level",7)
                d.setqf2("devilcatacomb_zone","level", 7)
                d.jump_all (setting.floor7_entry.x + setting.base.x, setting.floor7_entry.y + setting.base.y )
                d.regen_file (setting.mob_regen_file_path.."dc_7f_regen.txt")
                d.spawn_mob (setting.devil_emperor, setting.devil_emperor_pos[1], setting.devil_emperor_pos[2])
                server_timer ("devilcatacomb_floor7_say_timer", 2, get_server_timer_arg())
            end    
        end
        when devilcatacomb_floor7_say_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                local t = 3600 -(get_global_time() - d.getf("enter_time"))
                local t_r = math.mod (t, 60)
                local t_m = (t - t_r) / 60
                d.notice(gameforge.devilcatacomb_zone._330_dNotice)
                d.notice(string.format(gameforge.devilcatacomb_zone._20_say, t_m))
                d.set_warp_location (0, 0, 0)
            end
        end
        -- 6Ãþ°ú ¸¶Âù°¡Áö·Î »ç¸¶ÈÖ(2598)ÀÌ Á×À¸¸é
        -- 7ÃþÀÇ Å¸À̸Ӱ¡ ÀÛµ¿ÇÑ´Ù.
        when kill begin
            if npc.get_race() == 2598 then
                server_timer ("floor7_eli_check_timer_1", 5, d.get_map_index())
            end
        end
        
        -- 7ÃþÀÇ Å¸À̸Ӵ 6Ãþ ŸÀÌ¸Ó¿Í ºñ½ÁÇϸç,
        -- ¸ó½ºÅÍ ¼ýÀÚ°¡ 0À̸é exit ŸÀ̸Ӹ¦ ¹ß»ý½ÃŲ´Ù.
        -- ¹Ù·Î exitÇÏÁö ¾Ê´Â ÀÌÀ¯´Â, À¯Àúµé¿¡°Ô ÁغñÇÒ ½Ã°£À» ÁÖ±â À§Çؼ­ÀÌ´Ù.
        when floor7_eli_check_timer_1.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.count_monster() == 0 then
                    d.set_warp_location (65, 5914, 992)
                    d.setqf2("devilcatacomb_zone","done", 1)
                    say_in_map (get_server_timer_arg(), gameforge.devilcatacomb_zone._340_say)
                    clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())
                    server_timer("devilcatacomb_exit_timer", 60, get_server_timer_arg())
                else
                    server_timer ("floor7_eli_check_timer_2", 5, get_server_timer_arg())
                end
            end
        end
        when floor7_eli_check_timer_2.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.count_monster() == 0 then
                    d.set_warp_location (65, 5914, 992)
                    d.setqf2("devilcatacomb_zone","done", 1)
                    say_in_map (get_server_timer_arg(), gameforge.devilcatacomb_zone._340_say)
                    clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())
                    server_timer("devilcatacomb_exit_timer", 60, get_server_timer_arg())
                else
                    server_timer ("floor7_eli_check_timer_1", 5, get_server_timer_arg())
                end
            end
        end
        when devilcatacomb_exit_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.setqf2("devilcatacomb_zone","level", 0)
                d.setqf2("devilcatacomb_zone","last_exit_time", get_global_time())
                clear_server_timer("devilcatacomb_5m_left_timer", get_server_timer_arg())
                clear_server_timer("devilcatacomb_1m_left_timer", get_server_timer_arg())
                clear_server_timer("devilcatacomb_0m_left_timer", get_server_timer_arg())
                clear_server_timer("floor6_eli_check_timer_1", get_server_timer_arg())
                clear_server_timer("floor6_eli_check_timer_2", get_server_timer_arg())
                clear_server_timer("floor7_eli_check_timer_1", get_server_timer_arg())
                clear_server_timer("floor7_eli_check_timer_2", get_server_timer_arg())
                clear_server_timer("devilcatacomb_floor7_say_timer", get_server_timer_arg())
                clear_server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
                d.clear_regen()
                d.exit_all()
            end
        end
    end  --state
end   --quest

Here is quest.

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

  • Premium

Maybe because one of these function: 

            elseif pc.getf("deviltower_zone","9_done") == 0 then
                say(gameforge.devilcatacomb_zone._120_say)
            elseif ((get_global_time() - pc.getf("devilcatacomb_zone","last_exit_time")) < 1800) then
                say(gameforge.devilcatacomb_zone._130_say)

I dont understand your language so i cant say which of these it is.

Link to comment
Share on other sites

If this is like the official to enter the devil's catacomb u must:

- Completed a dt run at least one time (it doesnt matter if u killed the Death Reaper or somebody else but u have to stay untill Death Reaper is dead and the server teleports u automatically out of the dt - no logouts)

- Be level 75

:) hope i helped

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



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