İstek istek quest

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

espase

Osmanlı-Metin2
Üye
Mesaj
21
Beğeni
1
Puan
445
Ticaret Puanı
0
İmparatorluk kayası kesen bayrak ödülü vermek istıyorum ölül olarak 200 derece puanı verecek atıyorum kırmızı bayrak kestı çölde bulunan bütün kırmızı bayraklar 200 derece kazanacak
24 saat oyun suresi olana ep ödülü verecek max 99 ve üzei lvl alabilecek tek şart oyun suresi ve bagırmak tan yazı yaması karşılıgında süresi dolunca ödül alabılecek sureklı tekrarlana bilir şekilde
bu 2 quest yardımcı olabilirseniz sevinirim
 
@espase örnek quest bu şekildedir;


99levelodulver.lua:
Genişlet Daralt Kopyala
quest active_reward begin
    state start begin
        when login begin
            if pc.getqf("start_time") == 0 then
                pc.setqf("start_time", get_time())
            end
        end

        when logout begin
            local elapsed_time = get_time() - pc.getqf("start_time")
            pc.setqf("elapsed_time", pc.getqf("elapsed_time") + elapsed_time)
        end

        when 5555.chat."24 Saat Aktif Ödülü" begin -- 5555 NPC numarasını belirtir.
            if pc.get_level() < 99 then
                say("Bu görevi başlatmak için en az 99 level olmanız gerekiyor.")
                return
            end

            local current_time = get_time()
            local elapsed_time = pc.getqf("elapsed_time") + (current_time - pc.getqf("start_time"))

            say("Merhaba "..pc.get_name().."!")
            say("Toplam aktif süreniz: "..math.floor(elapsed_time / 3600).." saat "..math.floor((elapsed_time % 3600) / 60).." dakika.")
            local choice = select("Ödülümü Almak İstiyorum", "Ne Kadar Sürem Kaldı?", "Vazgeçtim")

            if choice == 1 then
                if elapsed_time >= 24 * 60 * 60 then
                    pc.give_item2(ITEM_VNUM, 1)  -- Burada ITEM_VNUM yerine verilecek itemin id'sini girin
                    pc.setqf("elapsed_time", 0)
                    pc.setqf("start_time", current_time)
                    syschat("24 saat boyunca aktif olduğunuz için ödül kazandınız!")
                    say("Tebrikler! 24 saat boyunca aktif oldunuz ve ödül kazandınız.")
                else
                    say("Maalesef 24 saat boyunca aktif olmadınız.")
                    say("Şu ana kadar aktif olduğunuz süre: "..math.floor(elapsed_time / 3600).." saat "..math.floor((elapsed_time % 3600) / 60).." dakika.")
                    local remaining_time = (24 * 60 * 60) - elapsed_time
                    say("Ödül kazanmak için kalan süre: "..math.floor(remaining_time / 3600).." saat "..math.floor((remaining_time % 3600) / 60).." dakika.")
                end
            elseif choice == 2 then
                local remaining_time = (24 * 60 * 60) - elapsed_time
                say("Ödül kazanmak için kalan süre: "..math.floor(remaining_time / 3600).." saat "..math.floor((remaining_time % 3600) / 60).." dakika.")
            end
        end
    end
end
 
@espase örnek quest bu şekildedir;


99levelodulver.lua:
Genişlet Daralt Kopyala
quest active_reward begin
    state start begin
        when login begin
            if pc.getqf("start_time") == 0 then
                pc.setqf("start_time", get_time())
            end
        end

        when logout begin
            local elapsed_time = get_time() - pc.getqf("start_time")
            pc.setqf("elapsed_time", pc.getqf("elapsed_time") + elapsed_time)
        end

        when 5555.chat."24 Saat Aktif Ödülü" begin -- 5555 NPC numarasını belirtir.
            if pc.get_level() < 99 then
                say("Bu görevi başlatmak için en az 99 level olmanız gerekiyor.")
                return
            end

            local current_time = get_time()
            local elapsed_time = pc.getqf("elapsed_time") + (current_time - pc.getqf("start_time"))

            say("Merhaba "..pc.get_name().."!")
            say("Toplam aktif süreniz: "..math.floor(elapsed_time / 3600).." saat "..math.floor((elapsed_time % 3600) / 60).." dakika.")
            local choice = select("Ödülümü Almak İstiyorum", "Ne Kadar Sürem Kaldı?", "Vazgeçtim")

            if choice == 1 then
                if elapsed_time >= 24 * 60 * 60 then
                    pc.give_item2(ITEM_VNUM, 1)  -- Burada ITEM_VNUM yerine verilecek itemin id'sini girin
                    pc.setqf("elapsed_time", 0)
                    pc.setqf("start_time", current_time)
                    syschat("24 saat boyunca aktif olduğunuz için ödül kazandınız!")
                    say("Tebrikler! 24 saat boyunca aktif oldunuz ve ödül kazandınız.")
                else
                    say("Maalesef 24 saat boyunca aktif olmadınız.")
                    say("Şu ana kadar aktif olduğunuz süre: "..math.floor(elapsed_time / 3600).." saat "..math.floor((elapsed_time % 3600) / 60).." dakika.")
                    local remaining_time = (24 * 60 * 60) - elapsed_time
                    say("Ödül kazanmak için kalan süre: "..math.floor(remaining_time / 3600).." saat "..math.floor((remaining_time % 3600) / 60).." dakika.")
                end
            elseif choice == 2 then
                local remaining_time = (24 * 60 * 60) - elapsed_time
                say("Ödül kazanmak için kalan süre: "..math.floor(remaining_time / 3600).." saat "..math.floor((remaining_time % 3600) / 60).." dakika.")
            end
        end
    end
end
bağırma kontrolü yok bu questi istemiyor arkadaş tek görevi süre değil.
 
ben bağırma kontrollü item veren quest görmedim hiç. questluaların uygununu bulup belki battlepass görevlerindeki gibi bağırma kontrolü yapabilirseniz olur ama işiniz zor.
 
@espase örnek quest bu şekildedir;


99levelodulver.lua:
Genişlet Daralt Kopyala
quest active_reward begin
    state start begin
        when login begin
            if pc.getqf("start_time") == 0 then
                pc.setqf("start_time", get_time())
            end
        end

        when logout begin
            local elapsed_time = get_time() - pc.getqf("start_time")
            pc.setqf("elapsed_time", pc.getqf("elapsed_time") + elapsed_time)
        end

        when 5555.chat."24 Saat Aktif Ödülü" begin -- 5555 NPC numarasını belirtir.
            if pc.get_level() < 99 then
                say("Bu görevi başlatmak için en az 99 level olmanız gerekiyor.")
                return
            end

            local current_time = get_time()
            local elapsed_time = pc.getqf("elapsed_time") + (current_time - pc.getqf("start_time"))

            say("Merhaba "..pc.get_name().."!")
            say("Toplam aktif süreniz: "..math.floor(elapsed_time / 3600).." saat "..math.floor((elapsed_time % 3600) / 60).." dakika.")
            local choice = select("Ödülümü Almak İstiyorum", "Ne Kadar Sürem Kaldı?", "Vazgeçtim")

            if choice == 1 then
                if elapsed_time >= 24 * 60 * 60 then
                    pc.give_item2(ITEM_VNUM, 1)  -- Burada ITEM_VNUM yerine verilecek itemin id'sini girin
                    pc.setqf("elapsed_time", 0)
                    pc.setqf("start_time", current_time)
                    syschat("24 saat boyunca aktif olduğunuz için ödül kazandınız!")
                    say("Tebrikler! 24 saat boyunca aktif oldunuz ve ödül kazandınız.")
                else
                    say("Maalesef 24 saat boyunca aktif olmadınız.")
                    say("Şu ana kadar aktif olduğunuz süre: "..math.floor(elapsed_time / 3600).." saat "..math.floor((elapsed_time % 3600) / 60).." dakika.")
                    local remaining_time = (24 * 60 * 60) - elapsed_time
                    say("Ödül kazanmak için kalan süre: "..math.floor(remaining_time / 3600).." saat "..math.floor((remaining_time % 3600) / 60).." dakika.")
                end
            elseif choice == 2 then
                local remaining_time = (24 * 60 * 60) - elapsed_time
                say("Ödül kazanmak için kalan süre: "..math.floor(remaining_time / 3600).." saat "..math.floor((remaining_time % 3600) / 60).." dakika.")
            end
        end
    end
end

@espase örnek quest bu şekildedir;


99levelodulver.lua:
Genişlet Daralt Kopyala
quest active_reward begin
    state start begin
        when login begin
            if pc.getqf("start_time") == 0 then
                pc.setqf("start_time", get_time())
            end
        end

        when logout begin
            local elapsed_time = get_time() - pc.getqf("start_time")
            pc.setqf("elapsed_time", pc.getqf("elapsed_time") + elapsed_time)
        end

        when 5555.chat."24 Saat Aktif Ödülü" begin -- 5555 NPC numarasını belirtir.
            if pc.get_level() < 99 then
                say("Bu görevi başlatmak için en az 99 level olmanız gerekiyor.")
                return
            end

            local current_time = get_time()
            local elapsed_time = pc.getqf("elapsed_time") + (current_time - pc.getqf("start_time"))

            say("Merhaba "..pc.get_name().."!")
            say("Toplam aktif süreniz: "..math.floor(elapsed_time / 3600).." saat "..math.floor((elapsed_time % 3600) / 60).." dakika.")
            local choice = select("Ödülümü Almak İstiyorum", "Ne Kadar Sürem Kaldı?", "Vazgeçtim")

            if choice == 1 then
                if elapsed_time >= 24 * 60 * 60 then
                    pc.give_item2(ITEM_VNUM, 1)  -- Burada ITEM_VNUM yerine verilecek itemin id'sini girin
                    pc.setqf("elapsed_time", 0)
                    pc.setqf("start_time", current_time)
                    syschat("24 saat boyunca aktif olduğunuz için ödül kazandınız!")
                    say("Tebrikler! 24 saat boyunca aktif oldunuz ve ödül kazandınız.")
                else
                    say("Maalesef 24 saat boyunca aktif olmadınız.")
                    say("Şu ana kadar aktif olduğunuz süre: "..math.floor(elapsed_time / 3600).." saat "..math.floor((elapsed_time % 3600) / 60).." dakika.")
                    local remaining_time = (24 * 60 * 60) - elapsed_time
                    say("Ödül kazanmak için kalan süre: "..math.floor(remaining_time / 3600).." saat "..math.floor((remaining_time % 3600) / 60).." dakika.")
                end
            elseif choice == 2 then
                local remaining_time = (24 * 60 * 60) - elapsed_time
                say("Ödül kazanmak için kalan süre: "..math.floor(remaining_time / 3600).." saat "..math.floor((remaining_time % 3600) / 60).." dakika.")
            end
        end
    end
end
Bunu deneyecem birtane buldum olmadı
 
bir event tanımlayabilirsin. imparatorluk kayası kesilince event tetiklenir ve herkese görev bildirimi gider. aynı bayrak seçeneği için 3 farklı event değişkeni atayıp, kayayı kesen oyuncunun bayrak türüne göre sonuçlandırırsın. örneğin event_bayrak_odul tanımlarsın. sırasıyla mavi kırmızı sarı için 1-2-3 değerlerini atarsın. bu şekilde ödül dağıtımı yaptırabilirsin.
 
@espase özelden attığınız mesaja ithafen 5 dakika için yukarıda bulunan kod satırını bunla değiştirin.

99levelodulver.lua:
Genişlet Daralt Kopyala
if elapsed_time >= 5 * 60 then
 
Kaynak kodlarına erişimin olmadığı için mi quest istiyorsun? Bağırma kontrolü için kaynak kodlarında değişiklik olmadan olmaz sanırım.
 
Geri
Üst