Is there a faster method of facing a target than using .Face()? It's very slow especially when multidotting - is there some way to hook the mouse?
Hi,
Kermzu,
From my experience,
WoWUnit.Face() or
LocalPlayer.SetFacing() are
very fast. The time lost is usually an issue with target selection. Cruises through
ObjectManager.GetObjectOfType() are
very expensive. I would definitely look at any way to speed up target selection first.
For instance, make all your selections in one pass of
GetObjectOfType(), and place the elements into a list via
.ToList(). The process the created list in your routine. Keep using this list until all the targets on the list are dead, then refresh it again with
GetObjectOfType(). This is a form of caching, and there are many ways to optimize it, or make it better--I'll leave that up to you.
The other thing it could be (but I
seriously doubt it)...
is bandwidth limitations on the WoWclient interface. Most Combat Routine address this limitation by using 'frame locking' techniques. To see how this is done, I'd pull up Singular or BGBuddy code and start looking for things like this to study:
using (StyxWoW.Memory.AcquireFrame())
{
// ...whatever...
}
You should be aware that many HB API calls are not safe to call from within a frame lock, and this is not documented anywhere--its a "try it and see" exercise. When this happens, HB usually just "locks up", and you have to kill it and restart.
If you have further questions about this, you should follow up to the
Developer Forum, and hope knowledgeable people will respond. The developers that can answer frame lock questions authoritatively are few.
cheers,
chinajade