noisiv 1
noisiv
Manwe Work 1
Manwe Work
-Blaster- 2
-Blaster-
kralhakan2009 1
kralhakan2009
Bodyguardd 1
Bodyguardd
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle

[C ++] OfflineShop <Bug fix>

  • Konuyu başlatan Konuyu başlatan MaviAy-Kirici44
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 3
  • Görüntüleme Görüntüleme 1K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Bugün forumda birisi arıyordu bende paylaşmak istedim.
Bu düzeltme, banka offlineshop, mağaza vb., Yang artış sınırı olan kişiler için geçerlidir ..

/Src/common/service.h
Müsait bir yere ekle
Kod:
#define __OFFLINE_SHOP_FIX_OPEN   
#define __OFFLINE_SHOP_VALUE_MAX 2000000000
#define __OFFLINE_SHOP_WARNING "[Protect Offline] 2.000.000.000'dan fazla Yangınız olsun !"

/Src/game/src/char.cpp
Ara

Kod:
    if (!LC_IsBrazil())
    {
        DWORD nTotalMoney = 0;
        for (BYTE n = 0; n < bItemCount; ++n)
            nTotalMoney += (pTable + n)->price;

        if (GOLD_MAX - 1 <= nTotalMoney)
        {
            sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", GetPlayerID(), GetName());
            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20억 냥을 초과하여 상점을 열수가 없습니다"));
            return;
        }
    }

Değiştir

Kod:
#ifdef __OFFLINE_SHOP_FIX_OPEN
    int64_t szTotalMoney = 0;

    for (int n = 0; n < bItemCount; ++n)
    {
        szTotalMoney += static_cast<int64_t>((pTable+n)->price);
    }
    std::auto_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT money FROM player.player WHERE id = %u", GetPlayerID()));
    if (pMsg->Get()->uiNumRows == 0)
        return;   
    
    DWORD dwCurrentMoney = 0;
    MYSQL_ROW row = mysql_fetch_row(pMsg->Get()->pSQLResult);
    str_to_number(dwCurrentMoney, row[0]);   

    szTotalMoney += static_cast<int64_t>(dwCurrentMoney);
    if (__OFFLINE_SHOP_VALUE_MAX <= szTotalMoney)
    {
        ChatPacket(CHAT_TYPE_INFO, __OFFLINE_SHOP_WARNING);
        return;
    }
#else       
    if (!LC_IsBrazil())
    {
        DWORD nTotalMoney = 0;
        for (BYTE n = 0; n < bItemCount; ++n)
            nTotalMoney += (pTable + n)->price;
        if (GOLD_MAX - 1 <= nTotalMoney)
        {
            sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", GetPlayerID(), GetName());
            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20억 냥을 초과하여 상점을 열수가 없습니다"));
            return;
        }
    }
#endif
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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

Geri
Üst