Sync dropped items if another player triggers an action on the current level
This commit is contained in:
parent
68b3252d24
commit
eeb9ac3303
3 changed files with 16 additions and 3 deletions
|
|
@ -1614,10 +1614,17 @@ DWORD OnDropItem(const TCmd *pCmd, int pnum)
|
|||
{
|
||||
const auto &message = *reinterpret_cast<const TCmdPItem *>(pCmd);
|
||||
|
||||
if (gbBufferMsgs == 1)
|
||||
if (gbBufferMsgs == 1) {
|
||||
SendPacket(pnum, &message, sizeof(message));
|
||||
else if (IsPItemValid(message))
|
||||
DeltaPutItem(message, { message.x, message.y }, Players[pnum].plrlevel);
|
||||
} else if (IsPItemValid(message)) {
|
||||
int playerLevel = Players[pnum].plrlevel;
|
||||
Point position = { message.x, message.y };
|
||||
if (currlevel == playerLevel && pnum != MyPlayerId) {
|
||||
SyncDropItem(position, message.wIndx, message.wCI, message.dwSeed, message.bId, message.bDur, message.bMDur, message.bCh, message.bMCh, message.wValue, message.dwBuff, message.wToHit, message.wMaxDam, message.bMinStr, message.bMinMag, message.bMinDex, message.bAC);
|
||||
}
|
||||
PutItemRecord(message.dwSeed, message.wCI, message.wIndx);
|
||||
DeltaPutItem(message, position, playerLevel);
|
||||
}
|
||||
|
||||
return sizeof(message);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue