I created a bloodmoon.map with all objects included, i.e. this line in my azone.ini:
Code:
bloodmoon.eqg,1,2,3,4,5,6,7,8,9, etc. up to 230
and all the walls are present.
You can confirm if your map is good, by issuing the GM command #bestz at the location you are standing, then move to where the mob is and issuing #bestz again.
If you get a response that says 'Z is n1 or n2 at (x, y)' for both locations, then your map is OK. If you get a message saying 'unable to find node' or 'Found no Z', your map is bad.
Assuming your map is good, then you may be running into a long standing flaw with the LoS code that only checks for obstructions in the node you and the target are in, but not in any intervening nodes.
The newer pathing code checks all intervening nodes, but the older code used for aggro and the #los command calls this method in zone/aggro.cpp:
Code:
bool Mob::CheckLosFN(float posX, float posY, float posZ, float mobSize)
which has the flaw I mentioned.