*Send VICTIMSTATE_INTACT on melee attack miss.
*Rename VICTIMSTATE_NORMAL to VICTIMSTATE_HIT. *Set default memory allocated in Spell::InitExecuteLogData to 32 bytes. --HG-- branch : trunk
This commit is contained in:
@@ -3986,7 +3986,7 @@ bool ChatHandler::HandleDamageCommand(const char * args)
|
|||||||
{
|
{
|
||||||
m_session->GetPlayer()->DealDamage(target, damage, NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_session->GetPlayer()->DealDamage(target, damage, NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||||
if (target != m_session->GetPlayer())
|
if (target != m_session->GetPlayer())
|
||||||
m_session->GetPlayer()->SendAttackStateUpdate (HITINFO_NORMALSWING2, target, 1, SPELL_SCHOOL_MASK_NORMAL, damage, 0, 0, VICTIMSTATE_NORMAL, 0);
|
m_session->GetPlayer()->SendAttackStateUpdate (HITINFO_NORMALSWING2, target, 1, SPELL_SCHOOL_MASK_NORMAL, damage, 0, 0, VICTIMSTATE_HIT, 0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4016,7 +4016,7 @@ bool ChatHandler::HandleDamageCommand(const char * args)
|
|||||||
|
|
||||||
m_session->GetPlayer()->DealDamageMods(target,damage,&absorb);
|
m_session->GetPlayer()->DealDamageMods(target,damage,&absorb);
|
||||||
m_session->GetPlayer()->DealDamage(target, damage, NULL, DIRECT_DAMAGE, schoolmask, NULL, false);
|
m_session->GetPlayer()->DealDamage(target, damage, NULL, DIRECT_DAMAGE, schoolmask, NULL, false);
|
||||||
m_session->GetPlayer()->SendAttackStateUpdate (HITINFO_NORMALSWING2, target, 1, schoolmask, damage, absorb, resist, VICTIMSTATE_NORMAL, 0);
|
m_session->GetPlayer()->SendAttackStateUpdate (HITINFO_NORMALSWING2, target, 1, schoolmask, damage, absorb, resist, VICTIMSTATE_HIT, 0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1279,7 +1279,7 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
|
|||||||
case MELEE_HIT_MISS:
|
case MELEE_HIT_MISS:
|
||||||
{
|
{
|
||||||
damageInfo->HitInfo |= HITINFO_MISS;
|
damageInfo->HitInfo |= HITINFO_MISS;
|
||||||
damageInfo->TargetState = VICTIMSTATE_NORMAL;
|
damageInfo->TargetState = VICTIMSTATE_INTACT;
|
||||||
|
|
||||||
damageInfo->procEx |= PROC_EX_MISS;
|
damageInfo->procEx |= PROC_EX_MISS;
|
||||||
damageInfo->damage = 0;
|
damageInfo->damage = 0;
|
||||||
@@ -1287,13 +1287,13 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MELEE_HIT_NORMAL:
|
case MELEE_HIT_NORMAL:
|
||||||
damageInfo->TargetState = VICTIMSTATE_NORMAL;
|
damageInfo->TargetState = VICTIMSTATE_HIT;
|
||||||
damageInfo->procEx|=PROC_EX_NORMAL_HIT;
|
damageInfo->procEx|=PROC_EX_NORMAL_HIT;
|
||||||
break;
|
break;
|
||||||
case MELEE_HIT_CRIT:
|
case MELEE_HIT_CRIT:
|
||||||
{
|
{
|
||||||
damageInfo->HitInfo |= HITINFO_CRITICALHIT;
|
damageInfo->HitInfo |= HITINFO_CRITICALHIT;
|
||||||
damageInfo->TargetState = VICTIMSTATE_NORMAL;
|
damageInfo->TargetState = VICTIMSTATE_HIT;
|
||||||
|
|
||||||
damageInfo->procEx |= PROC_EX_CRITICAL_HIT;
|
damageInfo->procEx |= PROC_EX_CRITICAL_HIT;
|
||||||
// Crit bonus calc
|
// Crit bonus calc
|
||||||
@@ -1346,7 +1346,7 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
|
|||||||
break;
|
break;
|
||||||
case MELEE_HIT_BLOCK:
|
case MELEE_HIT_BLOCK:
|
||||||
{
|
{
|
||||||
damageInfo->TargetState = VICTIMSTATE_NORMAL;
|
damageInfo->TargetState = VICTIMSTATE_HIT;
|
||||||
damageInfo->HitInfo |= HITINFO_BLOCK;
|
damageInfo->HitInfo |= HITINFO_BLOCK;
|
||||||
damageInfo->procEx |= PROC_EX_BLOCK;
|
damageInfo->procEx |= PROC_EX_BLOCK;
|
||||||
damageInfo->blocked_amount = damageInfo->target->GetShieldBlockValue();
|
damageInfo->blocked_amount = damageInfo->target->GetShieldBlockValue();
|
||||||
@@ -1368,7 +1368,7 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
|
|||||||
case MELEE_HIT_GLANCING:
|
case MELEE_HIT_GLANCING:
|
||||||
{
|
{
|
||||||
damageInfo->HitInfo |= HITINFO_GLANCING;
|
damageInfo->HitInfo |= HITINFO_GLANCING;
|
||||||
damageInfo->TargetState = VICTIMSTATE_NORMAL;
|
damageInfo->TargetState = VICTIMSTATE_HIT;
|
||||||
damageInfo->procEx |= PROC_EX_NORMAL_HIT;
|
damageInfo->procEx |= PROC_EX_NORMAL_HIT;
|
||||||
int32 leveldif = int32(pVictim->getLevel()) - int32(getLevel());
|
int32 leveldif = int32(pVictim->getLevel()) - int32(getLevel());
|
||||||
if (leveldif > 3) leveldif = 3;
|
if (leveldif > 3) leveldif = 3;
|
||||||
@@ -1380,7 +1380,7 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
|
|||||||
case MELEE_HIT_CRUSHING:
|
case MELEE_HIT_CRUSHING:
|
||||||
{
|
{
|
||||||
damageInfo->HitInfo |= HITINFO_CRUSHING;
|
damageInfo->HitInfo |= HITINFO_CRUSHING;
|
||||||
damageInfo->TargetState = VICTIMSTATE_NORMAL;
|
damageInfo->TargetState = VICTIMSTATE_HIT;
|
||||||
damageInfo->procEx |= PROC_EX_NORMAL_HIT;
|
damageInfo->procEx |= PROC_EX_NORMAL_HIT;
|
||||||
// 150% normal damage
|
// 150% normal damage
|
||||||
damageInfo->damage += (damageInfo->damage / 2);
|
damageInfo->damage += (damageInfo->damage / 2);
|
||||||
|
|||||||
@@ -266,12 +266,12 @@ enum Swing
|
|||||||
|
|
||||||
enum VictimState
|
enum VictimState
|
||||||
{
|
{
|
||||||
VICTIMSTATE_UNKNOWN1 = 0,
|
VICTIMSTATE_INTACT = 0, // set when attacker misses
|
||||||
VICTIMSTATE_NORMAL = 1,
|
VICTIMSTATE_HIT = 1, // victim got clear/blocked hit
|
||||||
VICTIMSTATE_DODGE = 2,
|
VICTIMSTATE_DODGE = 2,
|
||||||
VICTIMSTATE_PARRY = 3,
|
VICTIMSTATE_PARRY = 3,
|
||||||
VICTIMSTATE_INTERRUPT = 4,
|
VICTIMSTATE_INTERRUPT = 4,
|
||||||
VICTIMSTATE_BLOCKS = 5,
|
VICTIMSTATE_BLOCKS = 5, // unused? not set when blocked, even on full block
|
||||||
VICTIMSTATE_EVADES = 6,
|
VICTIMSTATE_EVADES = 6,
|
||||||
VICTIMSTATE_IS_IMMUNE = 7,
|
VICTIMSTATE_IS_IMMUNE = 7,
|
||||||
VICTIMSTATE_DEFLECTS = 8
|
VICTIMSTATE_DEFLECTS = 8
|
||||||
|
|||||||
@@ -7269,7 +7269,7 @@ void Spell::InitEffectExecuteData(uint8 effIndex)
|
|||||||
ASSERT(effIndex < MAX_SPELL_EFFECTS);
|
ASSERT(effIndex < MAX_SPELL_EFFECTS);
|
||||||
if (!m_effectExecuteData[effIndex])
|
if (!m_effectExecuteData[effIndex])
|
||||||
{
|
{
|
||||||
m_effectExecuteData[effIndex] = new ByteBuffer();
|
m_effectExecuteData[effIndex] = new ByteBuffer(0x20);
|
||||||
// first dword - target counter
|
// first dword - target counter
|
||||||
*m_effectExecuteData[effIndex] << uint32(1);
|
*m_effectExecuteData[effIndex] << uint32(1);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user