Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: EQEmuServer/zone/aggro.cpp
- ===================================================================
- --- EQEmuServer/zone/aggro.cpp (revision 2449)
- +++ EQEmuServer/zone/aggro.cpp (working copy)
- @@ -1120,7 +1120,7 @@
- }
- //offensive spell aggro
- -int32 Mob::CheckAggroAmount(uint16 spellid) {
- +int32 Mob::CheckAggroAmount(uint16 spellid, bool isproc) {
- uint16 spell_id = spellid;
- int32 AggroAmount = 0;
- int32 nonModifiedAggro = 0;
- @@ -1155,7 +1155,10 @@
- break;
- }
- case SE_Stun: {
- - AggroAmount += (5 + ((slevel * slevel) / 6));
- + int val = (5 + ((slevel * slevel) / 6));
- + if (isproc && RuleI(Aggro,MaxStunProcAggro) > -1 && (val > RuleI(Aggro,MaxStunProcAggro)))
- + val = RuleI(Aggro,MaxStunProcAggro);
- + AggroAmount += val;
- break;
- }
- case SE_Blind: {
- Index: EQEmuServer/zone/mob.h
- ===================================================================
- --- EQEmuServer/zone/mob.h (revision 2449)
- +++ EQEmuServer/zone/mob.h (working copy)
- @@ -1200,7 +1200,7 @@
- bool Charmed() const { return charmed; }
- static uint32 GetLevelHP(uint8 tlevel);
- uint32 GetZoneID() const; //for perl
- - virtual int32 CheckAggroAmount(uint16 spellid);
- + virtual int32 CheckAggroAmount(uint16 spellid, bool isproc = false);
- virtual int32 CheckHealAggroAmount(uint16 spellid, uint32 heal_possible = 0);
- virtual uint32 GetAA(uint32 aa_id) const { return(0); }
- Index: EQEmuServer/zone/spells.cpp
- ===================================================================
- --- EQEmuServer/zone/spells.cpp (revision 2449)
- +++ EQEmuServer/zone/spells.cpp (working copy)
- @@ -3413,12 +3413,7 @@
- }
- if (spelltar->IsAIControlled() && IsDetrimentalSpell(spell_id) && !IsHarmonySpell(spell_id)) {
- - int32 aggro_amount = CheckAggroAmount(spell_id);
- - if (isproc && IsEffectInSpell(spell_id, SE_Stun) && RuleI(Aggro,MaxStunProcAggro) > -1) {
- - if (aggro_amount > RuleI(Aggro,MaxStunProcAggro)) {
- - aggro_amount = RuleI(Aggro,MaxStunProcAggro);
- - }
- - }
- + int32 aggro_amount = CheckAggroAmount(spell_id, isproc);
- mlog(SPELLS__CASTING, "Spell %d cast on %s generated %d hate", spell_id, spelltar->GetName(), aggro_amount);
- if(aggro_amount > 0)
- spelltar->AddToHateList(this, aggro_amount);
Advertisement
Add Comment
Please, Sign In to add comment