Çözüldü Ayışığı Futbol Topu Binek Sertifikası vb Drop düzenleme

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

ankamt2destek

Üye
Üye
Mesaj
5
Beğeni
2
Puan
665
Ticaret Puanı
0
Merhabalar bir firmadan sunucu aldım herşeyini düzenledim sunucumda gm yönetim paneli adı altında bir quest mevcut bu quest ile evetleri açabiliyorum fakat ayışığı ve diğer eventlerdeki itemler az düşüyor yani bunun oranını nasıl ayarlıyabilirim .

İlginiz için teşekkürler.
 
Çözüm
Sorunum hala çözülmedi arkadaşlar hepinizin yorumlarını bekliyorum.
Ayışığı questini buradan paylaşır mısın? Ben kendi oyunumdaki questi inceledim ve şöyle sorunu çözdüm.

Lua (Quest):
quest event_ayisigi_2014 begin
    state start begin
        when kill with game.get_event_flag("event_ayisigi_drop") == 1 and not npc.is_pc() begin
        local s = number(1, 300)
            if s == 1 then
            game.drop_item_with_ownership("50011",1)
            end
        end
    end
end

Benim kullandığım quest bu.
Sana kodda kullanılan elemanları detaylıca bir açıklayayım.
  • when kill: Herhangi bir şeyi kestiğinde çalışacak kod blogudur.
  • game.get_event_flag: Bu eventin açık olup olmadığını kontrol etmek için...
Bu konu ile ilgili bir çalışma yapmadım. Bende biraz inceleyim bulabilirsem yazarım. Tabi bu süreçte bilen birisi varsa yardımcı olursa mutlu olurum. :)
 
Sorunum hala çözülmedi arkadaşlar hepinizin yorumlarını bekliyorum.
Ayışığı questini buradan paylaşır mısın? Ben kendi oyunumdaki questi inceledim ve şöyle sorunu çözdüm.

Lua (Quest):
quest event_ayisigi_2014 begin
    state start begin
        when kill with game.get_event_flag("event_ayisigi_drop") == 1 and not npc.is_pc() begin
        local s = number(1, 300)
            if s == 1 then
            game.drop_item_with_ownership("50011",1)
            end
        end
    end
end

Benim kullandığım quest bu.
Sana kodda kullanılan elemanları detaylıca bir açıklayayım.
  • when kill: Herhangi bir şeyi kestiğinde çalışacak kod blogudur.
  • game.get_event_flag: Bu eventin açık olup olmadığını kontrol etmek için kullanırız. Bizde burada açıksa demişiz.
  • npc.is_pc(): bu ise bir oyuncudur. Gerçek oyuncu yani. Bunun başına not eklediğimizde ise eğer bir oyuncu değilse deriz.
  • local s = number(1, 300): Şansa bağlı olarak 1 ile 300 arasında bir sayı seçer.
  • if s == 1: Bu ise eğer gelen sayı bir ise oyuncuya ayışığı düşür.
Daha da özetlemek gerekirse.
Eğer event aktif ise ve oyuncunun kestiği bir mob ise 1 ila 300 arası bir sayı seç ve sayı 1 ise ayışığı at.
Kodun çalışma mantığını anladığını varsayıyorum.
Drobun artmasını istersen 1, 300 değilse 1, 150 yaparsın. Aralığı ne kadar azaltırsan düşme şansı o kadar artar.

Örneğin;
Lua (Quest):
        local s = number(1, 150)
 
Çözüm
when kill with game.get_event_flag ("ayisigi") == 1 begin
if math.random (1,500) <= 99 then
local itmrnd = math.random (1,50)
if itmrnd == 1 then
game.drop_item_with_ownership (50011,1)
end
end

benim questim sizinkinden farklı
 
when kill with game.get_event_flag ("ayisigi") == 1 begin
if math.random (1,500) <= 99 then
local itmrnd = math.random (1,50)
if itmrnd == 1 then
game.drop_item_with_ownership (50011,1)
end
end

benim questim sizinkinden farklı
Mantık olarak aynısı ben fark göremiyorum. :D math.random(1, 5000) yazıyor. O 500'ü 300 yap. Şu şekilde;
math.random(1, 300)

Birde bu queste bir hata var. Oyuncuları kesince ayışığı düşebilir. :D
Bu yüzden when blogunu şöyle yap.
PHP:
when kill with game.get_event_flag ("ayisigi") == 1 not npc.is_pc() begin
 
Son düzenleme:
Öncelikle ilgin için çok teşekkür ederim fakat futbol topu hiç düşmüyor . Ben direk questi tamamen atayım ;

