Fix possible client crash in SMSG_ATTACKERSTATEUPDATE caused by outdated packet structure.
--HG-- branch : trunk
This commit is contained in:
+6
-8
@@ -5039,10 +5039,11 @@ void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo)
|
||||
sLog.outDebug("WORLD: Sending SMSG_ATTACKERSTATEUPDATE");
|
||||
|
||||
uint32 count = 1;
|
||||
WorldPacket data(SMSG_ATTACKERSTATEUPDATE, 16 + 45); // we guess size
|
||||
size_t maxsize = 4+5+5+4+4+1+4+4+4+4+4+1+4+4+4+4+4*12;
|
||||
WorldPacket data(SMSG_ATTACKERSTATEUPDATE, maxsize); // we guess size
|
||||
data << uint32(damageInfo->HitInfo);
|
||||
data.append(damageInfo->attacker->GetPackGUID());
|
||||
data.append(damageInfo->target->GetPackGUID());
|
||||
data << damageInfo->attacker->GetPackGUID();
|
||||
data << damageInfo->target->GetPackGUID();
|
||||
data << uint32(damageInfo->damage); // Full damage
|
||||
int32 overkill = damageInfo->damage - damageInfo->target->GetHealth();
|
||||
data << uint32(overkill < 0 ? 0 : overkill); // Overkill
|
||||
@@ -5088,11 +5089,8 @@ void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo)
|
||||
data << float(0);
|
||||
data << float(0);
|
||||
data << float(0);
|
||||
for (uint8 i = 0; i < 5; ++i)
|
||||
{
|
||||
data << float(0);
|
||||
data << float(0);
|
||||
}
|
||||
data << float(0); // Found in a loop with 1 iteration
|
||||
data << float(0); // ditto ^
|
||||
data << uint32(0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user