Hi guys,
I'm new and getting pretty frustrated at the mob issues with them getting stuck. I decided to download the source and see if I could help any. If I'm completely off base, just ignore. I don't know how much time I have to help out, but I may try and download the full source and get a server going to test it. I really can't commit, but if I can find anything obvious, I'll post. Here are a few thoughts:
In the npcclient directory, the NPC::CheckPosition() method, it says right in the front comment that the position only needs to be checked once. If I interpret that right, I would disagree with that. It needs to be checked every time an NPC moves. I don't see any other way to reset the mob. If they got stuck, they would be stuck forever if I'm reading it right. I don't see any reset code in the GEM or NPC logic other than in this method. The only other way I saw to reset that condition was with an NPC::ClearState command, but again, I don't see it called anywhere other than the destructor. Maybe it's being called from somewhere outside the GEM and NPC handlers?
Now, I don't much about CS, so maybe there is something that you are expecting it to do through a callback?
One other thing I noticed. In gemActor::MoveToValidPosition, there is some code that stops a falling entity from /unsticking itself, assuming that a PC will be able to do that. Could that be blocking things since NPC's can't do an /unstick? Just a thought.