public static void SendLobbyGoodbyePacket(LobbyGoodbyePacket pkt, [Optional()][DefaultParameterValue(-1)] int connectionId) { MemoryStream m = new MemoryStream(); m.WriteByte(10); LiteNetworking.Networking.localPacketPlayer = LiteNetworking.LobbyConnector.ConvertConnectionToPlayer(connectionId); ConstRefs.mirror_LobbyGoodbyePacket._Serialize(pkt, m); Networking.TransmitPacket(m, connectionId); }
public void MovePlayerToScene(LitePlayer player, int sceneId, WorldLink fromLink, System.Action <WorldChunk> callback = null) { if (!Networking.isServer) { Debug.LogError("Attempt to call server fn on client"); return; } // Remove player from old scene WorldChunk oldChunk = ChunkHandler.i.GetChunk(player.GetChunkId()); oldChunk.connectedPlayers.Remove(player); LobbyGoodbyePacket pkt = new LobbyGoodbyePacket { playerId = player.id }; foreach (LitePlayer plyr in oldChunk.connectedPlayers) { PacketSender.SendLobbyGoodbyePacket(pkt, plyr.GetConnectionId()); } // Add player to new scene WorldChunk chunk = ChunkHandler.i.GetChunkForPlayer(player, sceneId); if (chunk == null) { PrepareSceneForPlayer(player, sceneId, fromLink, chk => { ChunkReady(chk, player); callback?.Invoke(chk); }); } else { ChunkReady(chunk, player); callback?.Invoke(chunk); } }
public void _Deserialize(LobbyGoodbyePacket pkt, MemoryStream m) { pkt.playerId = Data_serializers_const.ser_M_liteIntSerializer.Deserialize(m); }
public void _Serialize(LobbyGoodbyePacket pkt, MemoryStream m) { byte[] playerId = Data_serializers_const.ser_M_liteIntSerializer.Serialize(pkt.playerId); m.Write(playerId, 0, playerId.Length); }