diff options
| -rwxr-xr-x | src/server/game/Entities/Item/Item.cpp | 40 | ||||
| -rwxr-xr-x | src/server/game/Entities/Item/Item.h | 1 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 116 | ||||
| -rwxr-xr-x | src/server/game/Entities/Player/Player.h | 8 | ||||
| -rwxr-xr-x | src/server/game/Entities/Unit/StatSystem.cpp | 25 | ||||
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 91 | ||||
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.h | 4 | ||||
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 5 | ||||
| -rwxr-xr-x | src/server/game/World/World.h | 3 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_paladin.cpp | 8 | ||||
| -rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 15 | 
13 files changed, 29 insertions, 300 deletions
| diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index faa91c2672a..08489bcacba 100755 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -547,46 +547,6 @@ uint32 Item::GetSkill()      }  } -uint32 Item::GetSpell() -{ -    ItemTemplate const* proto = GetTemplate(); - -    switch (proto->Class) -    { -        case ITEM_CLASS_WEAPON: -            switch (proto->SubClass) -            { -                case ITEM_SUBCLASS_WEAPON_AXE:     return  196; -                case ITEM_SUBCLASS_WEAPON_AXE2:    return  197; -                case ITEM_SUBCLASS_WEAPON_BOW:     return  264; -                case ITEM_SUBCLASS_WEAPON_GUN:     return  266; -                case ITEM_SUBCLASS_WEAPON_MACE:    return  198; -                case ITEM_SUBCLASS_WEAPON_MACE2:   return  199; -                case ITEM_SUBCLASS_WEAPON_POLEARM: return  200; -                case ITEM_SUBCLASS_WEAPON_SWORD:   return  201; -                case ITEM_SUBCLASS_WEAPON_SWORD2:  return  202; -                case ITEM_SUBCLASS_WEAPON_STAFF:   return  227; -                case ITEM_SUBCLASS_WEAPON_DAGGER:  return 1180; -                case ITEM_SUBCLASS_WEAPON_THROWN:  return 2567; -                case ITEM_SUBCLASS_WEAPON_SPEAR:   return 3386; -                case ITEM_SUBCLASS_WEAPON_CROSSBOW:return 5011; -                case ITEM_SUBCLASS_WEAPON_WAND:    return 5009; -                default: return 0; -            } -        case ITEM_CLASS_ARMOR: -            switch (proto->SubClass) -            { -                case ITEM_SUBCLASS_ARMOR_CLOTH:    return 9078; -                case ITEM_SUBCLASS_ARMOR_LEATHER:  return 9077; -                case ITEM_SUBCLASS_ARMOR_MAIL:     return 8737; -                case ITEM_SUBCLASS_ARMOR_PLATE:    return  750; -                case ITEM_SUBCLASS_ARMOR_SHIELD:   return 9116; -                default: return 0; -            } -    } -    return 0; -} -  int32 Item::GenerateItemRandomPropertyId(uint32 item_id)  {      ItemTemplate const* itemProto = sObjectMgr->GetItemTemplate(item_id); diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index b5ee171e6b1..3927676af47 100755 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -279,7 +279,6 @@ class Item : public Object          bool IsEquipped() const;          uint32 GetSkill(); -        uint32 GetSpell();          // RandomPropertyId (signed but stored as unsigned)          int32 GetItemRandomPropertyId() const { return GetInt32Value(ITEM_FIELD_RANDOM_PROPERTIES_ID); } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 302791f4888..a27a1b4c64a 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5699,17 +5699,6 @@ void Player::LeaveLFGChannel()      }  } -void Player::UpdateDefense() -{ -    uint32 defense_skill_gain = sWorld->getIntConfig(CONFIG_SKILL_GAIN_DEFENSE); - -    if (UpdateSkill(SKILL_DEFENSE, defense_skill_gain)) -    { -        // update dependent from defense skill part -        UpdateDefenseBonusesMod(); -    } -} -  void Player::HandleBaseModValue(BaseModGroup modGroup, BaseModType modType, float amount, bool apply)  {      if (modGroup >= BASEMOD_END || modType >= MOD_END) @@ -5961,9 +5950,8 @@ void Player::UpdateRating(CombatRating cr)      switch (cr)      { -        case CR_WEAPON_SKILL:                               // Implemented in Unit::RollMeleeOutcomeAgainst +        case CR_WEAPON_SKILL:          case CR_DEFENSE_SKILL: -            UpdateDefenseBonusesMod();              break;          case CR_DODGE:              UpdateDodgePercentage(); @@ -6239,70 +6227,6 @@ bool Player::UpdateSkillPro(uint16 SkillId, int32 Chance, uint32 step)      return false;  } -void Player::UpdateWeaponSkill(WeaponAttackType attType) -{ -    // no skill gain in pvp -    Unit* victim = getVictim(); -    if (victim && victim->GetTypeId() == TYPEID_PLAYER) -        return; - -    if (IsInFeralForm()) -        return;                                             // always maximized SKILL_FERAL_COMBAT in fact - -    if (GetShapeshiftForm() == FORM_TREE) -        return;                                             // use weapon but not skill up - -    if (victim && victim->GetTypeId() == TYPEID_UNIT && (victim->ToCreature()->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_NO_SKILLGAIN)) -        return; - -    uint32 weapon_skill_gain = sWorld->getIntConfig(CONFIG_SKILL_GAIN_WEAPON); - -    Item* tmpitem = GetWeaponForAttack(attType, true); -    if (!tmpitem && attType == BASE_ATTACK) -        UpdateSkill(SKILL_UNARMED, weapon_skill_gain); -    else if (tmpitem && tmpitem->GetTemplate()->SubClass != ITEM_SUBCLASS_WEAPON_FISHING_POLE) -        UpdateSkill(tmpitem->GetSkill(), weapon_skill_gain); - -    UpdateAllCritPercentages(); -} - -void Player::UpdateCombatSkills(Unit* victim, WeaponAttackType attType, bool defence) -{ -    uint8 plevel = getLevel();                              // if defense than victim == attacker -    uint8 greylevel = Trinity::XP::GetGrayLevel(plevel); -    uint8 moblevel = victim->getLevelForTarget(this); -    if (moblevel < greylevel) -        return; - -    if (moblevel > plevel + 5) -        moblevel = plevel + 5; - -    uint8 lvldif = moblevel - greylevel; -    if (lvldif < 3) -        lvldif = 3; - -    uint32 skilldif = 5 * plevel - (defence ? GetBaseDefenseSkillValue() : GetBaseWeaponSkillValue(attType)); -    if (skilldif <= 0) -        return; - -    float chance = float(3 * lvldif * skilldif) / plevel; -    if (!defence) -        if (getClass() == CLASS_WARRIOR || getClass() == CLASS_ROGUE) -            chance += chance * 0.02f * GetStat(STAT_INTELLECT); - -    chance = chance < 1.0f ? 1.0f : chance;                 //minimum chance to increase skill is 1% - -    if (roll_chance_f(chance)) -    { -        if (defence) -            UpdateDefense(); -        else -            UpdateWeaponSkill(attType); -    } -    else -        return; -} -  void Player::ModifySkillBonus(uint32 skillid, int32 val, bool talent)  {      SkillStatusMap::const_iterator itr = mSkillStatus.find(skillid); @@ -6319,11 +6243,8 @@ void Player::ModifySkillBonus(uint32 skillid, int32 val, bool talent)  void Player::UpdateSkillsForLevel()  { -    uint16 maxconfskill = sWorld->GetConfigMaxSkillValue();      uint32 maxSkill = GetMaxSkillValueForLevel(); -    bool alwaysMaxSkill = sWorld->getBoolConfig(CONFIG_ALWAYS_MAX_SKILL_FOR_LEVEL); -      for (SkillStatusMap::iterator itr = mSkillStatus.begin(); itr != mSkillStatus.end(); ++itr)      {          if (itr->second.uState == SKILL_DELETED) @@ -6346,22 +6267,10 @@ void Player::UpdateSkillsForLevel()          /// update only level dependent max skill values          if (max != 1)          { -            /// maximize skill always -            if (alwaysMaxSkill) -            { -                SetUInt16Value(PLAYER_SKILL_RANK_0 + field, offset, maxSkill); -                SetUInt16Value(PLAYER_SKILL_MAX_RANK_0 + field, offset, maxSkill); -                if (itr->second.uState != SKILL_NEW) -                    itr->second.uState = SKILL_CHANGED; -            } - -            else if (max != maxconfskill)                    /// update max skill value if current max skill not maximized -            { -                SetUInt16Value(PLAYER_SKILL_RANK_0 + field, offset, val); -                SetUInt16Value(PLAYER_SKILL_MAX_RANK_0 + field, offset, maxSkill); -                if (itr->second.uState != SKILL_NEW) -                    itr->second.uState = SKILL_CHANGED; -            } +            SetUInt16Value(PLAYER_SKILL_RANK_0 + field, offset, maxSkill); +            SetUInt16Value(PLAYER_SKILL_MAX_RANK_0 + field, offset, maxSkill); +            if (itr->second.uState != SKILL_NEW) +                itr->second.uState = SKILL_CHANGED;          }      }  } @@ -6389,8 +6298,6 @@ void Player::UpdateSkillsToMaxSkillsForLevel()              if (itr->second.uState != SKILL_NEW)                  itr->second.uState = SKILL_CHANGED;          } -        if (pskill == SKILL_DEFENSE) -            UpdateDefenseBonusesMod();      }  } @@ -23388,19 +23295,6 @@ bool Player::IsAtRecruitAFriendDistance(WorldObject const* pOther) const      return pOther->GetDistance(player) <= sWorld->getFloatConfig(CONFIG_MAX_RECRUIT_A_FRIEND_DISTANCE);  } -uint32 Player::GetBaseWeaponSkillValue (WeaponAttackType attType) const -{ -    Item* item = GetWeaponForAttack(attType, true); - -    // unarmed only with base attack -    if (attType != BASE_ATTACK && !item) -        return 0; - -    // weapon skill or (unarmed for base attack and for fist weapons) -    uint32  skill = (item && item->GetSkill() != SKILL_FIST_WEAPONS) ? item->GetSkill() : uint32(SKILL_UNARMED); -    return GetBaseSkillValue(skill); -} -  void Player::ResurectUsingRequestData()  {      /// Teleport before resurrecting by player, otherwise the player might get attacked from creatures near his corpse diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 89c82736335..ad17ee7844b 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2054,9 +2054,6 @@ class Player : public Unit, public GridObject<Player>          bool UpdateGatherSkill(uint32 SkillId, uint32 SkillValue, uint32 RedLevel, uint32 Multiplicator = 1);          bool UpdateFishingSkill(); -        uint32 GetBaseDefenseSkillValue() const { return GetBaseSkillValue(SKILL_DEFENSE); } -        uint32 GetBaseWeaponSkillValue(WeaponAttackType attType) const; -          uint32 GetSpellByProto(ItemTemplate* proto);          float GetHealthBonusFromStamina(); @@ -2078,7 +2075,6 @@ class Player : public Unit, public GridObject<Player>          void CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bool addTotalPct, float& min_damage, float& max_damage); -        void UpdateDefenseBonusesMod();          inline void RecalculateRating(CombatRating cr) { ApplyRatingMod(cr, 0, true);}          float GetMeleeCritFromAgility();          void GetDodgeFromAgility(float &diminishing, float &nondiminishing); @@ -2183,10 +2179,6 @@ class Player : public Unit, public GridObject<Player>          void UpdateLocalChannels(uint32 newZone);          void LeaveLFGChannel(); -        void UpdateDefense(); -        void UpdateWeaponSkill (WeaponAttackType attType); -        void UpdateCombatSkills(Unit* victim, WeaponAttackType attType, bool defence); -          void SetSkill(uint16 id, uint16 step, uint16 currVal, uint16 maxVal);          uint16 GetMaxSkillValue(uint32 skill) const;        // max + perm. bonus + temp bonus          uint16 GetPureMaxSkillValue(uint32 skill) const;    // max diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp index 12d214e49ab..c0f7f5c8939 100755 --- a/src/server/game/Entities/Unit/StatSystem.cpp +++ b/src/server/game/Entities/Unit/StatSystem.cpp @@ -75,16 +75,16 @@ bool Player::UpdateStats(Stats stat)              UpdateAllCritPercentages();              UpdateDodgePercentage();              break; -        case STAT_STAMINA:   UpdateMaxHealth(); break; +        case STAT_STAMINA: +            UpdateMaxHealth(); +            break;          case STAT_INTELLECT:              UpdateMaxPower(POWER_MANA);              UpdateAllSpellCritChances();              UpdateArmor();                                  //SPELL_AURA_MOD_RESISTANCE_OF_INTELLECT_PERCENT, only armor currently              break; -          case STAT_SPIRIT:              break; -          default:              break;      } @@ -155,7 +155,9 @@ bool Player::UpdateAllStats()      UpdateAllRatings();      UpdateAllCritPercentages();      UpdateAllSpellCritChances(); -    UpdateDefenseBonusesMod(); +    UpdateBlockPercentage(); +    UpdateParryPercentage(); +    UpdateDodgePercentage();      UpdateSpellDamageAndHealingBonus();      UpdateManaRegen();      UpdateExpertise(BASE_ATTACK); @@ -430,13 +432,6 @@ void Player::UpdateDamagePhysical(WeaponAttackType attType)      }  } -void Player::UpdateDefenseBonusesMod() -{ -    UpdateBlockPercentage(); -    UpdateParryPercentage(); -    UpdateDodgePercentage(); -} -  void Player::UpdateBlockPercentage()  {      // No block @@ -482,7 +477,7 @@ void Player::UpdateCritPercentage(WeaponAttackType attType)      float value = GetTotalPercentageModValue(modGroup) + GetRatingBonusValue(cr);      // Modify crit from weapon skill and maximized defense skill of same level victim difference -    value += (int32(GetWeaponSkillValue(attType)) - int32(GetMaxSkillValueForLevel())) * 0.04f; +    value += (int32(GetMaxSkillValueForLevel()) - int32(GetMaxSkillValueForLevel())) * 0.04f;      value = value < 0.0f ? 0.0f : value;      SetStatFloatValue(index, value);  } @@ -540,9 +535,6 @@ void Player::UpdateParryPercentage()          float nondiminishing  = 5.0f;          // Parry from rating          float diminishing = GetRatingBonusValue(CR_PARRY); -        // Modify value from defense skill (only bonus from defense rating diminishes) -        nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f; -        diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;          // Parry from SPELL_AURA_MOD_PARRY_PERCENT aura          nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_PARRY_PERCENT);          // apply diminishing formula to diminishing parry chance @@ -571,9 +563,6 @@ void Player::UpdateDodgePercentage()      float diminishing = 0.0f, nondiminishing = 0.0f;      GetDodgeFromAgility(diminishing, nondiminishing); -    // Modify value from defense skill (only bonus from defense rating diminishes) -    nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f; -    diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;      // Dodge from SPELL_AURA_MOD_DODGE_PERCENT aura      nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_DODGE_PERCENT);      // Dodge from rating diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 5407cbd274e..01ee90ce895 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1311,8 +1311,8 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss)          if (victim->getLevel() < 30)              Probability = 0.65f * victim->getLevel() + 0.5f; -        uint32 VictimDefense=victim->GetDefenseSkillValue(); -        uint32 AttackerMeleeSkill=GetUnitMeleeSkill(); +        uint32 VictimDefense = victim->GetMaxSkillValueForLevel(this); +        uint32 AttackerMeleeSkill = GetMaxSkillValueForLevel();          Probability *= AttackerMeleeSkill/(float)VictimDefense; @@ -1860,11 +1860,8 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit* victim, WeaponAttackT      int32 attackerMaxSkillValueForLevel = GetMaxSkillValueForLevel(victim);      int32 victimMaxSkillValueForLevel = victim->GetMaxSkillValueForLevel(this); -    int32 attackerWeaponSkill = GetWeaponSkillValue(attType, victim); -    int32 victimDefenseSkill = victim->GetDefenseSkillValue(this); -      // bonus from skills is 0.04% -    int32    skillBonus  = 4 * (attackerWeaponSkill - victimMaxSkillValueForLevel); +    int32    skillBonus  = 4 * (attackerMaxSkillValueForLevel - victimMaxSkillValueForLevel);      int32    sum = 0, tmp = 0;      int32    roll = urand (0, 10000); @@ -1973,11 +1970,9 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit* victim, WeaponAttackT          getLevel() < victim->getLevelForTarget(this))      {          // cap possible value (with bonuses > max skill) -        int32 skill = attackerWeaponSkill; -        int32 maxskill = attackerMaxSkillValueForLevel; -        skill = (skill > maxskill) ? maxskill : skill; +        int32 skill = attackerMaxSkillValueForLevel; -        tmp = (10 + (victimDefenseSkill - skill)) * 100; +        tmp = (10 + (victimMaxSkillValueForLevel - skill)) * 100;          tmp = tmp > 4000 ? 4000 : tmp;          if (roll < (sum += tmp))          { @@ -1993,10 +1988,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit* victim, WeaponAttackT          !(GetTypeId() == TYPEID_UNIT && ToCreature()->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_NO_CRUSH))      {          // when their weapon skill is 15 or more above victim's defense skill -        tmp = victimDefenseSkill; -        int32 tmpmax = victimMaxSkillValueForLevel; -        // having defense above your maximum (from items, talents etc.) has no effect -        tmp = tmp > tmpmax ? tmpmax : tmp; +        tmp = victimMaxSkillValueForLevel;          // tmp = mob's level * 5 - player's current defense skill          tmp = attackerMaxSkillValueForLevel - tmp;          if (tmp >= 15) @@ -2441,21 +2433,6 @@ SpellMissInfo Unit::SpellHitResult(Unit* victim, SpellInfo const* spell, bool Ca      return SPELL_MISS_NONE;  } -uint32 Unit::GetDefenseSkillValue(Unit const* target) const -{ -    if (GetTypeId() == TYPEID_PLAYER) -    { -        // in PvP use full skill instead current skill value -        uint32 value = (target && target->GetTypeId() == TYPEID_PLAYER) -            ? ToPlayer()->GetMaxSkillValue(SKILL_DEFENSE) -            : ToPlayer()->GetSkillValue(SKILL_DEFENSE); -        value += uint32(ToPlayer()->GetRatingBonusValue(CR_DEFENSE_SKILL)); -        return value; -    } -    else -        return GetUnitMeleeSkill(target); -} -  float Unit::GetUnitDodgeChance() const  {      if (IsNonMeleeSpellCasted(false) || HasUnitState(UNIT_STATE_CONTROLLED)) @@ -2597,54 +2574,11 @@ float Unit::GetUnitCriticalChance(WeaponAttackType attackType, const Unit* victi      else          ApplyResilience(victim, &crit, NULL, false, CR_CRIT_TAKEN_RANGED); -    // Apply crit chance from defence skill -    crit += (int32(GetMaxSkillValueForLevel(victim)) - int32(victim->GetDefenseSkillValue(this))) * 0.04f; -      if (crit < 0.0f)          crit = 0.0f;      return crit;  } -uint32 Unit::GetWeaponSkillValue (WeaponAttackType attType, Unit const* target) const -{ -    uint32 value = 0; -    if (Player const* player = ToPlayer()) -    { -        Item* item = player->GetWeaponForAttack(attType, true); - -        // feral or unarmed skill only for base attack -        if (attType != BASE_ATTACK && !item) -            return 0; - -        if (IsInFeralForm()) -            return GetMaxSkillValueForLevel();              // always maximized SKILL_FERAL_COMBAT in fact - -        // weapon skill or (unarmed for base attack and fist weapons) -        uint32 skill; -        if (item && item->GetSkill() != SKILL_FIST_WEAPONS) -            skill = item->GetSkill(); -        else -            skill = SKILL_UNARMED; - -        // in PvP use full skill instead current skill value -        value = (target && target->IsControlledByPlayer()) -            ? player->GetMaxSkillValue(skill) -            : player->GetSkillValue(skill); -        // Modify value from ratings -        value += uint32(player->GetRatingBonusValue(CR_WEAPON_SKILL)); -        switch (attType) -        { -            case BASE_ATTACK:   value += uint32(player->GetRatingBonusValue(CR_WEAPON_SKILL_MAINHAND)); break; -            case OFF_ATTACK:    value += uint32(player->GetRatingBonusValue(CR_WEAPON_SKILL_OFFHAND));  break; -            case RANGED_ATTACK: value += uint32(player->GetRatingBonusValue(CR_WEAPON_SKILL_RANGED));   break; -            default: break; -        } -    } -    else -        value = GetUnitMeleeSkill(target); -   return value; -} -  void Unit::_DeleteRemovedAuras()  {      while (!m_removedAuras.empty()) @@ -13482,19 +13416,6 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u      // For melee/ranged based attack need update skills and set some Aura states if victim present      if (procFlag & MELEE_BASED_TRIGGER_MASK && target)      { -        // Update skills here for players -        if (GetTypeId() == TYPEID_PLAYER) -        { -            // On melee based hit/miss/resist need update skill (for victim and attacker) -            if (procExtra & (PROC_EX_NORMAL_HIT|PROC_EX_MISS|PROC_EX_RESIST)) -            { -                if (target->GetTypeId() != TYPEID_PLAYER && target->GetCreatureType() != CREATURE_TYPE_CRITTER) -                    ToPlayer()->UpdateCombatSkills(target, attType, isVictim); -            } -            // Update defence if player is victim and parry/dodge/block -            else if (isVictim && procExtra & (PROC_EX_DODGE|PROC_EX_PARRY|PROC_EX_BLOCK)) -                ToPlayer()->UpdateCombatSkills(target, attType, true); -        }          // If exist crit/parry/dodge/block need update aura state (for victim and attacker)          if (procExtra & (PROC_EX_CRITICAL_HIT|PROC_EX_PARRY|PROC_EX_DODGE|PROC_EX_BLOCK))          { diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 327886adfec..b57f148c3d6 100755 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -546,7 +546,7 @@ enum WeaponAttackType  enum CombatRating  {      CR_WEAPON_SKILL             = 0, -    CR_DEFENSE_SKILL            = 1, +    CR_DEFENSE_SKILL            = 1, // Removed in 4.0.1      CR_DODGE                    = 2,      CR_PARRY                    = 3,      CR_BLOCK                    = 4, @@ -1493,8 +1493,6 @@ class Unit : public WorldObject          virtual uint32 GetBlockPercent() { return 30; }          uint32 GetUnitMeleeSkill(Unit const* target = NULL) const { return (target ? getLevelForTarget(target) : getLevel()) * 5; } -        uint32 GetDefenseSkillValue(Unit const* target = NULL) const; -        uint32 GetWeaponSkillValue(WeaponAttackType attType, Unit const* target = NULL) const;          float GetWeaponProcChance() const;          float GetPPMProcChance(uint32 WeaponSpeed, float PPM,  const SpellInfo* spellProto) const; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 6b6c95eda66..d26011a552a 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -7568,12 +7568,10 @@ SkillRangeType GetSkillRangeType(SkillLineEntry const* pSkill, bool racial)  {      switch (pSkill->categoryId)      { -        case SKILL_CATEGORY_LANGUAGES: return SKILL_RANGE_LANGUAGE; +        case SKILL_CATEGORY_LANGUAGES: +            return SKILL_RANGE_LANGUAGE;          case SKILL_CATEGORY_WEAPON: -            if (pSkill->id != SKILL_FIST_WEAPONS) -                return SKILL_RANGE_LEVEL; -            else -                return SKILL_RANGE_MONO; +            return SKILL_RANGE_LEVEL;          case SKILL_CATEGORY_ARMOR:          case SKILL_CATEGORY_CLASS:              if (pSkill->id != SKILL_LOCKPICKING) diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 04ad2eb99f3..cf58a51dad8 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -2711,9 +2711,10 @@ void AuraEffect::HandleAuraModSkill(AuraApplication const* aurApp, uint8 mode, b      uint32 prot = GetMiscValue();      int32 points = GetAmount(); -    target->ModifySkillBonus(prot, (apply ? points : -points), GetAuraType() == SPELL_AURA_MOD_SKILL_TALENT);      if (prot == SKILL_DEFENSE) -        target->UpdateDefenseBonusesMod(); +        return; + +    target->ModifySkillBonus(prot, (apply ? points : -points), GetAuraType() == SPELL_AURA_MOD_SKILL_TALENT);  }  /****************************/ diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 2779814d4ee..703b158d6a3 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -920,12 +920,8 @@ void World::LoadConfigSettings(bool reload)      m_int_configs[CONFIG_SKILL_GAIN_CRAFTING]  = ConfigMgr::GetIntDefault("SkillGain.Crafting", 1); -    m_int_configs[CONFIG_SKILL_GAIN_DEFENSE]  = ConfigMgr::GetIntDefault("SkillGain.Defense", 1); -      m_int_configs[CONFIG_SKILL_GAIN_GATHERING]  = ConfigMgr::GetIntDefault("SkillGain.Gathering", 1); -    m_int_configs[CONFIG_SKILL_GAIN_WEAPON]  = ConfigMgr::GetIntDefault("SkillGain.Weapon", 1); -      m_int_configs[CONFIG_MAX_OVERSPEED_PINGS] = ConfigMgr::GetIntDefault("MaxOverspeedPings", 2);      if (m_int_configs[CONFIG_MAX_OVERSPEED_PINGS] != 0 && m_int_configs[CONFIG_MAX_OVERSPEED_PINGS] < 2)      { @@ -938,7 +934,6 @@ void World::LoadConfigSettings(bool reload)      m_int_configs[CONFIG_DISABLE_BREATHING] = ConfigMgr::GetIntDefault("DisableWaterBreath", SEC_CONSOLE); -    m_bool_configs[CONFIG_ALWAYS_MAX_SKILL_FOR_LEVEL] = ConfigMgr::GetBoolDefault("AlwaysMaxSkillForLevel", false);      if (reload)      { diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 53422108971..5a8c7cc879c 100755 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -122,7 +122,6 @@ enum WorldBoolConfigs      CONFIG_SKILL_MILLING,      CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY,      CONFIG_WEATHER, -    CONFIG_ALWAYS_MAX_SKILL_FOR_LEVEL,      CONFIG_QUEST_IGNORE_RAID,      CONFIG_DETECT_POS_COLLISION,      CONFIG_RESTRICTED_LFG_CHANNEL, @@ -256,9 +255,7 @@ enum WorldIntConfigs      CONFIG_SKILL_CHANCE_MINING_STEPS,      CONFIG_SKILL_CHANCE_SKINNING_STEPS,      CONFIG_SKILL_GAIN_CRAFTING, -    CONFIG_SKILL_GAIN_DEFENSE,      CONFIG_SKILL_GAIN_GATHERING, -    CONFIG_SKILL_GAIN_WEAPON,      CONFIG_MAX_OVERSPEED_PINGS,      CONFIG_EXPANSION,      CONFIG_CHATFLOOD_MESSAGE_COUNT, diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index 0bf2e5664a0..557cef24ee6 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -50,7 +50,7 @@ enum PaladinSpells  };  // 31850 - Ardent Defender -class spell_pal_ardent_defender : public SpellScriptLoader +/*class spell_pal_ardent_defender : public SpellScriptLoader  {      public:          spell_pal_ardent_defender() : SpellScriptLoader("spell_pal_ardent_defender") { } @@ -73,7 +73,7 @@ class spell_pal_ardent_defender : public SpellScriptLoader                  return GetUnitOwner()->GetTypeId() == TYPEID_PLAYER;              } -            void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/) +            void CalculateAmount(AuraEffect const* aurEff, int32 & amount, bool & canBeRecalculated)              {                  // Set absorbtion amount to unlimited                  amount = -1; @@ -123,7 +123,7 @@ class spell_pal_ardent_defender : public SpellScriptLoader          {              return new spell_pal_ardent_defender_AuraScript();          } -}; +};*/  class spell_pal_blessing_of_faith : public SpellScriptLoader  { @@ -568,7 +568,7 @@ class spell_pal_exorcism_and_holy_wrath_damage : public SpellScriptLoader  void AddSC_paladin_spell_scripts()  { -    new spell_pal_ardent_defender(); +    //new spell_pal_ardent_defender();      new spell_pal_blessing_of_faith();      new spell_pal_blessing_of_sanctuary();      new spell_pal_guarded_by_the_light(); diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index f8ee2390842..ec6d60863dd 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -863,15 +863,6 @@ AllFlightPaths = 0  InstantFlightPaths = 0  # -#    AlwaysMaxSkillForLevel -#        Description: Players will automatically gain max skill level when logging in or leveling -#                     up. -#        Default:     0 - (Disabled) -#                     1 - (Enabled) - -AlwaysMaxSkillForLevel = 0 - -#  #    ActivateWeather  #        Description: Activate the weather system.  #        Default:     1 - (Enabled) @@ -1952,19 +1943,13 @@ Rate.InstanceResetTime = 1  #  #    SkillGain.Crafting -#    SkillGain.Defense  #    SkillGain.Gathering -#    SkillGain.Weapon  #        Description: Crafting/defense/gathering/weapon skills gain rate.  #        Default:     1 - (SkillGain.Crafting) -#                     1 - (SkillGain.Defense)  #                     1 - (SkillGain.Gathering) -#                     1 - (SkillGain.Weapon)  SkillGain.Crafting  = 1 -SkillGain.Defense   = 1  SkillGain.Gathering = 1 -SkillGain.Weapon    = 1  #  #    SkillChance.Orange | 
