Ir para conteúdo
View in the app

A better way to browse. Learn more.

priston.pro

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

limite de itens no bau

Postado

Bom dia galera !
Eu estou estudando a função de Salvar itens no bau mas me deparei um limite de 32 Itens só no bau, tipo se vc colocar 32 Sheltons ainda sobrará slots ali visualmente mas não entra mais nada além de 32 Itens e tem mais espaço de peso.

vendo essa função aqui:
int SaveWareHouse(sWAREHOUSE* lpWareHouse, TRANS_WAREHOUSE* lpTransWareHouse)

{

TRANS_WAREHOUSE TransWareHouse;

TRANS_THROW_ITEMS TransThrowItems;

sWAREHOUSE WareHouseCheck;

int CompSize;

int cnt;

DWORD dwChkSum;

char szComp1, szComp2;

int flag;

if ( lpTransWareHouse ) flag = 1;

else flag = 0;

if ( !flag && QuitSave ) return FALSE;

for( cnt=0;cnt<300;cnt++) {

if ( !lpWareHouse->WareHouseItem[cnt].Flag ) {

ZeroMemory( &lpWareHouse->WareHouseItem[cnt] , sizeof(sITEM ) );

}

}

CompSize = EecodeCompress( (BYTE )lpWareHouse , (BYTE )TransWareHouse.Data , sizeof(sWAREHOUSE) , sizeof( sITEM )*100 );

//¿ë·® ýũ

if ( !flag && CompSize>(smSOCKBUFF_SIZE-256) )

return FALSE;

if ( flag && CompSize>(smSOCKBUFF_SIZE-140) )

return FALSE;

DecodeCompress( (BYTE )TransWareHouse.Data , (BYTE )&WareHouseCheck , sizeof(sWAREHOUSE) );

szComp1 = (char *)lpWareHouse;

szComp2 = (char *)&WareHouseCheck;

dwChkSum = 0;

for( cnt=0;cnt<sizeof(sWAREHOUSE);cnt++ ) {

if ( szComp1[cnt]!=szComp2[cnt] ) {

return FALSE;

}

else {

dwChkSum += szComp1[cnt]*(cnt+1);

}

}

//â°í°¡ ¿­·ÈÀ»¶§¿Í ´ÝÇûÀ»¶§ÀÇ µ·ÀÇ Â÷¸¦ °Ë»çÇϱâ À§ÇÑ º¯¼ö

WareHouseSubMoney += (CompWareHouseMoney-lpWareHouse->Money);

CompWareHouseMoney = 0;

if (!flag) {

//µ¥ÀÌŸ ¼­¹ö¿¡ ¾ÆÀÌÅÛ ÀúÀå ¿ä±¸ ( º¹»ç ¾ÆÀÌÅÛ ¹æÁö )

SendSaveMoney(); //µ·

TransThrowItems.ThrowItemCount = 0;

for( cnt=0;cnt<THROW_ITEMS_MAX;cnt++) {

if ( lpWareHouse->WareHouseItem[cnt].Flag ) {

TransThrowItems.ThrowItems[TransThrowItems.ThrowItemCount].dwCode = lpWareHouse->WareHouseItem[cnt].sItemInfo.CODE;

TransThrowItems.ThrowItems[TransThrowItems.ThrowItemCount].dwHead = lpWareHouse->WareHouseItem[cnt].sItemInfo.ItemHeader.Head;

TransThrowItems.ThrowItems[TransThrowItems.ThrowItemCount].dwChkSum = lpWareHouse->WareHouseItem[cnt].sItemInfo.ItemHeader.dwChkSum;

TransThrowItems.ThrowItemCount++;

}

}

//µ¥ÀÌŸ ¼­¹ö¿¡ ¾ÆÀÌÅÛ ÀúÀå ¿ä±¸ ÃÖ´ë 32°³ µ¿½Ã ( º¹»ç ¾ÆÀÌÅÛ ¹æÁö )

SendSaveThrowItems( &TransThrowItems );

}

TransWareHouse.code = smTRANSCODE_WAREHOUSE;

TransWareHouse.size = sizeof(TRANS_WAREHOUSE)-(sizeof(sWAREHOUSE)-CompSize);

TransWareHouse.DataSize = CompSize;

TransWareHouse.dwChkSum = dwChkSum;

TransWareHouse.wVersion[0] = Version_WareHouse;

TransWareHouse.wVersion[1] = 0;

if ( !flag ) {

//µ· ÀúÀå ( ¼­¹ö¿¡¼­ »ç¿ëÇÒ ³»¿ë / ºÒ·¯¿Ã¶§´Â ¼­¹ö¿¡¼­ ÃʱâÈ­ ÇØÁà¾ß ÇÔ )

TransWareHouse.WareHouseMoney = lpWareHouse->Money ^ (dwChkSum^smTRANSCODE_WAREHOUSE);

TransWareHouse.UserMoney = lpCurPlayer->smCharInfo.Money ^ (dwChkSum^smTRANSCODE_WAREHOUSE);

}

TransWareHouse.dwTemp[0] = 0;

TransWareHouse.dwTemp[1] = 0;

TransWareHouse.dwTemp[2] = 0;

TransWareHouse.dwTemp[3] = 0;

TransWareHouse.dwTemp[4] = 0;

dwLastWareHouseChkSum = dwChkSum; //ÃÖÁ¾ ÀúÀå â°í ÄÚµå

if ( flag ) {

memcpy( lpTransWareHouse , &TransWareHouse , sizeof(TRANS_WAREHOUSE) );

return TRUE;

}

if ( TransWareHouse.size>smSOCKBUFF_SIZE ) TransWareHouse.size = smSOCKBUFF_SIZE;

if ( smWsockDataServer ) {

smWsockDataServer->Send2( (char *)&TransWareHouse , TransWareHouse.size , TRUE );

SaveGameData(); //°ÔÀÓÀ» ÀúÀå

return TRUE;

}

return FALSE;

}

Percebi que THROW_ITEMS_MAX = 32 porém se eu aumento ainda sim não funciona. Alguém tem alguma ideia melhor de aumentar o limite ?

Featured Replies

Postado

O limite de itens no baú acontece porque o sistema antigo tenta salvar/enviar o warehouse inteiro em um único pacote de 8 KB. Como o baú foi aumentado para muitos itens, o pacote estoura e começa a falhar perto de 32 itens.

Modo correto é dividindo o baú em vários pacotes.

Postado
  • Autor
1 hora atrás, CPIban disse:

O limite de itens no baú acontece porque o sistema antigo tenta salvar/enviar o warehouse inteiro em um único pacote de 8 KB. Como o baú foi aumentado para muitos itens, o pacote estoura e começa a falhar perto de 32 itens.

Modo correto é dividindo o baú em vários pacotes.

Entendi, vou procurar usar essa pratica que vc esta falando então!

Valeu

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.

Visitante
Responder

Account

Navigation

Pesquisar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.