Yardım ŞEYTAN KULESİ

  • Konuyu açan Konuyu açan karaman6060
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 777
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

karaman6060

Üye
Üye
Mesaj
59
Çözümler
2
Beğeni
11
Puan
424
Ticaret Puanı
0
ŞEYTAN KULESİ 9 KAT VE BEN 6.KATTAN BAŞLATMAK İSTİYORUM QUESTİ NASIL AYARLIYABİLRİM BİLGİSİ OLAN VARMI YADA ELİNDE HAZIR OLAN PAYLAŞABİLİR Mİ
 
Lua (Quest):
Genişlet Daralt Kopyala
quest deviltower_zone begin
    state start begin
    when login begin
        if pc.get_map_index() == 66 then
        -- Nicht in einer Etage, die wieder nach drau¡¼n .
        -- Layer Aralığı
        -- 1F   88  577  236 737
        -- 2F   91  343  238 504
        -- 3F  104  107  248 269
        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 deviltower_man.chat.locale.deviltower_man_chat begin
        if pc.get_level() < 40 then
        say(locale.deviltower_man_say_you_cant)
        else
        say(locale.deviltower_man_say)
        local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
        if s == 1 then
            -- warp into!
            pc.removeitem("30300", 100)
            pc.warp(216500,727000)
        end
        end
    end
    when devil_stone1.kill begin
        timer("devil_stone1_1", 6)
    end
    when devil_stone1_1.timer begin
        local mapto7= pc.count_item(30302)  -- Ich weiß nicht, das wahre Tilgung der die Existenz der Seele des Turms
        pc.remove_item(30302,mapto7)

        local boxto7= pc.count_item(30300)  -- Beseitigung des unbekannten weiß nicht, ob es sich um ein Feld
        pc.remove_item(30300,boxto7)

        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_stone2.kill begin
    --d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
    --end
    when devil_stone3.kill begin
        --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
        --d.set_exit_all_at_eliminate(6)
        --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
        --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
        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()
        --d.exit_all()
    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
        --for i = 1, 7 do
    --    positions[i][1] = positions[i][1] * 100
    --    positions[i][2] = positions[i][2] * 100
     --   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)
        -- Canavarlar ¡¼ Yeniden Gelcek Hiç Durmadan
        --d.regen_file("data/dungeon/deviltower4_regen.txt")
        local positions = deviltower_zone.get_4floor_stone_pos()
        for i = 1, 6 do
        chat(positions[i][1], positions[i][2])
        d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
        end
        chat(positions[7][1], positions[7][2])
        local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
        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())

        d.notice("Bu 4. Seviye,");
        d.notice("Metinleri Kesmelisin");
        d.notice("15 Dakikan Var");
        d.notice("Aksi Taktirde Dışarı Atılacaksın.");
    end

    when devil_stone4_fail1.server_timer begin
        if d.select(get_server_timer_arg()) then
        d.notice("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
        d.notice("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()) then
        d.notice("Süre Bitti!!!!!!")
        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)
                d.notice("Sahte Metin Kesildi.");
                end
            end
            end
        else
            --d.clear_regen()
            --d.regen_file("data/dungeon/deviltower5_regen.txt")
            server_timer("devil_stone4_end", 5, get_server_timer_arg())
            d.notice("Tebrikler Dogru Metini Kestiniz");
            d.notice("Şimdi Kat Atlayacaksın,Sakın Kıpırdama.")
            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
        d.setf("level", 5)
        d.setf("stone_count", 5)
        d.notice("5. Kata Hoş Geldin")
        d.notice("Tüm Canavarları Öldürüp Kilit Anahtarını Alıp Mühürleri Açacaksın")
        d.notice("Sonraki Kata Geçebilmek için Bunlari Yapman Sart")
        d.notice("Mühürler Sadece Anahtarla Açılır (20 Dakikan Var)")
        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())

        -- 5. Stock, weiter zu reproduzieren
        d.set_regen_file("data/dungeon/deviltower5_regen.txt")

        -- 5. Stock, Seal Stone Reproduktion
        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
        d.notice("15 Dakikan 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
        d.notice("10 Dakikan 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
        d.notice("5 Dakikan 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()) then
        d.notice("Süre Bitti!!!!!!.")
        d.exit_all()
        end
    end

    --when devil_stone4.kill begin
        --d.setf("level", 5)
        --d.setf("stone_count", 4)
        --d.clear_regen()
        --d.regen_file("data/dungeon/deviltower5_regen.txt")
        --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
    --end

    when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
        local KILL_COUNT_FOR_DROP_KEY = 50
        --if is_test_server() then
        --KILL_COUNT_FOR_DROP_KEY = 1
        --end
        local n =d.getf("count") + 1
        d.setf("count", n)
        if n == KILL_COUNT_FOR_DROP_KEY then
        -- Falling Tasten
        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")

        d.notice("Tebrikler Bütün Mühürleri Açtın")
        d.notice("Şimdi BİR Sonraki Kata Çıkacaksın")
        d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        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())
        else
        d.notice("Säule entfernt... Noch "..d.getf("stone_count").." Viel Glück")
        end
    end

    when devil_stone6.kill begin
        -- Bir Harita Bulacaksın.
        -- Aksi Takdirde Kuleden Atılacaksın
        --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
        d.kill_all()
       -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
        d.check_eliminated()
        local reward_alchemist = {20074, 20075, 20076}
        d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
        d.setqf("can_refine", 1)
    end

    --------------------------------------
    -- 7 D kommt man aus dem Zugriff vor dem 8. Stock
    --------------------------------------

    when 20074.chat."Üst Katlar" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say(""..mob_name(20074).."")
        say("Devam Edecekmisiniz")
        say("Çok Zor Olacak")
        say("Ben Hep Burdayım 7/24 :D")
        say("")
        wait()
        if pc.level >=85 then
            say("Sen En En Büyüksün.")
            say("Ama Cesur musun?")
            say("Yalnız Çıkma Yoksa Rahat ölürsün.")
            timer("devil_jump_7", 6)
            return
        end
        say("Sen Ne Yazıkki Henüz")
        say("Daha Yükselemeyeceksin")
        say("Biraz Sonra Geri Gideceksin.")
        say("İyi Şanslar.")
        say("")
        wait()
        pc.warp(590500, 110500)
        return
    end
    when 20075.chat."Üst Kat İçin .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say(""..mob_name(20075).."")
        say("Devam Edecekmisin")
        say("Çok Zor Olacak")
        say("Ben Hep Buralardayim.")
        say("")
        wait()
        if pc.level >=85 then
            say("Sen En Büyüksün")
            say("Ama Cesur Musun?")
            say("Yalnız Çıkma Sakın Yoksa Rahat Ölürsün")
            timer("devil_jump_7", 6)
            return
        end
        say("Sen Ne yazıkkı ")
        say("Daha Yükselemezzin")
        say("Biraz Sonra...")
        say("İyi Şanşlar")
        say("")
        wait()
        pc.warp(590500, 110500)
        return
    end
    when 20076.chat."Üst Kat İçin .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say(""..mob_name(20076).."")
        say("Devam Edecekmisin")
        say("Çok Zor Olacak")
        say("Ben Hep Buralardayim.")
        say("")
        wait()
        if pc.level >=85 then
            say("Sen En Büyüksün")
            say("Ama Cesur Musun?")
            say("Yalnız Çıkma Sakın Yoksa Rahat Ölürsün")
            timer("devil_jump_7", 6)
            return
        end
        say("Sen Ne yazıkkı ")
        say("Daha Yükselemezzin")
        say("Biraz Sonra...")
        say("İyi Şanşlar.")
        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)

        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,10)

        if pct == 1 then
            -- Fall wahr Karte
            game.drop_item(30302, 1)
            d.clear_regen()
        else
            -- Fall wahr Karte
            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
        -- An der 8th Floor
        say("Gerçek Haritayı Buldun İyi Şanslar.")
        pc.remove_item("30302", 1)
        timer("devil_jump_8", 6)
        d.clear_regen()
    end
                        
    --------------------------------------------
    -- Von 8 F vor der Ankunft geben Sie die 9 F
    --------------------------------------------
    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)-- True Tilgung Dead Turm
        pc.remove_item(30302,_count)
        
    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
                -- Fall wahre Schl¡¼sel
                game.drop_item(30304, 1)
            else
                -- Keys fiel
                game.drop_item(30303, 1)
            end
        else
            return
        end
    end

    when 20366.take with item.vnum == 30304 begin
        -- 9 F-Zeichen aufgehoben
        npc.purge()
        item.remove()
        timer("devil_jump_9", 6)
    end

    ---------------------------------------------
    -- 9 F ein Ende, indem Sie
    ---------------------------------------------
    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 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.kill_all()
        timer("devil_end_jump", 60)
    end

    when devil_end_jump.timer begin
        d.exit_all()
    end
end
end
 
En son bir moderatör tarafından düzenlenmiş:
Özel kat quest:
Genişlet Daralt Kopyala
 else
            say_title("Şeytan Kulesi Gardiyanı:")
            say("Şeytan kulesine girmek istiyor musun ?")
            say("2. Kattan devam etmek isterseniz 50M Yang ödemelisiniz.")
            local s = select("Gir.", "2.Kat'a Giriş Yap.", "Vazgeç.")
            if s == 1 then
                pc.warp(216500,727000)
            elseif s == 2 then
        if pc.get_money() < 50000000 then
            say("Hay Aksi!")
            say("Envanterine 50M yang olmadan seni içeri alamam.")
            say("50M yang yaptığında tekrar uğra.")
        else
            pc.change_money(-50000000)
            d.new_jump(66, special.devil_tower[1][1] * 100, special.devil_tower[1][2] * 100)
            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
            elseif s == 3 then
        return
            end
        end

local s = select("Gir.", "6.Kat'a Giriş Yap.", "Vazgeç.")
 
Kod:
Genişlet Daralt Kopyala
Şeytan Kulesinin 7.Kattında başlamak için yapılması Gereken Kodlar altaki sıralanmış şekildedir.

-- asenis_dungeon_75
quest dungeon_kule begin
state start begin
---------------------------------------------------------------------------------------------------------FUNCTIONS START
function isSystemOpen() return (game.get_event_flag("dungeon_kule_sys")!=1) end
function testMode() return false end
function is_this_dungeon()
if not pc.in_dungeon() then return false end
local set = dungeon_kule.getSetting()
return (d.get_orig_map_index()==set.map_index)
end
function isOutside()
local set = dungeon_kule.getSetting()
return (pc.get_map_index()==set.out_map_index)
end
function isValidCahnnel(ch) return true end
function check_pc(ctype) -- remove items!
local set = dungeon_kule.getSetting()
local needs = set.needs
if ctype == 1 then
if pc.get_level() < needs[2] then return 2 end
if needs[3] < pc.get_level() then return 3 end
if pc.get_gold() < needs[1] then return 4 end
if pc.is_busy() then return 6 end
return 1
elseif ctype == 2 then
if pc.is_busy() then return false end
pc.change_gold(-needs[1])
return true
end
end
function getSetting()
return {
["map_index"] = 613,
["base_coor_local"] = {155, 101},
["out_map_index"] = 65,
["out_coor_local"] = {529, 597},
["open_time"] = 60*15,
["remain_time"] = 1800,
["needs"] = {0, 75, 120, 0, 1},
--Level 1
["boss_lib"] = {1093, 109, 141}
}
end
function sendRemainWhisper()
local set = dungeon_kule.getSetting()
local rem = (set.remain_time+pc.getqf("dungeon_kule_time"))-get_global_time()
if rem > 0 then timer("Whisper_Kule", rem) end -- V4
end
---------------------------------------------------------------------------------------------------------FUNCTIONS END

---------------------------------------------------------------------------------------------------------LOGIN-LOGOUT START
when login begin
local pindex = pc.get_map_index()
clear_letter()
local set = dungeon_kule.getSetting()
if pindex == set.map_index then
if pc.get_local_x() < 160 and pc.get_local_y() > 910 then
warp_to_village()
else
dungeon_kule.sendRemainWhisper()
end
elseif dungeon_kule.is_this_dungeon() then
if not d.is_registered_pc() then
warp_to_village()
return
end
else
dungeon_kule.sendRemainWhisper()
end
end

---------------------------------------------------------------------------------------------------------LOGIN-LOGOUT END
---------------------------------------------------------------------------------------------------------NPC START

when 20348.chat."Beni içeri gönder..." with dungeon_kule.isValidCahnnel(pc.get_channel_id()) and dungeon_kule.isOutside() begin
if not dungeon_kule.isSystemOpen() then
setskin(0)
syschat("Sistem, yönetici tarafından kapatılmıştır.")
return
end

if (game.get_event_flag("dungeon_channel_login") == 1) then
if pc.get_channel_id() != 1 then
say("Zindanlara 1. kanal üzerinden giriş yapılabilir. ")
return
end
end

say_title("Merhabalar "..pc.get_name())
say("")
local set = dungeon_kule.getSetting()
-- Remain Time Disabled -- --
local remainTime = pc.getqf("dungeon_kule_time")+set.remain_time-get_global_time()
if remainTime>0 then
say("Bir oda açtıktan sonra toplam "..LIB_duration(set.remain_time).."beklemelisin.")
say("")
say("Tekrar oda açman için kalan bekleme süren: "..LIB_duration(remainTime))
say("")
wait()
return
end
say_reward("Gerekenleri sagliyorsaniz direkt odaya isinlanacaksiniz!")
setskin(0)
local control = dungeon_kule.check_pc(1)
if control == 1 then
if not dungeon_kule.check_pc(2) then return end
local x = get_map_base_x(set.map_index)+set.base_coor_local[1]*100
local y = get_map_base_y(set.map_index)+set.base_coor_local[2]*100
d.new_jump(set.map_index, x, y, true)
d.register_pc()
-- Remain Time -- --
pc.setqf("dungeon_kule_time", get_global_time())

