*Problemă/Întrebare: Dupa cum spune si titlul, am o problema cu retragerea yang-ului din offline shop great.
Tipologie server(PvM / PvP):
*Resursă folosită: *Link exclusiv J4M*
*ServerFiles utilizat:
*Syserr: Gol
Poză:
*Detalii suplimentare: Am limita scoasa adica long long, dar e setata la 1.000.000.000.000.
Problema e in felul urmator, daca am in inventar 1.000.000.000.000, care e setat ca fiind suma maxima de yang pe server, cand dau retragere yang, bani pur si simplu dispar, chestia asta se intampla indiferent ca dau retragere direct din shop sau din gift, unde merge yang-ul in caz ca, inchid shop-ul.
Cu functia de mai jos, pe partea de gift am reusit intr-o oarecare masura sa rezolv, dar nu complet, nu imi mai retrage yang-ul, dar in schimb imi apare in chat si mesajul "nu poti retrage yang-ul!" dar si "GIFT_ADD_SUCCESS"...
Functia originala:
{
#ifndef FULL_YANG
long long nTotalMoney = ch->GetGold()+count;
if (GOLD_MAX <= nTotalMoney)
{
sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", ch->GetPlayerID(), ch->GetName());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20?? łE?≫ ??°uC??ⓒ ≫oAˇ?≫ ??o°ˇ ??˝?´?´?"));
return true;
}
#endif
#ifdef FULL_YANG_OWN
ch->ChangeGold(count);
#else
ch->PointChange(POINT_GOLD, count, false);
#endif
Functia modificata de mine:
{
#ifndef FULL_YANG
long long nTotalMoney = ch->GetGold()+count;
if (GOLD_MAX <= nTotalMoney)
{
sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", ch->GetPlayerID(), ch->GetName());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20?? łE?≫ ??°uC??ⓒ ≫oAˇ?≫ ??o°ˇ ??˝?´?´?"));
return true;
}
#endif
#ifdef FULL_YANG_OWN
ch->ChangeGold(count);
#else
if ((ch->GetGold() + count) <= GOLD_MAX-1)
{
ch->PointChange(POINT_GOLD, count, false);
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("nu poti retrage yang-ul!"));
continue;
}
#endif
}
Bug retragere yang offline shop great
- [Mafia83]
-

- Mesaje: 777
- Membru din: 24 Feb 2016, 20:32
- Server: Metin2KGB
- Regat: Jinno
- Aprecieri: 279
- Mulţumiri: 2287
- Discord: Copiază ID
- Contact:
Cea mai simplă variantă ar fi să descarci acest sv: sau oricare alt svf care are limita de yang scoasă gen colossus și compari fișierele tale pentru shop offline și limit_yang cu cele din resurse, îți ia maxim 30-40 min dacă folosești 
In cazul acesta ai putea să-ți mai rezolvi din problemele cu shop offline și limită yang, cel de pe mega release este destul de bine fixat.

In cazul acesta ai putea să-ți mai rezolvi din problemele cu shop offline și limită yang, cel de pe mega release este destul de bine fixat.
Pune return in loc de continue.
Sub:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("nu poti retrage yang-ul!"));
return;
Dar mai bine in functia originala pune asta:Sub:
long long nTotalMoney = ch->GetGold()+count;Pune asta:
if (nTotalMoney > GOLD_MAX-1)
{
sys_err("[OVERFLOW_GOLD] Prea mult yang (GOLD_MAX) id %u name %s suma totala: %lld", ch->GetPlayerID(), ch->GetName(), nTotalMoney);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Nu poti retrage yangul, ai prea mult in inventar."));
return;
}
Si poti sterge:
if (GOLD_MAX <= nTotalMoney)
{
sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", ch->GetPlayerID(), ch->GetName());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20?? łE?≫ ??°uC??ⓒ ≫oAˇ?≫ ??o°ˇ ??˝?´?´?"));
return true;
}Merge cu return in loc de continue, dar numai la retragerea din shop, la gift da eroare la compilare, dar ii dau eu cumva de cap, sa traiesti 100 de ani, ms mult, puteti da t/c.AndyOpris scrie: ↑27 Ian 2021, 00:48 Pune return in loc de continue.
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("nu poti retrage yang-ul!")); return;Dar mai bine in functia originala pune asta:
Sub:long long nTotalMoney = ch->GetGold()+count;Pune asta:if (nTotalMoney > GOLD_MAX-1) { sys_err("[OVERFLOW_GOLD] Prea mult yang (GOLD_MAX) id %u name %s suma totala: %lld", ch->GetPlayerID(), ch->GetName(), nTotalMoney); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Nu poti retrage yangul, ai prea mult in inventar.")); return; }Si poti sterge:if (GOLD_MAX <= nTotalMoney) { sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", ch->GetPlayerID(), ch->GetName()); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20?? łE?≫ ??°uC??ⓒ ≫oAˇ?≫ ??o°ˇ ??˝?´?´?")); return true; }
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator



