Very simple implementation of Sneak Pull

This commit is contained in:
Noudess 2021-02-09 08:31:35 -05:00
parent 10ffcf155d
commit b2e4e91fbd
2 changed files with 14 additions and 1 deletions

View File

@ -501,6 +501,7 @@ RULE_INT(Combat, LevelToStopACTwinkControl, 50, "Level to stop armorclass twink
RULE_BOOL(Combat, ClassicNPCBackstab, false, "True disables NPC facestab - NPC get normal attack if not behind")
RULE_BOOL(Combat, UseNPCDamageClassLevelMods, true, "Uses GetClassLevelDamageMod calc in npc_scale_manager")
RULE_BOOL(Combat, UseExtendedPoisonProcs, false, "Allow old school poisons to last until characrer zones, at a lower proc rate")
RULE_BOOL(Combat, EnableSneakPull, false, "Enable implementation of Sneak Pull")
RULE_CATEGORY_END()
RULE_CATEGORY(NPC)

View File

@ -3239,6 +3239,18 @@ void NPC::AIYellForHelp(Mob *sender, Mob *attacker)
}
float assist_range = (mob->GetAssistRange() * mob->GetAssistRange());
if (RuleB(Combat, EnableSneakPull) && attacker->sneaking) {
assist_range=(20*20);
if (attacker->IsClient()) {
float clientx=attacker->GetX();
float clienty=attacker->GetY();
if (attacker->CastToClient()->BehindMob(mob, clientx, clienty)) {
assist_range = 0;
}
}
}
if (distance > assist_range) {
continue;
}