mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 22:58:34 +00:00
Fix NPC rampage to be more in-line with live
New rules: RuleI: Combat, DefaultRampageTargets Set to 1 If the specatk db entry has no extra param it will use this RuleB: Combat, RampageHitsTargets Defaults to false If true, if number hit is still less than RampageTargets, try tank If you want the old behavior still set DefaultRampageTargets to 3 and RampageHitsTargets to true
This commit is contained in:
+5
-2
@@ -2015,7 +2015,10 @@ bool Mob::Rampage(ExtraAttackOptions *opts)
|
||||
entity_list.MessageClose_StringID(this, true, 200, MT_PetFlurry, NPC_RAMPAGE, GetCleanName());
|
||||
|
||||
int rampage_targets = GetSpecialAbilityParam(SPECATK_RAMPAGE, 1);
|
||||
rampage_targets = rampage_targets > 0 ? rampage_targets : RuleI(Combat, MaxRampageTargets);
|
||||
if (rampage_targets == 0) // if set to 0 or not set in the DB
|
||||
rampage_targets = RuleI(Combat, DefaultRampageTargets);
|
||||
if (rampage_targets > RuleI(Combat, MaxRampageTargets))
|
||||
rampage_targets = RuleI(Combat, MaxRampageTargets);
|
||||
for (int i = 0; i < RampageArray.size(); i++) {
|
||||
if (index_hit >= rampage_targets)
|
||||
break;
|
||||
@@ -2031,7 +2034,7 @@ bool Mob::Rampage(ExtraAttackOptions *opts)
|
||||
}
|
||||
}
|
||||
|
||||
if (index_hit < rampage_targets)
|
||||
if (RuleB(Combat, RampageHitsTarget) && index_hit < rampage_targets)
|
||||
Attack(GetTarget(), 13, false, false, false, opts);
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user