İstek Şeytan kulesi questi ?

Konu sahibinin aradığı materyalleri bulmasına yardımcı olmak için konuya yorum yazabilirsiniz.

bteone40

Üye
Üye
Mesaj
11
Beğeni
2
Puan
405
Ticaret Puanı
0
Merhabalar,

Elinde eski tarza uygun official klasik şeytan kulesi questi olan var mı acaba ?
 
deviltower_dungeon.quest:
Genişlet Daralt Kopyala
quest seytan_kulesi begin
    state start begin
        when login begin
            if pc.get_map_index() == 66 then
                if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                    pc.warp(590500, 110500)
                end
                pc.set_warp_location(65, 5905, 1105)
            elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                pc.set_warp_location(65, 5905, 1105)               
                seytan_kulesi.register_player(pc.get_vid())
            end
        end

    when logout begin
        if pc.count_item(30300) >= 1 then
            pc.remove_item(30300, pc.count_item(30300))
        end
        if pc.count_item(30302) >= 1 then
            pc.remove_item(30302, pc.count_item(30302))
        end               
        if pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
            seytan_kulesi.unregister_player(pc.get_vid())       
        end
    end
    when 20348.chat."Şeytan Kulesi Bekçisi " begin
        if pc.get_level() < 40 then
            say_title("Şeytan Kulesi Bekçisi:")
            say_kirmizi("Cesaretini takdir ediyorum fakat")
            say_kirmizi("kuleye girebilmek için en az")
            say_kirmizi("40.seviye olman gerekmektedir.")
            return
        end
        if not party.is_party() then
            say_title("Şeytan Kulesi Bekçisi:")
            say_kirmizi("Cesaretini takdir ediyorum fakat")
            say_kirmizi("grubun olmadan giriş talebi yapamazsın.")
            return
        end
        if not party.is_leader() then
            say_title("Şeytan Kulesi Bekçisi:")
            say_kirmizi("Cesaretini takdir ediyorum fakat")
            say_kirmizi("yalnızca grup lideri giriş talebi yapabilir.")
            return
        end
            say_title("Şeytan Kulesi Bekçisi:")
            say_yesil("Grubunla Şeytan Kulesine giriş yapacaksın.")
            say_kirmizi("Unutma; girdiğiniz alan sadece grubunuza aittir.")
            say_yesil("Şeytan kulesine şimdi girmek istiyor musun?")
            local s = select("Evet ","Hayır ")
                if s == 1 then
                    local idx = 66
                    local x = 2165
                    local y = 7270
                    d.new_jump_party(idx , x, y)
                    d.regen_file("data/dungeon/deviltower1_regen.txt")
                end
        end
        when kill with npc.get_race() == 8015 begin
            notice_in_map("Dayanıklılık metni yok edildi, 2.kata ışınlanıyorsunuz..")
            timer("devil_stone1_1", 5)
        end
        when devil_stone1_1.timer begin
            d.new_jump_party(66, special.devil_tower[1][1], special.devil_tower[1][2])
            d.regen_file("data/dungeon/deviltower2_regen.txt")
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
        end
        when kill with npc.get_race() == 1091 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
            d.check_eliminated()
        end
        function get_4floor_stone_pos()
        local positions =
            {
                {368, 629}, {419, 630}, {428, 653}, {422, 679},
                {395, 689}, {369, 679}, {361, 658},
            }
            for i = 1, 6 do
                local j = number(i, 7)
                if i != j then
                    local t = positions[i];
                    positions[i] = positions[j];
                    positions[j] = t;
                end
            end
            return positions
        end
         when kill with npc.get_race() == 8016 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.setf("level", 4)
            local positions = seytan_kulesi.get_4floor_stone_pos()
            for i = 1, 6 do
                d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
            end
            local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
            d.set_unique("real", vid)
        server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
        server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

            notice_in_map("Gözlerini ve kulaklarını aldatacak bir çok sahte");
            notice_in_map("Metin Taşı mevcut. 15 dakika içerisinde");
            notice_in_map("gerçek Metin Taşı'nı bul ve yok et!");
            notice_in_map("Kapıdan geçmenin tek yolu budur.");
            notice_in_map("Bulunduğunuz bölge Şeytan Kulesi 4.Kat ")
        end

        when devil_stone4_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
               notice_in_map("10 dakika kaldı ")
        server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("5 dakika kaldı ")
        server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail.server_timer begin
            if d.select(get_server_timer_arg()) and d.getf("level") == 4 then
               notice_in_map("Zaman doldu! ")
                d.exit_all()
            end
        end

        when devil_stone4_update.server_timer begin
            if d.select(get_server_timer_arg()) then
                if not d.is_unique_dead("real") then
                    for i = 1, 6 do
                        if d.getf("fakedead" .. i) == 0 then
                            if d.unique_get_hp_perc("fake" .. i) < 50 then
                                d.purge_unique("fake" .. i)
                                d.setf("fakedead" .. i, 1)
                               notice_in_map("Sahte Metin taşları yok oldu...");
                            end
                        end
                    end
                else
                    server_timer("devil_stone4_end", 5, get_server_timer_arg())
                    
                    notice_in_map("Mükemmel bir duyma yeteneğine ve iyi bir");
                    notice_in_map("içgüdüye sahip olduğunu kanıtlayarak");
                    notice_in_map("gerçek Metin Taşı'nı yok ettin!");
                    notice_in_map("Şimdi 5.kata gireceksin.")
                    d.purge()
                end
            else
        server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
            end
        end

        when devil_stone4_stop_timer.server_timer begin
        clear_server_timer('devil_stone4_update', get_server_timer_arg())
        end

        when devil_stone4_end.server_timer begin
            if d.select(get_server_timer_arg()) then
            clear_server_timer('devil_stone4_update', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail', get_server_timer_arg())

                d.setf("level", 5)
                d.setf("stone_count", 5)
                
                d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
                notice_in_map("Bir sonraki kata")
                notice_in_map("çıkmak için beş Eski Mühür'ü açman gerek.")
                notice_in_map("2 Dakika arayla metin yenilenir.")
                notice_in_map("Metni yok ederek mühür elde edebilirsin.")
                notice_in_map("Süre: 20 dakika!")
                notice_in_map("Bulunduğunuz bölge Şeytan Kulesi 5.Kat ")
                
        server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
        clear_server_timer('devil_stone4_update', get_server_timer_arg())

                d.set_regen_file("data/dungeon/deviltower5_regen.txt")

                d.spawn_mob(20073, 421, 452)
                d.spawn_mob(20073, 380, 460)
                d.spawn_mob(20073, 428, 414)
                d.spawn_mob(20073, 398, 392)
                d.spawn_mob(20073, 359, 426)
            end
        end
        when devil_stone5_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("15 dakika kaldı ")
        server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("10 dakika kaldı ")
        server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail3.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("5 dakika kaldı ")
        server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail.server_timer begin
            if d.select(get_server_timer_arg()) and d.getf("level") == 5 then
        notice_in_map("Zaman doldu!")
        d.exit_all()
            end
        end

        when devil_stone5.take with item.vnum == 50084 begin
            npc.purge()
            item.remove()
            d.setf("stone_count", d.getf("stone_count") - 1)
            if d.getf("stone_count") <= 0 then
                d.clear_regen()
                d.kill_all()
                   notice_in_map("Tüm mühürleri açtın ve artık 5.kata")
                notice_in_map("girebilirsin. Bu katta Kibirli Şeytan Kralı da")
                notice_in_map("var. 6. kattaki tüm canavarları öldür.")
        clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail', get_server_timer_arg())
        
                d.setf("level", 6)
                d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        d.regen_file("data/dungeon/deviltower6_regen.txt")
        

            else
                notice_in_map("Mührü açtın! "..d.getf("stone_count").." kaldı.")
            end
        end

        when devil_stone6.kill begin
            timer("devil_jump_7",6)
            d.kill_all()
            d.check_eliminated()
        end

 
        
   when devil_jump_7.timer begin
        d.clear_regen()

        d.spawn_mob(8018, 639, 658)
        d.spawn_mob(8018, 611, 637)
        d.spawn_mob(8018, 596, 674)
        d.spawn_mob(8018, 629, 670)

        d.setf("level", 7)

        d.jump_all(2048+590, 6656+638)
    end
    
     when kill with npc.get_race() == 8018 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont = d.getf("7_stone_kill") + 1
        d.setf("7_stone_kill", cont)

        if cont >= 4 then
            d.setf("7_stone_kill", 0)
            d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        end
    end

     when kill with npc.get_race() == 8019 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game.drop_item(30300, 1)
    end

    when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc.remove_item("30300", 1)

        local pct = number(1,1)

        if pct == 1 then
            game.drop_item(30302, 1)
            d.clear_regen()
            
        end
    end

    when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin

            if d.getf( "level" ) != 7 then
                pc.remove_item( "30302", 1)
                return
            end
            
        say_title("Bilgi:")
        say("Haritayı buldun. Üst kata geçiyorsun.")
        say("İyi şanslar.")
        pc.remove_item("30302", 1)
        timer("devil_jump_8", 6)
        d.clear_regen()
    end
                        
    when devil_jump_8.timer begin
        d.setf("level", 8)
        d.jump_all(2048+590, 6656+403)
        d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        d.spawn_mob(20366, 640, 460)
        local _count = pc.count_item(30302)
        pc.remove_item(30302,_count)
        
    end

     when kill with npc.get_race() == 1040 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        if d.getf("level") < 9 then
            local pct1 = number(1, 10)
            if pct1 == 1 then
                local pct2 = number(1, 4)
                if pct2 == 1 then
                    -- ÁøÂ¥ ¿¼è µå·Ó
                    game.drop_item(30304, 1)
                else
                    -- °¡Â¥ ¿¼è µå·Ó
                    game.drop_item(30303, 1)
                end
            else
                return
            end
        end
    end

    when 20366.take with item.vnum == 30304 begin
        -- ºÀÀÎ ÇØÃ¼ 9Ãş ¤¡¤¡
        npc.purge()
        item.remove()
        timer("devil_jump_9", 8)
    end

    ---------------------------------------------
    -- 9Ãş ÁøÀÔºÎÅÍ ¿Ï·á±îÁö
    ---------------------------------------------
    when devil_jump_9.timer begin
        d.setf("level", 9)
        d.jump_all(2048+590, 6656+155)
        d.regen_file("data/dungeon/deviltower9_regen.txt")
    end

     when kill with npc.get_race() == 1093 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.kill_all()
        timer("devil_end_jump", 30)
    end

    when devil_end_jump.timer begin
        d.exit_all()
    end
    function register_player(vid)
        local player_count = d.getf("player_count")
        player_count = player_count + 1
        d.setf("player_count", tonumber(player_count))
        d.setf(string.format("player%d", player_count), tonumber(vid))
    end   
    function unregister_player(vid)
        local player_count = d.getf("player_count")
        local found = false
        for i = 1, player_count, 1 do
            if found == true then
                d.setf(string.format("player%d", tonumber(i)), d.getf(string.format("player%d", i+1)))
            end
            p = d.getf("player"..tostring(i))
            if p == vid then
                i = i -1
                found = true
            end
        end   
        if found == true then
            d.setf("player_count", tonumber(player_count - 1))
        end
    end   
    function get_players()
        local players = {}
        local player_count = d.getf("player_count")
        for i = 1, player_count, 1 do
            players[i] = d.getf("player"..tostring(i))
        end
        return players
    end
    function give_dc_access(pindex)
        local self_checked = false
        local self = pc.select(d.getf("player"..tostring(pindex)))
        --pc.setqf("dcenter", 1)
        pc.setf("seytan_kulesi", "dcenter", 1)
        pc.select(self)
    end
end
end
 
deviltower_dungeon.quest:
Genişlet Daralt Kopyala
quest seytan_kulesi begin
    state start begin
        when login begin
            if pc.get_map_index() == 66 then
                if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                    pc.warp(590500, 110500)
                end
                pc.set_warp_location(65, 5905, 1105)
            elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                pc.set_warp_location(65, 5905, 1105)              
                seytan_kulesi.register_player(pc.get_vid())
            end
        end

    when logout begin
        if pc.count_item(30300) >= 1 then
            pc.remove_item(30300, pc.count_item(30300))
        end
        if pc.count_item(30302) >= 1 then
            pc.remove_item(30302, pc.count_item(30302))
        end              
        if pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
            seytan_kulesi.unregister_player(pc.get_vid())      
        end
    end
    when 20348.chat."Şeytan Kulesi Bekçisi " begin
        if pc.get_level() < 40 then
            say_title("Şeytan Kulesi Bekçisi:")
            say_kirmizi("Cesaretini takdir ediyorum fakat")
            say_kirmizi("kuleye girebilmek için en az")
            say_kirmizi("40.seviye olman gerekmektedir.")
            return
        end
        if not party.is_party() then
            say_title("Şeytan Kulesi Bekçisi:")
            say_kirmizi("Cesaretini takdir ediyorum fakat")
            say_kirmizi("grubun olmadan giriş talebi yapamazsın.")
            return
        end
        if not party.is_leader() then
            say_title("Şeytan Kulesi Bekçisi:")
            say_kirmizi("Cesaretini takdir ediyorum fakat")
            say_kirmizi("yalnızca grup lideri giriş talebi yapabilir.")
            return
        end
            say_title("Şeytan Kulesi Bekçisi:")
            say_yesil("Grubunla Şeytan Kulesine giriş yapacaksın.")
            say_kirmizi("Unutma; girdiğiniz alan sadece grubunuza aittir.")
            say_yesil("Şeytan kulesine şimdi girmek istiyor musun?")
            local s = select("Evet ","Hayır ")
                if s == 1 then
                    local idx = 66
                    local x = 2165
                    local y = 7270
                    d.new_jump_party(idx , x, y)
                    d.regen_file("data/dungeon/deviltower1_regen.txt")
                end
        end
        when kill with npc.get_race() == 8015 begin
            notice_in_map("Dayanıklılık metni yok edildi, 2.kata ışınlanıyorsunuz..")
            timer("devil_stone1_1", 5)
        end
        when devil_stone1_1.timer begin
            d.new_jump_party(66, special.devil_tower[1][1], special.devil_tower[1][2])
            d.regen_file("data/dungeon/deviltower2_regen.txt")
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
        end
        when kill with npc.get_race() == 1091 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
            d.check_eliminated()
        end
        function get_4floor_stone_pos()
        local positions =
            {
                {368, 629}, {419, 630}, {428, 653}, {422, 679},
                {395, 689}, {369, 679}, {361, 658},
            }
            for i = 1, 6 do
                local j = number(i, 7)
                if i != j then
                    local t = positions[i];
                    positions[i] = positions[j];
                    positions[j] = t;
                end
            end
            return positions
        end
         when kill with npc.get_race() == 8016 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.setf("level", 4)
            local positions = seytan_kulesi.get_4floor_stone_pos()
            for i = 1, 6 do
                d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
            end
            local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
            d.set_unique("real", vid)
        server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
        server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

            notice_in_map("Gözlerini ve kulaklarını aldatacak bir çok sahte");
            notice_in_map("Metin Taşı mevcut. 15 dakika içerisinde");
            notice_in_map("gerçek Metin Taşı'nı bul ve yok et!");
            notice_in_map("Kapıdan geçmenin tek yolu budur.");
            notice_in_map("Bulunduğunuz bölge Şeytan Kulesi 4.Kat ")
        end

        when devil_stone4_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
               notice_in_map("10 dakika kaldı ")
        server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("5 dakika kaldı ")
        server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail.server_timer begin
            if d.select(get_server_timer_arg()) and d.getf("level") == 4 then
               notice_in_map("Zaman doldu! ")
                d.exit_all()
            end
        end

        when devil_stone4_update.server_timer begin
            if d.select(get_server_timer_arg()) then
                if not d.is_unique_dead("real") then
                    for i = 1, 6 do
                        if d.getf("fakedead" .. i) == 0 then
                            if d.unique_get_hp_perc("fake" .. i) < 50 then
                                d.purge_unique("fake" .. i)
                                d.setf("fakedead" .. i, 1)
                               notice_in_map("Sahte Metin taşları yok oldu...");
                            end
                        end
                    end
                else
                    server_timer("devil_stone4_end", 5, get_server_timer_arg())
                   
                    notice_in_map("Mükemmel bir duyma yeteneğine ve iyi bir");
                    notice_in_map("içgüdüye sahip olduğunu kanıtlayarak");
                    notice_in_map("gerçek Metin Taşı'nı yok ettin!");
                    notice_in_map("Şimdi 5.kata gireceksin.")
                    d.purge()
                end
            else
        server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
            end
        end

        when devil_stone4_stop_timer.server_timer begin
        clear_server_timer('devil_stone4_update', get_server_timer_arg())
        end

        when devil_stone4_end.server_timer begin
            if d.select(get_server_timer_arg()) then
            clear_server_timer('devil_stone4_update', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail', get_server_timer_arg())

                d.setf("level", 5)
                d.setf("stone_count", 5)
               
                d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
                notice_in_map("Bir sonraki kata")
                notice_in_map("çıkmak için beş Eski Mühür'ü açman gerek.")
                notice_in_map("2 Dakika arayla metin yenilenir.")
                notice_in_map("Metni yok ederek mühür elde edebilirsin.")
                notice_in_map("Süre: 20 dakika!")
                notice_in_map("Bulunduğunuz bölge Şeytan Kulesi 5.Kat ")
               
        server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
        clear_server_timer('devil_stone4_update', get_server_timer_arg())

                d.set_regen_file("data/dungeon/deviltower5_regen.txt")

                d.spawn_mob(20073, 421, 452)
                d.spawn_mob(20073, 380, 460)
                d.spawn_mob(20073, 428, 414)
                d.spawn_mob(20073, 398, 392)
                d.spawn_mob(20073, 359, 426)
            end
        end
        when devil_stone5_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("15 dakika kaldı ")
        server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("10 dakika kaldı ")
        server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail3.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("5 dakika kaldı ")
        server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail.server_timer begin
            if d.select(get_server_timer_arg()) and d.getf("level") == 5 then
        notice_in_map("Zaman doldu!")
        d.exit_all()
            end
        end

        when devil_stone5.take with item.vnum == 50084 begin
            npc.purge()
            item.remove()
            d.setf("stone_count", d.getf("stone_count") - 1)
            if d.getf("stone_count") <= 0 then
                d.clear_regen()
                d.kill_all()
                   notice_in_map("Tüm mühürleri açtın ve artık 5.kata")
                notice_in_map("girebilirsin. Bu katta Kibirli Şeytan Kralı da")
                notice_in_map("var. 6. kattaki tüm canavarları öldür.")
        clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail', get_server_timer_arg())
       
                d.setf("level", 6)
                d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        d.regen_file("data/dungeon/deviltower6_regen.txt")
       

            else
                notice_in_map("Mührü açtın! "..d.getf("stone_count").." kaldı.")
            end
        end

        when devil_stone6.kill begin
            timer("devil_jump_7",6)
            d.kill_all()
            d.check_eliminated()
        end

 
       
   when devil_jump_7.timer begin
        d.clear_regen()

        d.spawn_mob(8018, 639, 658)
        d.spawn_mob(8018, 611, 637)
        d.spawn_mob(8018, 596, 674)
        d.spawn_mob(8018, 629, 670)

        d.setf("level", 7)

        d.jump_all(2048+590, 6656+638)
    end
   
     when kill with npc.get_race() == 8018 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont = d.getf("7_stone_kill") + 1
        d.setf("7_stone_kill", cont)

        if cont >= 4 then
            d.setf("7_stone_kill", 0)
            d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        end
    end

     when kill with npc.get_race() == 8019 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game.drop_item(30300, 1)
    end

    when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc.remove_item("30300", 1)

        local pct = number(1,1)

        if pct == 1 then
            game.drop_item(30302, 1)
            d.clear_regen()
           
        end
    end

    when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin

            if d.getf( "level" ) != 7 then
                pc.remove_item( "30302", 1)
                return
            end
           
        say_title("Bilgi:")
        say("Haritayı buldun. Üst kata geçiyorsun.")
        say("İyi şanslar.")
        pc.remove_item("30302", 1)
        timer("devil_jump_8", 6)
        d.clear_regen()
    end
                       
    when devil_jump_8.timer begin
        d.setf("level", 8)
        d.jump_all(2048+590, 6656+403)
        d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        d.spawn_mob(20366, 640, 460)
        local _count = pc.count_item(30302)
        pc.remove_item(30302,_count)
       
    end

     when kill with npc.get_race() == 1040 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        if d.getf("level") < 9 then
            local pct1 = number(1, 10)
            if pct1 == 1 then
                local pct2 = number(1, 4)
                if pct2 == 1 then
                    -- ÁøÂ¥ ¿¼è µå·Ó
                    game.drop_item(30304, 1)
                else
                    -- °¡Â¥ ¿¼è µå·Ó
                    game.drop_item(30303, 1)
                end
            else
                return
            end
        end
    end

    when 20366.take with item.vnum == 30304 begin
        -- ºÀÀÎ ÇØÃ¼ 9Ãş ¤¡¤¡
        npc.purge()
        item.remove()
        timer("devil_jump_9", 8)
    end

    ---------------------------------------------
    -- 9Ãş ÁøÀÔºÎÅÍ ¿Ï·á±îÁö
    ---------------------------------------------
    when devil_jump_9.timer begin
        d.setf("level", 9)
        d.jump_all(2048+590, 6656+155)
        d.regen_file("data/dungeon/deviltower9_regen.txt")
    end

     when kill with npc.get_race() == 1093 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.kill_all()
        timer("devil_end_jump", 30)
    end

    when devil_end_jump.timer begin
        d.exit_all()
    end
    function register_player(vid)
        local player_count = d.getf("player_count")
        player_count = player_count + 1
        d.setf("player_count", tonumber(player_count))
        d.setf(string.format("player%d", player_count), tonumber(vid))
    end  
    function unregister_player(vid)
        local player_count = d.getf("player_count")
        local found = false
        for i = 1, player_count, 1 do
            if found == true then
                d.setf(string.format("player%d", tonumber(i)), d.getf(string.format("player%d", i+1)))
            end
            p = d.getf("player"..tostring(i))
            if p == vid then
                i = i -1
                found = true
            end
        end  
        if found == true then
            d.setf("player_count", tonumber(player_count - 1))
        end
    end  
    function get_players()
        local players = {}
        local player_count = d.getf("player_count")
        for i = 1, player_count, 1 do
            players[i] = d.getf("player"..tostring(i))
        end
        return players
    end
    function give_dc_access(pindex)
        local self_checked = false
        local self = pc.select(d.getf("player"..tostring(pindex)))
        --pc.setqf("dcenter", 1)
        pc.setf("seytan_kulesi", "dcenter", 1)
        pc.select(self)
    end
end
end
2026-10-18_20-38-12.webp


Böyle bir hata verdi

+Blanka server files kullanıyorum
 
33386 eklentisini görüntüle

Böyle bir hata verdi

+Blanka server files kullanıyorum
Bununla düzelir.

deviltower_dungeon.quest:
Genişlet Daralt Kopyala
quest seytan_kulesi begin
    state start begin
        when login begin
            if pc.get_map_index() == 66 then
                if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                    pc.warp(590500, 110500)
                end
                pc.set_warp_location(65, 5905, 1105)
            elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                pc.set_warp_location(65, 5905, 1105)               
                seytan_kulesi.register_player(pc.get_vid())
            end
        end

    when logout begin
        if pc.count_item(30300) >= 1 then
            pc.remove_item(30300, pc.count_item(30300))
        end
        if pc.count_item(30302) >= 1 then
            pc.remove_item(30302, pc.count_item(30302))
        end               
        if pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
            seytan_kulesi.unregister_player(pc.get_vid())       
        end
    end
    when 20348.chat."Şeytan Kulesi Bekçisi " begin
        if pc.get_level() < 40 then
            say_title("Şeytan Kulesi Bekçisi:")
            say("Cesaretini takdir ediyorum fakat")
            say("kuleye girebilmek için en az")
            say("40.seviye olman gerekmektedir.")
            return
        end
        if not party.is_party() then
            say_title("Şeytan Kulesi Bekçisi:")
            say("Cesaretini takdir ediyorum fakat")
            say("grubun olmadan giriş talebi yapamazsın.")
            return
        end
        if not party.is_leader() then
            say_title("Şeytan Kulesi Bekçisi:")
            say("Cesaretini takdir ediyorum fakat")
            say("yalnızca grup lideri giriş talebi yapabilir.")
            return
        end
            say_title("Şeytan Kulesi Bekçisi:")
            say("Grubunla Şeytan Kulesine giriş yapacaksın.")
            say("Unutma; girdiğiniz alan sadece grubunuza aittir.")
            say("Şeytan kulesine şimdi girmek istiyor musun?")
            local s = select("Evet ","Hayır ")
                if s == 1 then
                    local idx = 66
                    local x = 2165
                    local y = 7270
                    d.new_jump_party(idx , x, y)
                    d.regen_file("data/dungeon/deviltower1_regen.txt")
                end
        end
        when kill with npc.get_race() == 8015 begin
            notice_in_map("Dayanıklılık metni yok edildi, 2.kata ışınlanıyorsunuz..")
            timer("devil_stone1_1", 5)
        end
        when devil_stone1_1.timer begin
            d.new_jump_party(66, special.devil_tower[1][1], special.devil_tower[1][2])
            d.regen_file("data/dungeon/deviltower2_regen.txt")
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
        end
        when kill with npc.get_race() == 1091 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
            d.check_eliminated()
        end
        function get_4floor_stone_pos()
        local positions =
            {
                {368, 629}, {419, 630}, {428, 653}, {422, 679},
                {395, 689}, {369, 679}, {361, 658},
            }
            for i = 1, 6 do
                local j = number(i, 7)
                if i != j then
                    local t = positions[i];
                    positions[i] = positions[j];
                    positions[j] = t;
                end
            end
            return positions
        end
         when kill with npc.get_race() == 8016 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.setf("level", 4)
            local positions = seytan_kulesi.get_4floor_stone_pos()
            for i = 1, 6 do
                d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
            end
            local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
            d.set_unique("real", vid)
        server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
        server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

            notice_in_map("Gözlerini ve kulaklarını aldatacak bir çok sahte");
            notice_in_map("Metin Taşı mevcut. 15 dakika içerisinde");
            notice_in_map("gerçek Metin Taşı'nı bul ve yok et!");
            notice_in_map("Kapıdan geçmenin tek yolu budur.");
            notice_in_map("Bulunduğunuz bölge Şeytan Kulesi 4.Kat ")
        end

        when devil_stone4_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
               notice_in_map("10 dakika kaldı ")
        server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("5 dakika kaldı ")
        server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail.server_timer begin
            if d.select(get_server_timer_arg()) and d.getf("level") == 4 then
               notice_in_map("Zaman doldu! ")
                d.exit_all()
            end
        end

        when devil_stone4_update.server_timer begin
            if d.select(get_server_timer_arg()) then
                if not d.is_unique_dead("real") then
                    for i = 1, 6 do
                        if d.getf("fakedead" .. i) == 0 then
                            if d.unique_get_hp_perc("fake" .. i) < 50 then
                                d.purge_unique("fake" .. i)
                                d.setf("fakedead" .. i, 1)
                               notice_in_map("Sahte Metin taşları yok oldu...");
                            end
                        end
                    end
                else
                    server_timer("devil_stone4_end", 5, get_server_timer_arg())
                    
                    notice_in_map("Mükemmel bir duyma yeteneğine ve iyi bir");
                    notice_in_map("içgüdüye sahip olduğunu kanıtlayarak");
                    notice_in_map("gerçek Metin Taşı'nı yok ettin!");
                    notice_in_map("Şimdi 5.kata gireceksin.")
                    d.purge()
                end
            else
        server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
            end
        end

        when devil_stone4_stop_timer.server_timer begin
        clear_server_timer('devil_stone4_update', get_server_timer_arg())
        end

        when devil_stone4_end.server_timer begin
            if d.select(get_server_timer_arg()) then
            clear_server_timer('devil_stone4_update', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail', get_server_timer_arg())

                d.setf("level", 5)
                d.setf("stone_count", 5)
                
                d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
                notice_in_map("Bir sonraki kata")
                notice_in_map("çıkmak için beş Eski Mühür'ü açman gerek.")
                notice_in_map("2 Dakika arayla metin yenilenir.")
                notice_in_map("Metni yok ederek mühür elde edebilirsin.")
                notice_in_map("Süre: 20 dakika!")
                notice_in_map("Bulunduğunuz bölge Şeytan Kulesi 5.Kat ")
                
        server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
        clear_server_timer('devil_stone4_update', get_server_timer_arg())

                d.set_regen_file("data/dungeon/deviltower5_regen.txt")

                d.spawn_mob(20073, 421, 452)
                d.spawn_mob(20073, 380, 460)
                d.spawn_mob(20073, 428, 414)
                d.spawn_mob(20073, 398, 392)
                d.spawn_mob(20073, 359, 426)
            end
        end
        when devil_stone5_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("15 dakika kaldı ")
        server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("10 dakika kaldı ")
        server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail3.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("5 dakika kaldı ")
        server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail.server_timer begin
            if d.select(get_server_timer_arg()) and d.getf("level") == 5 then
        notice_in_map("Zaman doldu!")
        d.exit_all()
            end
        end

        when devil_stone5.take with item.vnum == 50084 begin
            npc.purge()
            item.remove()
            d.setf("stone_count", d.getf("stone_count") - 1)
            if d.getf("stone_count") <= 0 then
                d.clear_regen()
                d.kill_all()
                   notice_in_map("Tüm mühürleri açtın ve artık 5.kata")
                notice_in_map("girebilirsin. Bu katta Kibirli Şeytan Kralı da")
                notice_in_map("var. 6. kattaki tüm canavarları öldür.")
        clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail', get_server_timer_arg())
        
                d.setf("level", 6)
                d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        d.regen_file("data/dungeon/deviltower6_regen.txt")
        

            else
                notice_in_map("Mührü açtın! "..d.getf("stone_count").." kaldı.")
            end
        end

        when devil_stone6.kill begin
            timer("devil_jump_7",6)
            d.kill_all()
            d.check_eliminated()
        end

 
        
   when devil_jump_7.timer begin
        d.clear_regen()

        d.spawn_mob(8018, 639, 658)
        d.spawn_mob(8018, 611, 637)
        d.spawn_mob(8018, 596, 674)
        d.spawn_mob(8018, 629, 670)

        d.setf("level", 7)

        d.jump_all(2048+590, 6656+638)
    end
    
     when kill with npc.get_race() == 8018 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont = d.getf("7_stone_kill") + 1
        d.setf("7_stone_kill", cont)

        if cont >= 4 then
            d.setf("7_stone_kill", 0)
            d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        end
    end

     when kill with npc.get_race() == 8019 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game.drop_item(30300, 1)
    end

    when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc.remove_item("30300", 1)

        local pct = number(1,1)

        if pct == 1 then
            game.drop_item(30302, 1)
            d.clear_regen()
            
        end
    end

    when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin

            if d.getf( "level" ) != 7 then
                pc.remove_item( "30302", 1)
                return
            end
            
        say_title("Bilgi:")
        say("Haritayı buldun. Üst kata geçiyorsun.")
        say("İyi şanslar.")
        pc.remove_item("30302", 1)
        timer("devil_jump_8", 6)
        d.clear_regen()
    end
                        
    when devil_jump_8.timer begin
        d.setf("level", 8)
        d.jump_all(2048+590, 6656+403)
        d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        d.spawn_mob(20366, 640, 460)
        local _count = pc.count_item(30302)
        pc.remove_item(30302,_count)
        
    end

     when kill with npc.get_race() == 1040 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        if d.getf("level") < 9 then
            local pct1 = number(1, 10)
            if pct1 == 1 then
                local pct2 = number(1, 4)
                if pct2 == 1 then
                    -- ÁøÂ¥ ¿¼è µå·Ó
                    game.drop_item(30304, 1)
                else
                    -- °¡Â¥ ¿¼è µå·Ó
                    game.drop_item(30303, 1)
                end
            else
                return
            end
        end
    end

    when 20366.take with item.vnum == 30304 begin
        -- ºÀÀÎ ÇØÃ¼ 9Ãş ¤¡¤¡
        npc.purge()
        item.remove()
        timer("devil_jump_9", 8)
    end

    ---------------------------------------------
    -- 9Ãş ÁøÀÔºÎÅÍ ¿Ï·á±îÁö
    ---------------------------------------------
    when devil_jump_9.timer begin
        d.setf("level", 9)
        d.jump_all(2048+590, 6656+155)
        d.regen_file("data/dungeon/deviltower9_regen.txt")
    end

     when kill with npc.get_race() == 1093 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.kill_all()
        timer("devil_end_jump", 30)
    end

    when devil_end_jump.timer begin
        d.exit_all()
    end
    function register_player(vid)
        local player_count = d.getf("player_count")
        player_count = player_count + 1
        d.setf("player_count", tonumber(player_count))
        d.setf(string.format("player%d", player_count), tonumber(vid))
    end   
    function unregister_player(vid)
        local player_count = d.getf("player_count")
        local found = false
        for i = 1, player_count, 1 do
            if found == true then
                d.setf(string.format("player%d", tonumber(i)), d.getf(string.format("player%d", i+1)))
            end
            p = d.getf("player"..tostring(i))
            if p == vid then
                i = i -1
                found = true
            end
        end   
        if found == true then
            d.setf("player_count", tonumber(player_count - 1))
        end
    end   
    function get_players()
        local players = {}
        local player_count = d.getf("player_count")
        for i = 1, player_count, 1 do
            players[i] = d.getf("player"..tostring(i))
        end
        return players
    end
    function give_dc_access(pindex)
        local self_checked = false
        local self = pc.select(d.getf("player"..tostring(pindex)))
        --pc.setqf("dcenter", 1)
        pc.setf("seytan_kulesi", "dcenter", 1)
        pc.select(self)
    end
end
end
 
Bununla düzelir.

deviltower_dungeon.quest:
Genişlet Daralt Kopyala
quest seytan_kulesi begin
    state start begin
        when login begin
            if pc.get_map_index() == 66 then
                if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                    pc.warp(590500, 110500)
                end
                pc.set_warp_location(65, 5905, 1105)
            elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                pc.set_warp_location(65, 5905, 1105)              
                seytan_kulesi.register_player(pc.get_vid())
            end
        end

    when logout begin
        if pc.count_item(30300) >= 1 then
            pc.remove_item(30300, pc.count_item(30300))
        end
        if pc.count_item(30302) >= 1 then
            pc.remove_item(30302, pc.count_item(30302))
        end              
        if pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
            seytan_kulesi.unregister_player(pc.get_vid())      
        end
    end
    when 20348.chat."Şeytan Kulesi Bekçisi " begin
        if pc.get_level() < 40 then
            say_title("Şeytan Kulesi Bekçisi:")
            say("Cesaretini takdir ediyorum fakat")
            say("kuleye girebilmek için en az")
            say("40.seviye olman gerekmektedir.")
            return
        end
        if not party.is_party() then
            say_title("Şeytan Kulesi Bekçisi:")
            say("Cesaretini takdir ediyorum fakat")
            say("grubun olmadan giriş talebi yapamazsın.")
            return
        end
        if not party.is_leader() then
            say_title("Şeytan Kulesi Bekçisi:")
            say("Cesaretini takdir ediyorum fakat")
            say("yalnızca grup lideri giriş talebi yapabilir.")
            return
        end
            say_title("Şeytan Kulesi Bekçisi:")
            say("Grubunla Şeytan Kulesine giriş yapacaksın.")
            say("Unutma; girdiğiniz alan sadece grubunuza aittir.")
            say("Şeytan kulesine şimdi girmek istiyor musun?")
            local s = select("Evet ","Hayır ")
                if s == 1 then
                    local idx = 66
                    local x = 2165
                    local y = 7270
                    d.new_jump_party(idx , x, y)
                    d.regen_file("data/dungeon/deviltower1_regen.txt")
                end
        end
        when kill with npc.get_race() == 8015 begin
            notice_in_map("Dayanıklılık metni yok edildi, 2.kata ışınlanıyorsunuz..")
            timer("devil_stone1_1", 5)
        end
        when devil_stone1_1.timer begin
            d.new_jump_party(66, special.devil_tower[1][1], special.devil_tower[1][2])
            d.regen_file("data/dungeon/deviltower2_regen.txt")
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
        end
        when kill with npc.get_race() == 1091 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
            d.check_eliminated()
        end
        function get_4floor_stone_pos()
        local positions =
            {
                {368, 629}, {419, 630}, {428, 653}, {422, 679},
                {395, 689}, {369, 679}, {361, 658},
            }
            for i = 1, 6 do
                local j = number(i, 7)
                if i != j then
                    local t = positions[i];
                    positions[i] = positions[j];
                    positions[j] = t;
                end
            end
            return positions
        end
         when kill with npc.get_race() == 8016 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.setf("level", 4)
            local positions = seytan_kulesi.get_4floor_stone_pos()
            for i = 1, 6 do
                d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
            end
            local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
            d.set_unique("real", vid)
        server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
        server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

            notice_in_map("Gözlerini ve kulaklarını aldatacak bir çok sahte");
            notice_in_map("Metin Taşı mevcut. 15 dakika içerisinde");
            notice_in_map("gerçek Metin Taşı'nı bul ve yok et!");
            notice_in_map("Kapıdan geçmenin tek yolu budur.");
            notice_in_map("Bulunduğunuz bölge Şeytan Kulesi 4.Kat ")
        end

        when devil_stone4_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
               notice_in_map("10 dakika kaldı ")
        server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("5 dakika kaldı ")
        server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail.server_timer begin
            if d.select(get_server_timer_arg()) and d.getf("level") == 4 then
               notice_in_map("Zaman doldu! ")
                d.exit_all()
            end
        end

        when devil_stone4_update.server_timer begin
            if d.select(get_server_timer_arg()) then
                if not d.is_unique_dead("real") then
                    for i = 1, 6 do
                        if d.getf("fakedead" .. i) == 0 then
                            if d.unique_get_hp_perc("fake" .. i) < 50 then
                                d.purge_unique("fake" .. i)
                                d.setf("fakedead" .. i, 1)
                               notice_in_map("Sahte Metin taşları yok oldu...");
                            end
                        end
                    end
                else
                    server_timer("devil_stone4_end", 5, get_server_timer_arg())
                   
                    notice_in_map("Mükemmel bir duyma yeteneğine ve iyi bir");
                    notice_in_map("içgüdüye sahip olduğunu kanıtlayarak");
                    notice_in_map("gerçek Metin Taşı'nı yok ettin!");
                    notice_in_map("Şimdi 5.kata gireceksin.")
                    d.purge()
                end
            else
        server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
            end
        end

        when devil_stone4_stop_timer.server_timer begin
        clear_server_timer('devil_stone4_update', get_server_timer_arg())
        end

        when devil_stone4_end.server_timer begin
            if d.select(get_server_timer_arg()) then
            clear_server_timer('devil_stone4_update', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail', get_server_timer_arg())

                d.setf("level", 5)
                d.setf("stone_count", 5)
               
                d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
                notice_in_map("Bir sonraki kata")
                notice_in_map("çıkmak için beş Eski Mühür'ü açman gerek.")
                notice_in_map("2 Dakika arayla metin yenilenir.")
                notice_in_map("Metni yok ederek mühür elde edebilirsin.")
                notice_in_map("Süre: 20 dakika!")
                notice_in_map("Bulunduğunuz bölge Şeytan Kulesi 5.Kat ")
               
        server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
        clear_server_timer('devil_stone4_update', get_server_timer_arg())

                d.set_regen_file("data/dungeon/deviltower5_regen.txt")

                d.spawn_mob(20073, 421, 452)
                d.spawn_mob(20073, 380, 460)
                d.spawn_mob(20073, 428, 414)
                d.spawn_mob(20073, 398, 392)
                d.spawn_mob(20073, 359, 426)
            end
        end
        when devil_stone5_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("15 dakika kaldı ")
        server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("10 dakika kaldı ")
        server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail3.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_in_map("5 dakika kaldı ")
        server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail.server_timer begin
            if d.select(get_server_timer_arg()) and d.getf("level") == 5 then
        notice_in_map("Zaman doldu!")
        d.exit_all()
            end
        end

        when devil_stone5.take with item.vnum == 50084 begin
            npc.purge()
            item.remove()
            d.setf("stone_count", d.getf("stone_count") - 1)
            if d.getf("stone_count") <= 0 then
                d.clear_regen()
                d.kill_all()
                   notice_in_map("Tüm mühürleri açtın ve artık 5.kata")
                notice_in_map("girebilirsin. Bu katta Kibirli Şeytan Kralı da")
                notice_in_map("var. 6. kattaki tüm canavarları öldür.")
        clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
        clear_server_timer('devil_stone5_fail', get_server_timer_arg())
       
                d.setf("level", 6)
                d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        d.regen_file("data/dungeon/deviltower6_regen.txt")
       

            else
                notice_in_map("Mührü açtın! "..d.getf("stone_count").." kaldı.")
            end
        end

        when devil_stone6.kill begin
            timer("devil_jump_7",6)
            d.kill_all()
            d.check_eliminated()
        end

 
       
   when devil_jump_7.timer begin
        d.clear_regen()

        d.spawn_mob(8018, 639, 658)
        d.spawn_mob(8018, 611, 637)
        d.spawn_mob(8018, 596, 674)
        d.spawn_mob(8018, 629, 670)

        d.setf("level", 7)

        d.jump_all(2048+590, 6656+638)
    end
   
     when kill with npc.get_race() == 8018 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont = d.getf("7_stone_kill") + 1
        d.setf("7_stone_kill", cont)

        if cont >= 4 then
            d.setf("7_stone_kill", 0)
            d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        end
    end

     when kill with npc.get_race() == 8019 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game.drop_item(30300, 1)
    end

    when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc.remove_item("30300", 1)

        local pct = number(1,1)

        if pct == 1 then
            game.drop_item(30302, 1)
            d.clear_regen()
           
        end
    end

    when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin

            if d.getf( "level" ) != 7 then
                pc.remove_item( "30302", 1)
                return
            end
           
        say_title("Bilgi:")
        say("Haritayı buldun. Üst kata geçiyorsun.")
        say("İyi şanslar.")
        pc.remove_item("30302", 1)
        timer("devil_jump_8", 6)
        d.clear_regen()
    end
                       
    when devil_jump_8.timer begin
        d.setf("level", 8)
        d.jump_all(2048+590, 6656+403)
        d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        d.spawn_mob(20366, 640, 460)
        local _count = pc.count_item(30302)
        pc.remove_item(30302,_count)
       
    end

     when kill with npc.get_race() == 1040 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        if d.getf("level") < 9 then
            local pct1 = number(1, 10)
            if pct1 == 1 then
                local pct2 = number(1, 4)
                if pct2 == 1 then
                    -- ÁøÂ¥ ¿¼è µå·Ó
                    game.drop_item(30304, 1)
                else
                    -- °¡Â¥ ¿¼è µå·Ó
                    game.drop_item(30303, 1)
                end
            else
                return
            end
        end
    end

    when 20366.take with item.vnum == 30304 begin
        -- ºÀÀÎ ÇØÃ¼ 9Ãş ¤¡¤¡
        npc.purge()
        item.remove()
        timer("devil_jump_9", 8)
    end

    ---------------------------------------------
    -- 9Ãş ÁøÀÔºÎÅÍ ¿Ï·á±îÁö
    ---------------------------------------------
    when devil_jump_9.timer begin
        d.setf("level", 9)
        d.jump_all(2048+590, 6656+155)
        d.regen_file("data/dungeon/deviltower9_regen.txt")
    end

     when kill with npc.get_race() == 1093 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.kill_all()
        timer("devil_end_jump", 30)
    end

    when devil_end_jump.timer begin
        d.exit_all()
    end
    function register_player(vid)
        local player_count = d.getf("player_count")
        player_count = player_count + 1
        d.setf("player_count", tonumber(player_count))
        d.setf(string.format("player%d", player_count), tonumber(vid))
    end  
    function unregister_player(vid)
        local player_count = d.getf("player_count")
        local found = false
        for i = 1, player_count, 1 do
            if found == true then
                d.setf(string.format("player%d", tonumber(i)), d.getf(string.format("player%d", i+1)))
            end
            p = d.getf("player"..tostring(i))
            if p == vid then
                i = i -1
                found = true
            end
        end  
        if found == true then
            d.setf("player_count", tonumber(player_count - 1))
        end
    end  
    function get_players()
        local players = {}
        local player_count = d.getf("player_count")
        for i = 1, player_count, 1 do
            players[i] = d.getf("player"..tostring(i))
        end
        return players
    end
    function give_dc_access(pindex)
        local self_checked = false
        local self = pc.select(d.getf("player"..tostring(pindex)))
        --pc.setqf("dcenter", 1)
        pc.setf("seytan_kulesi", "dcenter", 1)
        pc.select(self)
    end
end
end
2026-10-18_20-44-40.webp
 
Eski filesten alıntı bunda grup yok. Öncekini silmeyi unutmayın.

deviltower_dungeon.quest:
Genişlet Daralt Kopyala
quest deviltower_zone begin
    state start begin
    when login begin
        if pc.get_map_index() == 66 then
            if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                pc.warp((5376+532)*100, (512+596+4)*100, 65)
            end
        pc.set_warp_location(65, 5376+532, 512+596+4)
        elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
            pc.set_warp_location(65, 5376+532, 512+596+4)
        end
    end
 
    when logout begin
        if pc.count_item(30300) >= 1 then
            pc.remove_item(30300, pc.count_item(30300))
        end
        -- not used in the game
        -- pc.remove_item(30301, pc.count_item(30301))
        if pc.count_item(30302) >= 1 then
            pc.remove_item(30302, pc.count_item(30302))
        end
    end
        
    when deviltower_man.chat.gameforge.deviltower_zone._10_npcChat begin
        if pc.get_level() < 40 then
            say_title(gameforge.deviltower_zone._20_sayTitle)
            say(gameforge.deviltower_zone._30_say)
        else
            say_title(gameforge.deviltower_zone._20_sayTitle)
            say(gameforge.deviltower_zone._40_say)
            local s =  select(gameforge.locale.monkey_dungeon.enter, gameforge.locale.monkey_dungeon.no_enter)
            if s == 1 then
                pc.warp(216500,727000)
            end
        end
    end
    when kill with npc.get_race() == 8015 begin
        timer("devil_stone1_1", 6)
    end
    when devil_stone1_1.timer begin
        d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
        d.regen_file("data/dungeon/deviltower2_regen.txt")
        d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
    end
    when kill with npc.get_race() == 1091 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
        d.check_eliminated()
    end
 
    function get_4floor_stone_pos()
        local positions =
            {
                {368, 629}, {419, 630}, {428, 653}, {422, 679},
                {395, 689}, {369, 679}, {361, 658},
        }
        for i = 1, 6 do
            local j = number(i, 7)
            if i != j then
                local t = positions[i];
                positions[i] = positions[j];
                positions[j] = t;
            end
        end
        return positions
    end
 
    when kill with npc.get_race() == 8016 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.setf("level", 4)
        local positions = deviltower_zone.get_4floor_stone_pos()
 
        for i = 1, 6 do
            test_chat(positions[i][1], positions[i][2])
            d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
        end
 
        test_chat(positions[7][1], positions[7][2])
 
        local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
        test_chat(vid)
        d.set_unique("real", vid)
        server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
        server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
        
        notice_multiline(gameforge.deviltower_zone._50_dNotice,d.notice)
        
    end
 
    when devil_stone4_fail1.server_timer begin
        if d.select(get_server_timer_arg()) then
            notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
            server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
        end
    end
 
    when devil_stone4_fail2.server_timer begin
        if d.select(get_server_timer_arg()) then
            notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
            server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
        end
    end
 
    when devil_stone4_fail.server_timer begin
        if d.select(get_server_timer_arg()) then
            notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
            d.clear_regen()
            d.exit_all()
            clear_server_timer('devil_stone4_update', get_server_timer_arg())
        end
    end
 
    when devil_stone4_update.server_timer begin
        if d.select(get_server_timer_arg()) then
            if not d.is_unique_dead("real") then
                for i = 1, 6 do
                    if d.getf("fakedead" .. i) == 0 then
                        if d.unique_get_hp_perc("fake" .. i) < 50 then
                            d.purge_unique("fake" .. i)
                            d.setf("fakedead" .. i, 1)
                            notice_multiline(gameforge.deviltower_zone._90_dNotice,d.notice)
                        end
                    end
                end
            else
                server_timer("devil_stone4_end", 5, get_server_timer_arg())
                --d.kill_all()
                d.purge()
                notice_multiline(gameforge.deviltower_zone._100_dNotice,d.notice)
                clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
                clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
                clear_server_timer('devil_stone4_fail', get_server_timer_arg())
            end
        else
            server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
        end
    end
 
    when devil_stone4_stop_timer.server_timer begin
        clear_server_timer('devil_stone4_update', get_server_timer_arg())
    end
 
    when devil_stone4_end.server_timer begin
        if d.select(get_server_timer_arg()) then
            clear_server_timer('devil_stone4_update', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
            clear_server_timer('devil_stone4_fail', get_server_timer_arg())
            
            -- clear regen from memory when exit
            d.clear_regen()
            
            d.setf("level", 5)
            d.setf("stone_count", 5)
            notice_multiline(gameforge.deviltower_zone._110_dNotice,d.notice)
            d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
            server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
            clear_server_timer('devil_stone4_update', get_server_timer_arg())
 
            d.set_regen_file("data/dungeon/deviltower5_regen.txt")
 
            d.spawn_mob(20073, 421, 452)
            d.spawn_mob(20073, 380, 460)
            d.spawn_mob(20073, 428, 414)
            d.spawn_mob(20073, 398, 392)
            d.spawn_mob(20073, 359, 426)
        end
    end
    when devil_stone5_fail1.server_timer begin
        if d.select(get_server_timer_arg()) then
            notice_multiline(gameforge.deviltower_zone._120_dNotice,d.notice)
            server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
        end
    end
 
    when devil_stone5_fail2.server_timer begin
        if d.select(get_server_timer_arg()) then
            notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
            server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
        end
    end
 
    when devil_stone5_fail3.server_timer begin
        if d.select(get_server_timer_arg()) then
            notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
            server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
        end
    end
 
    when devil_stone5_fail.server_timer begin
        if d.select(get_server_timer_arg()) then
            notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
            d.exit_all()
        end
    end
 
 
    when kill with npc.get_race() == 1062 and d.getf("level") == 5 begin
        local KILL_COUNT_FOR_DROP_KEY = 50
        local n =d.getf("count") + 1
        d.setf("count", n)
        if n == KILL_COUNT_FOR_DROP_KEY then
            game.drop_item(50084, 1)
            d.setf("count", 0)
        end
    end
 
    when devil_stone5.take with item.vnum == 50084 begin
        npc.purge()
        item.remove()
        d.setf("stone_count", d.getf("stone_count") - 1)
        if d.getf("stone_count") <= 0 then
            d.setf("level", 6)
            d.clear_regen()
            d.regen_file("data/dungeon/deviltower6_regen.txt")
 
            notice_multiline(gameforge.deviltower_zone._130_dNotice,d.notice)
            d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
            local server_arg = d.get_map_index()
            clear_server_timer('devil_stone5_fail1', server_arg)
            clear_server_timer('devil_stone5_fail2', server_arg)
            clear_server_timer('devil_stone5_fail3', server_arg)
            clear_server_timer('devil_stone5_fail', server_arg)
        else
            d.notice(string.format(gameforge.deviltower_zone._140_dNotice, d.getf("stone_count")))
        end
    end
 
    when kill with npc.get_race() == 1092 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
        d.kill_all()
        notice_multiline(gameforge.deviltower_zone._150_dNotice,d.notice)
        d.check_eliminated()
        notice_multiline(gameforge.deviltower_zone._160_dNotice,d.notice)
        local reward_alchemist = {20074, 20075, 20076}
        d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
        d.setqf2("deviltower_zone","can_refine", 1)
    end
 
 
    when 20074.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
        say_title(mob_name(20074))
        say(gameforge.deviltower_zone._190_say)
        wait()
        if pc.level >=75 then
            say_title(mob_name(20074))
 
            say(gameforge.deviltower_zone._200_say)
            local s= select(gameforge.deviltower_zone._210_select, gameforge.locale.cancel, gameforge.deviltower_zone._220_select)
            if s==3 then
                pc.warp(590500, 110900)
                return
            end
            if s==2 then
                return
            end
 
            timer("devil_jump_7", 6)
            npc.unlock()
            d.purge()
            return
        end
        say_title(mob_name(20074))
        say(gameforge.deviltower_zone._230_say)
        wait()
        pc.warp(590500, 110500)
        return
    end
 
    when 20075.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000  and npc.lock() begin
        say_title(mob_name(20075))
        say(gameforge.deviltower_zone._190_say)
        wait()
        if pc.level >=75 then
            say_title(mob_name(20075))
 
            say(gameforge.deviltower_zone._200_say)
            local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
            if s==3 then
                pc.warp(590500, 110900)
                return
            end
            if s==2 then
                return
            end
 
            timer("devil_jump_7", 6)
            npc.unlock()
            d.purge()
            return
        end
        say_title(mob_name(20075))
        say(gameforge.deviltower_zone._230_say)
        wait()
        pc.warp(590500, 110500)
        return
    end
    when 20076.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000  and npc.lock() begin
        say_title(mob_name(20076))
        say(gameforge.deviltower_zone._190_say)
        wait()
        if pc.level >=75 then
            say_title(mob_name(20076))
 
            say(gameforge.deviltower_zone._200_say)
            local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
            if s==3 then
                pc.warp(590500, 110900)
                return
            end
            if s==2 then
                return
            end
 
            timer("devil_jump_7", 6)
            npc.unlock()
            d.purge()
            return
        end
        say_title(mob_name(20076))
        say(gameforge.deviltower_zone._230_say)
        wait()
        pc.warp(590500, 110500)
        return
    end
    when devil_jump_7.timer begin
        d.clear_regen()
 
        d.spawn_mob(8018, 639, 658)
        d.spawn_mob(8018, 611, 637)
        d.spawn_mob(8018, 596, 674)
        d.spawn_mob(8018, 629, 670)
 
        d.setf("level", 7)
 
 
        notice_multiline(gameforge.deviltower_zone._240_dNotice,d.notice)
        d.jump_all(2048+590, 6656+638)
    end
 
    when kill with npc.get_race() == 8018 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont = d.getf("7_stone_kill") + 1
        d.setf("7_stone_kill", cont)
 
        if cont >= 4 then
            d.setf("7_stone_kill", 0)
            d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        end
    end
 
    when kill with npc.get_race() == 8019 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game.drop_item(30300, 1)
    end
 
    when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc.remove_item("30300", 1)
 
        local pct = number(1,10)
 
        if pct == 1 then
            -- 奔痷瓜
            game.drop_item(30302, 1)
            d.clear_regen()
        else
            -- 奔安瓜
            game.drop_item(30301, 1)
            
        end
    end
 
    when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        if d.getf( "level" ) != 7 then
            pc.remove_item( "30302", 1)
            return
        end
            
        say_title(gameforge.blacksmith._40_sayTitle)
        say(gameforge.deviltower_zone._250_say)
        pc.remove_item("30302", 1)
        timer("devil_jump_8", 6)
        d.clear_regen()
    end
 
    when devil_jump_8.timer begin
        d.setf("level", 8)
 
        notice_multiline(gameforge.deviltower_zone._260_dNotice,d.notice)
        d.jump_all(2048+590, 6656+403)
        d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        d.spawn_mob(20366, 640, 460)
        local _count = pc.count_item(30302)
        pc.remove_item(30302,_count)
        
    end
 
    when kill with npc.get_race() == 1040 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local pct1 = number(1, 5)
        if pct1 == 1 then
            local pct2 = number(1, 10)
            if pct2 == 1 then
                game.drop_item(30304, 1)
            else
                game.drop_item(30303, 1)
            end
        else
            return
        end
    end
 
    when 20366.take with item.vnum == 30304 begin
        npc.purge()
        item.remove()
        timer("devil_jump_9", 6)
    end
 
    when devil_jump_9.timer begin
        d.setf("level", 9)
 
 
        notice_multiline(gameforge.deviltower_zone._270_dNotice,d.notice)
        d.jump_all(2048+590, 6656+155)
        d.regen_file("data/dungeon/deviltower9_regen.txt")
    end
 
    when kill with npc.get_race() == 1093 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.kill_all()
        d.setqf2("deviltower_zone","9_done", 1)
        notice_multiline(gameforge.deviltower_zone._280_dNotice,d.notice)
        notice_multiline(gameforge.deviltower_zone._290_dNotice,d.notice)
        server_timer("devil_end_jump", 60, d.get_map_index())
    end
 
        when devil_end_jump.server_timer begin
            if d.select (get_server_timer_arg()) then
                d.clear_regen()
                d.exit_all()
            end
        end
    end
end
 
Geri
Üst