mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
Fix.
This commit is contained in:
parent
247cf8e9b2
commit
4234c685b8
1 changed files with 9 additions and 15 deletions
|
|
@ -1129,13 +1129,13 @@ void Unit::CastCustomSpell(Unit* Victim,SpellEntry const *spellInfo, int32 const
|
|||
Spell *spell = new Spell(this, spellInfo, triggered, originalCaster);
|
||||
|
||||
if(bp0)
|
||||
spell->m_currentBasePoints[EFFECT_INDEX_0] = *bp0-int32(1);
|
||||
spell->m_currentBasePoints[EFFECT_INDEX_0] = *bp0;
|
||||
|
||||
if(bp1)
|
||||
spell->m_currentBasePoints[EFFECT_INDEX_1] = *bp1-int32(1);
|
||||
spell->m_currentBasePoints[EFFECT_INDEX_1] = *bp1;
|
||||
|
||||
if(bp2)
|
||||
spell->m_currentBasePoints[EFFECT_INDEX_2] = *bp2-int32(1);
|
||||
spell->m_currentBasePoints[EFFECT_INDEX_2] = *bp2;
|
||||
|
||||
SpellCastTargets targets;
|
||||
targets.setUnitTarget( Victim );
|
||||
|
|
@ -11246,34 +11246,28 @@ int32 Unit::CalculateSpellDamage(SpellEntry const* spellProto, SpellEffectIndex
|
|||
level-= (int32)spellProto->spellLevel;
|
||||
|
||||
float basePointsPerLevel = spellProto->EffectRealPointsPerLevel[effect_index];
|
||||
float randomPointsPerLevel = 1;
|
||||
int32 basePoints = int32(effBasePoints + level * basePointsPerLevel);
|
||||
int32 randomPoints = int32(spellProto->EffectDieSides[effect_index] + level * randomPointsPerLevel);
|
||||
int32 randomPoints = int32(spellProto->EffectDieSides[effect_index]);
|
||||
float comboDamage = spellProto->EffectPointsPerComboPoint[effect_index];
|
||||
|
||||
// range can have possitive and negative values, so order its for irand
|
||||
int32 randvalue = int32(1) >= randomPoints
|
||||
? irand(randomPoints, int32(1))
|
||||
: irand(int32(1), randomPoints);
|
||||
|
||||
int32 value = basePoints + randvalue;
|
||||
int32 value = basePoints + 1;
|
||||
//random damage
|
||||
if(comboDamage != 0 && unitPlayer && target && (target->GetGUID() == unitPlayer->GetComboTarget()))
|
||||
value += (int32)(comboDamage * comboPoints);
|
||||
|
||||
if(Player* modOwner = GetSpellModOwner())
|
||||
{
|
||||
modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_ALL_EFFECTS, value);
|
||||
modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_ALL_EFFECTS, value);
|
||||
switch(effect_index)
|
||||
{
|
||||
case 0:
|
||||
modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_EFFECT1, value);
|
||||
modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_EFFECT1, value);
|
||||
break;
|
||||
case 1:
|
||||
modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_EFFECT2, value);
|
||||
modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_EFFECT2, value);
|
||||
break;
|
||||
case 2:
|
||||
modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_EFFECT3, value);
|
||||
modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_EFFECT3, value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue