SkyFire_548
SkyFire_548 copied to clipboard
Combat Rating: PvP Power
Damage:
- 1% extra damage requires 400 PvP Power.
Healing:
- PvP Power's bonus to healing is based on class and specialization:
- Healing specializations receive a 100% bonus to healing from PvP Power.
- Damage specializations for druids, monks, paladins, priests, and shaman receive a 70% bonus to healing from PvP Power.
- All other specializations and classes (including tanking) receive a 40% bonus to healing from PvP Power.
void Player::UpdatePvPPower()
{
float PowerPct = GetRatingBonusValue(CR_PVP_POWER);
uint16 DamagePct, HealPct = 0;
switch (GetSpecializationId(GetActiveSpec())) // can be little different on SF
{
case SPEC_MAGE_ARCANE:
case SPEC_MAGE_FIRE:
case SPEC_MAGE_FROST:
case SPEC_WARRIOR_ARMS:
case SPEC_WARRIOR_FURY:
case SPEC_MONK_BREWMASTER:
DamagePct = 100;
HealPct = 40;
break;
case SPEC_SHAMAN_ELEMENTAL:
case SPEC_SHAMAN_ENHANCEMENT:
case SPEC_PRIEST_SHADOW:
case SPEC_MONK_WINDWALKER:
DamagePct = 100;
HealPct = 70;
break;
case SPEC_PALADIN_HOLY:
case SPEC_DRUID_RESTORATION:
case SPEC_MONK_MISTWEAVER:
HealPct = 100;
break;
default:
break;
}
SetFloatValue(PLAYER_PVP_POWER_DAMAGE, CalculatePct(PowerPct, DamagePct));
SetFloatValue(PLAYER_PVP_POWER_HEALING, CalculatePct(PowerPct, HealPct));
}
like this ( add other specs to enum, this is just for right tooltip update ); should be called at Player::UpdateRating(***);
and i think u understand how to add same to damage/heal/absorb functions
Player.h
void UpdateRating(CombatRating cr);
void UpdateAllRatings();
void UpdateMastery();
+ void UpdatePVPPower(int32 amount);
Player.cpp
case CR_ARMOR_PENETRATION:
if (affectStats)
UpdateArmorPenetration(amount);
break;
case CR_MASTERY:
UpdateMastery();
+ case CR_PVP_POWER:
+UpdatePVPPower(amount);
+break;
StatSystem.cpp
void Player::UpdatePVPPower(int32 amount)
{
SetStatFloatValue(PLAYER_FIELD_PVP_POWER_DAMAGE, GetUInt32Value(PLAYER_FIELD_COMBAT_RATINGS + CR_PVP_POWER) * GetRatingMultiplier(CR_PVP_POWER));
SetStatFloatValue(PLAYER_FIELD_PVP_POWER_HEALING, (GetUInt32Value(PLAYER_FIELD_COMBAT_RATINGS + CR_PVP_POWER) * GetRatingMultiplier(CR_PVP_POWER)) / 2);
}
const float m_diminishing_k[MAX_CLASSES] =
{
0.9560f, // Warrior
0.9560f, // Paladin
0.9880f, // Hunter
0.9880f, // Rogue
0.9830f, // Priest
0.9560f, // DK
0.9880f, // Shaman
0.9830f, // Mage
0.9830f, // Warlock
0.9880f, // Monk
0.9720f // Druid
};

rofl, u are not understain code which u are copypasted again,
void Player::UpdatePVPPower(int32 amount)
{
SetStatFloatValue(PLAYER_FIELD_PVP_POWER_DAMAGE, GetUInt32Value(PLAYER_FIELD_COMBAT_RATINGS + CR_PVP_POWER) * GetRatingMultiplier(CR_PVP_POWER));
SetStatFloatValue(PLAYER_FIELD_PVP_POWER_HEALING, (GetUInt32Value(PLAYER_FIELD_COMBAT_RATINGS + CR_PVP_POWER) * GetRatingMultiplier(CR_PVP_POWER)) / 2);
}
WRONG; read this again
Healing specializations receive a 100% bonus to healing from PvP Power.
Damage specializations for druids, monks, paladins, priests, and shaman receive a 70% bonus to healing from PvP Power.
All other specializations and classes (including tanking) receive a 40% bonus to healing from PvP Power.
and... this was copypasterd from https://github.com/Palabola/TrinityCore-MOP-5.1.0 (called like SkyMist emu)
Omg are you fucking retartd ?! I using a PRIVATE Non Public Core ! No one has Access to this Core !
Trololol... Look for MantidCore !
code which u ling are copypasted from SkyMist emu (maybe from this emu fork which was renamed :D ), but anyway like u said above - u had just copypasted and dont understand how it works and how it should work ( like was on retail )
bla bla bla bla bla bla bvlaaaa
so many bullshit ...
@to ur "new" screen
retail data:
Damage specializations for druids, monks, paladins, priests, and shaman receive a 70% bonus to healing from PvP Power.
on ur screen i can see total value 9.22% and heal value 4.61% , heal value seems 9.22 / 4.61 = 50%, but it should be 70%
why u are so stupid and dont agree with mine code which working for ~3 years like it should?
or u are "TRUE MAN" who can just make wrong hacks? ahahaha
@soulfrost looks legit, but i think healing specs also should have damagepct and not only healing or what u think ?
and then we still miss the calculation only i think to apply the % to the damage/heal as u mentioned
@Arcidev http://wow.gamepedia.com/PvP_Power (also cant find it on other source) there's no information about this, but we dint get any repots for wrong pvpPower scaling on diffrent spec groups - so, seems like healers should not get any damage bonus from it
for applying to damage/heal/absorb calcs can be used function with this code
if (taget->GetTypeId() == TYPEID_PLAYER)
AddPct(damage_or_absorb_or_heal_value, player->GetFloatValue(isHeal ? PLAYER_PVP_POWER_HEALING: PLAYER_PVP_POWER_DAMAGE);
at this functions
MeleeDamageBonusDone
CalcAbsorb
SpellDamageBonusDone
SpellHealingBonusDone
ok healers dont get any damage bonus, they get only heal bonus.