[7056] Proc system add

Add use autorepeat flag and set more corect triggers flag for ranged autorepeat spells
Restore work paladin 20210 and ranks after client switch
Add 6-7 scripted paladin shock spell (also add it in dummy and fix flag)
Hidden cooldown and hacky (need more fixes in triggers) fix for 33953
Remove not used code

Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
DiSlord 2009-01-09 00:57:27 +03:00
parent e07baf2914
commit 71b33ca2f1
11 changed files with 67 additions and 41 deletions

View file

@ -5825,8 +5825,8 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
return false;
// procspell is triggered spell but we need mana cost of original casted spell
uint32 originalSpellId = procSpell->Id;
// Holy Shock
if(procSpell->SpellFamilyFlags & 0x00200000)
// Holy Shock heal
if(procSpell->SpellFamilyFlags & 0x0001000000000000LL)
{
switch(procSpell->Id)
{
@ -5835,6 +5835,8 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
case 25903: originalSpellId = 20930; break;
case 27175: originalSpellId = 27174; break;
case 33074: originalSpellId = 33072; break;
case 48820: originalSpellId = 48824; break;
case 48821: originalSpellId = 48825; break;
default:
sLog.outError("Unit::HandleProcTriggerSpell: Spell %u not handled in HShock",procSpell->Id);
return false;
@ -5847,7 +5849,8 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
return false;
}
// percent stored in effect 1 (class scripts) base points
basepoints0 = originalSpell->manaCost*(auraSpellInfo->EffectBasePoints[1]+1)/100;
int32 cost = originalSpell->manaCost + originalSpell->ManaCostPercentage * GetCreateMana() / 100;
basepoints0 = cost*(auraSpellInfo->EffectBasePoints[1]+1)/100;
trigger_spell_id = 20272;
target = this;
}
@ -9816,7 +9819,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
if (procExtra&(PROC_EX_NORMAL_HIT|PROC_EX_MISS|PROC_EX_RESIST))
{
if (pTarget->GetTypeId() != TYPEID_PLAYER && pTarget->GetCreatureType() != CREATURE_TYPE_CRITTER)
((Player*)this)->UpdateCombatSkills(pTarget, attType, MELEE_HIT_MISS, isVictim);
((Player*)this)->UpdateCombatSkills(pTarget, attType, isVictim);
}
// Update defence if player is victim and parry/dodge/block
if (isVictim && procExtra&(PROC_EX_DODGE|PROC_EX_PARRY|PROC_EX_BLOCK))