[9925] Add more log filters

* damage - different direct damage calculation tracing
* combat - combat state updates, roll attack result and etc
* spell_cast - spell cast progress and aura apply
This commit is contained in:
VladimirMangos 2010-05-18 12:35:50 +04:00
parent b6d7365ac9
commit d86dcd60d7
15 changed files with 89 additions and 81 deletions

View file

@ -29,7 +29,7 @@ void WorldSession::HandleAttackSwingOpcode( WorldPacket & recv_data )
ObjectGuid guid; ObjectGuid guid;
recv_data >> guid; recv_data >> guid;
DEBUG_LOG("WORLD: Recvd CMSG_ATTACKSWING Message %s", guid.GetString().c_str()); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "WORLD: Recvd CMSG_ATTACKSWING Message %s", guid.GetString().c_str());
Unit *pEnemy = ObjectAccessor::GetUnit(*_player, guid); Unit *pEnemy = ObjectAccessor::GetUnit(*_player, guid);

View file

@ -366,7 +366,7 @@ void Creature::Update(uint32 diff)
{ {
if( m_respawnTime <= time(NULL) ) if( m_respawnTime <= time(NULL) )
{ {
DEBUG_LOG("Respawning..."); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "Respawning...");
m_respawnTime = 0; m_respawnTime = 0;
lootForPickPocketed = false; lootForPickPocketed = false;
lootForBody = false; lootForBody = false;
@ -411,7 +411,7 @@ void Creature::Update(uint32 diff)
if (IsInWorld()) // can be despawned by update pool if (IsInWorld()) // can be despawned by update pool
{ {
RemoveCorpse(); RemoveCorpse();
DEBUG_LOG("Removing corpse... %u ", GetEntry()); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "Removing corpse... %u ", GetEntry());
} }
} }
else else
@ -443,7 +443,7 @@ void Creature::Update(uint32 diff)
if (IsInWorld()) // can be despawned by update pool if (IsInWorld()) // can be despawned by update pool
{ {
RemoveCorpse(); RemoveCorpse();
DEBUG_LOG("Removing alive corpse... %u ", GetEntry()); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "Removing alive corpse... %u ", GetEntry());
} }
else else
return; return;
@ -606,7 +606,7 @@ bool Creature::AIM_Initialize()
// make sure nothing can change the AI during AI update // make sure nothing can change the AI during AI update
if(m_AI_locked) if(m_AI_locked)
{ {
DEBUG_LOG("AIM_Initialize: failed to init, locked."); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "AIM_Initialize: failed to init, locked.");
return false; return false;
} }
@ -1595,7 +1595,7 @@ void Creature::SendAIReaction(AiReaction reactionType)
((WorldObject*)this)->SendMessageToSet(&data, true); ((WorldObject*)this)->SendMessageToSet(&data, true);
DEBUG_LOG("WORLD: Sent SMSG_AI_REACTION, type %u.", reactionType); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "WORLD: Sent SMSG_AI_REACTION, type %u.", reactionType);
} }
void Creature::CallAssistance() void Creature::CallAssistance()
@ -1809,7 +1809,7 @@ bool Creature::LoadCreaturesAddon(bool reload)
Aura* AdditionalAura = CreateAura(AdditionalSpellInfo, cAura->effect_idx, NULL, this, this, 0); Aura* AdditionalAura = CreateAura(AdditionalSpellInfo, cAura->effect_idx, NULL, this, this, 0);
AddAura(AdditionalAura); AddAura(AdditionalAura);
DEBUG_LOG("Spell: %u with Aura %u added to creature (GUIDLow: %u Entry: %u )", cAura->spell_id, AdditionalSpellInfo->EffectApplyAuraName[EFFECT_INDEX_0],GetGUIDLow(),GetEntry()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell: %u with Aura %u added to creature (GUIDLow: %u Entry: %u )", cAura->spell_id, AdditionalSpellInfo->EffectApplyAuraName[EFFECT_INDEX_0],GetGUIDLow(),GetEntry());
} }
} }
return true; return true;

View file

@ -41,9 +41,9 @@ void WorldSession::HandleDuelAcceptedOpcode(WorldPacket& recvPacket)
if(pl == pl->duel->initiator || !plTarget || pl == plTarget || pl->duel->startTime != 0 || plTarget->duel->startTime != 0) if(pl == pl->duel->initiator || !plTarget || pl == plTarget || pl->duel->startTime != 0 || plTarget->duel->startTime != 0)
return; return;
//DEBUG_LOG( "WORLD: received CMSG_DUEL_ACCEPTED" ); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "WORLD: received CMSG_DUEL_ACCEPTED" );
DEBUG_LOG("Player 1 is: %u (%s)", pl->GetGUIDLow(), pl->GetName()); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "Player 1 is: %u (%s)", pl->GetGUIDLow(), pl->GetName());
DEBUG_LOG("Player 2 is: %u (%s)", plTarget->GetGUIDLow(), plTarget->GetName()); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "Player 2 is: %u (%s)", plTarget->GetGUIDLow(), plTarget->GetName());
time_t now = time(NULL); time_t now = time(NULL);
pl->duel->startTimer = now; pl->duel->startTimer = now;

View file

@ -1022,7 +1022,7 @@ void GameObject::Use(Unit* user)
if (info->goober.eventId) if (info->goober.eventId)
{ {
DEBUG_LOG("Goober ScriptStart id %u for GO entry %u (GUID %u).", info->goober.eventId, GetEntry(), GetDBTableGUIDLow()); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "Goober ScriptStart id %u for GO entry %u (GUID %u).", info->goober.eventId, GetEntry(), GetDBTableGUIDLow());
GetMap()->ScriptsStart(sEventScripts, info->goober.eventId, player, this); GetMap()->ScriptsStart(sEventScripts, info->goober.eventId, player, this);
} }

View file

@ -278,7 +278,7 @@ void Item::UpdateDuration(Player* owner, uint32 diff)
if (!GetUInt32Value(ITEM_FIELD_DURATION)) if (!GetUInt32Value(ITEM_FIELD_DURATION))
return; return;
DEBUG_LOG("Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)",GetEntry(),GetUInt32Value(ITEM_FIELD_DURATION),diff); //DEBUG_LOG("Item::UpdateDuration Item (Entry: %u Duration %u Diff %u)",GetEntry(),GetUInt32Value(ITEM_FIELD_DURATION),diff);
if (GetUInt32Value(ITEM_FIELD_DURATION)<=diff) if (GetUInt32Value(ITEM_FIELD_DURATION)<=diff)
{ {

View file

@ -107,7 +107,7 @@ void PetAI::_stopAttack()
inCombat = false; inCombat = false;
if( !m_creature->isAlive() ) if( !m_creature->isAlive() )
{ {
DEBUG_LOG("PetAI (guid = %u) stopped attack, he is dead.", m_creature->GetGUIDLow()); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "PetAI (guid = %u) stopped attack, he is dead.", m_creature->GetGUIDLow());
m_creature->StopMoving(); m_creature->StopMoving();
m_creature->GetMotionMaster()->Clear(); m_creature->GetMotionMaster()->Clear();
m_creature->GetMotionMaster()->MoveIdle(); m_creature->GetMotionMaster()->MoveIdle();
@ -152,7 +152,7 @@ void PetAI::UpdateAI(const uint32 diff)
{ {
if (_needToStop()) if (_needToStop())
{ {
DEBUG_LOG("PetAI (guid = %u) is stopping attack.", m_creature->GetGUIDLow()); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "PetAI (guid = %u) is stopping attack.", m_creature->GetGUIDLow());
_stopAttack(); _stopAttack();
return; return;
} }

View file

@ -3295,7 +3295,7 @@ void Spell::SendSpellStart()
if (!IsNeedSendToClient()) if (!IsNeedSendToClient())
return; return;
DEBUG_LOG("Sending SMSG_SPELL_START id=%u", m_spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Sending SMSG_SPELL_START id=%u", m_spellInfo->Id);
uint32 castFlags = CAST_FLAG_UNKNOWN1; uint32 castFlags = CAST_FLAG_UNKNOWN1;
if (IsRangedSpell()) if (IsRangedSpell())
@ -3353,7 +3353,7 @@ void Spell::SendSpellGo()
if(!IsNeedSendToClient()) if(!IsNeedSendToClient())
return; return;
DEBUG_LOG("Sending SMSG_SPELL_GO id=%u", m_spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Sending SMSG_SPELL_GO id=%u", m_spellInfo->Id);
uint32 castFlags = CAST_FLAG_UNKNOWN3; uint32 castFlags = CAST_FLAG_UNKNOWN3;
if(IsRangedSpell()) if(IsRangedSpell())
@ -4017,7 +4017,7 @@ void Spell::HandleThreatSpells(uint32 spellId)
m_targets.getUnitTarget()->AddThreat(m_caster, float(threat), false, GetSpellSchoolMask(m_spellInfo), m_spellInfo); m_targets.getUnitTarget()->AddThreat(m_caster, float(threat), false, GetSpellSchoolMask(m_spellInfo), m_spellInfo);
DEBUG_LOG("Spell %u, rank %u, added an additional %i threat", spellId, sSpellMgr.GetSpellRank(spellId), threat); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell %u, rank %u, added an additional %i threat", spellId, sSpellMgr.GetSpellRank(spellId), threat);
} }
void Spell::HandleEffects(Unit *pUnitTarget,Item *pItemTarget,GameObject *pGOTarget,SpellEffectIndex i, float DamageMultiplier) void Spell::HandleEffects(Unit *pUnitTarget,Item *pItemTarget,GameObject *pGOTarget,SpellEffectIndex i, float DamageMultiplier)
@ -4030,11 +4030,10 @@ void Spell::HandleEffects(Unit *pUnitTarget,Item *pItemTarget,GameObject *pGOTar
damage = int32(CalculateDamage(i, unitTarget) * DamageMultiplier); damage = int32(CalculateDamage(i, unitTarget) * DamageMultiplier);
DEBUG_LOG("Spell %u Effect%d : %u", m_spellInfo->Id, i, eff); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell %u Effect%d : %u", m_spellInfo->Id, i, eff);
if(eff < TOTAL_SPELL_EFFECTS) if(eff < TOTAL_SPELL_EFFECTS)
{ {
//DEBUG_LOG( "WORLD: Spell FX %d < TOTAL_SPELL_EFFECTS ", eff);
(*this.*SpellEffects[eff])(i); (*this.*SpellEffects[eff])(i);
} }
else else
@ -5987,7 +5986,7 @@ void Spell::Delayed()
else else
m_timer += delaytime; m_timer += delaytime;
DETAIL_LOG("Spell %u partially interrupted for (%d) ms at damage", m_spellInfo->Id, delaytime); DETAIL_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell %u partially interrupted for (%d) ms at damage", m_spellInfo->Id, delaytime);
WorldPacket data(SMSG_SPELL_DELAYED, 8+4); WorldPacket data(SMSG_SPELL_DELAYED, 8+4);
data << m_caster->GetPackGUID(); data << m_caster->GetPackGUID();
@ -6022,7 +6021,7 @@ void Spell::DelayedChannel()
else else
m_timer -= delaytime; m_timer -= delaytime;
DEBUG_LOG("Spell %u partially interrupted for %i ms, new duration: %u ms", m_spellInfo->Id, delaytime, m_timer); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell %u partially interrupted for %i ms, new duration: %u ms", m_spellInfo->Id, delaytime, m_timer);
for(std::list<TargetInfo>::const_iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) for(std::list<TargetInfo>::const_iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
{ {

View file

@ -447,7 +447,7 @@ m_isRemovedOnShapeLost(true), m_in_use(0), m_deleted(false)
m_duration = m_maxduration; m_duration = m_maxduration;
DEBUG_LOG("Aura: construct Spellid : %u, Aura : %u Duration : %d Target : %d Damage : %d", m_spellProto->Id, m_spellProto->EffectApplyAuraName[eff], m_maxduration, m_spellProto->EffectImplicitTargetA[eff],damage); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Aura: construct Spellid : %u, Aura : %u Duration : %d Target : %d Damage : %d", m_spellProto->Id, m_spellProto->EffectApplyAuraName[eff], m_maxduration, m_spellProto->EffectImplicitTargetA[eff],damage);
SetModifier(AuraType(m_spellProto->EffectApplyAuraName[eff]), damage, m_spellProto->EffectAmplitude[eff], m_spellProto->EffectMiscValue[eff]); SetModifier(AuraType(m_spellProto->EffectApplyAuraName[eff]), damage, m_spellProto->EffectAmplitude[eff], m_spellProto->EffectMiscValue[eff]);
@ -5795,7 +5795,7 @@ void Aura::HandleModDamageDone(bool apply, bool Real)
void Aura::HandleModDamagePercentDone(bool apply, bool Real) void Aura::HandleModDamagePercentDone(bool apply, bool Real)
{ {
DEBUG_LOG("AURA MOD DAMAGE type:%u negative:%u", m_modifier.m_miscvalue, m_positive ? 0 : 1); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "AURA MOD DAMAGE type:%u negative:%u", m_modifier.m_miscvalue, m_positive ? 0 : 1);
// apply item specific bonuses for already equipped weapon // apply item specific bonuses for already equipped weapon
if(Real && m_target->GetTypeId() == TYPEID_PLAYER) if(Real && m_target->GetTypeId() == TYPEID_PLAYER)
@ -5858,7 +5858,7 @@ void Aura::HandleModOffhandDamagePercent(bool apply, bool Real)
if(!Real) if(!Real)
return; return;
DEBUG_LOG("AURA MOD OFFHAND DAMAGE"); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "AURA MOD OFFHAND DAMAGE");
m_target->HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_PCT, float(m_modifier.m_amount), apply); m_target->HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_PCT, float(m_modifier.m_amount), apply);
} }

View file

@ -2713,7 +2713,7 @@ void Spell::EffectTriggerMissileSpell(SpellEffectIndex effect_idx)
} }
if (m_CastItem) if (m_CastItem)
DEBUG_LOG("WORLD: cast Item spellId - %i", spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "WORLD: cast Item spellId - %i", spellInfo->Id);
m_caster->CastSpell(m_targets.m_destX, m_targets.m_destY, m_targets.m_destZ, spellInfo, true, m_CastItem, 0, m_originalCasterGUID); m_caster->CastSpell(m_targets.m_destX, m_targets.m_destY, m_targets.m_destZ, spellInfo, true, m_CastItem, 0, m_originalCasterGUID);
} }
@ -2957,7 +2957,7 @@ void Spell::EffectApplyAura(SpellEffectIndex eff_idx)
return; return;
} }
DEBUG_LOG("Spell: Aura is: %u", m_spellInfo->EffectApplyAuraName[eff_idx]); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell: Aura is: %u", m_spellInfo->EffectApplyAuraName[eff_idx]);
Aura* Aur = CreateAura(m_spellInfo, eff_idx, &m_currentBasePoints[eff_idx], unitTarget, caster, m_CastItem); Aura* Aur = CreateAura(m_spellInfo, eff_idx, &m_currentBasePoints[eff_idx], unitTarget, caster, m_CastItem);
@ -3052,7 +3052,7 @@ void Spell::EffectSendEvent(SpellEffectIndex effectIndex)
/* /*
we do not handle a flag dropping or clicking on flag in battleground by sendevent system we do not handle a flag dropping or clicking on flag in battleground by sendevent system
*/ */
DEBUG_LOG("Spell ScriptStart %u for spellid %u in EffectSendEvent ", m_spellInfo->EffectMiscValue[effectIndex], m_spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell ScriptStart %u for spellid %u in EffectSendEvent ", m_spellInfo->EffectMiscValue[effectIndex], m_spellInfo->Id);
m_caster->GetMap()->ScriptsStart(sEventScripts, m_spellInfo->EffectMiscValue[effectIndex], m_caster, focusObject); m_caster->GetMap()->ScriptsStart(sEventScripts, m_spellInfo->EffectMiscValue[effectIndex], m_caster, focusObject);
} }
@ -3245,7 +3245,7 @@ void Spell::EffectHealthLeech(SpellEffectIndex eff_idx)
if (damage < 0) if (damage < 0)
return; return;
DEBUG_LOG("HealthLeech :%i", damage); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "HealthLeech :%i", damage);
uint32 curHealth = unitTarget->GetHealth(); uint32 curHealth = unitTarget->GetHealth();
damage = m_caster->SpellNonMeleeDamageLog(unitTarget, m_spellInfo->Id, damage ); damage = m_caster->SpellNonMeleeDamageLog(unitTarget, m_spellInfo->Id, damage );
@ -4447,7 +4447,7 @@ void Spell::EffectAddHonor(SpellEffectIndex /*eff_idx*/)
if (m_CastItem) if (m_CastItem)
{ {
((Player*)unitTarget)->RewardHonor(NULL, 1, float(damage / 10)); ((Player*)unitTarget)->RewardHonor(NULL, 1, float(damage / 10));
DEBUG_LOG("SpellEffect::AddHonor (spell_id %u) rewards %d honor points (item %u) for player: %u", m_spellInfo->Id, damage/10, m_CastItem->GetEntry(),((Player*)unitTarget)->GetGUIDLow()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "SpellEffect::AddHonor (spell_id %u) rewards %d honor points (item %u) for player: %u", m_spellInfo->Id, damage/10, m_CastItem->GetEntry(),((Player*)unitTarget)->GetGUIDLow());
return; return;
} }
@ -4456,7 +4456,7 @@ void Spell::EffectAddHonor(SpellEffectIndex /*eff_idx*/)
{ {
float honor_reward = MaNGOS::Honor::hk_honor_at_level(unitTarget->getLevel(), damage); float honor_reward = MaNGOS::Honor::hk_honor_at_level(unitTarget->getLevel(), damage);
((Player*)unitTarget)->RewardHonor(NULL, 1, honor_reward); ((Player*)unitTarget)->RewardHonor(NULL, 1, honor_reward);
DEBUG_LOG("SpellEffect::AddHonor (spell_id %u) rewards %f honor points (scale) to player: %u", m_spellInfo->Id, honor_reward, ((Player*)unitTarget)->GetGUIDLow()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "SpellEffect::AddHonor (spell_id %u) rewards %f honor points (scale) to player: %u", m_spellInfo->Id, honor_reward, ((Player*)unitTarget)->GetGUIDLow());
} }
else else
{ {
@ -6346,7 +6346,7 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx)
if (!unitTarget) if (!unitTarget)
return; return;
DEBUG_LOG("Spell ScriptStart spellid %u in EffectScriptEffect ", m_spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell ScriptStart spellid %u in EffectScriptEffect ", m_spellInfo->Id);
m_caster->GetMap()->ScriptsStart(sSpellScripts, m_spellInfo->Id, m_caster, unitTarget); m_caster->GetMap()->ScriptsStart(sSpellScripts, m_spellInfo->Id, m_caster, unitTarget);
} }

View file

@ -535,7 +535,7 @@ void WorldSession::HandleTotemDestroyed( WorldPacket& recvPacket)
void WorldSession::HandleSelfResOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleSelfResOpcode( WorldPacket & /*recv_data*/ )
{ {
DEBUG_LOG("WORLD: CMSG_SELF_RES"); // empty opcode DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "WORLD: CMSG_SELF_RES"); // empty opcode
if(_player->GetUInt32Value(PLAYER_SELF_RES_SPELL)) if(_player->GetUInt32Value(PLAYER_SELF_RES_SPELL))
{ {

View file

@ -578,10 +578,10 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
return damage; return damage;
} }
DEBUG_LOG("DealDamageStart"); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"DealDamageStart");
uint32 health = pVictim->GetHealth(); uint32 health = pVictim->GetHealth();
DETAIL_LOG("deal dmg:%d to health:%d ",damage,health); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"deal dmg:%d to health:%d ",damage,health);
// duel ends when player has 1 or less hp // duel ends when player has 1 or less hp
bool duel_hasEnded = false; bool duel_hasEnded = false;
@ -663,7 +663,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
if (health <= damage) if (health <= damage)
{ {
DEBUG_LOG("DealDamage: victim just died"); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"DealDamage: victim just died");
// find player: owner of controlled `this` or `this` itself maybe // find player: owner of controlled `this` or `this` itself maybe
// for loot will be sued only if group_tap==NULL // for loot will be sued only if group_tap==NULL
@ -719,7 +719,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
player_tap->RewardSinglePlayerAtKill(pVictim); player_tap->RewardSinglePlayerAtKill(pVictim);
} }
DEBUG_LOG("DealDamageAttackStop"); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"DealDamageAttackStop");
// stop combat // stop combat
pVictim->CombatStop(); pVictim->CombatStop();
@ -743,11 +743,11 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
} }
} }
DEBUG_LOG("SET JUST_DIED"); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"SET JUST_DIED");
if(!spiritOfRedemtionTalentReady) if(!spiritOfRedemtionTalentReady)
pVictim->setDeathState(JUST_DIED); pVictim->setDeathState(JUST_DIED);
DEBUG_LOG("DealDamageHealth1"); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"DealDamageHealth1");
if(spiritOfRedemtionTalentReady) if(spiritOfRedemtionTalentReady)
{ {
@ -802,7 +802,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
} }
else // creature died else // creature died
{ {
DEBUG_LOG("DealDamageNotPlayer"); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"DealDamageNotPlayer");
Creature *cVictim = (Creature*)pVictim; Creature *cVictim = (Creature*)pVictim;
if(!cVictim->isPet()) if(!cVictim->isPet())
@ -889,7 +889,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
} }
else // if (health <= damage) else // if (health <= damage)
{ {
DEBUG_LOG("DealDamageAlive"); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"DealDamageAlive");
if (pVictim->GetTypeId() == TYPEID_PLAYER) if (pVictim->GetTypeId() == TYPEID_PLAYER)
((Player*)pVictim)->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, damage); ((Player*)pVictim)->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, damage);
@ -1053,7 +1053,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
} }
} }
DEBUG_LOG("DealDamageEnd returned %d damage", damage); DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"DealDamageEnd returned %d damage", damage);
return damage; return damage;
} }
@ -1087,7 +1087,7 @@ void Unit::CastSpell(Unit* Victim, SpellEntry const *spellInfo, bool triggered,
} }
if (castItem) if (castItem)
DEBUG_LOG("WORLD: cast Item spellId - %i", spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "WORLD: cast Item spellId - %i", spellInfo->Id);
if(originalCaster.IsEmpty() && triggeredByAura) if(originalCaster.IsEmpty() && triggeredByAura)
originalCaster = triggeredByAura->GetCasterGUID(); originalCaster = triggeredByAura->GetCasterGUID();
@ -1122,7 +1122,7 @@ void Unit::CastCustomSpell(Unit* Victim, SpellEntry const *spellInfo, int32 cons
} }
if (castItem) if (castItem)
DEBUG_LOG("WORLD: cast Item spellId - %i", spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "WORLD: cast Item spellId - %i", spellInfo->Id);
if(originalCaster.IsEmpty() && triggeredByAura) if(originalCaster.IsEmpty() && triggeredByAura)
originalCaster = triggeredByAura->GetCasterGUID(); originalCaster = triggeredByAura->GetCasterGUID();
@ -1168,7 +1168,7 @@ void Unit::CastSpell(float x, float y, float z, SpellEntry const *spellInfo, boo
} }
if (castItem) if (castItem)
DEBUG_LOG("WORLD: cast Item spellId - %i", spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "WORLD: cast Item spellId - %i", spellInfo->Id);
if(originalCaster.IsEmpty() && triggeredByAura) if(originalCaster.IsEmpty() && triggeredByAura)
originalCaster = triggeredByAura->GetCasterGUID(); originalCaster = triggeredByAura->GetCasterGUID();
@ -1294,7 +1294,7 @@ void Unit::DealSpellDamage(SpellNonMeleeDamage *damageInfo, bool durabilityLoss)
SpellEntry const *spellProto = sSpellStore.LookupEntry(damageInfo->SpellID); SpellEntry const *spellProto = sSpellStore.LookupEntry(damageInfo->SpellID);
if (spellProto == NULL) if (spellProto == NULL)
{ {
DEBUG_LOG("Unit::DealSpellDamage have wrong damageInfo->SpellID: %u", damageInfo->SpellID); sLog.outError("Unit::DealSpellDamage have wrong damageInfo->SpellID: %u", damageInfo->SpellID);
return; return;
} }
@ -2401,10 +2401,10 @@ void Unit::AttackerStateUpdate (Unit *pVictim, WeaponAttackType attType, bool ex
DealMeleeDamage(&damageInfo,true); DealMeleeDamage(&damageInfo,true);
if (GetTypeId() == TYPEID_PLAYER) if (GetTypeId() == TYPEID_PLAYER)
DEBUG_LOG("AttackerStateUpdate: (Player) %u attacked %u (TypeId: %u) for %u dmg, absorbed %u, blocked %u, resisted %u.", DEBUG_FILTER_LOG(LOG_FILTER_COMBAT,"AttackerStateUpdate: (Player) %u attacked %u (TypeId: %u) for %u dmg, absorbed %u, blocked %u, resisted %u.",
GetGUIDLow(), pVictim->GetGUIDLow(), pVictim->GetTypeId(), damageInfo.damage, damageInfo.absorb, damageInfo.blocked_amount, damageInfo.resist); GetGUIDLow(), pVictim->GetGUIDLow(), pVictim->GetTypeId(), damageInfo.damage, damageInfo.absorb, damageInfo.blocked_amount, damageInfo.resist);
else else
DEBUG_LOG("AttackerStateUpdate: (NPC) %u attacked %u (TypeId: %u) for %u dmg, absorbed %u, blocked %u, resisted %u.", DEBUG_FILTER_LOG(LOG_FILTER_COMBAT,"AttackerStateUpdate: (NPC) %u attacked %u (TypeId: %u) for %u dmg, absorbed %u, blocked %u, resisted %u.",
GetGUIDLow(), pVictim->GetGUIDLow(), pVictim->GetTypeId(), damageInfo.damage, damageInfo.absorb, damageInfo.blocked_amount, damageInfo.resist); GetGUIDLow(), pVictim->GetGUIDLow(), pVictim->GetTypeId(), damageInfo.damage, damageInfo.absorb, damageInfo.blocked_amount, damageInfo.resist);
// if damage pVictim call AI reaction // if damage pVictim call AI reaction
@ -2439,7 +2439,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst(const Unit *pVictim, WeaponAttackT
float parry_chance = pVictim->GetUnitParryChance(); float parry_chance = pVictim->GetUnitParryChance();
// Useful if want to specify crit & miss chances for melee, else it could be removed // Useful if want to specify crit & miss chances for melee, else it could be removed
DEBUG_LOG("MELEE OUTCOME: miss %f crit %f dodge %f parry %f block %f", miss_chance,crit_chance,dodge_chance,parry_chance,block_chance); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT,"MELEE OUTCOME: miss %f crit %f dodge %f parry %f block %f", miss_chance,crit_chance,dodge_chance,parry_chance,block_chance);
return RollMeleeOutcomeAgainst(pVictim, attType, int32(crit_chance*100), int32(miss_chance*100), int32(dodge_chance*100),int32(parry_chance*100),int32(block_chance*100)); return RollMeleeOutcomeAgainst(pVictim, attType, int32(crit_chance*100), int32(miss_chance*100), int32(dodge_chance*100),int32(parry_chance*100),int32(block_chance*100));
} }
@ -2460,22 +2460,22 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
int32 sum = 0, tmp = 0; int32 sum = 0, tmp = 0;
int32 roll = urand (0, 10000); int32 roll = urand (0, 10000);
DEBUG_LOG ("RollMeleeOutcomeAgainst: skill bonus of %d for attacker", skillBonus); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: skill bonus of %d for attacker", skillBonus);
DEBUG_LOG ("RollMeleeOutcomeAgainst: rolled %d, miss %d, dodge %d, parry %d, block %d, crit %d", DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: rolled %d, miss %d, dodge %d, parry %d, block %d, crit %d",
roll, miss_chance, dodge_chance, parry_chance, block_chance, crit_chance); roll, miss_chance, dodge_chance, parry_chance, block_chance, crit_chance);
tmp = miss_chance; tmp = miss_chance;
if (tmp > 0 && roll < (sum += tmp )) if (tmp > 0 && roll < (sum += tmp ))
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: MISS"); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: MISS");
return MELEE_HIT_MISS; return MELEE_HIT_MISS;
} }
// always crit against a sitting target (except 0 crit chance) // always crit against a sitting target (except 0 crit chance)
if( pVictim->GetTypeId() == TYPEID_PLAYER && crit_chance > 0 && !pVictim->IsStandState() ) if( pVictim->GetTypeId() == TYPEID_PLAYER && crit_chance > 0 && !pVictim->IsStandState() )
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: CRIT (sitting victim)"); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: CRIT (sitting victim)");
return MELEE_HIT_CRIT; return MELEE_HIT_CRIT;
} }
@ -2484,7 +2484,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
// only players can't dodge if attacker is behind // only players can't dodge if attacker is behind
if (pVictim->GetTypeId() == TYPEID_PLAYER && !pVictim->HasInArc(M_PI_F,this)) if (pVictim->GetTypeId() == TYPEID_PLAYER && !pVictim->HasInArc(M_PI_F,this))
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: attack came from behind and victim was a player."); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: attack came from behind and victim was a player.");
} }
else else
{ {
@ -2502,7 +2502,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
&& ((tmp -= skillBonus) > 0) && ((tmp -= skillBonus) > 0)
&& roll < (sum += tmp)) && roll < (sum += tmp))
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: DODGE <%d, %d)", sum-tmp, sum); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: DODGE <%d, %d)", sum-tmp, sum);
return MELEE_HIT_DODGE; return MELEE_HIT_DODGE;
} }
} }
@ -2512,7 +2512,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
// check if attack comes from behind, nobody can parry or block if attacker is behind // check if attack comes from behind, nobody can parry or block if attacker is behind
if (!pVictim->HasInArc(M_PI_F,this)) if (!pVictim->HasInArc(M_PI_F,this))
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: attack came from behind."); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: attack came from behind.");
} }
else else
{ {
@ -2529,7 +2529,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
&& ((tmp2 -= skillBonus) > 0) && ((tmp2 -= skillBonus) > 0)
&& (roll < (sum += tmp2))) && (roll < (sum += tmp2)))
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: PARRY <%d, %d)", sum-tmp2, sum); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: PARRY <%d, %d)", sum-tmp2, sum);
return MELEE_HIT_PARRY; return MELEE_HIT_PARRY;
} }
} }
@ -2541,7 +2541,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
&& ((tmp -= skillBonus) > 0) && ((tmp -= skillBonus) > 0)
&& (roll < (sum += tmp))) && (roll < (sum += tmp)))
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: BLOCK <%d, %d)", sum-tmp, sum); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: BLOCK <%d, %d)", sum-tmp, sum);
return MELEE_HIT_BLOCK; return MELEE_HIT_BLOCK;
} }
} }
@ -2552,7 +2552,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
if (tmp > 0 && roll < (sum += tmp)) if (tmp > 0 && roll < (sum += tmp))
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: CRIT <%d, %d)", sum-tmp, sum); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: CRIT <%d, %d)", sum-tmp, sum);
return MELEE_HIT_CRIT; return MELEE_HIT_CRIT;
} }
@ -2571,7 +2571,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
tmp = tmp > 4000 ? 4000 : tmp; tmp = tmp > 4000 ? 4000 : tmp;
if (roll < (sum += tmp)) if (roll < (sum += tmp))
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: GLANCING <%d, %d)", sum-4000, sum); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: GLANCING <%d, %d)", sum-4000, sum);
return MELEE_HIT_GLANCING; return MELEE_HIT_GLANCING;
} }
} }
@ -2596,13 +2596,13 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
tmp = tmp * 200 - 1500; tmp = tmp * 200 - 1500;
if (roll < (sum += tmp)) if (roll < (sum += tmp))
{ {
DEBUG_LOG ("RollMeleeOutcomeAgainst: CRUSHING <%d, %d)", sum-tmp, sum); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: CRUSHING <%d, %d)", sum-tmp, sum);
return MELEE_HIT_CRUSHING; return MELEE_HIT_CRUSHING;
} }
} }
} }
DEBUG_LOG ("RollMeleeOutcomeAgainst: NORMAL"); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: NORMAL");
return MELEE_HIT_NORMAL; return MELEE_HIT_NORMAL;
} }
@ -2683,7 +2683,7 @@ void Unit::SendMeleeAttackStop(Unit* victim)
data << victim->GetPackGUID(); // can be 0x00... data << victim->GetPackGUID(); // can be 0x00...
data << uint32(0); // can be 0x1 data << uint32(0); // can be 0x1
SendMessageToSet(&data, true); SendMessageToSet(&data, true);
DETAIL_LOG("%s %u stopped attacking %s %u", (GetTypeId()==TYPEID_PLAYER ? "player" : "creature"), GetGUIDLow(), (victim->GetTypeId()==TYPEID_PLAYER ? "player" : "creature"),victim->GetGUIDLow()); DETAIL_FILTER_LOG(LOG_FILTER_COMBAT, "%s %u stopped attacking %s %u", (GetTypeId()==TYPEID_PLAYER ? "player" : "creature"), GetGUIDLow(), (victim->GetTypeId()==TYPEID_PLAYER ? "player" : "creature"),victim->GetGUIDLow());
/*if(victim->GetTypeId() == TYPEID_UNIT) /*if(victim->GetTypeId() == TYPEID_UNIT)
((Creature*)victim)->AI().EnterEvadeMode(this);*/ ((Creature*)victim)->AI().EnterEvadeMode(this);*/
@ -3946,7 +3946,7 @@ bool Unit::AddAura(Aura *Aur)
} }
Aur->ApplyModifier(true,true); Aur->ApplyModifier(true,true);
DEBUG_LOG("Aura %u now is in use", aurName); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Aura %u now is in use", aurName);
// if aura deleted before boosts apply ignore // if aura deleted before boosts apply ignore
// this can be possible it it removed indirectly by triggered spell effect at ApplyModifier // this can be possible it it removed indirectly by triggered spell effect at ApplyModifier
@ -4500,7 +4500,7 @@ void Unit::RemoveAura(AuraMap::iterator &i, AuraRemoveMode mode)
if(caster->GetTypeId()==TYPEID_UNIT && ((Creature*)caster)->isTotem() && ((Totem*)caster)->GetTotemType()==TOTEM_STATUE) if(caster->GetTypeId()==TYPEID_UNIT && ((Creature*)caster)->isTotem() && ((Totem*)caster)->GetTotemType()==TOTEM_STATUE)
statue = ((Totem*)caster); statue = ((Totem*)caster);
DEBUG_LOG("Aura %u now is remove mode %d",Aur->GetModifier()->m_auraname, mode); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Aura %u now is remove mode %d",Aur->GetModifier()->m_auraname, mode);
// some auras also need to apply modifier (on caster) on remove // some auras also need to apply modifier (on caster) on remove
if (mode != AURA_REMOVE_BY_DELETE || Aur->GetModifier()->m_auraname == SPELL_AURA_MOD_POSSESS) if (mode != AURA_REMOVE_BY_DELETE || Aur->GetModifier()->m_auraname == SPELL_AURA_MOD_POSSESS)
@ -4582,7 +4582,7 @@ void Unit::DelayAura(uint32 spellId, SpellEffectIndex effindex, int32 delaytime)
else else
iter->second->SetAuraDuration(iter->second->GetAuraDuration() - delaytime); iter->second->SetAuraDuration(iter->second->GetAuraDuration() - delaytime);
iter->second->SendAuraUpdate(false); iter->second->SendAuraUpdate(false);
DEBUG_LOG("Aura %u partially interrupted on unit %u, new duration: %u ms",iter->second->GetModifier()->m_auraname, GetGUIDLow(), iter->second->GetAuraDuration()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Aura %u partially interrupted on unit %u, new duration: %u ms",iter->second->GetModifier()->m_auraname, GetGUIDLow(), iter->second->GetAuraDuration());
} }
} }
@ -4907,7 +4907,7 @@ void Unit::SendSpellMiss(Unit *target, uint32 spellID, SpellMissInfo missInfo)
void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo) void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo)
{ {
DEBUG_LOG("WORLD: Sending SMSG_ATTACKERSTATEUPDATE"); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "WORLD: Sending SMSG_ATTACKERSTATEUPDATE");
uint32 count = 1; uint32 count = 1;
WorldPacket data(SMSG_ATTACKERSTATEUPDATE, 16 + 45); // we guess size WorldPacket data(SMSG_ATTACKERSTATEUPDATE, 16 + 45); // we guess size
@ -12591,7 +12591,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
{ {
case SPELL_AURA_PROC_TRIGGER_SPELL: case SPELL_AURA_PROC_TRIGGER_SPELL:
{ {
DEBUG_LOG("ProcDamageAndSpell: casting spell %u (triggered by %s aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: casting spell %u (triggered by %s aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
// Don`t drop charge or add cooldown for not started trigger // Don`t drop charge or add cooldown for not started trigger
if (!HandleProcTriggerSpell(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown)) if (!HandleProcTriggerSpell(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
{ {
@ -12602,7 +12602,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
} }
case SPELL_AURA_PROC_TRIGGER_DAMAGE: case SPELL_AURA_PROC_TRIGGER_DAMAGE:
{ {
DEBUG_LOG("ProcDamageAndSpell: doing %u damage from spell id %u (triggered by %s aura of spell %u)", auraModifier->m_amount, spellInfo->Id, (isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: doing %u damage from spell id %u (triggered by %s aura of spell %u)", auraModifier->m_amount, spellInfo->Id, (isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
SpellNonMeleeDamage damageInfo(this, pTarget, spellInfo->Id, spellInfo->SchoolMask); SpellNonMeleeDamage damageInfo(this, pTarget, spellInfo->Id, spellInfo->SchoolMask);
CalculateSpellDamage(&damageInfo, auraModifier->m_amount, spellInfo); CalculateSpellDamage(&damageInfo, auraModifier->m_amount, spellInfo);
damageInfo.target->CalculateAbsorbResistBlock(this, &damageInfo, spellInfo); damageInfo.target->CalculateAbsorbResistBlock(this, &damageInfo, spellInfo);
@ -12617,7 +12617,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
case SPELL_AURA_ADD_PCT_MODIFIER: case SPELL_AURA_ADD_PCT_MODIFIER:
case SPELL_AURA_DUMMY: case SPELL_AURA_DUMMY:
{ {
DEBUG_LOG("ProcDamageAndSpell: casting spell id %u (triggered by %s dummy aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: casting spell id %u (triggered by %s dummy aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (!HandleDummyAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown)) if (!HandleDummyAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
{ {
triggeredByAura->SetInUse(false); triggeredByAura->SetInUse(false);
@ -12627,7 +12627,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
} }
case SPELL_AURA_MOD_HASTE: case SPELL_AURA_MOD_HASTE:
{ {
DEBUG_LOG("ProcDamageAndSpell: casting spell id %u (triggered by %s haste aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: casting spell id %u (triggered by %s haste aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (!HandleHasteAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown)) if (!HandleHasteAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
{ {
triggeredByAura->SetInUse(false); triggeredByAura->SetInUse(false);
@ -12637,7 +12637,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
} }
case SPELL_AURA_OVERRIDE_CLASS_SCRIPTS: case SPELL_AURA_OVERRIDE_CLASS_SCRIPTS:
{ {
DEBUG_LOG("ProcDamageAndSpell: casting spell id %u (triggered by %s aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: casting spell id %u (triggered by %s aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (!HandleOverrideClassScriptAuraProc(pTarget, damage, triggeredByAura, procSpell, cooldown)) if (!HandleOverrideClassScriptAuraProc(pTarget, damage, triggeredByAura, procSpell, cooldown))
{ {
triggeredByAura->SetInUse(false); triggeredByAura->SetInUse(false);
@ -12647,7 +12647,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
} }
case SPELL_AURA_PRAYER_OF_MENDING: case SPELL_AURA_PRAYER_OF_MENDING:
{ {
DEBUG_LOG("ProcDamageAndSpell: casting mending (triggered by %s dummy aura of spell %u)", DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: casting mending (triggered by %s dummy aura of spell %u)",
(isVictim?"a victim's":"an attacker's"),triggeredByAura->GetId()); (isVictim?"a victim's":"an attacker's"),triggeredByAura->GetId());
HandleMendingAuraProc(triggeredByAura); HandleMendingAuraProc(triggeredByAura);
@ -12655,7 +12655,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
} }
case SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE: case SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE:
{ {
DEBUG_LOG("ProcDamageAndSpell: casting spell %u (triggered with value by %s aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: casting spell %u (triggered with value by %s aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (!HandleProcTriggerSpell(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown)) if (!HandleProcTriggerSpell(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
{ {
@ -12721,7 +12721,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
triggeredByAura->SetInUse(false); triggeredByAura->SetInUse(false);
continue; continue;
} }
DEBUG_LOG("ProcDamageAndSpell: casting spell id %u (triggered by %s spell crit chance aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: casting spell id %u (triggered by %s spell crit chance aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (!HandleSpellCritChanceAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown)) if (!HandleSpellCritChanceAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
{ {
triggeredByAura->SetInUse(false); triggeredByAura->SetInUse(false);
@ -12729,7 +12729,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
} }
break; break;
case SPELL_AURA_MAELSTROM_WEAPON: case SPELL_AURA_MAELSTROM_WEAPON:
DEBUG_LOG("ProcDamageAndSpell: casting spell id %u (triggered by %s maelstrom aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "ProcDamageAndSpell: casting spell id %u (triggered by %s maelstrom aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
// remove all stack; // remove all stack;
RemoveSpellsCausingAura(SPELL_AURA_MAELSTROM_WEAPON); RemoveSpellsCausingAura(SPELL_AURA_MAELSTROM_WEAPON);
@ -13703,7 +13703,7 @@ void Unit::SendThreatUpdate()
ThreatList const& tlist = getThreatManager().getThreatList(); ThreatList const& tlist = getThreatManager().getThreatList();
if (uint32 count = tlist.size()) if (uint32 count = tlist.size())
{ {
DEBUG_LOG( "WORLD: Send SMSG_THREAT_UPDATE Message" ); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "WORLD: Send SMSG_THREAT_UPDATE Message");
WorldPacket data(SMSG_THREAT_UPDATE, 8 + count * 8); WorldPacket data(SMSG_THREAT_UPDATE, 8 + count * 8);
data << GetPackGUID(); data << GetPackGUID();
data << uint32(count); data << uint32(count);
@ -13721,7 +13721,7 @@ void Unit::SendHighestThreatUpdate(HostileReference* pHostilReference)
ThreatList const& tlist = getThreatManager().getThreatList(); ThreatList const& tlist = getThreatManager().getThreatList();
if (uint32 count = tlist.size()) if (uint32 count = tlist.size())
{ {
DEBUG_LOG( "WORLD: Send SMSG_HIGHEST_THREAT_UPDATE Message" ); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "WORLD: Send SMSG_HIGHEST_THREAT_UPDATE Message");
WorldPacket data(SMSG_HIGHEST_THREAT_UPDATE, 8 + 8 + count * 8); WorldPacket data(SMSG_HIGHEST_THREAT_UPDATE, 8 + 8 + count * 8);
data << GetPackGUID(); data << GetPackGUID();
data.appendPackGUID(pHostilReference->getUnitGuid()); data.appendPackGUID(pHostilReference->getUnitGuid());
@ -13737,7 +13737,7 @@ void Unit::SendHighestThreatUpdate(HostileReference* pHostilReference)
void Unit::SendThreatClear() void Unit::SendThreatClear()
{ {
DEBUG_LOG( "WORLD: Send SMSG_THREAT_CLEAR Message" ); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "WORLD: Send SMSG_THREAT_CLEAR Message");
WorldPacket data(SMSG_THREAT_CLEAR, 8); WorldPacket data(SMSG_THREAT_CLEAR, 8);
data << GetPackGUID(); data << GetPackGUID();
SendMessageToSet(&data, false); SendMessageToSet(&data, false);
@ -13745,7 +13745,7 @@ void Unit::SendThreatClear()
void Unit::SendThreatRemove(HostileReference* pHostileReference) void Unit::SendThreatRemove(HostileReference* pHostileReference)
{ {
DEBUG_LOG( "WORLD: Send SMSG_THREAT_REMOVE Message" ); DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "WORLD: Send SMSG_THREAT_REMOVE Message");
WorldPacket data(SMSG_THREAT_REMOVE, 8 + 8); WorldPacket data(SMSG_THREAT_REMOVE, 8 + 8);
data << GetPackGUID(); data << GetPackGUID();
data.appendPackGUID(pHostileReference->getUnitGuid()); data.appendPackGUID(pHostileReference->getUnitGuid());

View file

@ -255,6 +255,9 @@ CleanCharacterDB = 1
# LogFilter_SQLText # LogFilter_SQLText
# LogFilter_AIAndMovegens # LogFilter_AIAndMovegens
# LogFilter_PlayerStats # LogFilter_PlayerStats
# LogFilter_Damage
# LogFilter_Combat
# LogFilter_SpellCast
# Log filters (disabled by default, mostly debug only output affected cases) # Log filters (disabled by default, mostly debug only output affected cases)
# Default: 0 - include in log if log level permit # Default: 0 - include in log if log level permit
# 1 - not include with any log level # 1 - not include with any log level

View file

@ -44,6 +44,9 @@ LogFilterData logFilterData[LOG_FILTER_COUNT] =
{ "player_moves", "LogFilter_PlayerMoves", false }, { "player_moves", "LogFilter_PlayerMoves", false },
{ "periodic_effects", "LogFilter_PeriodicAffects", false }, { "periodic_effects", "LogFilter_PeriodicAffects", false },
{ "ai_and_movegens", "LogFilter_AIAndMovegens", false }, { "ai_and_movegens", "LogFilter_AIAndMovegens", false },
{ "damage", "LogFilter_Damage", false },
{ "combat", "LogFilter_Combat", false },
{ "spell_cast", "LogFilter_SpellCast", false },
}; };
enum LogType enum LogType

View file

@ -46,9 +46,12 @@ enum LogFilters
LOG_FILTER_PLAYER_MOVES = 0x0080, // player moves by grid/cell LOG_FILTER_PLAYER_MOVES = 0x0080, // player moves by grid/cell
LOG_FILTER_PERIODIC_AFFECTS = 0x0100, // DoT/HoT apply trace LOG_FILTER_PERIODIC_AFFECTS = 0x0100, // DoT/HoT apply trace
LOG_FILTER_AI_AND_MOVEGENSS = 0x0200, // DoT/HoT apply trace LOG_FILTER_AI_AND_MOVEGENSS = 0x0200, // DoT/HoT apply trace
LOG_FILTER_DAMAGE = 0x0400, // Direct/Area damage trace
LOG_FILTER_COMBAT = 0x0800, // attack states/roll attack results/etc
LOG_FILTER_SPELL_CAST = 0x1000, // spell cast/aura apply/spell proc events
}; };
#define LOG_FILTER_COUNT 10 #define LOG_FILTER_COUNT 13
struct LogFilterData struct LogFilterData
{ {

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "9924" #define REVISION_NR "9925"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__