Yardım Catacomb Questi

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

mnyk2070

MT Üye
MT Üye
Editör
Mesaj
394
Çözümler
11
Beğeni
131
Puan
499
merhabalar elinde türkçe karakterlerle yazılmış catabomb questi olan varmı baktığım hiç bir questlerde aradığım türkçe yazılar yok örnek quest bırakıyorum
 

Dosya Eklentileri

  • devilcatacomb_zone.rar
    6,6 KB · Gösterim: 8
Ayarları çek kullan


Lua (Quest):
quest devilcatacomb_zone begin
    state start begin

    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,
        ["reapers_credit4"] = 79001,

        ["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 logout or disconnect 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
                if pc.getqf ("katakombfix") == 1 then
                    pc.setqf ("katakombfix",0)
                end
            end
        end
        
        when login begin
        
            if pc.getqf ("katakombfix") == 1 then
                pc.setqf ("katakombfix",0)
            end
            
            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("3. kata ulamak i?n bu kap?ar? m??lerini s?!")
                    say("60 dakikan daha var.")
                    pc.setqf ("katakombfix",1)
                elseif level >= 3 then
                    if pc.getqf ("katakombfix") != 1 then
                        chat("Karakter at? bug yapt嬉? i?n k?e 詰?lanacaks? !")
                        warp_to_village()
                        return
                    end
                    
                elseif level == pc.getqf ("level") then
--                    say ("낙오되지 않기 위해 동료들과 합류하십시오.")
                    --say (locale.devilcatacomb_follow_peer)
                else
--                    say (locale.devilcatacomb_dropout)
--                    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 (locale.devilcatacomb_dropout)
                        timer ("devilcatacomb_ban_timer", 5)
--                    end
                else
                    -- 아귀동굴 입구로
--                    pc.set_warp_location(65, 5914, 992)
                    say("Ruh Kristali Anahtar?n?ele ge?rmek i?n ")
                    say("yarat?lar?yok et. Bu ")
                    say("sana sonraki kat? kap???a?r. ")
                    pc.remove_item(30311, pc.count_item(30311))
                    pc.remove_item(30312, pc.count_item(30312))
                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] = "Do?u Metin Ta?n?bul ve onu yok et!",
                [4] = "5. aamaya ulamak i?n labirentten 汚k詰 yolunu bul!",
                [5] = "Tartarus'u yen ve Surat Totemi'ni al.",
                [6] = "Kharoon ve cellatlar??yen!",
            }
            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 ( "" ..t_m.." dakikan daha var.")
            d.set_warp_location (0, 0, 0)
        end

        when 20367.chat."?ytan Katakombu'na gider" with pc.get_map_index() == 65 begin
            local setting = devilcatacomb_zone.setting()
            if pc.get_level() < 75 then
                say_title("Katakomb Bek?si:")
                say("75. seviyenin alt?da oldu?n i?n ")
                say("Katakomb'a giremezsin...")
            --elseif pc.getf("deviltower_zone","9_done") == 0 then
            --    say(locale.devilcatacomb_man_say_deviltop_clear)
            --elseif ((get_global_time() - pc.getf("devilcatacomb_zone","last_exit_time")) < 1800) then
            --    say(locale.devilcatacomb_man_say_see_you_later)
            else
                say("?ytan Katakombu'na girmek")
                say("istiyor musun?")
                local s = select("Evet, b?ak i?ri gireyim!","Hay?, girmek istemiyorum.")
                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 20367.chat."Karanl? Tap?a? d?" with pc.get_map_index() == 216 begin
            say_title("Katakomb Bek?si:")
            say("")
            say("Savamaktan vazge?p Karanl? Tap?a? d?mek")
            say("istedi?ne emin misin?")
            say("")
            local s = select("Evet, ?k g淮s??.", "Hay?, savamaya devam edece?m!")
            if s == 1 then
                pc.warp(591400, 99900)
            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 30101.take  begin
            local setting = devilcatacomb_zone.setting()
        
            if item.vnum == setting.rag then
                if not party.is_party() then
                    say("Katakombun daha alt aamalar?a ge?ek i?n")
                    say("g淮l?bir gruba ihtiyac? var.")
                    say("")
                    return
                elseif party.is_in_dungeon() then
                    say("Senin grubun zaten zindanda.")
                    say("")
                    return
                end

                item.remove()
                say("M??l?kap?a汚ld? Acele et,")
                say("aa縱 iniyoruz.")
                wait()
                say("As? macera imdi bal?or. ?ytan ")
                say("Katakombu'nu kefetmek i?n sadece")
                say("bir saatin var.")
                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.regen_file(get_locale_base_path().."/map/metin2_map_devilcatacomb/base2_regen.txt")
                --d.regen_file(get_locale_base_path().."/map/metin2_map_devilcatacomb/base2_npc.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 ("45 dakikan daha var.")
                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 ("30 dakikan daha var.")
                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 ("15 dakikan daha var.")
                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 ("5 dakikan daha var.")
                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 ("1 dakikan daha var.")
                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("S?e bitti. Kendi g?enli?n i?n Devil's Catacomb'dan d詰ar?詰?lanacaks?.")
                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 30103.click begin
            local setting = devilcatacomb_zone.setting()
            
            if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then
                --if not devilcatacomb_zone.is_dc2_doors_clear () and not is_test_server() then
                    --say_title ("The Devil? Catacomb:")
                    --say ("You first have to kill each door.")
                    --say ("")
                    --wait ()
                    --return
                --end
                say("Kaplumba? Kayal嬉?na yaklat?? ")
                say("baz?grav?ler dikkat ?kiyor... ")
                wait()
                say("...Sadece K淮?en Kafa'ya sahip olanlar")
                say("bir sonraki kademeye ge?bilirler. ")
                say("K淮?en Kafa'ya sahip de?lsen yer y??e")
                say("詰?lanacaks?.")
                wait()
                local s = select("Evet, ge?ce?m!", "Hay?, ge?ek istemiyorum.")
                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", 4, setting.reapers_credit4, 1, setting.reapers_credit3, 1, setting.reapers_credit2, 1, setting.reapers_credit1, 1)
                        d.say_diff_by_item_group ("reapers_credit", "K淮?en Kafa'ya sahipsin ve art? 3. kata[ENTER]詰?lanabilirsin.[ENTER][ENTER]", "K淮?en Kafa'ya sahip de?lsin.[ENTER]?mdi ?ytan Katakombunun d詰?a[ENTER]詰?lanacaks?.[ENTER][ENTER]")
                        timer ("devilcatacomb_floor3_enter_timer", 7)
                    end
                end
            else
                say_title("Devil? Catacomb:")
                say ("")
                say ("L?fen bekle.")
                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",1)
            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")
            d.regen_file(get_locale_base_path().."/map/metin2_map_devilcatacomb/base3_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 with npc.get_race() == 8038 begin
            local setting = devilcatacomb_zone.setting()
            if d.is_unique_dead("real") then
                local n = number (1,5)
                d.notice ("Ger?k Metin Ta?n?yok ettin! Sonraki kata ge?yorsun.")
                d.setf ("bug_devam",1)
                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(get_locale_base_path().."/map/metin2_map_devilcatacomb/base5_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])
            else
                d.notice ("Yanl詰 Metin Ta?n?yok ettin. Do?usunu bul!")
            end
        end

        when devilcatacomb_floor4_enter_timer.timer begin
            local setting = devilcatacomb_zone.setting()
            local i = number (1, 4)
            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])
            d.regen_file(get_locale_base_path().."/map/metin2_map_devilcatacomb/base4_regen.txt")
            d.spawn_goto_mob(70,673 , 94,844)
                if i == 1 then
                d.spawn_goto_mob(94,839 , 70,673)
                d.spawn_goto_mob(141,865 , 369,893)
                d.spawn_goto_mob(364,893 , 136,865)
                d.spawn_goto_mob(431,935 , 194,867)
                d.spawn_goto_mob(194,862 , 426,935)
                d.spawn_goto_mob(243,853 , 277,637)
                d.spawn_goto_mob(282,637 , 243,858)
                d.spawn_goto_mob(181,667 , 323,779)
                d.spawn_goto_mob(328,779 , 499,811)
                d.spawn_goto_mob(131,668, 345,560)
                d.spawn_goto_mob(345,55 , 131,663)
                d.spawn_goto_mob(180,566 , 401,563)
                d.spawn_goto_mob(401,558 , 185,566)
                d.spawn_goto_mob(296,568 , 67,810)
                d.spawn_goto_mob(67,815 , 291,568)
                d.spawn_goto_mob(140,822 , 356,717)
                d.spawn_goto_mob(351,717 , 140,817)
                d.spawn_goto_mob(189,711 , 414,712)
                d.spawn_goto_mob(419,712 , 189,716)
                d.spawn_goto_mob(274,712 , 369,776)
                d.spawn_goto_mob(364,776 , 274,717)
                d.spawn_goto_mob(224,779 , 366,814)
                d.spawn_goto_mob(366,809 , 229,779)
                d.spawn_goto_mob(274,842 , 352,839)
                d.spawn_goto_mob(347,839 , 274,837)
                d.spawn_goto_mob(429,841 , 70,577)
                d.spawn_goto_mob(55,864 , 55,920)
                d.spawn_goto_mob(50,920 , 60,864)
                d.spawn_goto_mob(144,919 , 90,943)
                d.spawn_goto_mob(90,948 , 139,919)
                d.spawn_goto_mob(312,852 , 406,876)
                d.spawn_goto_mob(406,871 , 312,857)
                elseif i == 2 then
                d.spawn_goto_mob(70,673 , 312,857)
                d.spawn_goto_mob(312,852 , 70,668)
                d.spawn_goto_mob(431,935 , 90,943)
                d.spawn_goto_mob(90,948 , 426,935)
                d.spawn_goto_mob(144,919 , 424,841)
                d.spawn_goto_mob(429,841 , 291,568)
                d.spawn_goto_mob(296,568 , 70,577)
                d.spawn_goto_mob(181,667 , 499,811)
                d.spawn_goto_mob(131,668, 345,560)
                d.spawn_goto_mob(345,55 , 131,663)
                d.spawn_goto_mob(180,566 , 401,563)
                d.spawn_goto_mob(401,558 , 185,566)
                d.spawn_goto_mob(282,637 , 67,810)
                d.spawn_goto_mob(67,815 , 277,637)
                d.spawn_goto_mob(140,822 , 189,716)
                d.spawn_goto_mob(189,711 , 140,817)
                d.spawn_goto_mob(274,712 , 229,779)
                d.spawn_goto_mob(224,779 , 274,717)
                d.spawn_goto_mob(328,779 , 274,837)
                d.spawn_goto_mob(274,842 , 323,779)
                d.spawn_goto_mob(351,717 , 194,867)
                d.spawn_goto_mob(194,862 , 356,717)
                d.spawn_goto_mob(419,712 , 243,858)
                d.spawn_goto_mob(243,853 , 414,712)
                d.spawn_goto_mob(364,776 , 366,814)
                d.spawn_goto_mob(366,809 , 369,776)
                d.spawn_goto_mob(347,839 , 70,673)
                d.spawn_goto_mob(94,839 , 60,864)
                d.spawn_goto_mob(55,864 , 94,844)
                d.spawn_goto_mob(141,865 , 55,920)
                d.spawn_goto_mob(50,920 , 136,865)
                d.spawn_goto_mob(364,893 , 406,876)
                d.spawn_goto_mob(406,871 , 369,893)
                elseif i == 3 then
                d.spawn_goto_mob(70,673 , 312,857)
                d.spawn_goto_mob(312,852 , 70,668)
                d.spawn_goto_mob(431,935 , 274,717)
                d.spawn_goto_mob(274,712 , 426,935)
                d.spawn_goto_mob(224,779 , 140,817)
                d.spawn_goto_mob(140,822 , 229,779)
                d.spawn_goto_mob(189,711 , 94,844)
                d.spawn_goto_mob(94,839 , 189,716)
                d.spawn_goto_mob(144,919 , 424,841)
                d.spawn_goto_mob(429,841 , 499,811)
                d.spawn_goto_mob(131,668 , 185,566)
                d.spawn_goto_mob(180,566 , 131,663)
                d.spawn_goto_mob(296,568 , 277,637)
                d.spawn_goto_mob(282,637 , 291,568)
                d.spawn_goto_mob(181,667 , 345,560)
                d.spawn_goto_mob(345,555 , 186,667)
                d.spawn_goto_mob(401,558 , 67,810)
                d.spawn_goto_mob(67,815 , 401,563)
                d.spawn_goto_mob(328,779 , 274,837)
                d.spawn_goto_mob(274,842 , 323,779)
                d.spawn_goto_mob(351,717 , 369,776)
                d.spawn_goto_mob(364,776 , 356,717)
                d.spawn_goto_mob(419,712 , 366,814)
                d.spawn_goto_mob(366,809 , 414,712)
                d.spawn_goto_mob(347,839 , 70,577)
                d.spawn_goto_mob(55,864 , 55,920)
                d.spawn_goto_mob(50,920 , 60,864)
                d.spawn_goto_mob(141,865 , 90,943)
                d.spawn_goto_mob(90,948 , 136,865)
                d.spawn_goto_mob(194,862 , 369,893)
                d.spawn_goto_mob(364,893 , 194,867)
                d.spawn_goto_mob(243,853 , 406,876)
                d.spawn_goto_mob(406,871 , 243,858)
                elseif i == 4 then
                d.spawn_goto_mob(131,668 , 67,810)
                d.spawn_goto_mob(67,815 , 185,566)
                d.spawn_goto_mob(282,637 , 274,717)
                d.spawn_goto_mob(274,712 , 277,637)
                d.spawn_goto_mob(274,842 , 94,844)
                d.spawn_goto_mob(94,839 , 274,837)
                d.spawn_goto_mob(144,919 , 499,811)
                d.spawn_goto_mob(70,673 , 345,560)
                d.spawn_goto_mob(345,555 , 70,668)
                d.spawn_goto_mob(401,558 , 70,577)
                d.spawn_goto_mob(296,568 , 186,667)
                d.spawn_goto_mob(181,667 , 291,568)
                d.spawn_goto_mob(140,822 , 189,716)
                d.spawn_goto_mob(189,711 , 140,817)
                d.spawn_goto_mob(224,779 , 323,779)
                d.spawn_goto_mob(328,779 , 229,779)
                d.spawn_goto_mob(351,717 , 352,839)
                d.spawn_goto_mob(347,839 , 356,617)
                d.spawn_goto_mob(419,712 , 424,841)
                d.spawn_goto_mob(429,841 , 414,712)
                d.spawn_goto_mob(364,776 , 366,814)
                d.spawn_goto_mob(366,809 , 369,776)
                d.spawn_goto_mob(55,864 , 194,867)
                d.spawn_goto_mob(194,862 , 60,864)
                d.spawn_goto_mob(141,865 , 90,943)
                d.spawn_goto_mob(90,948 , 136,865)
                d.spawn_goto_mob(50,920 , 369,893)
                d.spawn_goto_mob(364,893 , 55,920)
                d.spawn_goto_mob(243,853 , 406,876)
                d.spawn_goto_mob(406,871 , 243,858)
                d.spawn_goto_mob(312,852 , 426,935)
                d.spawn_goto_mob(431,935 , 312,857)
                end
            
            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 30104.click begin
            local setting = devilcatacomb_zone.setting()
            local n = number (1,5)
            say("Baard?! Labirentin 汚k詰?burada. 5. kata in.")
            wait()
            if d.getf("bug_devam") == 1 then
                say_reward("Bu ilem daha ?ce yap?d?")
                return
            end
            if (is_test_server()) then
                chat (setting.devil_king_pos[n][1], setting.devil_king_pos[n][2])
            end
            d.setf ("bug_devam",1)
            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(get_locale_base_path().."/map/metin2_map_devilcatacomb/base5_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 with npc.get_race() == 2591 begin
            local setting = devilcatacomb_zone.setting()
            game.drop_item (setting.unlock_stone, 1)
        end

        -- 사신금제비(30102)에 금제해체석봉을 드래그하면 모든 몬스터를 죽이고
        -- 6층으로 이동하는 타이머를 동작시킨다.
        when 30102.take with item.vnum == 30312 begin
            local setting = devilcatacomb_zone.setting()
                item.remove ()
                d.notice("?ytan Katakombu'nun derinliklerinden t?ler ")
                d.notice("?perten bir 汚?? duyuldu. Kharoon uyand? ")
                -- 6층으로 이동
                d.clear_regen()
                d.purge()
                timer("devilcatacomb_floor6_timer",2)
        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.regen_file(get_locale_base_path().."/map/metin2_map_devilcatacomb/base6_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 with npc.get_race() == 2597 begin
            server_timer ("floor6_eli_check_timer_1", 5,d.get_map_index())
        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(), color256(255, 230, 186).."The Devil? Catacomb:[ENTER]"..color256(196, 196, 196).."Kharoon'u yendin! ?mdi ?ytan Katakombu'nun en[ENTER]son kat?a 詰?lanacaks?.")
                    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
                say_in_map(get_server_timer_arg(), color256(255, 230, 186).."Kharoon'u yendin! ?mdi ?ytan Katakombu'nun en[ENTER]son kat?a 詰?lanacaks?.")
                server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
            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.regen_file(get_locale_base_path().."/map/metin2_map_devilcatacomb/base7_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("Azrail'i yen!")
                d.notice ("".. t_m.." dakikan daha var.")
                d.set_warp_location (0, 0, 0)
            end
        end

        -- 6층과 마찬가지로 사마휘(2598)이 죽으면
        -- 7층의 타이머가 작동한다.
        when kill with npc.get_race() == 2598 begin
            --notice_all(pc.get_name().."'s party has defeated Lord Gahnasel!")
            server_timer ("floor7_eli_check_timer_1", 5, d.get_map_index())
        end
        
        -- 7층의 타이머는 6층 타이머와 비슷하며,
        -- 몬스터 숫자가 0이면 exit 타이머를 발생시킨다.
        -- 바로 exit하지 않는 이유는, 유저들에게 준비할 시간을 주기 위해서이다.
        when floor7_eli_check_timer_1.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.set_warp_location (65, 5914, 992)
                d.setqf2("devilcatacomb_zone","done", 1)
                say_in_map(get_server_timer_arg(),"Azrail yenildi. ?ytan Katakombu'na nihayet[ENTER]huzur hakim. ?mdi yer y??e 詰?lanacaks?. ")
                notice_all("Azrail'i "..pc.get_name().." Grubu Yendi!")
                clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())
                server_timer("devilcatacomb_exit_timer", 60, get_server_timer_arg())
            end
        end

        when floor7_eli_check_timer_2.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.set_warp_location (65, 5914, 992)
                d.setqf2("devilcatacomb_zone","done", 1)
                say_in_map(get_server_timer_arg(),"Azrail yenildi. ?ytan Katakombu'na nihayet[ENTER]huzur hakim. ?mdi yer y??e 詰?lanacaks?. ")
                notice_all("Azrail'i "..pc.get_name().." Grubu Yendi!")
                clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())
                server_timer("devilcatacomb_exit_timer", 30, get_server_timer_arg())
            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

Linkleri görebilmek için giriş yap veya kayıt ol.
 
En son bir moderatör tarafından düzenlenmiş:
Geri
Üst