I have seen a few complaints about movegrp not moving the requesting character. Well here is why
Zone\groups.cpp
	Code:
	void Group::TeleportGroup(Mob* sender, int32 zoneID, float x, float y, float z, float heading)
{
	uint32 i;
	 for (i = 0; i < MAX_GROUP_MEMBERS; i++)
	 {
	 #ifdef IPC
		if (members[i] != NULL && (members[i]->IsClient() || (members[i]->IsNPC() && members[i]->CastToNPC()->IsInteractive())) && members[i] != sender)
	 #else
		  if (members[i] != NULL && members[i]->IsClient() && members[i] != sender)
	 #endif
	 	{
			members[i]->CastToClient()->MovePC(int(zoneID), x, y, z, heading, 0, ZoneSolicited);
		}
	}	
}
 The code in red causes the requester to be skipped. (members[i] != sender)
This function appears to only be used twice in the code.
By QuestManager::movegrp in questmgr.cpp and XS(XS_Group_TeleportGroup) in perl_groups.cpp
I do not know where XS_Group_TeleportGroup is used. Can someone enlighten me before I remove (members[i] != sender) and break something?
Also what is IPC? I did not see any reference to it in my source.