mirror of
https://github.com/mangosfour/server.git
synced 2025-12-24 01:37:02 +00:00
[0114] Updated "item_template" Thanks Fabi Fix some DBC problems, some clean.
Signed-off-by: Salja <salja2012@hotmail.de>
This commit is contained in:
parent
a6b1264405
commit
73ec9c2ce4
14 changed files with 170 additions and 348 deletions
|
|
@ -7122,7 +7122,7 @@ void Player::_ApplyItemBonuses(ItemPrototype const* proto, uint8 slot, bool appl
|
|||
if (ssd && ssd_level > ssd->MaxLevel)
|
||||
ssd_level = ssd->MaxLevel;
|
||||
|
||||
ScalingStatValuesEntry const* ssv = proto->ScalingStatValue ? sScalingStatValuesStore.LookupEntry(ssd_level) : NULL;
|
||||
ScalingStatValuesEntry const* ssv = proto->StatScalingFactor ? sScalingStatValuesStore.LookupEntry(ssd_level) : NULL;
|
||||
if (only_level_scale && !ssv)
|
||||
return;
|
||||
|
||||
|
|
@ -7136,12 +7136,10 @@ void Player::_ApplyItemBonuses(ItemPrototype const* proto, uint8 slot, bool appl
|
|||
if (ssd->StatMod[i] < 0)
|
||||
continue;
|
||||
statType = ssd->StatMod[i];
|
||||
val = (ssv->getssdMultiplier(proto->ScalingStatValue) * ssd->Modifier[i]) / 10000;
|
||||
val = (ssv->getssdMultiplier(proto->StatScalingFactor) * ssd->Modifier[i]) / 10000;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i >= proto->StatsCount)
|
||||
continue;
|
||||
statType = proto->ItemStat[i].ItemStatType;
|
||||
val = proto->ItemStat[i].ItemStatValue;
|
||||
}
|
||||
|
|
@ -7301,7 +7299,7 @@ void Player::_ApplyItemBonuses(ItemPrototype const* proto, uint8 slot, bool appl
|
|||
// Apply Spell Power from ScalingStatValue if set
|
||||
if (ssv)
|
||||
{
|
||||
if (int32 spellbonus = ssv->getSpellBonus(proto->ScalingStatValue))
|
||||
if (int32 spellbonus = ssv->getSpellBonus(proto->StatScalingFactor))
|
||||
ApplySpellPowerBonus(spellbonus, apply);
|
||||
}
|
||||
|
||||
|
|
@ -7309,7 +7307,7 @@ void Player::_ApplyItemBonuses(ItemPrototype const* proto, uint8 slot, bool appl
|
|||
uint32 armor = proto->GetArmor();
|
||||
if (ssv)
|
||||
{
|
||||
if (uint32 ssvarmor = ssv->getArmorMod(proto->ScalingStatValue))
|
||||
if (uint32 ssvarmor = ssv->getArmorMod(proto->StatScalingFactor))
|
||||
armor = ssvarmor;
|
||||
}
|
||||
// Add armor bonus from ArmorDamageModifier if > 0
|
||||
|
|
@ -7332,27 +7330,6 @@ void Player::_ApplyItemBonuses(ItemPrototype const* proto, uint8 slot, bool appl
|
|||
}
|
||||
}
|
||||
|
||||
if (proto->Block)
|
||||
HandleBaseModValue(SHIELD_BLOCK_VALUE, FLAT_MOD, float(proto->Block), apply);
|
||||
|
||||
if (proto->HolyRes)
|
||||
HandleStatModifier(UNIT_MOD_RESISTANCE_HOLY, BASE_VALUE, float(proto->HolyRes), apply);
|
||||
|
||||
if (proto->FireRes)
|
||||
HandleStatModifier(UNIT_MOD_RESISTANCE_FIRE, BASE_VALUE, float(proto->FireRes), apply);
|
||||
|
||||
if (proto->NatureRes)
|
||||
HandleStatModifier(UNIT_MOD_RESISTANCE_NATURE, BASE_VALUE, float(proto->NatureRes), apply);
|
||||
|
||||
if (proto->FrostRes)
|
||||
HandleStatModifier(UNIT_MOD_RESISTANCE_FROST, BASE_VALUE, float(proto->FrostRes), apply);
|
||||
|
||||
if (proto->ShadowRes)
|
||||
HandleStatModifier(UNIT_MOD_RESISTANCE_SHADOW, BASE_VALUE, float(proto->ShadowRes), apply);
|
||||
|
||||
if (proto->ArcaneRes)
|
||||
HandleStatModifier(UNIT_MOD_RESISTANCE_ARCANE, BASE_VALUE, float(proto->ArcaneRes), apply);
|
||||
|
||||
WeaponAttackType attType = BASE_ATTACK;
|
||||
float damage = 0.0f;
|
||||
|
||||
|
|
@ -7373,7 +7350,7 @@ void Player::_ApplyItemBonuses(ItemPrototype const* proto, uint8 slot, bool appl
|
|||
// If set dpsMod in ScalingStatValue use it for min (70% from average), max (130% from average) damage
|
||||
if (ssv)
|
||||
{
|
||||
if ((extraDPS = ssv->getDPSMod(proto->ScalingStatValue)))
|
||||
if ((extraDPS = ssv->getDPSMod(proto->StatScalingFactor)))
|
||||
{
|
||||
float average = extraDPS * proto->Delay / 1000.0f;
|
||||
minDamage = 0.7f * average;
|
||||
|
|
@ -7396,7 +7373,7 @@ void Player::_ApplyItemBonuses(ItemPrototype const* proto, uint8 slot, bool appl
|
|||
// Apply feral bonus from ScalingStatValue if set
|
||||
if (ssv)
|
||||
{
|
||||
if (int32 feral_bonus = ssv->getFeralBonus(proto->ScalingStatValue))
|
||||
if (int32 feral_bonus = ssv->getFeralBonus(proto->StatScalingFactor))
|
||||
ApplyFeralAPBonus(feral_bonus, apply);
|
||||
}
|
||||
// Druids get feral AP bonus from weapon dps (also use DPS from ScalingStatValue)
|
||||
|
|
@ -19738,7 +19715,6 @@ void Player::AddSpellAndCategoryCooldowns(SpellEntry const* spellInfo, uint32 it
|
|||
|
||||
// some special item spells without correct cooldown in SpellInfo
|
||||
// cooldown information stored in item prototype
|
||||
// This used in same way in WorldSession::HandleItemQuerySingleOpcode data sending to client.
|
||||
|
||||
if (itemId)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue