mackal

stun aggro

Jan 25th, 2013
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.22 KB | None | 0 0
  1. Index: EQEmuServer/zone/aggro.cpp
  2. ===================================================================
  3. --- EQEmuServer/zone/aggro.cpp  (revision 2449)
  4. +++ EQEmuServer/zone/aggro.cpp  (working copy)
  5. @@ -1120,7 +1120,7 @@
  6.  }
  7.  
  8.  //offensive spell aggro
  9. -int32 Mob::CheckAggroAmount(uint16 spellid) {
  10. +int32 Mob::CheckAggroAmount(uint16 spellid, bool isproc) {
  11.     uint16 spell_id = spellid;
  12.     int32 AggroAmount = 0;
  13.     int32 nonModifiedAggro = 0;
  14. @@ -1155,7 +1155,10 @@
  15.                 break;
  16.             }
  17.             case SE_Stun: {
  18. -               AggroAmount += (5 + ((slevel * slevel) / 6));
  19. +               int val = (5 + ((slevel * slevel) / 6));
  20. +               if (isproc && RuleI(Aggro,MaxStunProcAggro) > -1 && (val > RuleI(Aggro,MaxStunProcAggro)))
  21. +                   val = RuleI(Aggro,MaxStunProcAggro);
  22. +               AggroAmount += val;
  23.                 break;
  24.             }
  25.             case SE_Blind: {
  26. Index: EQEmuServer/zone/mob.h
  27. ===================================================================
  28. --- EQEmuServer/zone/mob.h  (revision 2449)
  29. +++ EQEmuServer/zone/mob.h  (working copy)
  30. @@ -1200,7 +1200,7 @@
  31.     bool    Charmed() const { return charmed; }
  32.     static uint32   GetLevelHP(uint8 tlevel);
  33.     uint32  GetZoneID() const;  //for perl
  34. -   virtual int32 CheckAggroAmount(uint16 spellid);
  35. +   virtual int32 CheckAggroAmount(uint16 spellid, bool isproc = false);
  36.     virtual int32 CheckHealAggroAmount(uint16 spellid, uint32 heal_possible = 0);
  37.     virtual uint32 GetAA(uint32 aa_id) const { return(0); }
  38.  
  39. Index: EQEmuServer/zone/spells.cpp
  40. ===================================================================
  41. --- EQEmuServer/zone/spells.cpp (revision 2449)
  42. +++ EQEmuServer/zone/spells.cpp (working copy)
  43. @@ -3413,12 +3413,7 @@
  44.     }
  45.  
  46.     if (spelltar->IsAIControlled() && IsDetrimentalSpell(spell_id) && !IsHarmonySpell(spell_id)) {
  47. -       int32 aggro_amount = CheckAggroAmount(spell_id);
  48. -       if (isproc && IsEffectInSpell(spell_id, SE_Stun) && RuleI(Aggro,MaxStunProcAggro) > -1) {
  49. -           if (aggro_amount > RuleI(Aggro,MaxStunProcAggro)) {
  50. -               aggro_amount = RuleI(Aggro,MaxStunProcAggro);
  51. -           }
  52. -       }
  53. +       int32 aggro_amount = CheckAggroAmount(spell_id, isproc);
  54.         mlog(SPELLS__CASTING, "Spell %d cast on %s generated %d hate", spell_id, spelltar->GetName(), aggro_amount);
  55.         if(aggro_amount > 0)
  56.             spelltar->AddToHateList(this, aggro_amount);
Advertisement
Add Comment
Please, Sign In to add comment