mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
[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:
parent
b6d7365ac9
commit
d86dcd60d7
15 changed files with 89 additions and 81 deletions
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue