Fixed crash

This commit is contained in:
tomrus88 2008-12-02 15:20:10 +03:00
parent b37ccbd08b
commit 84f43e60ab
3 changed files with 13 additions and 24 deletions

View file

@ -1839,6 +1839,7 @@ void Player::RegenerateAll()
if (!isInCombat() && !HasAuraType(SPELL_AURA_INTERRUPT_REGEN)) if (!isInCombat() && !HasAuraType(SPELL_AURA_INTERRUPT_REGEN))
{ {
Regenerate(POWER_RAGE); Regenerate(POWER_RAGE);
if(getClass() == CLASS_DEATH_KNIGHT)
Regenerate(POWER_RUNIC_POWER); Regenerate(POWER_RUNIC_POWER);
} }
} }
@ -1847,6 +1848,7 @@ void Player::RegenerateAll()
Regenerate( POWER_MANA ); Regenerate( POWER_MANA );
if(getClass() == CLASS_DEATH_KNIGHT)
Regenerate( POWER_RUNE ); Regenerate( POWER_RUNE );
m_regenTimer = regenDelay; m_regenTimer = regenDelay;

View file

@ -219,7 +219,7 @@ void SpellCastTargets::write ( WorldPacket * data )
{ {
*data << uint32(m_targetMask); *data << uint32(m_targetMask);
if( m_targetMask & ( TARGET_FLAG_UNIT | TARGET_FLAG_PVP_CORPSE | TARGET_FLAG_OBJECT | TARGET_FLAG_CORPSE | TARGET_FLAG_UNK2 ) ) if( m_targetMask & ( TARGET_FLAG_UNIT | TARGET_FLAG_PVP_CORPSE | TARGET_FLAG_OBJECT | TARGET_FLAG_OBJECT_UNK | TARGET_FLAG_CORPSE | TARGET_FLAG_UNK2 ) )
{ {
if(m_targetMask & TARGET_FLAG_UNIT) if(m_targetMask & TARGET_FLAG_UNIT)
{ {
@ -2633,13 +2633,6 @@ void Spell::SendCastResult(uint8 result)
} }
((Player*)m_caster)->GetSession()->SendPacket(&data); ((Player*)m_caster)->GetSession()->SendPacket(&data);
} }
/*else
{
WorldPacket data(SMSG_CLEAR_EXTRA_AURA_INFO_OBSOLETE, (8+4));
data.append(m_caster->GetPackGUID());
data << uint32(m_spellInfo->Id);
((Player*)m_caster)->GetSession()->SendPacket(&data);
}*/
} }
void Spell::SendSpellStart() void Spell::SendSpellStart()
@ -2653,14 +2646,10 @@ void Spell::SendSpellStart()
if(IsRangedSpell()) if(IsRangedSpell())
castFlags |= CAST_FLAG_AMMO; castFlags |= CAST_FLAG_AMMO;
if(m_runesState) if(m_spellInfo->runeCostID)
castFlags |= CAST_FLAG_UNKNOWN10; castFlags |= CAST_FLAG_UNKNOWN10;
Unit *target; Unit *target = m_targets.getUnitTarget() ? m_targets.getUnitTarget() : m_caster;
if(!m_targets.getUnitTarget())
target = m_caster;
else
target = m_targets.getUnitTarget();
WorldPacket data(SMSG_SPELL_START, (8+8+4+4+2)); WorldPacket data(SMSG_SPELL_START, (8+8+4+4+2));
if(m_CastItem) if(m_CastItem)
@ -2701,6 +2690,7 @@ void Spell::SendSpellStart()
if ( castFlags & CAST_FLAG_AMMO ) if ( castFlags & CAST_FLAG_AMMO )
WriteAmmoToPacket(&data); WriteAmmoToPacket(&data);
data.hexlike();
m_caster->SendMessageToSet(&data, true); m_caster->SendMessageToSet(&data, true);
} }
@ -2712,17 +2702,13 @@ void Spell::SendSpellGo()
sLog.outDebug("Sending SMSG_SPELL_GO id=%u", m_spellInfo->Id); sLog.outDebug("Sending SMSG_SPELL_GO id=%u", m_spellInfo->Id);
Unit * target; Unit *target = m_targets.getUnitTarget() ? m_targets.getUnitTarget() : m_caster;
if(!m_targets.getUnitTarget())
target = m_caster;
else
target = m_targets.getUnitTarget();
uint32 castFlags = CAST_FLAG_UNKNOWN3; uint32 castFlags = CAST_FLAG_UNKNOWN3;
if(IsRangedSpell()) if(IsRangedSpell())
castFlags |= CAST_FLAG_AMMO; // arrows/bullets visual castFlags |= CAST_FLAG_AMMO; // arrows/bullets visual
if(m_runesState) if(m_spellInfo->runeCostID)
{ {
castFlags |= CAST_FLAG_UNKNOWN10; // same as in SMSG_SPELL_START castFlags |= CAST_FLAG_UNKNOWN10; // same as in SMSG_SPELL_START
castFlags |= CAST_FLAG_UNKNOWN6; // makes cooldowns visible castFlags |= CAST_FLAG_UNKNOWN6; // makes cooldowns visible
@ -2787,6 +2773,7 @@ void Spell::SendSpellGo()
data << uint8(0); data << uint8(0);
} }
data.hexlike();
m_caster->SendMessageToSet(&data, true); m_caster->SendMessageToSet(&data, true);
} }

View file

@ -50,7 +50,7 @@ class RASocket: public TcpSocket
bool bLog; bool bLog;
bool bSecure; //kick on wrong pass, non exist. user, user with no priv bool bSecure; //kick on wrong pass, non exist. user, user with no priv
//will protect from DOS, bruteforce attacks //will protect from DOS, bruteforce attacks
//some 'smart' protection must be added for more scurity //some 'smart' protection must be added for more security
uint8 iMinLevel; uint8 iMinLevel;
enum enum
{ {