AuraConvertRune, EffectActivateRune, dunno if it's correct way to do that...

This commit is contained in:
tomrus88 2008-11-30 16:16:00 +03:00
parent afc4d91ed8
commit 0e0d721292
6 changed files with 60 additions and 4 deletions

View file

@ -18884,6 +18884,7 @@ void Player::SetTitle(CharTitlesEntry const* title)
void Player::ConvertRune(uint8 index, uint8 newType) void Player::ConvertRune(uint8 index, uint8 newType)
{ {
SetCurrentRune(index, newType);
// SMSG_CONVERT_RUNE // SMSG_CONVERT_RUNE
} }

View file

@ -652,7 +652,7 @@ enum SpellEffects
SPELL_EFFECT_APPLY_AREA_AURA_OWNER = 143, SPELL_EFFECT_APPLY_AREA_AURA_OWNER = 143,
SPELL_EFFECT_144 = 144, SPELL_EFFECT_144 = 144,
SPELL_EFFECT_145 = 145, SPELL_EFFECT_145 = 145,
SPELL_EFFECT_146 = 146, SPELL_EFFECT_ACTIVATE_RUNE = 146,
SPELL_EFFECT_QUEST_FAIL = 147, SPELL_EFFECT_QUEST_FAIL = 147,
SPELL_EFFECT_148 = 148, SPELL_EFFECT_148 = 148,
SPELL_EFFECT_149 = 149, SPELL_EFFECT_149 = 149,

View file

@ -291,7 +291,7 @@ enum AuraType
SPELL_AURA_246 = 246, SPELL_AURA_246 = 246,
SPELL_AURA_247 = 247, SPELL_AURA_247 = 247,
SPELL_AURA_MOD_COMBAT_RESULT_CHANCE = 248, SPELL_AURA_MOD_COMBAT_RESULT_CHANCE = 248,
SPELL_AURA_249 = 249, SPELL_AURA_CONVERT_RUNE = 249,
SPELL_AURA_MOD_INCREASE_HEALTH_2 = 250, SPELL_AURA_MOD_INCREASE_HEALTH_2 = 250,
SPELL_AURA_MOD_ENEMY_DODGE = 251, SPELL_AURA_MOD_ENEMY_DODGE = 251,
SPELL_AURA_252 = 252, SPELL_AURA_252 = 252,

View file

@ -299,7 +299,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
&Aura::HandleUnused, //246 unused &Aura::HandleUnused, //246 unused
&Aura::HandleUnused, //247 unused &Aura::HandleUnused, //247 unused
&Aura::HandleNoImmediateEffect, //248 SPELL_AURA_MOD_COMBAT_RESULT_CHANCE implemented in Unit::RollMeleeOutcomeAgainst &Aura::HandleNoImmediateEffect, //248 SPELL_AURA_MOD_COMBAT_RESULT_CHANCE implemented in Unit::RollMeleeOutcomeAgainst
&Aura::HandleNULL, //249 &Aura::HandleAuraConvertRune, //249 SPELL_AURA_CONVERT_RUNE
&Aura::HandleAuraModIncreaseHealth, //250 SPELL_AURA_MOD_INCREASE_HEALTH_2 &Aura::HandleAuraModIncreaseHealth, //250 SPELL_AURA_MOD_INCREASE_HEALTH_2
&Aura::HandleNULL, //251 SPELL_AURA_MOD_ENEMY_DODGE &Aura::HandleNULL, //251 SPELL_AURA_MOD_ENEMY_DODGE
&Aura::HandleNULL, //252 &Aura::HandleNULL, //252
@ -6365,3 +6365,38 @@ void Aura::HandleAuraControlVehicle(bool apply, bool Real)
WorldPacket data(SMSG_SHOW_VEHICLE_UI, 0); WorldPacket data(SMSG_SHOW_VEHICLE_UI, 0);
((Player*)m_target)->GetSession()->SendPacket(&data); ((Player*)m_target)->GetSession()->SendPacket(&data);
} }
void Aura::HandleAuraConvertRune(bool apply, bool Real)
{
if(!Real)
return;
if(m_target->GetTypeId() != TYPEID_PLAYER)
return;
Player *plr = (Player*)m_target;
if(plr->getClass() != CLASS_DEATH_KNIGHT)
return;
// how to determine what rune need to be converted?
for(uint32 i = 0; i < MAX_RUNES; ++i)
{
if(apply)
{
if(!plr->GetRuneCooldown(i))
{
plr->ConvertRune(i, GetSpellProto()->EffectMiscValueB[m_effIndex]);
break;
}
}
else
{
if(plr->GetCurrentRune(i) == GetSpellProto()->EffectMiscValueB[m_effIndex])
{
plr->ConvertRune(i, plr->GetBaseRune(i));
break;
}
}
}
}

View file

@ -208,6 +208,7 @@ class MANGOS_DLL_SPEC Aura
void HandlePreventFleeing(bool apply, bool Real); void HandlePreventFleeing(bool apply, bool Real);
void HandleManaShield(bool apply, bool Real); void HandleManaShield(bool apply, bool Real);
void HandleArenaPreparation(bool apply, bool Real); void HandleArenaPreparation(bool apply, bool Real);
void HandleAuraConvertRune(bool apply, bool Real);
virtual ~Aura(); virtual ~Aura();

View file

@ -202,7 +202,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]=
&Spell::EffectApplyAreaAura, //143 SPELL_EFFECT_APPLY_AREA_AURA_OWNER &Spell::EffectApplyAreaAura, //143 SPELL_EFFECT_APPLY_AREA_AURA_OWNER
&Spell::EffectNULL, //144 SPELL_EFFECT_144 Spectral Blast &Spell::EffectNULL, //144 SPELL_EFFECT_144 Spectral Blast
&Spell::EffectNULL, //145 SPELL_EFFECT_145 Black Hole Effect &Spell::EffectNULL, //145 SPELL_EFFECT_145 Black Hole Effect
&Spell::EffectUnused, //146 SPELL_EFFECT_146 unused &Spell::EffectActivateRune, //146 SPELL_EFFECT_ACTIVATE_RUNE
&Spell::EffectQuestFail, //147 SPELL_EFFECT_QUEST_FAIL quest fail &Spell::EffectQuestFail, //147 SPELL_EFFECT_QUEST_FAIL quest fail
&Spell::EffectUnused, //148 SPELL_EFFECT_148 unused &Spell::EffectUnused, //148 SPELL_EFFECT_148 unused
&Spell::EffectNULL, //149 SPELL_EFFECT_149 swoop &Spell::EffectNULL, //149 SPELL_EFFECT_149 swoop
@ -6282,3 +6282,22 @@ void Spell::EffectQuestFail(uint32 i)
((Player*)unitTarget)->FailQuest(m_spellInfo->EffectMiscValue[i]); ((Player*)unitTarget)->FailQuest(m_spellInfo->EffectMiscValue[i]);
} }
void Spell::EffectActivateRune(uint32 i)
{
if(m_caster->GetTypeId() != TYPEID_PLAYER)
return;
Player *plr = (Player*)m_caster;
if(plr->getClass() != CLASS_DEATH_KNIGHT)
return;
for(uint32 j = 0; j < MAX_RUNES; ++j)
{
if(plr->GetRuneCooldown(j) && plr->GetCurrentRune(j) == m_spellInfo->EffectMiscValue[i])
{
plr->SetRuneCooldown(j, 0));
}
}
}