PHP:
quest otomatik_event begin
    state start begin
        when 20092.chat."Ayışığı Sandığı Eventi " with pc.is_gm() begin
            say("Eventi başlatmak istiyor musun? ")
            local baslat = select(" Evet ", " Bitir ", "Hayır ")
            if baslat == 1 then
                game.set_event_flag("ayisigi",1)
                notice_all("Ayışığı etkinliği başladı!")
                notice_all("Seviyenize göre kestiğiniz bütün canavarlardan elde edebilirsiniz.")
                notice_all("Etkinlik Süresi : 2 Saat")
            end
            if baslat == 2 then
                game.set_event_flag("ayisigi",0)
                notice_all("Ayışığı etkinliği sona erdi.")
            end
        end
        when 20092.chat."Okey Kartı Eventi " with pc.is_gm() begin
            say("Eventi başlatmak istiyor musun? ")
            local baslat = select(" Evet ", " Bitir ", "Hayır ")
            if baslat == 1 then
                game.set_event_flag("cards_event",1)
                notice_all("Okey Kartı etkinliği başladı!")
                notice_all("Seviyenize göre kestiğiniz bütün canavarlardan elde edebilirsiniz.")
                notice_all("Etkinlik Süresi : 1 Saat")
            end
            if baslat == 2 then
                game.set_event_flag("cards_event",0)
                notice_all("Okey Kartı etkinliği sona erdi.")
            end
        end
        when 20092.chat."Binek Sertifikası Eventi " with pc.is_gm() begin
            say("Eventi başlatmak istiyor musun? ")
            local baslat = select(" Evet ", " Bitir ", "Hayır ")
            if baslat == 1 then
                game.set_event_flag("binekevent",1)
                notice_all("Binek Sertifikası etkinliği başladı!")
                notice_all("Seviyenize göre kestiğiniz bütün canavarlardan elde edebilirsiniz.")
                notice_all("Etkinlik Süresi : 2 Saat")
            end
            if baslat == 2 then
                game.set_event_flag("binekevent",0)
                notice_all("Binek Sertifikası etkinliği sona erdi.")
            end
        end
        when 20092.chat."Futbol Topu Eventi " with pc.is_gm() begin
            say("Eventi başlatmak istiyor musun? ")
            local baslat = select(" Evet ", " Bitir ", "Hayır ")
            if baslat == 1 then
                game.set_event_flag("futboltopu",1)
                notice_all("Futbol Topu etkinliği başladı!")
                notice_all("Seviyenize göre kestiğiniz bütün canavarlardan elde edebilirsiniz.")
                notice_all("Etkinlik Süresi : 2 Saat")
            end
            if baslat == 2 then
                game.set_event_flag("futboltopu",0)
                notice_all("Futbol Topu etkinliği sona erdi.")
            end
        end
       
       
        when kill with game.get_event_flag ("ayisigi") == 1 not npc.is_pc() begin
            if math.random (1,200) <= 99 then
            local itmrnd = math.random (1,50)
            if itmrnd == 1 then
            game.drop_item_with_ownership (50011,1)
            end
            end
        end
        when kill with game.get_event_flag ("cards_event") == 1 begin
            if math.random (1,1000) <= 99 then
            local itmrnd = math.random (1,25)
            if itmrnd == 1 then
            game.drop_item_with_ownership (79505,1)
            end
            end
        end
        when kill with game.get_event_flag ("binekevent") == 1 begin
            if math.random (1,500) <= 99 then
            local itmrnd = math.random (1,50)
            if itmrnd == 1 then
            game.drop_item_with_ownership (50067,1)
            end
            end
            if math.random (1,1000) <= 99 then
            local itmrnd = math.random (1,50)
            if itmrnd == 1 then
            game.drop_item_with_ownership (50068,1)
            end
            end
        end
        when kill with game.get_event_flag ("futboltopu") == 1 not npc.is_pc() begin
            if math.random (1,200) <= 99 then
            local itmrnd = math.random (1,50)
            if itmrnd == 1 then
            game.drop_item_with_ownership (50096,1)
            end
            end
        end
       
        when login begin
            if game.get_event_flag("ayisigi") == 1 then
                syschat("Ayışığı Etkinliği Aktif.")
                syschat("Seviyenize göre kestiğiniz bütün canavarlardan elde edebilirsiniz.")
            end
        end
        when login begin
            if game.get_event_flag("cards_event") == 1 then
                syschat("Okey Kartı Etkinliği Aktif.")
                syschat("Seviyenize göre kestiğiniz bütün canavarlardan elde edebilirsiniz.")
            end
        end
        when login begin
            if game.get_event_flag("binekevent") == 1 then
                syschat("Binek Sertifikası Etkinliği Aktif.")
                syschat("Seviyenize göre kestiğiniz bütün canavarlardan elde edebilirsiniz.")
            end
        end

        when login begin
            if game.get_event_flag("futboltopu") == 1 then
                syschat("Futbol Topu Etkinliği Aktif.")
                syschat("Seviyenize göre kestiğiniz bütün canavarlardan elde edebilirsiniz.")
            end
        end
    end
end
 
En son bir moderatör tarafından düzenlenmiş:
Buna da aynı metodu uygula sana nasıl yapılacağını öğrettim. math.random(1, 1000) bunun aralığını ne kadar düşürürsen o kadar düşme şansı artar.
Sorununu çözülmüş sayıyorum ve konu başlığını çözüldü yapıyorum. :)


Tapatalk kullanarak gönderildi
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst