[C++] EP Kuponu Sistemi

Arslan

Sabır; yüzünü ekşitmeden acıyı yudumlamaktır.
Onaylanmış Üye
5 Kas 2020
118
9
Çevrimiçi zamanı
13h 45m
18
Best answers
0
Oyuncu
Metin2, CS:GO
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;


C++:
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ç:


C++:
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]

C++:
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 :)



 
Üst