romegames 1
romegames
Bodyguardd 1
Bodyguardd
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 2
Best Studio
tunaytuqcu 1
tunaytuqcu
Reklam vermek için turkmmo@gmail.com

[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...

Türkiye'nin ilk Cross-Platform OldSchool MOBİL & PC 1-99 Sunucusu Lamira2 6 Kasım'da Açılıyor! Büyük Açılışı Kaçırma HEMEN TIKLA!

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