mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
AuraConvertRune, EffectActivateRune, dunno if it's correct way to do that...
This commit is contained in:
parent
afc4d91ed8
commit
0e0d721292
6 changed files with 60 additions and 4 deletions
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue