Thread: Bot AI Re-work
View Single Post
  #1  
Old 01-31-2018, 09:05 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default Bot AI Re-work

The bot ai processing code was horrifically out-of-date...

It has been re-worked to take advantage of the recent changes in positional updating.

The end result is that bots have a more 'natural' look about them - or as natural as can be had in the current environment.


In addition, several 'features' have been added.


Bot Leashing

Bots will now be limited to how far they can travel - both in- and out- of combat.

They will also have a 'leash owner.' This owner is determined by the group they belong to. Any bot in a group whose leader is a client, that
client becomes the leash owner. If a non-client is assigned as group leader, the leash owner defaults to the bot's owner. All limitations are
based on this secondary owner.

Combat will break, regardless of hate, if either the target gets too far away from the bot or if the bot gets too far away from its leash owner.


Main Assist

Bots will now obey the targeting of a 'main assist' - if one exists.

To set this, just assign the role of 'Main Assist' to one of your group members. This only applies to groups that contain clients. 'Botgroup'
groups do not yet have this functionality - even if their owner has assigned it in their own group.


Combat Abort

Combat may now be aborted if the owner turns off auto-attack. This only applies if the target contains no hate for both the bot and owner. Each
bot must be processed, so aggro may be returned if hate is discovered during the abort process.

Line-of-sight issues will also cancel combat (until LoS is re-acquired) if both the bot and owner lose sight of the target.


Combat Jitter

In addition to the existing 'rogue' jitter code, new conditionals exist for non-'rogue' classes.

Melee classes will 'randomly' adjust themselves on an arc around their target.

Melee and caster classes both have 'back-off' code based on their combat range.

All jitter code is dependent on the bot not being the target of their target (!HasTargetReflection().) So, a summoned bot will adjust their distance
once they are able to.


These are 'rc' changes, so please report any issues.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote