Now I'm trying to hack UltraBot, so I can use it in this semi-automated way.
Never done any XUnleashed scripting - is there a forum for people *writing* scripts? Maybe I'm just blind, but I couldn't find one...
Anyway, I set to false Hunting & Harvesting. And no way points, so no automated motion.
My first problem is that the Main Loop is running so many times a second, that my computer is essentially locked up, creating a massive debug file.
Guess I try adding a wait to the Main Loop somewhere.
Added to just before end of main loop:
. Pause(100);
Result: Now does a reasonable number of loops per second.
However, status window says ***buffing up***, and every Main Loop in debug says
. DoNextSequence[BuffSequence] is not active yet
I have ~ in Buff Sequence str. Guess I need to put in a real sequence here.
No, that doesn't help. Hmm. It seems that an OFFENSIVE bot with Hunting & Harvesting both off, Fight Back is never checked?
(Minor irritation: if I stop UltraBot, then start it again, it starts a new log file -- but application is still holding a pointer to old log file, so can't view it in a text editor without quitting EQ2. Or maybe this is a bug in XUnleashed or EQ2Service?)
*** Found the problem: OFFENSIVE bot isn't designed to be used with nothing to do - since I"ve got it NOT {Hunting, Harvesting,moving} - it was never doing a PauseWithCheckForAdd(..).
Would be good to add a case that handles this, as the result appears to be a locked script, while the main loop spits debug messages furiously.
Basically should act like a BUFFBOT in this case - Fight Back if attacked, otherwise not initiating anything.
Hmm. So maybe I should be using BUFFBOT.
Trying that. Again, with Hunt=False, Harvest=False, no waypoints, no one to follow.
Result: Nope, still doesn't fight back. Even tho window shows
MODE: FIGHT BACK,
the Status line is just idling waiting for a request.
While idling, doesn't seem to be checking whether being attacked!
Back to OFFENSIVE mode. Hacked in just before end of main loop:
PauseWithCheckForAdd(0.1)
Now it works great

My do-nothing character will defend itself if attacked.
The rest of the time, I just control it manually.
If I want to provoke an attack, I taunt.
I don't know if that was the best place to have added that line of code...
It doesn't attempt to loot in this case.
Which reminds me: looting distance was shortened in LU20; looting may fail.