*Problemă/Întrebare:Am facut dupa sistemul lui dr3amer lingourile functioneaza se deschid ,functioneaza si functia daca am ajuns la maxim yang definit in lenght.h ,dar problema este ca daca dau reboot la server se face overflow si imi da 2kkk in inventar in loc sa mi dea suma de yang care am ramas in inventar (exemplu am deschis 200 lingouri 1kkk ,normal trebuia sa mi ramana 200kkk in inventar... (am sistemul long long la yang ...am trecut pe long lingourile din int ...
Tipologie server:
*Resursă folosită:
*ServerFiles utilizat:
*Syserr:
Poză:
*Detalii suplimentare: switch (item->GetVnum())
{
case 80003:
case 80004:
case 80005:
case 80006:
case 80007:
{
static const long long sGold[5] =
{
10000000 ///< 80003
50000000, ///< 80004
100000000, ///< 80005
500000000, ///< 80006
1000000000 ///< 80007
};
if (IsOpenSafebox() || GetExchange() || GetMyShop() || IsCubeOpen())
{
ChatPacket(CHAT_TYPE_INFO, "Nu poti folosi lingouri in timp ce negociezi.");
return false;
}
const long long amount = sGold[item->GetVnum() - 80003];
if ((GOLD_MAX - amount) <= GetGold())
{
ChatPacket(CHAT_TYPE_INFO, "Nu poti detine mai mult de 2kkk Yang.");
return false;
}
item->SetCount(item->GetCount() - 1);
PointChange(POINT_GOLD, amount, true);
}
break;
default:
break;
}
Problema Lingouri
- [RaffaeL]
-

- Mesaje: 3223
- Membru din: 19 Mar 2016, 12:58
- Server: ...
- Aprecieri: 15
- Mulţumiri: 2502
- Rezolvări prob.: 2
- Discord: Copiază ID
- Contact:
De ce long long amount(fara data_type)? Puteai folosi de ex long long int amount, desi 2kkk yang(2 miliarde/2.000.000.000) nu depasesc int data_type value
int ~= -2.147.483.648 -> 2.147.483.647
long int ~= -2.147.483.648 -> 2.147.483.647
Diferenta intre int si long int este marimea in biti(int=4/long int=8), insa au acelasi range.
int ~= -2.147.483.648 -> 2.147.483.647
long int ~= -2.147.483.648 -> 2.147.483.647
Diferenta intre int si long int este marimea in biti(int=4/long int=8), insa au acelasi range.
Si cum as putea sa l fac functional?.Ce ma sfatuiesti sa pun?[RaffaeL] scrie: ↑29 Mar 2021, 22:11 De ce long long amount(fara data_type)? Puteai folosi de ex long long int amount, desi 2kkk yang(2 miliarde/2.000.000.000) nu depasesc int data_type value
int ~= -2.147.483.648 -> 2.147.483.647
long int ~= -2.147.483.648 -> 2.147.483.647
Diferenta intre int si long int este marimea in biti(int=4/long int=8), insa au acelasi range.
- [RaffaeL]
-

- Mesaje: 3223
- Membru din: 19 Mar 2016, 12:58
- Server: ...
- Aprecieri: 15
- Mulţumiri: 2502
- Rezolvări prob.: 2
- Discord: Copiază ID
- Contact:
Cat ai maxim yang definit in lenght.h?Methorion1 scrie: ↑29 Mar 2021, 22:15Si cum as putea sa l fac functional?.Ce ma sfatuiesti sa pun?[RaffaeL] scrie: ↑29 Mar 2021, 22:11 De ce long long amount(fara data_type)? Puteai folosi de ex long long int amount, desi 2kkk yang(2 miliarde/2.000.000.000) nu depasesc int data_type value
int ~= -2.147.483.648 -> 2.147.483.647
long int ~= -2.147.483.648 -> 2.147.483.647
Diferenta intre int si long int este marimea in biti(int=4/long int=8), insa au acelasi range.
Cam atat 1000000000000001LL,[RaffaeL] scrie: ↑29 Mar 2021, 22:42Cat ai maxim yang definit in lenght.h?Methorion1 scrie: ↑29 Mar 2021, 22:15Si cum as putea sa l fac functional?.Ce ma sfatuiesti sa pun?[RaffaeL] scrie: ↑29 Mar 2021, 22:11 De ce long long amount(fara data_type)? Puteai folosi de ex long long int amount, desi 2kkk yang(2 miliarde/2.000.000.000) nu depasesc int data_type value
int ~= -2.147.483.648 -> 2.147.483.647
long int ~= -2.147.483.648 -> 2.147.483.647
Diferenta intre int si long int este marimea in biti(int=4/long int=8), insa au acelasi range.
- [RaffaeL]
-

- Mesaje: 3223
- Membru din: 19 Mar 2016, 12:58
- Server: ...
- Aprecieri: 15
- Mulţumiri: 2502
- Rezolvări prob.: 2
- Discord: Copiază ID
- Contact:
Atunci foloseste int64_t care este egal cu 2^63 − 1 adica 9.223.372.036.854.775.807
nu merge...
T/c
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: sanducatalin1 și 39 vizitatori




