What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

.Face() speed

kermzu

New Member
Joined
Aug 17, 2011
Messages
16
Reaction score
0
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?
 
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. :D


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
 
Thanks for the good response. The targeting speed in my CR seems to be fine - if all mobs are in front of me or only slightly off to the side the CR is very fast, and I can usually keep everything in front of me. However for example on Tortos, frequently I have targets in front of and directly behind me. I prioritize targets in my field of view first, which is fast - but when the next target is behind me, it is like HB is using the A and D keys to rotate me around which takes a while compared to mouselook where I can almost instantly face 180.

I will start caching targets and see how much it helps, I am using ObjectManager.GetObjectsOfType() frequently

Thanks
 
Thanks for the good response. The targeting speed in my CR seems to be fine - if all mobs are in front of me or only slightly off to the side the CR is very fast, and I can usually keep everything in front of me. However for example on Tortos, frequently I have targets in front of and directly behind me. I prioritize targets in my field of view first, which is fast - but when the next target is behind me, it is like HB is using the A and D keys to rotate me around which takes a while compared to mouselook where I can almost instantly face 180.

I will start caching targets and see how much it helps, I am using ObjectManager.GetObjectsOfType() frequently

Thanks

The Face() call is instant. (Well, as "instant" as your lag)

You may be seeing a graphical glitch or something, because we directly send a new heading immediately (and you actually are facing that direction soon after). Sometimes, high lag can cause it to take longer, but that's just an artifact of the network code in WoW. Nothing we can do about that.

Whether you're facing 2deg to the left/right, or 180 behind you, the facing speed is the exact same. (We don't, and never will, use the mouse to turn)
 
The Face() call is instant. (Well, as "instant" as your lag)

You may be seeing a graphical glitch or something, because we directly send a new heading immediately (and you actually are facing that direction soon after). Sometimes, high lag can cause it to take longer, but that's just an artifact of the network code in WoW. Nothing we can do about that.

Whether you're facing 2deg to the left/right, or 180 behind you, the facing speed is the exact same. (We don't, and never will, use the mouse to turn)


Thanks for the clarification
 
Few tips on multidotting:

Most dots dont need you to face.
Priorities targets you are already facing
use your gcd for face()
 
Last edited:
Back
Top