WoW API: IsActionInRange
Test whether an action is in range for use.
inRange = IsActionInRange(actionSlot);
- Numeric - The action slot to test.
- Flag - nil if the slot has no action or if there is no current target. 0 if the action is out of range, and 1 if the action is in range. Note that it always returns 1 if range does not apply to this action or if you can't use the spell on the target.
If you need more performance than target switching and checking with IsActionInRange provides then check out CheckInteractDistance. It has certain limits and will not work for all ranges, but it is several orders of magnitude faster than target switching/scanning.