İstek Şeytan Kulesi 10.Kat Hk.

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 515
Konu sahibinin aradığı materyalleri bulmasına yardımcı olmak için konuya yorum yazabilirsiniz.

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
3.958
Çözümler
381
Beğeni
4.017
Puan
1.849
Ticaret Puanı
0
Merhaba.
Şeytan Kulesi 10.Kat + Questi arıyorum elinde olan var mı acaba? Bulduğum linkler hep kırılmış maalesef.
 
Dediğiniz gibi bir çok yerde linkler kırılmış.
Linkleri görebilmek için giriş yap veya kayıt ol.
10. kat odası için harita dosyalarını bulabildim. Dosyayı eklere yükledim. İndirebilirsiniz.

Quest doyasını ise rubinum dosyalarından buldum. Mavi Ölüm katı almanca olarak mevcut ne yazık ki.
Linkleri görebilmek için giriş yap veya kayıt ol.
ise ingilizce hali paylaşılmış.

deviltower_zone Questi;
Lua (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 devil_stone1.kill 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 devil_stone3.kill with 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 8016.kill with pc.in_dungeon() 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', 1*120, 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', 1*120, 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', 1*120, 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', 1*120, 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 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
        local KILL_COUNT_FOR_DROP_KEY = 10
        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 devil_stone6.kill with 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 8018.kill with 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 8019.kill with 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,3)

        if pct == 1 then
            game.drop_item(30302, 1)
            d.clear_regen()
        else
            -- nothing happens cause the items isnt used in the game
            -- 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)
            chat("DT-Bugusing ist verboten!")
            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)
        local plusone = d.getf("check") +1
        d.setf("check", plusone)
        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)
     
        if d.getf("check") != 1 then
        d.notice("Bug using detected! Your Run ends now!")
        d.clear_regen()
        d.exit_all()
        end
    end

    when 1040.kill with pc.in_dungeon() 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(30304, 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 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        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)
        timer("devil_gdk_jump", 15)
    end

            when devil_gdk_jump.timer begin
        d.spawn_mob(1094, 609, 179);
            d.notice("Der stolze Demonenkönig ist erschienen")
            end
 
        when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.notice("Der stolze Demonenkönig ist gefallen, in kürze wird der Blaue Tod erscheinen")
                timer("devil_bt_jump", 15)
        end
     
        when devil_bt_jump.timer begin
        d.spawn_mob(1095, 609, 179);
            d.notice("Der Blaue Tod ist erschienen")
            d.setqf("can_refine", 1)
        end
     
    when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.kill_all()
         d.spawn_mob(20074, 609, 179);
        d.spawn_mob(20075, 609, 172);
        d.spawn_mob(20076, 609, 185);
            game.drop_item_with_ownership(71374, 1) -- dropping dragon scale
            game.drop_item_with_ownership(50255, 3) -- dropping toe nail
        d.setqf("can_refine", 1)
        d.notice("Du hast den Blauen Tod getoetet und damit den Daemonenturm abgeschlossen.")
        d.notice("Herzlichen Glückwunsch!")
        d.notice("Du darfst erneut einen Gegenstand bei den dämonischen Schmieden verbessern. Viel Glück!")
        notice_all("".. pc.get_name() .." hat den Blauen Tod getötet und damit den Daemonenturm abgeschlossen.")
        d.notice("Du wirst in 10 Minuten herrausteleportiert.")
     
                server_timer("devil_end_jump", 600, 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

Değişiklikleri yapmadan önce yedek almayı unutmayın.
Dipnot: Yukarıda verdiğim questi kendi serverimde bi ara denemiştim ve sıkıntısız çalışmıştı. Fakat o zamanlar mavi ölüm katının ne olduğunu anlayamadığım için azrailden sonrasını temizlemiştim. :D
 

Dosya Eklentileri

Teşekkür ederim :) Dosyaları komple değiştirmek şart mı acaba? Sadece ek olan kısmı nasıl değiştirebilirim?
Yani sadece mavi ölüm odasını sağlam bir şekilde alıp eklemek istiyorum. Quest kısmını elimdeki questi düzenleyerek halledeceğim.
 
O konuda fazla bir şey söyleyemem. :D
Quest kısmında mavi ölümle alakalı kodları alıp kendi questinize ekleyebilirsiniz.
 
Map olaylarında pek iyi sayılmam bende :)
Ama şöyle bir şey yaptım; metin2_map_deviltower1 klasörünü packteki ile değiştirdim, ymir work klasörünü de paketleyip index'e ekledim.
Ama kule içinde gereken koordinata /warp ile ışınlanmıyor alakasız bir map e ışınlanıyor.
Kat kat çıkmayı deneyemedim henüz ama sanırım kule içinde /warp işlemediği için ışınlamıyor olabilir mi ?

edit: Lusiferi kesince öyle kalıyor ne dışarı atıyor ne de başka bir şey..
 
Son düzenleme:
Üst