- // Update the zuly
- //LMA: anti hack...
- long long zulythis=0;
- long long zulyother=0;
- zulythis=thisclient->CharInfo->Zulies;
- zulyother=otherclient->CharInfo->Zulies;
- thisclient->CharInfo->Zulies -= thisclient->Trade->trade_count[0x0a];
- otherclient->CharInfo->Zulies -= otherclient->Trade->trade_count[0x0a];
- thisclient->CharInfo->Zulies += otherclient->Trade->trade_count[0x0a];
- otherclient->CharInfo->Zulies += thisclient->Trade->trade_count[0x0a];
- unsigned tucount = 0;
- unsigned oucount = 0;
- // Begin this clients inventory update
- BEGINPACKET( pakt, 0x717 );
- ADDQWORD( pakt, thisclient->CharInfo->Zulies );
- ADDBYTE( pakt, 0 );
- // Begin the other clients inventory update
- BEGINPACKET( pako, 0x717 );
- ADDQWORD( pako, otherclient->CharInfo->Zulies );
- ADDBYTE( pako, 0 );
Player X: gives 30,000 zuly to Player Y.
Player Y: accepts the trade.
Player X: agrees and accepts the trade.
End Result: Both players end up with the same amount of zuly. Player Y never gets the 30,000 zuly that he was supposed to get from Player X.
After looking through the code, I have a feeling that the fix might be somewhere here:
In worldpackets.cpp