aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-11-23 11:05:49 +0100
committerShauren <shauren.trinity@gmail.com>2023-11-23 11:05:49 +0100
commit3a50bc50a2a3898013404eb2319508521002984f (patch)
treec1f0941c805c7a4b6d27d2c9cf439589fa601c50 /src
parent5a511678ded92b08f9916330bd807701a0bd9931 (diff)
Core/Auras: Fixed crash happening when a periodic aura tick triggers SPELL_AURA_SPLIT_DAMAGE_PCT
Closes #29450
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp2
-rw-r--r--src/server/game/Server/Packets/CombatLogPacketsCommon.cpp12
2 files changed, 7 insertions, 7 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 950db3570b1..21f90eb1f83 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5290,7 +5290,7 @@ void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage const* log)
{
WorldPackets::CombatLog::SpellNonMeleeDamageLog packet;
packet.Me = log->target->GetGUID();
- packet.CasterGUID = log->attacker->GetGUID();
+ packet.CasterGUID = log->attacker ? log->attacker->GetGUID() : ObjectGuid::Empty;
packet.CastID = log->castId;
packet.SpellID = log->Spell ? log->Spell->Id : 0;
packet.Visual = log->SpellVisual;
diff --git a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp
index f351c61f622..e2435ae0660 100644
--- a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp
+++ b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp
@@ -120,24 +120,24 @@ bool ContentTuningParams::GenerateDataForUnits<Creature, Creature>(Creature* att
template<>
bool ContentTuningParams::GenerateDataForUnits<Unit, Unit>(Unit* attacker, Unit* target)
{
- if (Player* playerAttacker = attacker->ToPlayer())
+ if (Player* playerAttacker = Object::ToPlayer(attacker))
{
- if (Player* playerTarget = target->ToPlayer())
+ if (Player* playerTarget = Object::ToPlayer(target))
return GenerateDataForUnits(playerAttacker, playerTarget);
- else if (Creature* creatureTarget = target->ToCreature())
+ else if (Creature* creatureTarget = Object::ToCreature(target))
{
if (creatureTarget->HasScalableLevels())
return GenerateDataForUnits(playerAttacker, creatureTarget);
}
}
- else if (Creature* creatureAttacker = attacker->ToCreature())
+ else if (Creature* creatureAttacker = Object::ToCreature(attacker))
{
- if (Player* playerTarget = target->ToPlayer())
+ if (Player* playerTarget = Object::ToPlayer(target))
{
if (creatureAttacker->HasScalableLevels())
return GenerateDataForUnits(creatureAttacker, playerTarget);
}
- else if (Creature* creatureTarget = target->ToCreature())
+ else if (Creature* creatureTarget = Object::ToCreature(target))
{
if (creatureAttacker->HasScalableLevels() || creatureTarget->HasScalableLevels())
return GenerateDataForUnits(creatureAttacker, creatureTarget);