diff options
Diffstat (limited to 'src/server')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 50 | ||||
| -rwxr-xr-x | src/server/game/Entities/Player/Player.h | 3 | ||||
| -rwxr-xr-x | src/server/game/Spells/Auras/SpellAuras.cpp | 1 | ||||
| -rwxr-xr-x | src/server/game/Spells/Auras/SpellAuras.h | 2 | ||||
| -rwxr-xr-x | src/server/game/Spells/SpellEffects.cpp | 38 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_druid.cpp | 2 | 
6 files changed, 21 insertions, 75 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 890ceb72c3e..e8d89110f82 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -3895,12 +3895,6 @@ bool Player::addSpell(uint32 spellId, bool active, bool learning, bool dependent              if (!pSkill)                  continue; -            if (!Has310Flyer(false) && pSkill->id == SKILL_MOUNTS) -                for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) -                    if (spellInfo->Effects[i].ApplyAuraName == SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED && -                        spellInfo->Effects[i].CalcValue() == 310) -                        SetHas310Flyer(true); -              if (HasSkill(pSkill->id))                  continue; @@ -4165,16 +4159,6 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool learn_low_rank)                  SetSkill(pSkill->id, GetSkillStep(pSkill->id), 0, 0);              } - -            // most likely will never be used, haven't heard of cases where players unlearn a mount -            if (Has310Flyer(false) && _spell_idx->second->skillId == SKILL_MOUNTS) -            { -                if (spellInfo) -                    for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) -                        if (spellInfo->Effects[i].ApplyAuraName == SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED && -                            spellInfo->Effects[i].CalcValue() == 310) -                            Has310Flyer(true, spell_id);    // with true as first argument its also used to set/remove the flag -            }          }      } @@ -4255,40 +4239,6 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool learn_low_rank)      }  } -bool Player::Has310Flyer(bool checkAllSpells, uint32 excludeSpellId) -{ -    if (!checkAllSpells) -        return m_ExtraFlags & PLAYER_EXTRA_HAS_310_FLYER; -    else -    { -        SetHas310Flyer(false); -        SpellInfo const* spellInfo; -        for (PlayerSpellMap::iterator itr = m_spells.begin(); itr != m_spells.end(); ++itr) -        { -            if (itr->first == excludeSpellId) -                continue; - -            SkillLineAbilityMapBounds bounds = sSpellMgr->GetSkillLineAbilityMapBounds(itr->first); -            for (SkillLineAbilityMap::const_iterator _spell_idx = bounds.first; _spell_idx != bounds.second; ++_spell_idx) -            { -                if (_spell_idx->second->skillId != SKILL_MOUNTS) -                    break;  // We can break because mount spells belong only to one skillline (at least 310 flyers do) - -                spellInfo = sSpellMgr->GetSpellInfo(itr->first); -                for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) -                    if (spellInfo->Effects[i].ApplyAuraName == SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED && -                        spellInfo->Effects[i].CalcValue() == 310) -                    { -                        SetHas310Flyer(true); -                        return true; -                    } -            } -        } -    } - -    return false; -} -  void Player::RemoveSpellCooldown(uint32 spell_id, bool update /* = false */)  {      m_spellCooldowns.erase(spell_id); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index dc6fd7eab26..24a1c35b8e2 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -500,7 +500,6 @@ enum PlayerExtraFlags      PLAYER_EXTRA_TAXICHEAT          = 0x0008,      PLAYER_EXTRA_GM_INVISIBLE       = 0x0010,      PLAYER_EXTRA_GM_CHAT            = 0x0020,               // Show GM badge in chat messages -    PLAYER_EXTRA_HAS_310_FLYER      = 0x0040,               // Marks if player already has 310% speed flying mount      // other states      PLAYER_EXTRA_PVP_DEATH          = 0x0100                // store PvP death status until corpse creating. @@ -1197,8 +1196,6 @@ class Player : public Unit, public GridObject<Player>          void SetTaxiCheater(bool on) { if (on) m_ExtraFlags |= PLAYER_EXTRA_TAXICHEAT; else m_ExtraFlags &= ~PLAYER_EXTRA_TAXICHEAT; }          bool isGMVisible() const { return !(m_ExtraFlags & PLAYER_EXTRA_GM_INVISIBLE); }          void SetGMVisible(bool on); -        bool Has310Flyer(bool checkAllSpells, uint32 excludeSpellId = 0); -        void SetHas310Flyer(bool on) { if (on) m_ExtraFlags |= PLAYER_EXTRA_HAS_310_FLYER; else m_ExtraFlags &= ~PLAYER_EXTRA_HAS_310_FLYER; }          void SetPvPDeath(bool on) { if (on) m_ExtraFlags |= PLAYER_EXTRA_PVP_DEATH; else m_ExtraFlags &= ~PLAYER_EXTRA_PVP_DEATH; }          void GiveXP(uint32 xp, Unit* victim, float group_rate=1.0f); diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index ea25c0b76b5..58c8ce5c558 100755 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -2479,4 +2479,3 @@ void DynObjAura::FillTargetMap(std::map<Unit*, uint8> & targets, Unit* /*caster*          }      }  } - diff --git a/src/server/game/Spells/Auras/SpellAuras.h b/src/server/game/Spells/Auras/SpellAuras.h index 2f50d47a79b..36398bafa97 100755 --- a/src/server/game/Spells/Auras/SpellAuras.h +++ b/src/server/game/Spells/Auras/SpellAuras.h @@ -166,7 +166,7 @@ class Aura          void SetLoadedState(int32 maxduration, int32 duration, int32 charges, uint8 stackamount, uint8 recalculateMask, int32 * amount);          // helpers for aura effects -        bool HasEffect(uint8 effIndex) const { return bool(GetEffect(effIndex)); } +        bool HasEffect(uint8 effIndex) const { return GetEffect(effIndex) != NULL; }          bool HasEffectType(AuraType type) const;          AuraEffect* GetEffect(uint8 effIndex) const { ASSERT (effIndex < MAX_SPELL_EFFECTS); return m_effects[effIndex]; }          uint8 GetEffectMask() const { uint8 effMask = 0; for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) if (m_effects[i]) effMask |= 1<<i; return effMask; } diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 8c95bc054d9..ca3c4197fc3 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -4392,27 +4392,30 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)                      switch (unitTarget->ToPlayer()->GetBaseSkillValue(SKILL_RIDING))                      { -                    case 75: unitTarget->CastSpell(unitTarget, 75619, true); break; -                    case 150: unitTarget->CastSpell(unitTarget, 75620, true); break; -                    case 225: +                        case 75: unitTarget->CastSpell(unitTarget, 75619, true); break; +                        case 150: unitTarget->CastSpell(unitTarget, 75620, true); break; +                        case 225:                          {                              if (canFly)                                  unitTarget->CastSpell(unitTarget, 75617, true);                              else                                  unitTarget->CastSpell(unitTarget, 75620, true); -                        }break; -                    case 300: +                        } +                        break; +                        case 300:                          {                              if (canFly) -                            { -                                if (unitTarget->ToPlayer()->Has310Flyer(false)) -                                    unitTarget->CastSpell(unitTarget, 76153, true); -                                else -                                    unitTarget->CastSpell(unitTarget, 75618, true); -                            } +                                unitTarget->CastSpell(unitTarget, 75618, true);                              else                                  unitTarget->CastSpell(unitTarget, 75620, true); -                        }break; +                        } +                        break; +                        case 375: +                            if (canFly) +                                unitTarget->CastSpell(unitTarget, 76153, true); +                            else +                                unitTarget->CastSpell(unitTarget, 75620, true); +                            break;                      }                      return;                  } @@ -4427,13 +4430,10 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)                      // Triggered spell id dependent on riding skill                      if (uint16 skillval = unitTarget->ToPlayer()->GetSkillValue(SKILL_RIDING))                      { -                        if (skillval >= 300) -                        { -                            if (unitTarget->ToPlayer()->Has310Flyer(false)) -                                unitTarget->CastSpell(unitTarget, 76154, true); -                            else -                                unitTarget->CastSpell(unitTarget, 75972, true); -                        } +                        if (skillval >= 375) +                            unitTarget->CastSpell(unitTarget, 76154, true); +                        else if (skillval >= 300) +                            unitTarget->CastSpell(unitTarget, 75972, true);                          else                              unitTarget->CastSpell(unitTarget, 75957, true);                      } diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp index 898350dbd71..286bec6abab 100644 --- a/src/server/scripts/Spells/spell_druid.cpp +++ b/src/server/scripts/Spells/spell_druid.cpp @@ -312,7 +312,7 @@ class spell_dru_swift_flight_passive : public SpellScriptLoader              void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/)              {                  if (Player* caster = GetCaster()->ToPlayer()) -                    if (caster->Has310Flyer(false)) +                    if (caster->GetSkillValue(SKILL_RIDING) >= 375)                          amount = 310;              }  | 
