Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com
Kaynak ikonu

Metin2 Lonca Bankasındaki Parayı Çekme Questi

  • Konuyu başlatan Konuyu başlatan gameserverplay
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 4
  • Görüntüleme Görüntüleme 541

gameserverplay

⭕️⭕️\_____/⭕️⭕️
Telefon Numarası Onaylanmış Üye
Fahri Üye
TM Üye
Katılım
21 Eki 2013
Konular
3,135
Mesajlar
7,771
Çözüm
3
Online süresi
4mo 15d
Reaksiyon Skoru
5,377
Altın Konu
67
Başarım Puanı
409
Yaş
36
MmoLira
1,372
DevLira
0
Ticaret - 100%
1   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ 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.

[CODE title="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[/CODE]
 
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 : 0, Üye: 0, Misafir: 0)

Geri
Üst