Yardım Zindan'a Girip Cıktıkdan Sonra Tekrar Girebilmek İçin Süre İstemeyi Nasıl Yapabiliriz.

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

Afraz

Cehalet yenilmesi gereken en büyük düşmandır.
Yardımsever Üye
MT Üye
Mesaj
678
Çözümler
30
Beğeni
181
Puan
604
Başlıkdada belirttiğim gibi bir zindana girip kestik tekrar girebilmek için süre nasıl ekleyebilirim? Zindan bilgi sisteminde 1 dakika yazıyor fakat Giriş yapıp cıktıkdan sonra Halada Giriş Yapılabilir yazıyor?

.lua dosyası:
quest kule_dungeon begin
    state start begin

    function setting()
        return
        {

        ["base"]={["x"] = 3072  , ["y"]= 12032 ,},
        ["floor1_s"] = { ["x"] = 20, ["y"] = 20, },
        ["floor1_e"] = { ["x"] = 500, ["y"] = 470,},
        ["floor2_s"] = { ["x"] = 510, ["y"] = 18, },
        ["floor2_e"] = { ["x"] = 978, ["y"] = 470,},
        ["floor1_entry"] = {["x"] = 73, ["y"] = 63,},
        ["floor2_entry"] = {["x"] = 550, ["y"] = 45,},
        ["floor3_entry"] = {["x"] = 1378, ["y"] = 249,},
        ["floor4_entry"] = {["x"] = 70, ["y"] = 592,},
        ["floor5_entry"] = {["x"] = 846, ["y"] = 898},
        ["floor6_entry"] = {["x"] = 1362, ["y"] = 666},
        ["water_entry"] = {["x"] = 73, ["y"] = 1156},

        ["map_idx"] = 215,
        ["rag"] = 30311,

        ["devil_king"] = 2591,

        ["reapers_credit1"] = 31324,
        ["reapers_credit2"] = 30320,
        ["reapers_credit3"] = 76002,
        ["reapers_credit4"] = 79001,

        ["floor3_stone"] = 8038, 
        ["floor3_stone_pos"] = {
                {1366,    150},
                {1366,    351},
                {1234,    365},
                {1234,    140},
                {1150,    135},
                {1130,    365},
                {1135,    253}
        },

        ["mob_regen_file_path"] = "data/dungeon/devilwater/",
        ["floor4_regen_file"] = {"devilwater_floor4_regen1.txt",
                               "devilwater_floor4_regen2.txt",
                               "devilwater_floor4_regen3.txt",
                               "devilwater_floor4_regen4.txt",
                               "devilwater_floor4_regen5.txt"} ,

        ["credit_stone"] = 30101,
        ["credit_stone_pos"] = {307,323},
        ["floor2_stone"] = 30103,
        ["floor2_stone_pos"] = {741,217},
        ["floor2_merchant_npc"] = 20368,
        ["floor2_merchant_npc_pos"] = {734,214},
        
        ["floor4_npc"] = 30104,
        ["floor4_npc_pos"] = {75, 592},

        ["devil_king_pos"] = {{673,829},{691,638},{848,568},{1026,642},{1008,862}},

        ["unlock_stone"] = 30312,
        ["floor5_stone"] = 30102,
        ["floor5_stone_pos"] = {848, 735},

        ["devil_great_king"] = 2597 ,
        ["devil_great_king_pos"] = {1303,704},
        ["devil_emperor"] = 3964,
        ["devil_emperor_pos"] = {74,1103},

        ["dc2_door_set_size"] = {4,2,3,2},
        ["dc2_door_set1"] = {
                                {{30111,    566,    117,    5},{30112,  562,    311,    5,},{30118, 663,    434,    7},{30119,  881,    434,    7}},
                                {{30116,    743,    390,    3},{30119,  612,    251,    1,}},
                                {{30113,    654,    211,    5},{30111,  707,    338,    7,},{30112, 775,    336,    7}},
                                {{30117,    733,    294,    3},{30113,  694,    271,    1,}}
                            },
        ["dc2_door_set2"] = {
                                {{30115,    942,    141,    5},{30116,  942,    245,    5},{30117,  942,    321,    5},{30115,  763,    64, 7}},
                                {{30118,    643,    116,    3},{30114,  900,    167,    1}},
                                {{30114,    850,    293,    5},{30113,  715,    164,    7},{30114,  817,    162,    7}},
                                {{30111,    802,    277,    1},{30112,  800,    241,    1}}
                            },
        }
    end
        when logout begin
            local idx = 66
            local map = pc.get_map_index()
            if map >= (idx * 10000) and map < (idx * 10000 + 9000) then
                pc.setf("kule","dungeon_time",get_global_time() + 60*30*1)
            end
        end

        when 20348.chat."Şeytan Kulesi Tek Kat (55.Seviye)" begin
            local setting = kule_dungeon.setting()
            if pc.get_level() < 55 then
                say_title("Bekci:")
                say("")
                say("55. seviyenin altinda oldugun icin ")
                say("zindana giremezsin...")
                return
            end
            if party.is_party() then
                say("Grubun varken giris yapamazsin.")
                return
            end
            if pc.getf("kule","dungeon_time") > get_time() and not pc.is_gm() then
                say_npc()
                say("")
                say("Henüz odaya giremezsin.")
                say("Bekleme süren dolunca tekrar gel.")
                say("")
                say_reward("Kalan Süre : "..LIB_duration(pc.getf("kule","dungeon_time")-get_time()))
                return
            end
            say_title("Bekci:")
            say("")
            say("zindana girmek istiyor musun?")
            local s = select("Evet!","Hayir,girmek istemiyorum.")
            if s == 1 then
                timer("kule_sologiris",2)
            else
                return
            end
        end
        
        when kule_sologiris.timer begin
            d.new_jump(66, 2048 * 100, 6656 * 100)
            d.spawn_mob_dir(1093,139,636,1)
            --d.set_regen_file("data/dungeon/water_dungeon_regens/boss.txt")
            --d.jump_all (setting.water_entry.x + setting.base.x, setting.water_entry.y + setting.base.y )
            --water.Temizle()
            
            server_timer("kule_timeup",60*60*1,d.get_map_index())
        end
        
        -- 6Ãş°ú ¸¶Âù°¡Áö·Î »ç¸¶ÈÖ(3964)ÀÌ Á×À¸¸é
        -- 7ÃşÀÇ Å¸À̸Ӱ¡ ÀÛµ¿ÇÑ´Ù.
        when kill with npc.get_race() == 1093 begin
            d.setf("kule_dead",1)
            --notice_all(pc.get_name().."'s party has defeated Lord Gahnasel!")
            notice_all("|cff00ff00 Patron Avcısı "..pc.get_name().." grubu, Lusiferi Mağlup etti!")
            server_timer ("kule_eli_check_timer_1", 5, d.get_map_index())
        end
        
        -- 7ÃşÀÇ Å¸À̸Ӵ 6Ãş ŸÀÌ¸Ó¿Í ºñ½ÁÇϸç,
        -- ¸ó½ºÅÍ ¼ıÀÚ°¡ 0À̸é exit ŸÀ̸Ӹ¦ ¹ß»ı½ÃŲ´Ù.
        -- ¹Ù·Î exitÇÏÁö ¾Ê´Â ÀÌÀ¯´Â, À¯Àúµé¿¡°Ô ÁغñÇÒ ½Ã°£À» ÁÖ±â À§ÇؼÀÌ´Ù.
        when kule_eli_check_timer_1.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.set_warp_location (65, 5905,1105 )
                --say_in_map(get_server_timer_arg(),"Azrail yenildi. ?ytan Katakombu'na nihayet[ENTER]huzur hakim. ?mdi yer y??e ış?lanacaks?. ")
                server_timer ("kule_eli_check_timer_2", 5, get_server_timer_arg())
            end
        end

        when kule_eli_check_timer_2.server_timer begin
            if d.select(get_server_timer_arg()) then
                    d.set_warp_location (65, 5905, 1105)
                    --say_in_map(get_server_timer_arg(),"Azrail yenildi. ?ytan Katakombu'na nihayet[ENTER]huzur hakim. ?mdi yer y??e ış?lanacaks?. ")
                    server_timer("kule_exit_timer", 30, get_server_timer_arg())
            else
                    server_timer ("kule_eli_check_timer_1", 5, get_server_timer_arg())
            end
        end
        
        when kule_timeup.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Zaman doldu.")
                d.setf("sure_doldu",1)
                d.exit_all()
            end
        end

        when kule_exit_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                clear_server_timer("kule_eli_check_timer_1", get_server_timer_arg())
                clear_server_timer("kule_eli_check_timer_2", get_server_timer_arg())
                clear_server_timer("kule_sologiris", get_server_timer_arg())
                d.clear_regen()
                d.exit_all()
            end
        end
    end  --state
end   --quest

Benim istediğim bana yapıp questini atmanız değil nasıl yapabilirim onu yazarsanız cok sevinirim cünkü tek zindan bu değil :D
 
Son düzenleme:
Bunu bir konuda anlatmıştım direk mesajımı alıntılayacağım o yüzden
Paylaşılanların tamamında duration (Kalan Süre, Soğuma Süresi) çalışmıyor. Satışını yaptığımdan dolayı çözümü veremiyorum fakat eğer source tabanlı kullanıyorsanız kalan zamanı returnlemeniz lazım. Eğer dungeonlib olanını kullanıyorsanız; çıkış zamanını ilgili dungeon dosyasından dungeonlib'e returnleyip clientten dungeondata'ya tanıtıp uidungeoninfodan remaining time fonksiyonuyla geriye doğru saydırmanız lazım. Kısaca mantık bu.

Biraz daha açıklayıcı olursam şu şekilde;
Lua (Quest):
pc.getf("kule","dungeon_time")
Dungeon çıkışında bu fonksiyonu setf ile set edin
pc.setqf("dungeon_time", get_time()+60*60*1)
Şeklinde dungeon çıkışında

dungeonlib.lua'da da;
return pc.getf("quest_adi", "dungeon_time")
Şeklinde yapıp cliente gönderin
 
Son düzenleme:
Bunu bir konuda anlatmıştım direk mesajımı alıntılayacağım o yüzden


Biraz daha açıklayıcı olursam şu şekilde;
Lua (Quest):
pc.getf("kule","dungeon_time")
Dungeon çıkışında bu fonksiyonu setf ile set edin
pc.setqf("dungeon_time", get_time()+60*60*1)
Şeklinde dungeon çıkışında

dungeonlib.lua'da da;
return pc.getf("quest_adi", "dungeon_time")
Şeklinde yapıp cliente gönderin
Kusura bakma pek anlamadım :D Sadece lua dosyasınımı editleceyiz yoksa farklı dosyalarda baska gereken işlemler yapılıcakmı?
 
Screenshot_4.png


Bunu

Screenshot_5.png


Böyle yapıp okuttum fakat dungeonlib.lua ye eklediğim şeyi okutamadım error gibi birşey verdi. Oyundan reload q cekip denedim üst üste girilebiliyor.


Peki bunları tek tek nasıl yapıcağım? Anlatırmısın.
dungeon dosyasından dungeonlib'e oradan da cliente gidicek veri, uidungeoninfo'dan da remaintime'ı yazdırman gerekiyor.
 
Son düzenleme:
Geri
Üst