diff --git a/sql/updates/world/4.3.4/custom_2018_01_20_02_world.sql b/sql/updates/world/4.3.4/custom_2018_01_20_02_world.sql new file mode 100644 index 0000000000..3e161ff783 --- /dev/null +++ b/sql/updates/world/4.3.4/custom_2018_01_20_02_world.sql @@ -0,0 +1 @@ +DELETE FROM `spell_learn_spell` WHERE `entry`= 87840 AND `SpellID`= 33388; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 1cb9f50617..8cec0eeb5f 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2941,6 +2941,10 @@ void Player::GiveLevel(uint8 level) SetByteFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTES_OFFSET_RAF_GRANTABLE_LEVEL, 0x01); } + // Leaning Running Wild + if (getRace() == RACE_WORGEN && level == 20) + CastSpell(this, SPELL_RUNNING_WILD_LEARN, true); + sScriptMgr->OnPlayerLevelChanged(this, oldLevel); } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index fe78ebded5..cb0d0e43a8 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -686,6 +686,20 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam damage = 0; } + if (victim->getRace() == RACE_WORGEN && victim->ToPlayer()) + { + if (Player* worgenVictm = victim->ToPlayer()) + if (worgenVictm->HasSpell(SPELL_TWO_FORMS_RACIAL) && !worgenVictm->HasAura(SPELL_ALTERED_FORM_RACIAL)) + worgenVictm->CastSpell(worgenVictm, SPELL_ALTERED_FORM_RACIAL, true); + } + + if (getRace() == RACE_WORGEN && ToPlayer()) + { + if (Player* worgenPlayer = ToPlayer()) + if (worgenPlayer->HasSpell(SPELL_TWO_FORMS_RACIAL) && !HasAura(SPELL_ALTERED_FORM_RACIAL)) + CastSpell(worgenPlayer, SPELL_ALTERED_FORM_RACIAL, true); + } + if (victim->IsAIEnabled) victim->GetAI()->DamageTaken(this, damage); diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index e788ae2779..c6aacc5410 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -317,6 +317,13 @@ enum SpellVisualKit SPELL_VISUAL_KIT_DRINK = 438 }; +enum WorgenRacialSpells +{ + SPELL_RUNNING_WILD_LEARN = 94098, + SPELL_TWO_FORMS_RACIAL = 68996, + SPELL_ALTERED_FORM_RACIAL = 97709 +}; + const uint32 ItemQualityColors[MAX_ITEM_QUALITY] = { 0xff9d9d9d, //GREY