Hikayeler

Reklam vermek için turkmmo@gmail.com
Kaynak ikonu

Metin2 Lonca Bankasındaki Parayı Çekme Questi

gameserverplay

⭕️⭕️\_____/⭕️⭕️
Telefon Numarası Onaylanmış Üye
Fahri Üye
TM Üye
Katılım
21 Eki 2013
Konular
3,135
Mesajlar
7,770
Online süresi
4ay 15g
Reaksiyon Skoru
5,372
Altın Konu
67
Başarım Puanı
409
Yaş
36
TM Yaşı
12 Yıl 6 Ay 4 Gün
MmoLira
1,222
DevLira
0

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Metin2 oyunlarında oyuncular lonca binası açıp işlettikleri zaman para kazanırlar ancak bu kazandığı bir çok pvp serverde alamazlar. Bunun için aşağıdaki questi kullanarak oyuncuların parasını almasını sağlayabilirsiniz.
Questin düzgün çalışmasın için "mysql_query" komutunun düzgün bir şekilde çalışması gerekmektedir.

Quest tüm bayrakların köy gardiyanı npcsine eklenmiştir. Eğer istiyorsanız npc değiştirebilirsiniz. Loncada biriken parayı sadece lonca başkanı çekebilir. Max yang olarak 2T olacak şekilde ayarlanmıştır. Kodlardan anlıyorsanız bunuda değiştirebilirsiniz.

Metin2 Lonca Bankasındaki Parayı Çekme Questi:
quest guild_yang begin
    state start begin
        when guild_man1.chat."Lonca: Yangı Çek" or guild_man2.chat."Lonca: Yangı Çek" or guild_man3.chat."Lonca: Yangı Çek" with pc.is_guild_master() begin
            g_yang=guild_yang.get_guild_yang(pc.get_guild())
            say_title("Köy Gardiyanı:")
            say("Merhaba "..pc.get_name())
            say("")
            say("Demek loncanda biriken yangı çekmek istiyorsun.")
            say("Öyleyse önce şu bilgilere göz atmalısın:")
            say("")
            say_reward("Loncada Biriken Yang: "..g_yang)
            say("")
            say("Coded By TURKMMO-Scorpion1453 Emek hırsızlıgı yapmayalım.")
            say("Loncandanda biriken yangı çekmek istiyor musun?")
            say("")
            main_sec=select("Evet, şimdi almak istiyorum.","Hayır, belki daha sonra.")
            if main_sec==2 then return end
            if g_yang==0 then return end
            if g_yang+pc.get_money() < 2000000000 then -- 2 T
                guild_yang.set_guild_yang(pc.get_guild(), g_yang)
                pc.change_money(g_yang)
            else
                chat("<Lonca: Yang> Çok fazla yanga sahip oluyorsunuz.")
                return
            end
        end
        function get_guild_yang(id)
            return mysql_query("SELECT gold FROM player.guild WHERE id="..id.."")["gold"][1]
        end
        function set_guild_yang(id, deger)
            mysql_query("UPDATE player.guild SET gold=gold-"..deger.." WHERE id="..id.."")
        end
    end
 
Paylaşım için teşekkürler.
 
Veritabanı Sorgu
Hata Mesajları
Gereksiz Kodlar
:) Ufak ayar

Python:
quest guild_yang begin
    state start begin
        when guild_man1.chat."Lonca: Yangı Çek" or guild_man2.chat."Lonca: Yangı Çek" or guild_man3.chat."Lonca: Yangı Çek" with pc.is_guild_master() begin
            local g_yang = get_guild_yang(pc.get_guild())
            
            if not g_yang then
                chat("Bir hata oluştu. Lütfen daha sonra tekrar deneyin.")
                return
            end
            
            say_title("Köy Gardiyanı:")
            say("Merhaba " .. pc.get_name() .. ",")
            say("Loncandaki biriken yangı çekmek istiyorsun.")
            say("Öyleyse önce şu bilgilere göz atmalısın:")
            say_reward("Loncada Biriken Yang: " .. g_yang)
            
            local main_sec = select("Evet, şimdi almak istiyorum.", "Hayır, belki daha sonra.")
            
            if main_sec == 2 or g_yang == 0 then
                chat("İşlem iptal edildi veya loncada yeterli yang bulunmamaktadır.")
                return
            end
            
            if g_yang + pc.get_money() < 2000000000 then -- 2 T
                set_guild_yang(pc.get_guild(), g_yang)
                pc.change_money(g_yang)
                say_title("İşlem Başarılı")
                say("Loncadan çektiğin yang hesabına eklendi.")
            else
                chat("Çok fazla yanga sahip oluyorsunuz.")
            end
        end
    end

    function get_guild_yang(id)
        local result = mysql_query("SELECT gold FROM player.guild WHERE id=?", id)
        return result and result["gold"][1] or nil
    end
    
    function set_guild_yang(id, deger)
        mysql_query("UPDATE player.guild SET gold=gold-? WHERE id=?", deger, id)
    end
end
 
neden 2t koşulunun negatif işlemini önce return yapıp altına pozitif işlenecek işlemi yazmıyorsunuz. İf else neden yani merak ediyorum. :)

define MAX_YANG 2000000000

if pc.get_money() + g_yang > MAX_YANG
return end

— Pozitif işlem.
 
Paylaşım ve düzeltmeler için herkese teşekkürler
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst