different sticking methods with eq2bot

anongamer

Active Member
Hi,

I was not sure if this should go in the scripts forum or the questions forum, so I am guessing here. Is is possible to specify how you want your bot to stick to a mob during combat? I just started a trio in eq2 and I notice that the two botted chars stick behind the mob during combat and actually stack on one another and perfectly follow the mob as he turns. This would look fishy to me if I was looking at another group. Is it possible to specify the orientation on the mob that the characters should stick to? Maybe a not front option or random option?

Thanks
 

bob_the_builder

Well-Known Member
So specifically yes. You would need to change the script though to do what you wanted.

There are two ways to do this. Either use CheckPosition or change the CastSpellRange

So you can add a "Call CheckPosition 1 0" to the script (see below)

Code:
function CheckPosition(int rangetype, int quadrant, uint TID=${KillTarget},int AbilityID, bool castwhilemoving)
{
	; rangetype (1=close, 2=max range, 3=bow shooting)
	; quadrant (0=anywhere, 1=behind, 2=front, 3=flank, 4=rear or flank, 5=front or flank)
Or change the CastSpellRange for each spell in the Class Routine

Code:
function CastSpellRange(... Args)
{
	;; This format still works.
	;; function CastSpellRange(int start, int finish, int xvar1, int xvar2, uint TargetID, int notall, int refreshtimer, bool castwhilemoving, bool IgnoreMaintained, int CastSpellWhen, bool IgnoreIsReady)

	;; Notes:
	;; - IgnoreMaintained:  If TRUE, then the bot will cast the spell regardless of whether or not it is already being maintained (ie, DoTs)
	;; - If the parameters of this function are altered, then the corresponding function needs to be altered in: Illusionist.iss
	;;
	;;	CastSpellNow changed to CastSpellWhen
	;;	CastSpellWhen:
	;;		0 = Queue Spell
	;;		1 = Cast Immediately
	;;		2 = Cast When Current Queue Complete
	;;;;;;;
Here is further info on how CastSpellRange works:

CastSpellRange 51 55 1 1 ${KillTarget} 1 0 1

51 is the first spell in the range to cast
55 is the last spell in the range to cast
1 is move to melee range
1 is get behind the mob
${KillTarget} is the ID of the mob to cast this on
1 means only cast one spell from the range, ie cast the first one that is ready
0 means don't cast if refresh timer (not really used)
1 means this spell can be cast while moving to position. (combat art)
So if you just want the mob to move anywhere close to melee range browse through the Class Routine and make sure CastSpellRange is set as:

CastSpellRange ${SpellName} 1 0 ${KillTarget}

See the "0" in there? That makes the bot be "anywhere".

This make sense?
 
Top Bottom