diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp index f161e07..a30e7d6 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp @@ -1907,7 +1907,7 @@ void BattlegroundAV::ResetBGSubclass() m_Team_Scores[i] = scoreFinal; m_IsInformedNearVictory[i]=false; m_CaptainAlive[i] = true; - m_CaptainBuffTimer[i] = 120000 + urand(0, 4)* 60; //as far as i could see, the buff is randomly so i make 2minutes (thats the duration of the buff itself) + 0-4minutes @todo get the right times + m_CaptainBuffTimer[i] = 120000 + urand(0, 4)* 60000; // corrige : le facteur etait *60 (secondes) au lieu de *60000 (ms) -> buff capitaine quasi immediat au lieu de 2-6 min (ArgusCore a4f5083d) //as far as i could see, the buff is randomly so i make 2minutes (thats the duration of the buff itself) + 0-4minutes @todo get the right times m_Mine_Owner[i] = AV_NEUTRAL_TEAM; m_Mine_PrevOwner[i] = m_Mine_Owner[i]; } diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index ab9fd2f..227918b 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -1833,7 +1833,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_HEROIC_LEAP_JUMP)) + if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_HEROIC_LEAP_JUMP) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_HEROIC_LEAP_DAMAGE)) return false; return true; } @@ -1878,6 +1878,13 @@ public: if (WorldLocation* dest = GetHitDest()) { GetCaster()->CastSpell(dest->GetPositionX(), dest->GetPositionY(), dest->GetPositionZ(), SPELL_WARRIOR_HEROIC_LEAP_JUMP, true); + + // Degats de zone a l atterrissage (52174). En theorie data-driven via le + // TriggerSpell de l effet JUMP_DEST (JumpArrivalCastArgs), mais ce champ n est + // pas peuplé dans ce client : sans cast explicite, le bond ne fait AUCUN degat. + // Compromis assume : part au lancement plutot qu a l instant exact de l impact. + // (ArgusCore 32dfd577) + GetCaster()->CastSpell(dest->GetPositionX(), dest->GetPositionY(), dest->GetPositionZ(), SPELL_WARRIOR_HEROIC_LEAP_DAMAGE, true); } if (Unit* caster = GetCaster())