Jump to content

OfflineShop Ken - BUG


Marco
 Share

Recommended Posts

Hello friends :$
Tenho o sistema de loja offline do ken, contudo tenho alguns problemas...

Tive um problema relacionado com o banco, poderias criar loja com + de 2kkk em tiems, no entanto se vender tudo fica apenas ( 2147483647 )
Vi um fix do vegas, no entanto apenas funciona ao criar loja, se criar loja com + de 2kkk dá aviso e não cria loja,,

Exemplo:
Tenho 500kk no banco da loja, meto 1 item a 1kkk ( se vender fico com 1.5kkk ) mas se meter 2 items a 1kkk cada (  ficaria com 2.5kkk ) no entanto não cria loja, pois dá o aviso que ultrapassa o tais 2kkk


Mas o problema agora é se criar loja com um item barato que não faça ultrapassar os 2kkk do banco e depois for add mais deixa na mesma.
Exemplo:
Se tiver 500kk no banco, criar loja com 2 items a 1kkk cada ( ficaria com 2.5 kkk se vender, mas dá o tal aviso e não cria )  até aqui tudo bem.  
Mas se criar loja em que o valor dos items não ultrapasse os 2kkk e abrir a dita loja abre sem problema..
Mas há a opção de add novos items à loja e é possível add novos items, o que faz com que ultrapasse os 2kkk 

O que gostaria era algo como no criar loja, mas para a funcção de add item, para que ao add ele verifica-se ou que o yang no banco fosse mais elevado, :(

Cumprimentos, 

Link to comment
Share on other sites

 

1 hora atrás, wery disse:

tem o maxyang adicionado no servidor, e a correção do ken para tal, correto?

 

o yang está o normal, os tais 2kkk e pouco, em relação à correcção, possivelmente não :/ se me poderes ajudar... 

 

46 minutos atrás, Tierri Lopes disse:

O fix do vegas, deverá conter código na função de criar loja que verifica a quantidade de yang existente, assim como a quantidade de yang a ser adicionada em loja.

Bastará copiar/adaptar o fix à função de editar a loja.

Era isso que queria ajuda...

Seria add em add items e mudar preço ( penso que é apenas isso ) 

Fix dele foi este*
 

Citar

- [ File: /Src/common/service.h ]

#1.) Add this:

#define __OFFLINE_SHOP_FIX_OPEN    
#define __OFFLINE_SHOP_VALUE_MAX 2000000000
#define __OFFLINE_SHOP_WARNING "[Protect Offline] Have more than 2.000.000.000 Yang!"
 
- [ File: /Src/game/src/char.cpp ]

#1.) Search function:

    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;
        }
    }
 

#2.) Replace function with this:

#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    


 

 

Edited by L2P
Link to comment
Share on other sites

12 minutos atrás, Tierri Lopes disse:

Confirmem se a lista de erros é esta sff:

  • Cria loja mesmo com yang full (ou yang que ultrapasse o valor máximo)
  • Ao editar loja, o valor total do yang pode ultrapassar o valor máximo definido

Relativamente ao criar loja tenho um fix do vegas
No entanto editar  ( adicionar novos items ou alterar preços de items na loja ) é que não está fix 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...