mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[7799] Use single function for SMSG_SPELLNONMELEEDAMAGELOG prepare. Merge comments, replace values by enums.
This commit is contained in:
parent
666b6f798e
commit
943c76869d
4 changed files with 42 additions and 46 deletions
|
|
@ -1055,9 +1055,10 @@ enum SpellHitType
|
|||
{
|
||||
SPELL_HIT_TYPE_UNK1 = 0x00001,
|
||||
SPELL_HIT_TYPE_CRIT = 0x00002,
|
||||
SPELL_HIT_TYPE_UNK2 = 0x00004,
|
||||
SPELL_HIT_TYPE_UNK3 = 0x00008,
|
||||
SPELL_HIT_TYPE_UNK4 = 0x00020
|
||||
SPELL_HIT_TYPE_UNK3 = 0x00004,
|
||||
SPELL_HIT_TYPE_UNK4 = 0x00008,
|
||||
SPELL_HIT_TYPE_UNK5 = 0x00010, // replace caster?
|
||||
SPELL_HIT_TYPE_UNK6 = 0x00020
|
||||
};
|
||||
|
||||
enum SpellDmgClass
|
||||
|
|
|
|||
|
|
@ -4198,14 +4198,14 @@ void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log)
|
|||
data.append(log->target->GetPackGUID());
|
||||
data.append(log->attacker->GetPackGUID());
|
||||
data << uint32(log->SpellID);
|
||||
data << uint32(log->damage); //damage amount
|
||||
data << uint32(0);
|
||||
data << uint8 (log->schoolMask); //damage school
|
||||
data << uint32(log->absorb); //AbsorbedDamage
|
||||
data << uint32(log->resist); //resist
|
||||
data << uint8 (log->phusicalLog); // damsge type? flag
|
||||
data << uint8 (log->unused); //unused
|
||||
data << uint32(log->blocked); //blocked
|
||||
data << uint32(log->damage); // damage amount
|
||||
data << uint32(log->overkill); // overkill
|
||||
data << uint8 (log->schoolMask); // damage school
|
||||
data << uint32(log->absorb); // AbsorbedDamage
|
||||
data << uint32(log->resist); // resist
|
||||
data << uint8 (log->physicalLog); // if 1, then client show spell name (example: %s's ranged shot hit %s for %u school or %s suffers %u school damage from %s's spell_name
|
||||
data << uint8 (log->unused); // unused
|
||||
data << uint32(log->blocked); // blocked
|
||||
data << uint32(log->HitInfo);
|
||||
data << uint8 (0); // flag to use extend data
|
||||
SendMessageToSet( &data, true );
|
||||
|
|
@ -4213,22 +4213,16 @@ void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log)
|
|||
|
||||
void Unit::SendSpellNonMeleeDamageLog(Unit *target,uint32 SpellID,uint32 Damage, SpellSchoolMask damageSchoolMask,uint32 AbsorbedDamage, uint32 Resist,bool PhysicalDamage, uint32 Blocked, bool CriticalHit)
|
||||
{
|
||||
sLog.outDebug("Sending: SMSG_SPELLNONMELEEDAMAGELOG");
|
||||
WorldPacket data(SMSG_SPELLNONMELEEDAMAGELOG, (16+4+4+1+4+4+1+1+4+4+1)); // we guess size
|
||||
data.append(target->GetPackGUID());
|
||||
data.append(GetPackGUID());
|
||||
data << uint32(SpellID);
|
||||
data << uint32(Damage-AbsorbedDamage-Resist-Blocked);
|
||||
data << uint32(0); // wotlk
|
||||
data << uint8(damageSchoolMask); // spell school
|
||||
data << uint32(AbsorbedDamage); // AbsorbedDamage
|
||||
data << uint32(Resist); // resist
|
||||
data << uint8(PhysicalDamage); // if 1, then client show spell name (example: %s's ranged shot hit %s for %u school or %s suffers %u school damage from %s's spell_name
|
||||
data << uint8(0); // unk isFromAura
|
||||
data << uint32(Blocked); // blocked
|
||||
data << uint32(CriticalHit ? 0x27 : 0x25); // hitType, flags: 0x2 - SPELL_HIT_TYPE_CRIT, 0x10 - replace caster?
|
||||
data << uint8(0); // isDebug?
|
||||
SendMessageToSet( &data, true );
|
||||
SpellNonMeleeDamage log(this,target,SpellID,damageSchoolMask);
|
||||
log.damage = Damage-AbsorbedDamage-Resist-Blocked;
|
||||
log.absorb = AbsorbedDamage;
|
||||
log.resist = Resist;
|
||||
log.physicalLog = PhysicalDamage;
|
||||
log.blocked = Blocked;
|
||||
log.HitInfo = SPELL_HIT_TYPE_UNK1 | SPELL_HIT_TYPE_UNK3 | SPELL_HIT_TYPE_UNK6;
|
||||
if(CriticalHit)
|
||||
log.HitInfo |= SPELL_HIT_TYPE_CRIT;
|
||||
SendSpellNonMeleeDamageLog(&log);
|
||||
}
|
||||
|
||||
void Unit::ProcDamageAndSpell(Unit *pVictim, uint32 procAttacker, uint32 procVictim, uint32 procExtra, uint32 amount, WeaponAttackType attType, SpellEntry const *procSpell)
|
||||
|
|
|
|||
|
|
@ -656,18 +656,19 @@ struct CalcDamageInfo
|
|||
// Spell damage info structure based on structure sending in SMSG_SPELLNONMELEEDAMAGELOG opcode
|
||||
struct SpellNonMeleeDamage{
|
||||
SpellNonMeleeDamage(Unit *_attacker, Unit *_target, uint32 _SpellID, uint32 _schoolMask)
|
||||
: target(_target), attacker(_attacker), SpellID(_SpellID), damage(0), schoolMask(_schoolMask),
|
||||
absorb(0), resist(0), phusicalLog(false), unused(false), blocked(0), HitInfo(0), cleanDamage(0)
|
||||
: target(_target), attacker(_attacker), SpellID(_SpellID), damage(0), overkill(0), schoolMask(_schoolMask),
|
||||
absorb(0), resist(0), physicalLog(false), unused(false), blocked(0), HitInfo(0), cleanDamage(0)
|
||||
{}
|
||||
|
||||
Unit *target;
|
||||
Unit *attacker;
|
||||
uint32 SpellID;
|
||||
uint32 damage;
|
||||
uint32 overkill;
|
||||
uint32 schoolMask;
|
||||
uint32 absorb;
|
||||
uint32 resist;
|
||||
bool phusicalLog;
|
||||
bool physicalLog;
|
||||
bool unused;
|
||||
uint32 blocked;
|
||||
uint32 HitInfo;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "7798"
|
||||
#define REVISION_NR "7799"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue