This site works best with JavaScript enabled. Please enable JavaScript to get the best experience from this site.
I did some debugging on my out-of-range-but-healable-player issue and I discovered the following.
GridRange.lua have the function:local function checkRange40(unit) return UnitInRange(unit)end
However UnitInRange(unit) isn't really set to 40y. Instead is set to 38y. Don't ask me why, but in wow 3.3.0 is it in that way.
The solution is straightforward:GridRange.lua, line 58:change "local function checkRange40(unit)" to "local function checkRange38(unit)" (just 'cuz I love to be consistent)
andGridRange.lua, line 70:change "addRange(40, checkRange40)" to addRange(38, checkRange38)
After this change the range for 40y will be correctly set by spells in your spellbook, so if a player will be grayed out it's cuz he/she is *really* out of range.
Cheers,
Arzach
This has been changed several times already (see rev269 for the latest, but rev239 is also concerned).
The issue is mostly related to classes which do not have 40 yeard friendly targettable spells (no heal). They don't have a strict 40 yard check, only the "nearly 40 so let's say 38" yard check that is UnitInRange() as provided by Blizzard.
UnitInRange() is the API provided for this specific purpose by Blizzard and uses 38 yards for some unexplained reason but I don't think it's unintended. Grid2 does the same here.
I agree, but for the same unexplained reason the "40yd" as it is isn't reliable.
Let me rephrase. I'm a druid, and I've tested on a druid, tree spec. Now, I'd like to have a reliable 40y (i.e., in range of my heals) indicator. As it is right now it shows 38yd, and my "real" 40yd range spells aren't used since there is already a 40yd check in the range list.
When GridRange scans my spellbook it will find a lot of useful 40yd range spells to use, but since it already have an hardcoded "reliable" 40yd range check, it will not update the range checks, so it will be stuck with sucky Blizzard idea of "38yd is about 40yd".
An alternative solution is to change the logic of addRange(range, check), so instead of keeping the first range spell available, it will overwrite the range checker.
Doing so you'll be able to classify sucky Blizz range check to "40", but for those having a true 40y spell, the latter will be used for range check.
Cheers, Arz
Ok, I logged my warrior and I've seen the light. Well, not the light maybe but an issue that would arise if my original proposal is used. The warrior doesn't have a 40yd range spell (ofc), so there's only the sucky Blizz one. However Grid2 doesn't have per-char settings, so everyone is looking for a 40yd range spell, but on warrior there's no 40yd range spell, so... 476 errors in 3 minutes, might be a record.
Change reverted and switched lines 46 and 47 in GridRange.lua. Now it's:
local function addRange(range, check) -- 100 yards is the farthest possible range if range > 100 then return end if not checks[range] then ranges[#ranges + 1] = range table.sort(ranges) end checks[range] = check end
Fixed in rev299.
I changed the behavior of GridRange:GetRangeCheck() so that it returns a check for a closer range if the requested distance is not available.
To post a comment, please login or register a new account.