mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[7264] Use AP fields as signed integer
Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
parent
13c5d3a33c
commit
4792d20b4e
4 changed files with 17 additions and 13 deletions
|
|
@ -2308,11 +2308,11 @@ void Player::InitStatsForLevel(bool reapplyMods)
|
||||||
SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE, 0.0f );
|
SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE, 0.0f );
|
||||||
SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE, 0.0f );
|
SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE, 0.0f );
|
||||||
|
|
||||||
SetUInt32Value(UNIT_FIELD_ATTACK_POWER, 0 );
|
SetInt32Value(UNIT_FIELD_ATTACK_POWER, 0 );
|
||||||
SetUInt32Value(UNIT_FIELD_ATTACK_POWER_MODS, 0 );
|
SetInt32Value(UNIT_FIELD_ATTACK_POWER_MODS, 0 );
|
||||||
SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER,0.0f);
|
SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER,0.0f);
|
||||||
SetUInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER, 0 );
|
SetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER, 0 );
|
||||||
SetUInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS,0 );
|
SetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS,0 );
|
||||||
SetFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER,0.0f);
|
SetFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER,0.0f);
|
||||||
|
|
||||||
// Base crit values (will be recalculated in UpdateAllStats() at loading and in _ApplyAllStatBonuses() at reset
|
// Base crit values (will be recalculated in UpdateAllStats() at loading and in _ApplyAllStatBonuses() at reset
|
||||||
|
|
|
||||||
|
|
@ -357,8 +357,8 @@ void Player::UpdateAttackPowerAndDamage(bool ranged )
|
||||||
|
|
||||||
float attPowerMultiplier = GetModifierValue(unitMod, TOTAL_PCT) - 1.0f;
|
float attPowerMultiplier = GetModifierValue(unitMod, TOTAL_PCT) - 1.0f;
|
||||||
|
|
||||||
SetUInt32Value(index, (uint32)base_attPower); //UNIT_FIELD_(RANGED)_ATTACK_POWER field
|
SetInt32Value(index, (uint32)base_attPower); //UNIT_FIELD_(RANGED)_ATTACK_POWER field
|
||||||
SetUInt32Value(index_mod, (uint32)attPowerMod); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field
|
SetInt32Value(index_mod, (uint32)attPowerMod); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field
|
||||||
SetFloatValue(index_mult, attPowerMultiplier); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
|
SetFloatValue(index_mult, attPowerMultiplier); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
|
||||||
|
|
||||||
//automatically update weapon damage after attack power modification
|
//automatically update weapon damage after attack power modification
|
||||||
|
|
@ -789,8 +789,8 @@ void Creature::UpdateAttackPowerAndDamage(bool ranged)
|
||||||
float attPowerMod = GetModifierValue(unitMod, TOTAL_VALUE);
|
float attPowerMod = GetModifierValue(unitMod, TOTAL_VALUE);
|
||||||
float attPowerMultiplier = GetModifierValue(unitMod, TOTAL_PCT) - 1.0f;
|
float attPowerMultiplier = GetModifierValue(unitMod, TOTAL_PCT) - 1.0f;
|
||||||
|
|
||||||
SetUInt32Value(index, (uint32)base_attPower); //UNIT_FIELD_(RANGED)_ATTACK_POWER field
|
SetInt32Value(index, (uint32)base_attPower); //UNIT_FIELD_(RANGED)_ATTACK_POWER field
|
||||||
SetUInt32Value(index_mod, (uint32)attPowerMod); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field
|
SetInt32Value(index_mod, (uint32)attPowerMod); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field
|
||||||
SetFloatValue(index_mult, attPowerMultiplier); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
|
SetFloatValue(index_mult, attPowerMultiplier); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
|
||||||
|
|
||||||
if(ranged)
|
if(ranged)
|
||||||
|
|
@ -995,9 +995,9 @@ void Pet::UpdateAttackPowerAndDamage(bool ranged)
|
||||||
float attPowerMultiplier = GetModifierValue(unitMod, TOTAL_PCT) - 1.0f;
|
float attPowerMultiplier = GetModifierValue(unitMod, TOTAL_PCT) - 1.0f;
|
||||||
|
|
||||||
//UNIT_FIELD_(RANGED)_ATTACK_POWER field
|
//UNIT_FIELD_(RANGED)_ATTACK_POWER field
|
||||||
SetUInt32Value(UNIT_FIELD_ATTACK_POWER, (uint32)base_attPower);
|
SetInt32Value(UNIT_FIELD_ATTACK_POWER, (int32)base_attPower);
|
||||||
//UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field
|
//UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field
|
||||||
SetUInt32Value(UNIT_FIELD_ATTACK_POWER_MODS, (uint32)attPowerMod);
|
SetInt32Value(UNIT_FIELD_ATTACK_POWER_MODS, (int32)attPowerMod);
|
||||||
//UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
|
//UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
|
||||||
SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER, attPowerMultiplier);
|
SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER, attPowerMultiplier);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9790,12 +9790,16 @@ float Unit::GetTotalAttackPowerValue(WeaponAttackType attType) const
|
||||||
{
|
{
|
||||||
if (attType == RANGED_ATTACK)
|
if (attType == RANGED_ATTACK)
|
||||||
{
|
{
|
||||||
uint32 ap = GetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER) + GetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS);
|
int32 ap = GetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER) + GetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS);
|
||||||
|
if (ap < 0)
|
||||||
|
return 0.0f;
|
||||||
return ap * (1.0f + GetFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER));
|
return ap * (1.0f + GetFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint32 ap = GetInt32Value(UNIT_FIELD_ATTACK_POWER) + GetInt32Value(UNIT_FIELD_ATTACK_POWER_MODS);
|
int32 ap = GetInt32Value(UNIT_FIELD_ATTACK_POWER) + GetInt32Value(UNIT_FIELD_ATTACK_POWER_MODS);
|
||||||
|
if (ap < 0)
|
||||||
|
return 0.0f;
|
||||||
return ap * (1.0f + GetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER));
|
return ap * (1.0f + GetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7263"
|
#define REVISION_NR "7264"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue