//This must be an event to stay in the correct context! void Player::EventClusterMapChange(uint32 mapid, uint32 instanceid, LocationVector location) { WorldPacket data; uint32 status = sInstanceMgr.PreTeleport(mapid, this, instanceid); if(status != INSTANCE_OK) { data.Initialize(SMSG_TRANSFER_ABORTED); data << mapid << status; GetSession()->SendPacket(&data); return; } if(instanceid) m_instanceId = instanceid; if(IsInWorld()) RemoveFromWorld(); data.Initialize(SMSG_NEW_WORLD); data << (uint32)mapid << location << location.o; GetSession()->SendPacket( &data ); SetMapId(mapid); SetPlayerStatus(TRANSFER_PENDING); m_sentTeleportPosition = location; SetPosition(location); ResetHeartbeatCoords(); z_axisposition = 0.0f; }
void MainInterface::PlayerStartCallingLord() { SetPlayerStatus(m_gameprocess->getCurrentPlayer(),Player::waitingCallingLord); m_gameprocess->getCurrentPlayer()->beginCallingLord(); }