d.setf("level", 1)
d.setf("creator", pc.get_player_id())

local blib = set.boss_lib
d.spawn_mob(blib[1], blib[2], blib[3])

return
elseif control == 2 then
syschat("<Giris Kontrolü> Oda kurmak için leveliniz yeterli degil.")
return
elseif control == 3 then
syschat("<Giris Kontrolü> Oda kurmak için leveliniz çok fazla.")
return
elseif control == 4 then
syschat("<Giris Kontrolü> Oda kurmak için yeterli yanginiz bulunmuyor.")
return
elseif control == 5 then
syschat("<Giris Kontrolü> Oda kurmak için gerekli nesneye/nesne sayısına sahip değilsiniz.")
return
elseif control == 6 then
syschat("<Giris Kontrolü> Ticaret pencerelerini kapatmalisiniz.")
return
end
end
when Whisper_Kule.timer begin -- V4
send_whisper(pc.get_player_id(), "[Zindan Bilgilendirme]", "Şeytan Kulesi Zindanı'ndaki bekleme süreniz dolmuştur, tekrar oda açabilirsiniz.")
end

when 20348.chat."GM:: Bekleme Süresi Sıfırla" with pc.is_gm() and dungeon_kule.isValidCahnnel(pc.get_channel_id()) and dungeon_kule.isOutside() begin
setskin(0)
pc.delqf("dungeon_kule_time")
cleartimer("Whisper_Kule") -- V4
end




when 1093.kill with dungeon_kule.is_this_dungeon() and d.getf("level") == 1 begin
d.setf("level", 0)
-- if d.getf("notSelf") == 1 then notice_all(pc.get_name().." ve odasındakiler, Korku Zindanı Başkanı'nı öldürdü!")
-- else notice_all(pc.get_name()..", Korku Zindanı Başkanı'nı tek başına öldürdü!")
-- end -- V3
d.big_notice("3 dakika sonra oda kapatılacak!")
----d.exit_all2(60*3)
timer('exit_d_kule', 60*3)
end

when exit_d_kule.timer begin
d.exit_all_to_start_position()
end

end
end
 
Üst