Index: MovementHandler.cpp =================================================================== --- MovementHandler.cpp (revision 1938) +++ MovementHandler.cpp (working copy) @@ -185,15 +185,21 @@ move_time = (movement_info.time - (mstime - m_clientTimeDelay)) + MOVEMENT_PACKET_TIME_DELAY + mstime; memcpy(&movement_packet[pos], recv_data.contents(), recv_data.size()); + + WorldPacket * send_data = new WorldPacket(recv_data.GetOpcode(), recv_data.size() + pos); + send_data->append(movement_packet, recv_data.size() + pos); + _player->GetGroup()->SendPacketToAllButOne(send_data, _player); + for(set::iterator itr = _player->m_inRangePlayers.begin(); itr != _player->m_inRangePlayers.end(); ++itr) + if(!GetPlayer()->GetGroup()->HasMember(*itr)) { #ifdef USING_BIG_ENDIAN *(uint32*)&movement_packet[pos+4] = swap32(move_time + (*itr)->GetSession()->m_moveDelayTime); #else *(uint32*)&movement_packet[pos+4] = uint32(move_time + (*itr)->GetSession()->m_moveDelayTime); #endif - (*itr)->GetSession()->OutPacket(recv_data.GetOpcode(), recv_data.size() + pos, movement_packet); + (*itr)->GetSession()->SendPacket(send_data); } //Falling Handler