Hi,
As everyone should know, there is no client-side logic for checking line of sight (break in Spell_C_Failed() when the third argument is 49, which is an id for a localized error message, from there you can see the stack trace).
That's why I'm playing around with WorldMap::Intersect and a unit's (collision) height to get los checks right.
As long as my toon is a night elf and my target is a standard unit (with a model height of ~2.07), using the obligatory 2 yards z offset which is used by caytchen in cleanCore and in every emu I check so far, it works pretty well.
However, if I log in as a gnome, my los checks are not adequate, i.e. if I target those lepra (or w/e) gnomes in the very first area from downstairs, it returns true every time although I actually fail to cast anything.
Even when I replace those 2 yards by the actual collision height ([CMovement* + 0xD0] currently), it still fails.
For scale factors like 4/5 of my own height and 3/5 of the targets height I get accurate results for a gnome, but those factors don't work on night elves.
So has anyone of you more sufficient values at hand or do you check for spell errors?