Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
- index 7b3df51..d74a694 100644
- -- a/src/server/game/Entities/Player/Player.cpp
- ++ b/src/server/game/Entities/Player/Player.cpp
- @@ -2839,7 +2839,12 @@ void Player::GiveLevel(uint8 level)
- void Player::InitTalentForLevel()
- {
- uint8 level = getLevel();
- uint32 acct_id = GetSession()->GetAccountId();
- uint8 Pvip = VIP::GetPlayerVIP(acct_id);
- uint8 VIP_TP_BONUS = VIP::GetTALENTBONUS();
- uint8 TPMOD = (Pvip * VIP_TP_BONUS);
- uint8 level = getLevel();
- // talents base at level diff (talents = level - 9 but some can be used already)
- if (level < 10)
- {
- @@ -2861,8 +2866,8 @@ void Player::InitTalentForLevel()
- uint32 talentPointsForLevel = CalculateTalentsPoints();
- // if used more that have then reset
- if (m_usedTalentCount > talentPointsForLevel)
- {
- if (m_usedTalentCount >(talentPointsForLevel + TPMOD))
- {
- if (!GetSession()->HasPermission(rbac::RBAC_PERM_SKIP_CHECK_MORE_TALENTS_THAN_ALLOWED))
- ResetTalents(true);
- else
- @@ -2870,8 +2875,8 @@ void Player::InitTalentForLevel()
- }
- // else update amount of free points
- else
- SetFreeTalentPoints(talentPointsForLevel - m_usedTalentCount);
- }
- SetFreeTalentPoints((talentPointsForLevel + TPMOD) - m_usedTalentCount);
- }
- if (!GetSession()->PlayerLoading())
- SendTalentsInfoData(false); // update at client
- @@ -3916,7 +3921,13 @@ uint32 Player::ResetTalentsCost() const
- bool Player::ResetTalents(bool no_cost)
- {
- sScriptMgr->OnPlayerTalentsReset(this, no_cost);
- sScriptMgr->OnPlayerTalentsReset(this, no_cost);
- uint32 acct_id = GetSession()->GetAccountId();
- uint8 Pvip = VIP::GetPlayerVIP(acct_id);
- uint8 VIP_TP_BONUS = VIP::GetTALENTBONUS();
- uint8 TPMOD = (Pvip * VIP_TP_BONUS);
- // not need after this call
- if (HasAtLoginFlag(AT_LOGIN_RESET_TALENTS))
- @@ -3926,8 +3937,8 @@ bool Player::ResetTalents(bool no_cost)
- if (m_usedTalentCount == 0)
- {
- SetFreeTalentPoints(talentPointsForLevel);
- return false;
- SetFreeTalentPoints(talentPointsForLevel + TPMOD);
- return false;
- }
- uint32 cost = 0;
- @@ -3988,7 +3999,7 @@ bool Player::ResetTalents(bool no_cost)
- _SaveSpells(trans);
- CharacterDatabase.CommitTransaction(trans);
- SetFreeTalentPoints(talentPointsForLevel);
- SetFreeTalentPoints(talentPointsForLevel + TPMOD);
- if (!no_cost)
- {
- @@ -6428,7 +6439,14 @@ void Player::SendMovieStart(uint32 MovieId)
- void Player::CheckAreaExploreAndOutdoor()
- {
- if (!IsAlive())
- float VIP_OFFSET = VIP::GetVIPOFFSET();
- uint32 acctId = GetSession()->GetAccountId();
- uint8 Pvip = VIP::GetPlayerVIP(acctId);
- float MOD = (Pvip * VIP_OFFSET);
- float rate = sWorld->getRate(RATE_XP_EXPLORE);
- rate = rate + (rate * MOD);
- if (!IsAlive())
- return;
- if (IsInFlight())
- @@ -6481,7 +6499,7 @@ void Player::CheckAreaExploreAndOutdoor()
- uint32 XP = 0;
- if (diff < -5)
- {
- XP = uint32(sObjectMgr->GetBaseXP(getLevel()+5)*sWorld->getRate(RATE_XP_EXPLORE));
- XP = uint32(sObjectMgr->GetBaseXP(getLevel() + 5) * rate);
- }
- else if (diff > 5)
- {
- @@ -6489,11 +6507,11 @@ void Player::CheckAreaExploreAndOutdoor()
- if (exploration_percent < 0)
- exploration_percent = 0;
- XP = uint32(sObjectMgr->GetBaseXP(areaEntry->area_level)*exploration_percent/100*sWorld->getRate(RATE_XP_EXPLORE));
- XP = uint32(sObjectMgr->GetBaseXP(areaEntry->area_level)*exploration_percent / 100 * rate);
- }
- else
- {
- XP = uint32(sObjectMgr->GetBaseXP(areaEntry->area_level)*sWorld->getRate(RATE_XP_EXPLORE));
- XP = uint32(sObjectMgr->GetBaseXP(areaEntry->area_level) * rate);
- }
- GiveXP(XP, NULL);
- @@ -7373,7 +7391,12 @@ void Player::_ApplyItemMods(Item* item, uint8 slot, bool apply)
- void Player::_ApplyItemBonuses(ItemTemplate const* proto, uint8 slot, bool apply, bool only_level_scale /*= false*/)
- {
- if (slot >= INVENTORY_SLOT_BAG_END || !proto)
- float VIP_OFFSET = VIP::GetVIPOFFSET();
- uint32 acctId = GetSession()->GetAccountId();
- uint8 Pvip = VIP::GetPlayerVIP(acctId);
- float MOD = (Pvip * VIP_OFFSET);
- if (slot >= INVENTORY_SLOT_BAG_END || !proto)
- return;
- ScalingStatDistributionEntry const* ssd = proto->ScalingStatDistribution ? sScalingStatDistributionStore.LookupEntry(proto->ScalingStatDistribution) : NULL;
- @@ -7415,148 +7438,148 @@ void Player::_ApplyItemBonuses(ItemTemplate const* proto, uint8 slot, bool apply
- switch (statType)
- {
- case ITEM_MOD_MANA:
- HandleStatModifier(UNIT_MOD_MANA, BASE_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_MANA, BASE_VALUE, float(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HEALTH: // modify HP
- HandleStatModifier(UNIT_MOD_HEALTH, BASE_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_HEALTH, BASE_VALUE, float(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_AGILITY: // modify agility
- HandleStatModifier(UNIT_MOD_STAT_AGILITY, BASE_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_STAT_AGILITY, BASE_VALUE, float(val + (val * MOD)), apply);
- ApplyStatBuffMod(STAT_AGILITY, float(val), apply);
- break;
- case ITEM_MOD_STRENGTH: //modify strength
- HandleStatModifier(UNIT_MOD_STAT_STRENGTH, BASE_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_STAT_STRENGTH, BASE_VALUE, float(val + (val * MOD)), apply);
- ApplyStatBuffMod(STAT_STRENGTH, float(val), apply);
- break;
- case ITEM_MOD_INTELLECT: //modify intellect
- HandleStatModifier(UNIT_MOD_STAT_INTELLECT, BASE_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_STAT_INTELLECT, BASE_VALUE, float(val + (val * MOD)), apply);
- ApplyStatBuffMod(STAT_INTELLECT, float(val), apply);
- break;
- case ITEM_MOD_SPIRIT: //modify spirit
- HandleStatModifier(UNIT_MOD_STAT_SPIRIT, BASE_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_STAT_SPIRIT, BASE_VALUE, float(val + (val * MOD)), apply);
- ApplyStatBuffMod(STAT_SPIRIT, float(val), apply);
- break;
- case ITEM_MOD_STAMINA: //modify stamina
- HandleStatModifier(UNIT_MOD_STAT_STAMINA, BASE_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_STAT_STAMINA, BASE_VALUE, float(val + (val * MOD)), apply);
- ApplyStatBuffMod(STAT_STAMINA, float(val), apply);
- break;
- case ITEM_MOD_DEFENSE_SKILL_RATING:
- ApplyRatingMod(CR_DEFENSE_SKILL, int32(val), apply);
- ApplyRatingMod(CR_DEFENSE_SKILL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_DODGE_RATING:
- ApplyRatingMod(CR_DODGE, int32(val), apply);
- ApplyRatingMod(CR_DODGE, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_PARRY_RATING:
- ApplyRatingMod(CR_PARRY, int32(val), apply);
- ApplyRatingMod(CR_PARRY, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_BLOCK_RATING:
- ApplyRatingMod(CR_BLOCK, int32(val), apply);
- ApplyRatingMod(CR_BLOCK, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HIT_MELEE_RATING:
- ApplyRatingMod(CR_HIT_MELEE, int32(val), apply);
- ApplyRatingMod(CR_HIT_MELEE, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HIT_RANGED_RATING:
- ApplyRatingMod(CR_HIT_RANGED, int32(val), apply);
- ApplyRatingMod(CR_HIT_RANGED, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HIT_SPELL_RATING:
- ApplyRatingMod(CR_HIT_SPELL, int32(val), apply);
- ApplyRatingMod(CR_HIT_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_CRIT_MELEE_RATING:
- ApplyRatingMod(CR_CRIT_MELEE, int32(val), apply);
- ApplyRatingMod(CR_CRIT_MELEE, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_CRIT_RANGED_RATING:
- ApplyRatingMod(CR_CRIT_RANGED, int32(val), apply);
- ApplyRatingMod(CR_CRIT_RANGED, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_CRIT_SPELL_RATING:
- ApplyRatingMod(CR_CRIT_SPELL, int32(val), apply);
- ApplyRatingMod(CR_CRIT_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HIT_TAKEN_MELEE_RATING:
- ApplyRatingMod(CR_HIT_TAKEN_MELEE, int32(val), apply);
- ApplyRatingMod(CR_HIT_TAKEN_MELEE, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HIT_TAKEN_RANGED_RATING:
- ApplyRatingMod(CR_HIT_TAKEN_RANGED, int32(val), apply);
- ApplyRatingMod(CR_HIT_TAKEN_RANGED, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HIT_TAKEN_SPELL_RATING:
- ApplyRatingMod(CR_HIT_TAKEN_SPELL, int32(val), apply);
- ApplyRatingMod(CR_HIT_TAKEN_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_CRIT_TAKEN_MELEE_RATING:
- ApplyRatingMod(CR_CRIT_TAKEN_MELEE, int32(val), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_MELEE, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_CRIT_TAKEN_RANGED_RATING:
- ApplyRatingMod(CR_CRIT_TAKEN_RANGED, int32(val), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_RANGED, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_CRIT_TAKEN_SPELL_RATING:
- ApplyRatingMod(CR_CRIT_TAKEN_SPELL, int32(val), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HASTE_MELEE_RATING:
- ApplyRatingMod(CR_HASTE_MELEE, int32(val), apply);
- ApplyRatingMod(CR_HASTE_MELEE, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HASTE_RANGED_RATING:
- ApplyRatingMod(CR_HASTE_RANGED, int32(val), apply);
- ApplyRatingMod(CR_HASTE_RANGED, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HASTE_SPELL_RATING:
- ApplyRatingMod(CR_HASTE_SPELL, int32(val), apply);
- ApplyRatingMod(CR_HASTE_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HIT_RATING:
- ApplyRatingMod(CR_HIT_MELEE, int32(val), apply);
- ApplyRatingMod(CR_HIT_RANGED, int32(val), apply);
- ApplyRatingMod(CR_HIT_SPELL, int32(val), apply);
- ApplyRatingMod(CR_HIT_MELEE, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_HIT_RANGED, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_HIT_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_CRIT_RATING:
- ApplyRatingMod(CR_CRIT_MELEE, int32(val), apply);
- ApplyRatingMod(CR_CRIT_RANGED, int32(val), apply);
- ApplyRatingMod(CR_CRIT_SPELL, int32(val), apply);
- ApplyRatingMod(CR_CRIT_MELEE, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_CRIT_RANGED, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_CRIT_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HIT_TAKEN_RATING:
- ApplyRatingMod(CR_HIT_TAKEN_MELEE, int32(val), apply);
- ApplyRatingMod(CR_HIT_TAKEN_RANGED, int32(val), apply);
- ApplyRatingMod(CR_HIT_TAKEN_SPELL, int32(val), apply);
- ApplyRatingMod(CR_HIT_TAKEN_MELEE, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_HIT_TAKEN_RANGED, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_HIT_TAKEN_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_CRIT_TAKEN_RATING:
- ApplyRatingMod(CR_CRIT_TAKEN_MELEE, int32(val), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_RANGED, int32(val), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_SPELL, int32(val), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_MELEE, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_RANGED, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_RESILIENCE_RATING:
- ApplyRatingMod(CR_CRIT_TAKEN_MELEE, int32(val), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_RANGED, int32(val), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_SPELL, int32(val), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_MELEE, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_RANGED, int32(val + (val * MOD)), apply);
- ApplyRatingMod(CR_CRIT_TAKEN_SPELL, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HASTE_RATING:
- ApplyRatingMod(CR_HASTE_MELEE, int32(val), apply);
- ApplyRatingMod(CR_HASTE_RANGED, int32(val), apply);
- ApplyRatingMod(CR_HASTE_SPELL, int32(val), apply);
- ApplyRatingMod(CR_HASTE_MELEE, int32(val), apply);
- ApplyRatingMod(CR_HASTE_RANGED, int32(val), apply);
- ApplyRatingMod(CR_HASTE_SPELL, int32(val), apply);
- break;
- case ITEM_MOD_EXPERTISE_RATING:
- ApplyRatingMod(CR_EXPERTISE, int32(val), apply);
- ApplyRatingMod(CR_EXPERTISE, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_ATTACK_POWER:
- HandleStatModifier(UNIT_MOD_ATTACK_POWER, TOTAL_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_ATTACK_POWER_RANGED, TOTAL_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_ATTACK_POWER, TOTAL_VALUE, float(val + (val * MOD)), apply);
- HandleStatModifier(UNIT_MOD_ATTACK_POWER_RANGED, TOTAL_VALUE, float(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_RANGED_ATTACK_POWER:
- HandleStatModifier(UNIT_MOD_ATTACK_POWER_RANGED, TOTAL_VALUE, float(val), apply);
- HandleStatModifier(UNIT_MOD_ATTACK_POWER_RANGED, TOTAL_VALUE, float(val + (val * MOD)), apply);
- break;
- // case ITEM_MOD_FERAL_ATTACK_POWER:
- // ApplyFeralAPBonus(int32(val), apply);
- // break;
- case ITEM_MOD_MANA_REGENERATION:
- ApplyManaRegenBonus(int32(val), apply);
- ApplyManaRegenBonus(int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_ARMOR_PENETRATION_RATING:
- ApplyRatingMod(CR_ARMOR_PENETRATION, int32(val), apply);
- ApplyRatingMod(CR_ARMOR_PENETRATION, int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_SPELL_POWER:
- ApplySpellPowerBonus(int32(val), apply);
- ApplySpellPowerBonus(int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_HEALTH_REGEN:
- ApplyHealthRegenBonus(int32(val), apply);
- ApplyHealthRegenBonus(int32(val + (val * MOD)), apply);
- break;
- case ITEM_MOD_SPELL_PENETRATION:
- ApplySpellPenetrationBonus(val, apply);
- ApplySpellPenetrationBonus(val + (val * MOD), apply);
- break;
- case ITEM_MOD_BLOCK_VALUE:
- HandleBaseModValue(SHIELD_BLOCK_VALUE, FLAT_MOD, float(val), apply);
- HandleBaseModValue(SHIELD_BLOCK_VALUE, FLAT_MOD, float(val + (val * MOD)), apply);
- break;
- // deprecated item mods
- case ITEM_MOD_SPELL_HEALING_DONE:
- @@ -7660,7 +7683,12 @@ void Player::_ApplyItemBonuses(ItemTemplate const* proto, uint8 slot, bool apply
- void Player::_ApplyWeaponDamage(uint8 slot, ItemTemplate const* proto, ScalingStatValuesEntry const* ssv, bool apply)
- {
- WeaponAttackType attType = BASE_ATTACK;
- float VIP_OFFSET = VIP::GetVIPOFFSET();
- uint32 acctId = GetSession()->GetAccountId();
- uint8 Pvip = VIP::GetPlayerVIP(acctId);
- float MOD = (Pvip * VIP_OFFSET);
- WeaponAttackType attType = BASE_ATTACK;
- float damage = 0.0f;
- if (slot == EQUIPMENT_SLOT_RANGED && (
- @@ -7674,8 +7702,8 @@ void Player::_ApplyWeaponDamage(uint8 slot, ItemTemplate const* proto, ScalingSt
- attType = OFF_ATTACK;
- }
- float minDamage = proto->Damage[0].DamageMin;
- float maxDamage = proto->Damage[0].DamageMax;
- float minDamage = proto->Damage[0].DamageMin + (proto->Damage[0].DamageMin / MOD);
- float maxDamage = proto->Damage[0].DamageMax + (proto->Damage[0].DamageMax / MOD);
- // If set dpsMod in ScalingStatValue use it for min (70% from average), max (130% from average) damage
- if (ssv)
- @@ -8337,7 +8365,14 @@ void Player::SendLootRelease(ObjectGuid guid)
- void Player::SendLoot(ObjectGuid guid, LootType loot_type)
- {
- if (ObjectGuid lguid = GetLootGUID())
- float VIP_OFFSET = VIP::GetVIPOFFSET();
- uint32 acctId = GetSession()->GetAccountId();
- uint8 Pvip = VIP::GetPlayerVIP(acctId);
- float MOD = (Pvip * VIP_OFFSET);
- float rate = sWorld->getRate(RATE_DROP_MONEY);
- rate = MOD + rate;
- if (ObjectGuid lguid = GetLootGUID())
- m_session->DoLootRelease(lguid);
- Loot* loot = 0;
- @@ -8474,7 +8509,10 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
- loot->FillLoot(item->GetEntry(), LootTemplates_Milling, this, true);
- break;
- default:
- loot->generateMoneyLoot(item->GetTemplate()->MinMoneyLoot, item->GetTemplate()->MaxMoneyLoot);
- uint32 pGoldMin = item->GetTemplate()->MinMoneyLoot + (item->GetTemplate()->MinMoneyLoot * MOD);
- uint32 pGoldMax = item->GetTemplate()->MaxMoneyLoot + (item->GetTemplate()->MaxMoneyLoot * MOD);
- loot->generateMoneyLoot(pGoldMin, pGoldMax);
- loot->FillLoot(item->GetEntry(), LootTemplates_Item, this, true, loot->gold != 0);
- // Force save the loot and money items that were just rolled
- @@ -8508,7 +8546,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
- loot->FillLoot(1, LootTemplates_Creature, this, true);
- // It may need a better formula
- // Now it works like this: lvl10: ~6copper, lvl70: ~9silver
- bones->loot.gold = uint32(urand(50, 150) * 0.016f * std::pow(float(pLevel) / 5.76f, 2.5f) * sWorld->getRate(RATE_DROP_MONEY));
- bones->loot.gold = uint32(urand(50, 150) * 0.016f * std::pow(float(pLevel) / 5.76f, 2.5f) * rate);
- }
- if (bones->lootRecipient != this)
- @@ -8550,7 +8588,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
- // Generate extra money for pick pocket loot
- const uint32 a = urand(0, creature->getLevel() / 2);
- const uint32 b = urand(0, getLevel() / 2);
- loot->gold = uint32(10 * (a + b) * sWorld->getRate(RATE_DROP_MONEY));
- loot->gold = uint32(10 * (a + b) * rate);
- permission = OWNER_PERMISSION;
- }
- else
- diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
- index a8e13a9..384caf6 100644
- -- a/src/server/game/Entities/Unit/StatSystem.cpp
- ++ b/src/server/game/Entities/Unit/StatSystem.cpp
- @@ -20,6 +20,8 @@
- #include "Player.h"
- #include "Pet.h"
- #include "Creature.h"
- #include "Grumboz_VIP_Core.h"
- #include "WorldSession.h"
- #include "SharedDefines.h"
- #include "SpellAuras.h"
- #include "SpellAuraEffects.h"
- @@ -242,7 +244,12 @@ void Player::UpdateResistances(uint32 school)
- void Player::UpdateArmor()
- {
- UnitMods unitMod = UNIT_MOD_ARMOR;
- float VIP_OFFSET = VIP::GetVIPOFFSET();
- uint32 acctId = GetSession()->GetAccountId();
- uint8 Pvip = VIP::GetPlayerVIP(acctId);
- float MOD = (Pvip * VIP_OFFSET);
- UnitMods unitMod = UNIT_MOD_ARMOR;
- float value = GetModifierValue(unitMod, BASE_VALUE); // base armor (from items)
- value *= GetModifierValue(unitMod, BASE_PCT); // armor percent from items
- @@ -259,7 +266,10 @@ void Player::UpdateArmor()
- value *= GetModifierValue(unitMod, TOTAL_PCT);
- SetArmor(int32(value));
- uint32 THP = (uint32)value * MOD;
- int32 HPMOD = (int32)value + THP;
- SetArmor(HPMOD);
- Pet* pet = GetPet();
- if (pet)
- @@ -289,14 +299,22 @@ float Player::GetManaBonusFromIntellect()
- void Player::UpdateMaxHealth()
- {
- UnitMods unitMod = UNIT_MOD_HEALTH;
- float VIP_OFFSET = VIP::GetVIPOFFSET();
- uint32 acctId = GetSession()->GetAccountId();
- uint8 Pvip = VIP::GetPlayerVIP(acctId);
- float MOD = (Pvip * VIP_OFFSET);
- float value = GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
- value *= GetModifierValue(unitMod, BASE_PCT);
- value += GetModifierValue(unitMod, TOTAL_VALUE) + GetHealthBonusFromStamina();
- value *= GetModifierValue(unitMod, TOTAL_PCT);
- UnitMods unitMod = UNIT_MOD_HEALTH;
- SetMaxHealth((uint32)value);
- float value = GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
- value *= GetModifierValue(unitMod, BASE_PCT);
- value += GetModifierValue(unitMod, TOTAL_VALUE) + GetHealthBonusFromStamina();
- value *= GetModifierValue(unitMod, TOTAL_PCT);
- float THP = (uint32)value * MOD;
- float HPMOD = (uint32)value + THP;
- SetMaxHealth(uint32(HPMOD));
- }
- void Player::UpdateMaxPower(Powers power)
- @@ -514,7 +532,12 @@ void Player::UpdateShieldBlockValue()
- void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bool addTotalPct, float& minDamage, float& maxDamage)
- {
- UnitMods unitMod;
- float VIP_OFFSET = VIP::GetVIPOFFSET();
- uint32 acctId = GetSession()->GetAccountId();
- uint8 Pvip = VIP::GetPlayerVIP(acctId);
- float MOD = (Pvip * VIP_OFFSET);
- UnitMods unitMod;
- switch (attType)
- {
- @@ -537,8 +560,8 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bo
- float totalValue = GetModifierValue(unitMod, TOTAL_VALUE);
- float totalPct = addTotalPct ? GetModifierValue(unitMod, TOTAL_PCT) : 1.0f;
- float weaponMinDamage = GetWeaponDamageRange(attType, MINDAMAGE);
- float weaponMaxDamage = GetWeaponDamageRange(attType, MAXDAMAGE);
- float weaponMinDamage = GetWeaponDamageRange(attType, MINDAMAGE) + (GetWeaponDamageRange(attType, MINDAMAGE) / MOD);
- float weaponMaxDamage = GetWeaponDamageRange(attType, MAXDAMAGE) + (GetWeaponDamageRange(attType, MAXDAMAGE) / MOD);
- if (IsInFeralForm()) // check if player is druid and in cat or bear forms
- {
- \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement