mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[7583] Use instead BasePoints+1 hardcoded formula more correct BasePoint+BaseDice hide in special helper function.
This commit is contained in:
parent
ab7491e0e1
commit
f38283eba6
5 changed files with 18 additions and 14 deletions
|
|
@ -1289,6 +1289,9 @@ struct SpellEntry
|
||||||
uint32 runeCostID; // 229 m_runeCostID
|
uint32 runeCostID; // 229 m_runeCostID
|
||||||
//uint32 spellMissileID; // 230 m_spellMissileID not used
|
//uint32 spellMissileID; // 230 m_spellMissileID not used
|
||||||
|
|
||||||
|
// helpers
|
||||||
|
int32 CalculateSimpleValue(uint8 eff) const { return EffectBasePoints[eff]+int32(EffectBaseDice[eff]); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// prevent creating custom entries (copy data from original in fact)
|
// prevent creating custom entries (copy data from original in fact)
|
||||||
SpellEntry(SpellEntry const&); // DON'T must have implementation
|
SpellEntry(SpellEntry const&); // DON'T must have implementation
|
||||||
|
|
|
||||||
|
|
@ -291,7 +291,7 @@ void Spell::EffectEnvirinmentalDMG(uint32 i)
|
||||||
// Note: this hack with damage replace required until GO casting not implemented
|
// Note: this hack with damage replace required until GO casting not implemented
|
||||||
// environment damage spells already have around enemies targeting but this not help in case not existed GO casting support
|
// environment damage spells already have around enemies targeting but this not help in case not existed GO casting support
|
||||||
// currently each enemy selected explicitly and self cast damage, we prevent apply self casted spell bonuses/etc
|
// currently each enemy selected explicitly and self cast damage, we prevent apply self casted spell bonuses/etc
|
||||||
damage = m_spellInfo->EffectBasePoints[i]+m_spellInfo->EffectBaseDice[i];
|
damage = m_spellInfo->CalculateSimpleValue(i);
|
||||||
|
|
||||||
m_caster->CalcAbsorbResist(m_caster,GetSpellSchoolMask(m_spellInfo), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist);
|
m_caster->CalcAbsorbResist(m_caster,GetSpellSchoolMask(m_spellInfo), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist);
|
||||||
|
|
||||||
|
|
@ -4829,8 +4829,8 @@ void Spell::EffectScriptEffect(uint32 effIndex)
|
||||||
if(!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER || effIndex!=0)
|
if(!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER || effIndex!=0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
uint32 spellID = m_spellInfo->EffectBasePoints[0] + 1;
|
uint32 spellID = m_spellInfo->CalculateSimpleValue(0);
|
||||||
uint32 questID = m_spellInfo->EffectBasePoints[1] + 1;
|
uint32 questID = m_spellInfo->CalculateSimpleValue(1);
|
||||||
|
|
||||||
if( ((Player*)unitTarget)->GetQuestStatus(questID) == QUEST_STATUS_COMPLETE && !((Player*)unitTarget)->GetQuestRewardStatus (questID) )
|
if( ((Player*)unitTarget)->GetQuestStatus(questID) == QUEST_STATUS_COMPLETE && !((Player*)unitTarget)->GetQuestRewardStatus (questID) )
|
||||||
unitTarget->CastSpell(unitTarget, spellID, true);
|
unitTarget->CastSpell(unitTarget, spellID, true);
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,8 @@ int32 CompareAuraRanks(uint32 spellId_1, uint32 effIndex_1, uint32 spellId_2, ui
|
||||||
if (spellId_1 == spellId_2) return 0;
|
if (spellId_1 == spellId_2) return 0;
|
||||||
|
|
||||||
int32 diff = spellInfo_1->EffectBasePoints[effIndex_1] - spellInfo_2->EffectBasePoints[effIndex_2];
|
int32 diff = spellInfo_1->EffectBasePoints[effIndex_1] - spellInfo_2->EffectBasePoints[effIndex_2];
|
||||||
if (spellInfo_1->EffectBasePoints[effIndex_1]+1 < 0 && spellInfo_2->EffectBasePoints[effIndex_2]+1 < 0) return -diff;
|
if (spellInfo_1->CalculateSimpleValue(effIndex_1) < 0 && spellInfo_2->CalculateSimpleValue(effIndex_2) < 0)
|
||||||
|
return -diff;
|
||||||
else return diff;
|
else return diff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -339,7 +340,7 @@ bool IsPositiveEffect(uint32 spellId, uint32 effIndex)
|
||||||
case SPELL_AURA_MOD_DAMAGE_DONE: // dependent from bas point sign (negative -> negative)
|
case SPELL_AURA_MOD_DAMAGE_DONE: // dependent from bas point sign (negative -> negative)
|
||||||
case SPELL_AURA_MOD_HEALING_DONE:
|
case SPELL_AURA_MOD_HEALING_DONE:
|
||||||
{
|
{
|
||||||
if(spellproto->EffectBasePoints[effIndex]+int32(spellproto->EffectBaseDice[effIndex]) < 0)
|
if(spellproto->CalculateSimpleValue(effIndex) < 0)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -437,7 +438,7 @@ bool IsPositiveEffect(uint32 spellId, uint32 effIndex)
|
||||||
switch(spellproto->EffectMiscValue[effIndex])
|
switch(spellproto->EffectMiscValue[effIndex])
|
||||||
{
|
{
|
||||||
case SPELLMOD_COST: // dependent from bas point sign (negative -> positive)
|
case SPELLMOD_COST: // dependent from bas point sign (negative -> positive)
|
||||||
if(spellproto->EffectBasePoints[effIndex]+int32(spellproto->EffectBaseDice[effIndex]) > 0)
|
if(spellproto->CalculateSimpleValue(effIndex) > 0)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
@ -445,11 +446,11 @@ bool IsPositiveEffect(uint32 spellId, uint32 effIndex)
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case SPELL_AURA_MOD_HEALING_PCT:
|
case SPELL_AURA_MOD_HEALING_PCT:
|
||||||
if(spellproto->EffectBasePoints[effIndex]+int32(spellproto->EffectBaseDice[effIndex]) < 0)
|
if(spellproto->CalculateSimpleValue(effIndex) < 0)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case SPELL_AURA_MOD_SKILL:
|
case SPELL_AURA_MOD_SKILL:
|
||||||
if(spellproto->EffectBasePoints[effIndex]+int32(spellproto->EffectBaseDice[effIndex]) < 0)
|
if(spellproto->CalculateSimpleValue(effIndex) < 0)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case SPELL_AURA_FORCE_REACTION:
|
case SPELL_AURA_FORCE_REACTION:
|
||||||
|
|
@ -1774,10 +1775,10 @@ void SpellMgr::LoadSpellLearnSkills()
|
||||||
SpellLearnSkillNode dbc_node;
|
SpellLearnSkillNode dbc_node;
|
||||||
dbc_node.skill = entry->EffectMiscValue[i];
|
dbc_node.skill = entry->EffectMiscValue[i];
|
||||||
if ( dbc_node.skill != SKILL_RIDING )
|
if ( dbc_node.skill != SKILL_RIDING )
|
||||||
dbc_node.value = 1;
|
dbc_node.value = 1;
|
||||||
else
|
else
|
||||||
dbc_node.value = (entry->EffectBasePoints[i]+1)*75;
|
dbc_node.value = entry->CalculateSimpleValue(i)*75;
|
||||||
dbc_node.maxvalue = (entry->EffectBasePoints[i]+1)*75;
|
dbc_node.maxvalue = entry->CalculateSimpleValue(i)*75;
|
||||||
|
|
||||||
mSpellLearnSkills[spell] = dbc_node;
|
mSpellLearnSkills[spell] = dbc_node;
|
||||||
++dbc_count;
|
++dbc_count;
|
||||||
|
|
@ -2095,7 +2096,7 @@ void SpellMgr::LoadSpellPetAuras()
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
PetAura pa(pet, aura, spellInfo->EffectImplicitTargetA[i] == TARGET_PET, spellInfo->EffectBasePoints[i] + spellInfo->EffectBaseDice[i]);
|
PetAura pa(pet, aura, spellInfo->EffectImplicitTargetA[i] == TARGET_PET, spellInfo->CalculateSimpleValue(i));
|
||||||
mSpellPetAuraMap[spell] = pa;
|
mSpellPetAuraMap[spell] = pa;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6367,7 +6367,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
|
||||||
}
|
}
|
||||||
// percent stored in effect 1 (class scripts) base points
|
// percent stored in effect 1 (class scripts) base points
|
||||||
int32 cost = originalSpell->manaCost + originalSpell->ManaCostPercentage * GetCreateMana() / 100;
|
int32 cost = originalSpell->manaCost + originalSpell->ManaCostPercentage * GetCreateMana() / 100;
|
||||||
basepoints0 = cost*(auraSpellInfo->EffectBasePoints[1]+1)/100;
|
basepoints0 = cost*auraSpellInfo->CalculateSimpleValue(1)/100;
|
||||||
trigger_spell_id = 20272;
|
trigger_spell_id = 20272;
|
||||||
target = this;
|
target = this;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7582"
|
#define REVISION_NR "7583"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue