public void Deserialize(NetDataReader reader) { PlayerId = reader.GetByte(); Metadata = reader.Get <PlayerMetadata>(); PlayerState = reader.Get <PlayerState>(); NetworkObjectState = reader.Get <NetworkObjectState>(); }
public void Deserialize(NetDataReader reader) { ID = reader.GetKey32(); Secret = reader.GetJoinSecret(); MaxSize = reader.GetByte(); Level = reader.Get <LevelChangeMessage>(); Players = new PlayerJoinMessage[reader.GetByte()]; for (var i = 0; i < Players.Length; ++i) { Players[i] = reader.Get <PlayerJoinMessage>(); } }
public static void LoadServerData() { string path = GameConfig.gameSaveFolder + DSPGame.LoadFile + FILE_EXTENSION; PlayerManager playerManager = MultiplayerHostSession.Instance.PlayerManager; if (!File.Exists(path) || playerManager == null) { return; } byte[] source = File.ReadAllBytes(path); NetDataReader netDataReader = new NetDataReader(source); int playerNum = netDataReader.GetInt(); using (playerManager.GetSavedPlayerData(out var savedPlayerData)) { for (int i = 0; i < playerNum; i++) { string hash = netDataReader.GetString(); PlayerData playerData = netDataReader.Get <PlayerData>(); if (!savedPlayerData.ContainsKey(hash)) { savedPlayerData.Add(hash, playerData); } } } }
public void Deserialize(NetDataReader reader) { Error = reader.GetString(); Success = reader.GetByte(); ArmyId = reader.GetInt(); Destination = reader.Get <Coord>(); }
public void Deserialize(NetDataReader reader) { var playerCount = reader.GetByte(); Players = new Dictionary <byte, Timestamped <PlayerTransformsMessage> >(playerCount); for (var i = 0; i < playerCount; ++i) { Players.Add(reader.GetByte(), reader.Get <Timestamped <PlayerTransformsMessage> >()); } }
public static T[] GetArray <T>(this NetDataReader reader) where T : INetSerializable, new() { var len = reader.GetUShort(); var array = new T[len]; for (int i = 0; i < len; i++) { array[i] = reader.Get <T>(); } return(array); }
public static bool TryGet <TMessage>(this NetDataReader @this, out TMessage value) where TMessage : INetSerializable, new() { try { value = @this.Get <TMessage>(); } catch { value = default; return(false); } return(true); }
public void Deserialize(NetDataReader reader) { BattleId = Guid.Parse(reader.GetString()); CurrentArmyId = reader.GetInt(); CurrentUnitId = reader.GetInt(); var armiesLength = reader.GetUShort(); Armies = new ArmyParams[armiesLength]; for (int i = 0; i < armiesLength; i++) { Armies[i] = reader.Get <ArmyParams>(); } GameId = reader.GetInt(); GameString = reader.GetString(); }
private void OnUpdatePlayerInfo(UpdatePlayerInfoPacket packet, NetPeer peer) { if (!Servers.TryGetValue(peer, out NPServer server)) { return; } if (!server.PlayersDictionary.ContainsKey(packet.UserID)) { server.PlayersDictionary.Add(packet.UserID, new NPPlayer(server, packet.UserID)); } if (!server.PlayersDictionary.TryGetValue(packet.UserID, out NPPlayer player)) { return; } NetDataReader reader = new NetDataReader(packet.Data); switch ((PlayerDataType)packet.Type) { case PlayerDataType.Nickname: player.Nickname = reader.GetString(); break; case PlayerDataType.Role: player.Role = (PlayerRole)reader.GetUShort(); break; case PlayerDataType.DoNotTrack: player.DoNotTrack = reader.GetBool(); break; case PlayerDataType.RemoteAdminAccess: player.RemoteAdminAccess = reader.GetBool(); break; case PlayerDataType.Overwatch: player.IsOverwatchEnabled = reader.GetBool(); break; case PlayerDataType.IPAddress: player.IPAddress = reader.GetString(); break; case PlayerDataType.Mute: player.IsMuted = reader.GetBool(); break; case PlayerDataType.IntercomMute: player.IsIntercomMuted = reader.GetBool(); break; case PlayerDataType.Godmode: player.IsGodModeEnabled = reader.GetBool(); break; case PlayerDataType.Health: player.Health = reader.GetFloat(); break; case PlayerDataType.MaxHealth: player.MaxHealth = reader.GetInt(); break; case PlayerDataType.GroupName: player.GroupName = reader.GetString(); break; case PlayerDataType.RankColor: player.RankColor = reader.GetString(); break; case PlayerDataType.RankName: player.RankName = reader.GetString(); break; case PlayerDataType.Position: player.Position = reader.Get <Position>(); break; case PlayerDataType.Rotation: player.Rotation = reader.Get <Rotation>(); break; case PlayerDataType.PlayerID: player.PlayerID = reader.GetInt(); break; } }
public void Deserialize(NetDataReader reader) { ID = reader.GetByte(); Transforms = reader.Get <Timestamped <PlayerTransformsMessage> >(); }
public void Deserialize(NetDataReader reader) { Item = reader.Get <TransformMessage>(); }
public void Deserialize(NetDataReader reader) { ArmyId = reader.GetInt(); Destination = reader.Get <Coord>(); }
public void Deserialize(NetDataReader reader) { Timestamp = reader.GetDouble(); Content = reader.Get <TContent>(); }
public void Deserialize(NetDataReader reader) { Head = reader.Get <TransformMessage>(); HandLeft = reader.Get <TransformMessage>(); HandRight = reader.Get <TransformMessage>(); }
public static void LoadServerData() { string path = GameConfig.gameSaveFolder + DSPGame.LoadFile + FILE_EXTENSION; IPlayerManager playerManager = Multiplayer.Session.Network.PlayerManager; if (!File.Exists(path) || playerManager == null) { return; } byte[] source = File.ReadAllBytes(path); NetDataReader netDataReader = new NetDataReader(source); ushort revision = 0; try { string revString = netDataReader.GetString(); if (revString != "REV") { throw new System.Exception(); } revision = netDataReader.GetUShort(); Log.Info($"Loading server data, revision {revision}"); if (revision != REVISION) { // Supported revision: 4~6 if (revision < 4 || revision > REVISION) { throw new System.Exception(); } } } catch (System.Exception) { Log.Warn("Skipping server data from unsupported Nebula version..."); return; } int playerNum = netDataReader.GetInt(); using (playerManager.GetSavedPlayerData(out Dictionary <string, IPlayerData> savedPlayerData)) { for (int i = 0; i < playerNum; i++) { string hash = netDataReader.GetString(); PlayerData playerData = null; if (revision == REVISION) { playerData = netDataReader.Get <PlayerData>(); } else if (revision == 4) { playerData = new PlayerData(); playerData.Deserialize_4(netDataReader); } else if (revision == 5) { playerData = new PlayerData(); playerData.Deserialize_5(netDataReader); } if (!savedPlayerData.ContainsKey(hash) && playerData != null) { savedPlayerData.Add(hash, playerData); } else if (playerData == null) { Log.Warn($"could not load player data from unsupported save file revision {revision}"); } } } }