Hikayeler

Reklam vermek için turkmmo@gmail.com

[C++] EP Kuponu Sistemi

CorpeX

Co-rpeX
Telefon Numarası Onaylanmış Üye
Fahri Üye
TM Üye
Katılım
12 Tem 2012
Konular
363
Mesajlar
5,763
Online süresi
1ay 11g
Reaksiyon Skoru
1,977
Altın Konu
8
Başarım Puanı
312
TM Yaşı
13 Yıl 9 Ay 14 Gün
MmoLira
2,042
DevLira
87

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

Merhaba Arkadaşlar,

mysql_query veya mysql_query10 komutları sıkıntı çıkartıyor diyenlere net çözüm c++ ep kuponu sistemi.
Kodlama bana ait değil tabi ki, çok uğraş verdim araştırırken sonunda çözüme kavuştum sizinle de paylaşmak istedim.

1.Aşama:
db/src de ClientManagar.cpp açılıp aratılır;

Kod:
sprintf(szQuery, "update account set `cash` = `cash` + %d where id = %d limit 1", packet->dwAmount, packet->dwAID);
Buradaki cash yerine coins yazıp kaydediyoruz.
Sonuç:

Kod:
sprintf(szQuery, "update account set `coins` = `coins` + %d where id = %d limit 1", packet->dwAmount, packet->dwAID);
Ardından db mizi build edip db dosyasını gerekli yere atıyoruz.
ayrac.png
2.Aşama
Quest oluşturacağız bunun için quest bölümüne charge_coins.lua veya ep_kuponu.lua (size kalmış) isminde bir dosya açıyoruz ;

[CHARGE=8]
Kod:
quest charge_cash_by_voucher begin
    state start begin
        function charge(amount, charge_type)
            if charge_type == nil then
                charge_type = "coins"
            end

            if 0 < amount then
                -- syntax : pc.charge_cash(amount, charge_type)
                -- warning:     1. 'charge_type' : "cash"(default) | "mileage"
                --            2. 'amount' must be positive number.
                local result = pc.charge_cash(amount, charge_type)

                if true == result then
                    local item_id = item.get_id()
                    char_log(item_id, "CHARGE_CASH_BY_VOUCHER", amount)
                    syschat("Hesabina "..amount.."  Ejderha Parasi aktarildi.")

                    local flag_name = "total_" .. charge_type
                    pc.setqf(flag_name, pc.getqf(flag_name) + amount)

                    item.remove()
                end
            end

            return false
        end

        when 80014.use or 80015.use or 80016.use or 80017.use begin
            local amount = item.get_value(0)

            charge_cash_by_voucher.charge(amount, "coins")
        end
    end
end
[/CHARGE] -->
içine yapıştırıyoruz, questte herhangi bir değişiklik yapmanıza gerek yok ve kaydedip ./qc çekiyoruz.

Son olarak reboot atıp deneyebilirsiniz.


NOT: Ep Kuponlarının verdiği ep değerini düzenlemek için navicat item_proto da ep kuponun kodunu bulup sağa kaydırın value0 da yazan değer verdiği ep miktarıdır orayı düzenlemeniz yeterli.

Bir teşekkür yeterli iyi kullanımlar :)
 
Son düzenleme:
Yarın ilk işim denemek inşallah olur bendeki ep kuponu buydu çalışıyordu uzun zaman sonra denedim şimdi çalışmıyor anlayamadım


Bu sizin verdiğiniz quest e hangi kupona ne kadar ep vereceği falan yok farklı işliyor galiba veya var olan ep kuponunu aktif halemi getiriyor

Amount komutu işliyor yani item_proto da ep kuponlarinin kodlarina git mesela 80017 , sağa kaydır value0 da 50 yazar oradan çekiyor amount komutunu orayi kaç yaparsan o kadar ep verir kupon yani questi editlemeyin verdigim şekilde kalsın
 
Son düzenleme:
Teşekürler
 
Teşekkürler
 
Amount komutu işliyor yani item_proto da ep kuponlarinin kodlarina git mesela 80017 , sağa kaydır value0 da 50 yazar oradan çekiyor amount komutunu orayi kaç yaparsan o kadar ep verir kupon yani questi editlemeyin verdigim şekilde kalsın
Sağol deniyecem
 

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

Geri
Üst