예제 #1
0
 public override void Deserialize(NetworkReader reader)
 {
     proxyId = reader.ReadInt16();
     packet.Compression = (VoiceChatCompression)reader.ReadInt16();
     packet.Length = reader.ReadInt32();
     packet.Data = reader.ReadBytesAndSize();
 }
 public override void Deserialize(NetworkReader reader)
 {
     this.netId = reader.ReadNetworkId();
     this.sceneId = reader.ReadSceneId();
     this.position = reader.ReadVector3();
     this.payload = reader.ReadBytesAndSize();
 }
 public override void Deserialize(NetworkReader reader)
 {
   this.netId = reader.ReadNetworkId();
   this.payload = reader.ReadBytesAndSize();
   this.teleport = reader.ReadBoolean();
   this.time = (int) reader.ReadPackedUInt32();
 }
예제 #4
0
파일: ClientVC.cs 프로젝트: NickPowers43/SW
    public ClientVC(NetworkReader nr)
        : base(new Vec2i(0,0), 0)
    {
        this.data = new VesselTile[VesselChunk.DATA_COUNT];

        index.x = nr.ReadInt32();
        index.y = nr.ReadInt32();

        version = nr.ReadUInt32();
        tileCount = nr.ReadInt32();

        for (int i = 0; i < tileCount; i++) {
            //read in vessel tile
            Vec2i tileI;

            tileI.x = nr.ReadInt32();
            tileI.y = nr.ReadInt32();
            FloorType floor0 = (FloorType)nr.ReadByte();
            FloorType floor1 = (FloorType)nr.ReadByte();
            WallTypeMask wallMask = (WallTypeMask)nr.ReadByte();
            bool wallNode = nr.ReadBoolean();

            VesselTile tile = new VesselTile(wallMask, wallNode, floor0, floor1, (uint)VesselTile.FLAGS.NONE);

            SetTile(tileI, tile);
        }
    }
    private CharacterState serverLastState; //SERVER: Store last state

    #endregion Fields

    #region Methods

    /// <summary>
    /// All Clients: Deserialize the state from network
    /// </summary>
    /// <param name="reader"></param>
    /// <param name="initialState"></param>
    public override void OnDeserialize(NetworkReader reader, bool initialState)
    {
        CharacterState state = new CharacterState();

        state.state    = reader.ReadInt32();
        state.position = reader.ReadVector3();
        state.rotation = reader.ReadQuaternion();

        //Client: Received a new state for the local player, treat it as an ACK and do reconciliation
        if (isLocalPlayer) {
            SendMessage("ServerState", state, SendMessageOptions.DontRequireReceiver);
        } else {
            //Other Clients: Received a state, treat it like a new position snapshot from authority
            if (initialState)
            {
                //Others Clients: First state, just snap to new position
                transform.position = state.position;
                transform.rotation = state.rotation;
            }
            else if (networkInterpolation != null)
            {
                //Others Clients: Interpolate between received positions
                networkInterpolation.ReceiveState(state);
            }
        }
    }
예제 #6
0
 public override void OnDeserialize(NetworkReader reader, bool initialState)
 {
     /*
         Interpolate: pass reader as parameter to fbxobj
     */
     fbxObj.gameObject.transform.position = reader.ReadVector3();
 }
예제 #7
0
 public override void Deserialize(NetworkReader reader)
 {
     this.netId = reader.ReadNetworkId();
     this.stateHash = (int) reader.ReadPackedUInt32();
     this.normalizedTime = reader.ReadSingle();
     this.parameters = reader.ReadBytesAndSize();
 }
예제 #8
0
 public override void OnDeserialize(NetworkReader reader, bool initialState)
 {
     if (reader.ReadPackedUInt32() != 0)
     {
         this.m_Slot = reader.ReadByte();
         this.m_ReadyToBegin = reader.ReadBoolean();
     }
 }
예제 #9
0
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     int count = reader.ReadInt32();
     Polyline = new List<Vector3>(count);
     for(int i=0; i < count; i++)
         Polyline.Add(reader.ReadVector3());
 }
 public override void Deserialize(NetworkReader reader)
 {
     m_id = reader.ReadNetworkId();
     m_parentId = reader.ReadNetworkId();
     m_childId = reader.ReadInt32();
     m_position = reader.ReadVector3();
     m_payload = reader.ReadBytesAndSize();
 }
예제 #11
0
 /// <summary>
 /// 
 /// <para>
 /// Creates a new NetworkClient instance.
 /// </para>
 /// 
 /// </summary>
 public NetworkClient()
 {
     if (LogFilter.logDev)
     Debug.Log((object) ("Client created version " + (object) Version.Current));
       this.m_MsgBuffer = new byte[49152];
       this.m_MsgReader = new NetworkReader(this.m_MsgBuffer);
       NetworkClient.AddClient(this);
 }
예제 #12
0
 public override void Deserialize(NetworkReader reader)
 {
     this.connectionId = (int) reader.ReadPackedUInt32();
     this.address = reader.ReadString();
     this.port = (int) reader.ReadPackedUInt32();
     this.isHost = reader.ReadBoolean();
     this.isYou = reader.ReadBoolean();
 }
예제 #13
0
 public override void Deserialize(NetworkReader reader)
 {
     ChannelId = reader.ReadString();
     SenderUserId = reader.ReadString();
     SenderUserName = reader.ReadString();
     Message = reader.ReadString();
     Timestamp = JsonWrapper.DeserializeObject<DateTime>(reader.ReadString());
 }
 public InputMessage(int connectionId, int hostId, int channelId, Subjects msgSubject, NetworkReader reader, float receivedTime)
 {
     ConnectionId = connectionId;
     HostId = hostId;
     ChannelId = channelId;
     MsgSubject = msgSubject;
     Reader = reader;
     ReceivedTime = receivedTime;
 }
 public override void Deserialize(NetworkReader reader)
 {
   this.playerControllerId = (short) reader.ReadUInt16();
   this.msgData = reader.ReadBytesAndSize();
   if (this.msgData == null)
     this.msgSize = 0;
   else
     this.msgSize = this.msgData.Length;
 }
예제 #16
0
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     _instructionBase = reader.ReadString();
     _variantReplacements = new string[reader.ReadInt32()];
     for (int i = 0; i < _variantReplacements.Length; i++) {
         _variantReplacements[i] = reader.ReadString();
     }
 }
예제 #17
0
 private NetworkServer()
 {
     NetworkTransport.Init();
       if (LogFilter.logDev)
     Debug.Log((object) ("NetworkServer Created version " + (object) Version.Current));
       this.m_MsgBuffer = new byte[49152];
       this.m_MsgReader = new NetworkReader(this.m_MsgBuffer);
       this.m_RemoveList = new HashSet<NetworkInstanceId>();
 }
예제 #18
0
 public override void Deserialize(NetworkReader reader)
 {
     this.peers = new PeerInfoMessage[(int) reader.ReadUInt16()];
       for (int index = 0; index < this.peers.Length; ++index)
       {
     PeerInfoMessage peerInfoMessage = new PeerInfoMessage();
     peerInfoMessage.Deserialize(reader);
     this.peers[index] = peerInfoMessage;
       }
 }
예제 #19
0
 public override void Deserialize(NetworkReader reader)
 {
   this.scripts = new CRCMessageEntry[(int) reader.ReadUInt16()];
   for (int index = 0; index < this.scripts.Length; ++index)
     this.scripts[index] = new CRCMessageEntry()
     {
       name = reader.ReadString(),
       channel = reader.ReadByte()
     };
 }
 public override void Deserialize(NetworkReader reader)
 {
   this.oldConnectionId = (int) reader.ReadPackedUInt32();
   this.playerControllerId = (short) reader.ReadPackedUInt32();
   this.netId = reader.ReadNetworkId();
   this.msgData = reader.ReadBytesAndSize();
   if (this.msgData == null)
     this.msgSize = 0;
   else
     this.msgSize = this.msgData.Length;
 }
예제 #21
0
 public override void Deserialize(NetworkReader reader)
 {
     int num = reader.ReadUInt16();
     this.peers = new PeerInfoMessage[num];
     for (int i = 0; i < this.peers.Length; i++)
     {
         PeerInfoMessage message = new PeerInfoMessage();
         message.Deserialize(reader);
         this.peers[i] = message;
     }
 }
예제 #22
0
 public override void OnDeserialize(NetworkReader reader, bool initialState)
 {
     base.OnDeserialize (reader, initialState);
     float time = 0f;
     try {
         time = reader.ReadSingle ();
     } catch (System.Exception e) {
         Debug.LogError ("Custom deserialization exception.");
         Debug.LogError (e);
     }
     animator.playbackTime = time;
 }
예제 #23
0
 public override void Deserialize(NetworkReader reader)
 {
     int num = reader.ReadUInt16();
     this.scripts = new CRCMessageEntry[num];
     for (int i = 0; i < this.scripts.Length; i++)
     {
         this.scripts[i] = new CRCMessageEntry { 
             name = reader.ReadString(),
             channel = reader.ReadByte()
         };
     }
 }
 public override void Deserialize(NetworkReader reader)
 {
     this.netId = reader.ReadNetworkId();
     this.assetId = reader.ReadNetworkHash128();
     this.position = reader.ReadVector3();
     this.payload = reader.ReadBytesAndSize();
     uint num = 0x10;
     if ((reader.Length - reader.Position) >= num)
     {
         this.rotation = reader.ReadQuaternion();
     }
 }
예제 #25
0
 public override void Deserialize(NetworkReader reader)
 {
     int num = (int)reader.ReadUInt16();
     this.scripts = new CRCMessageEntry[num];
     for (int i = 0; i < this.scripts.Length; i++)
     {
         CRCMessageEntry cRCMessageEntry = default(CRCMessageEntry);
         cRCMessageEntry.name = reader.ReadString();
         cRCMessageEntry.channel = reader.ReadByte();
         this.scripts[i] = cRCMessageEntry;
     }
 }
예제 #26
0
 public override void Deserialize(NetworkReader reader)
 {
     this.oldServerConnectionId = (int) reader.ReadPackedUInt32();
     int num = reader.ReadUInt16();
     this.peers = new PeerInfoMessage[num];
     for (int i = 0; i < this.peers.Length; i++)
     {
         PeerInfoMessage message = new PeerInfoMessage();
         message.Deserialize(reader);
         this.peers[i] = message;
     }
 }
예제 #27
0
        /// <summary>
        /// Called on the server when a new client connects and is requesting to be spawned as a player object.
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="playerControllerId"></param>
        /// <param name="netMsg"></param>
        public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId, NetworkReader netMsg)
        {
            //base.OnServerAddPlayer(conn, playerControllerId, netMsg);

            var msg = netMsg.ReadMessage<AddPlayerMessage>();
            Debug.Log("Adding player... " + msg.name + " " + playerPrefabs[msg.playerPrefabIndex].name);
            GameObject player = (GameObject)Instantiate(playerPrefabs[msg.playerPrefabIndex], Vector3.zero, Quaternion.identity);

            var gamePlayer = player.GetComponent<GamePlayer>();
            gamePlayer.displayName = msg.name;

            NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
        }
예제 #28
0
 public static INetMsg Deserialize(byte[] buffer)
 {
     var networkReader = new NetworkReader(buffer);
     uint messageIndex = networkReader.ReadPackedUInt32();
     Type type = GetMsgTypeFromIndex(messageIndex);
     if (type == null)
     {
         Debug.LogErrorFormat("[CoreNetwork] Could not find type with index {0}", messageIndex);
         return null;
     }
     var msg = System.Activator.CreateInstance(type) as MessageBase;
     msg.Deserialize(networkReader);
     return (INetMsg)msg;
 }
 internal bool InvokeHandler(short msgType, NetworkConnection conn, NetworkReader reader, int channelId)
 {
     if (this.m_MsgHandlers.ContainsKey(msgType))
     {
         this.m_MessageInfo.msgType = msgType;
         this.m_MessageInfo.conn = conn;
         this.m_MessageInfo.reader = reader;
         this.m_MessageInfo.channelId = channelId;
         NetworkMessageDelegate networkMessageDelegate = this.m_MsgHandlers[msgType];
         networkMessageDelegate(this.m_MessageInfo);
         return true;
     }
     return false;
 }
예제 #30
0
    public void ReadSetChunkMessage(NetworkReader nr)
    {
        ClientVC chunk = new ClientVC(nr);

        VesselChunk current = chunks.TryGet(chunk.Index);

        if (current != null) {
            current.Destroy();
        }

        Debug.Log ("Setting chunk (" + chunk.Index.x + ", " + chunk.Index.y + ")");
        chunks.Set(chunk.Index, chunk);
        InstantiateChunk(chunk);
    }
예제 #31
0
 public void Deserialize(NetworkReader reader)
 {
     objID = reader.ReadNetworkId();
 }
 public static MockQuest WriteQuest(this NetworkReader reader)
 {
     return(new MockQuest(reader.ReadInt32()));
 }
예제 #33
0
 public override void Deserialize(ref NetworkReader reader)
 {
     intValue   = reader.ReadInt32();
     boolValue  = reader.ReadBoolean();
     floatValue = reader.ReadFloat();
 }
 // Token: 0x0600080C RID: 2060 RVA: 0x0000409B File Offset: 0x0000229B
 public override void OnDeserialize(NetworkReader reader, bool initialState)
 {
 }
예제 #35
0
        public static PBS.Battle.View.Events.CommandAgent ReadBattleViewEventCommandAgent(this NetworkReader reader)
        {
            PBS.Battle.View.Events.CommandAgent obj = new PBS.Battle.View.Events.CommandAgent
            {
                pokemonUniqueID  = reader.ReadString(),
                canMegaEvolve    = reader.ReadBoolean(),
                canZMove         = reader.ReadBoolean(),
                canDynamax       = reader.ReadBoolean(),
                isDynamaxed      = reader.ReadBoolean(),
                moveslots        = reader.ReadList <PBS.Battle.View.Events.CommandAgent.Moveslot>(),
                zMoveSlots       = reader.ReadList <PBS.Battle.View.Events.CommandAgent.Moveslot>(),
                dynamaxMoveSlots = reader.ReadList <PBS.Battle.View.Events.CommandAgent.Moveslot>()
            };
            obj.commandTypes = new List <BattleCommandType>();

            List <int> commandInts = reader.ReadList <int>();

            for (int i = 0; i < commandInts.Count; i++)
            {
                obj.commandTypes.Add((BattleCommandType)commandInts[i]);
            }
            return(obj);
        }
예제 #36
0
 public override void Deserialize(NetworkReader reader)
 {
     masterGameObject = reader.ReadGameObject();
     pickupIndex      = GeneratedNetworkCode._ReadPickupIndex_None(reader);
     pickupQuantity   = reader.ReadPackedUInt32();
 }
예제 #37
0
 public void Deserialize(ref SerializeContext context, ref NetworkReader reader)
 {
     predictingPlayerId = reader.ReadInt32();
 }
예제 #38
0
 public override void OnDeserialize(NetworkReader reader, bool initialState)
 {
     Log("OnDeserialize");
     base.OnDeserialize(reader, initialState);
 }
예제 #39
0
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     _playAudio = reader.Read <bool>();
 }
예제 #40
0
 public override void Read(NetworkReader R)
 {
     Angle = R.ReadObject <Angle>();
 }
 /// <summary>
 /// Deserialize the task threshold from serialized form.
 /// </summary>
 /// <param name="reader">UNET deserializer.</param>
 public void Deserialize(NetworkReader reader)
 {
     AngleThreshold    = reader.ReadSingle();
     DistanceThreshold = reader.ReadSingle();
     ScaleThreshold    = reader.ReadSingle();
 }
예제 #42
0
 public void Deserialize(NetworkReader br)
 {
     throw new System.NotImplementedException();
 }
예제 #43
0
 public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId,
                                        NetworkReader extraMessageReader)
 {
     OnServerAddPlayer(conn, playerControllerId);
 }
예제 #44
0
        public static PBS.Battle.View.Events.Base ReadBattleViewEvent(this NetworkReader reader)
        {
            int type = reader.ReadInt32();

            switch (type)
            {
            case STARTBATTLE:
                return(new PBS.Battle.View.Events.StartBattle
                {
                });

            case ENDBATTLE:
                return(new PBS.Battle.View.Events.EndBattle
                {
                    winningTeam = reader.ReadInt32()
                });


            case MESSAGE:
                return(new PBS.Battle.View.Events.Message
                {
                    message = reader.ReadString()
                });

            case MESSAGEPARAMETERIZED:
                PBS.Battle.View.Events.MessageParameterized messageParameterized = new PBS.Battle.View.Events.MessageParameterized
                {
                    messageCode         = reader.ReadString(),
                    isQueryResponse     = reader.ReadBoolean(),
                    isQuerySuccessful   = reader.ReadBoolean(),
                    playerPerspectiveID = reader.ReadInt32(),
                    teamPerspectiveID   = reader.ReadInt32(),

                    pokemonID       = reader.ReadString(),
                    pokemonUserID   = reader.ReadString(),
                    pokemonTargetID = reader.ReadString(),
                    pokemonListIDs  = reader.ReadList <string>(),

                    trainerID = reader.ReadInt32(),

                    teamID = reader.ReadInt32(),

                    typeID  = reader.ReadString(),
                    typeIDs = reader.ReadList <string>(),

                    moveID  = reader.ReadString(),
                    moveIDs = reader.ReadList <string>(),

                    abilityID  = reader.ReadString(),
                    abilityIDs = reader.ReadList <string>(),

                    itemID  = reader.ReadString(),
                    itemIDs = reader.ReadList <string>(),

                    statusID            = reader.ReadString(),
                    statusTeamID        = reader.ReadString(),
                    statusEnvironmentID = reader.ReadString(),

                    intArgs = reader.ReadList <int>(),
                };

                List <PokemonStats> messageParameterizedStatList = new List <PokemonStats>();
                List <int>          messageParameterizedstatInts = reader.ReadList <int>();
                for (int i = 0; i < messageParameterizedstatInts.Count; i++)
                {
                    messageParameterizedStatList.Add((PokemonStats)messageParameterizedstatInts[i]);
                }

                messageParameterized.statList.AddRange(messageParameterizedStatList);
                return(messageParameterized);


            case MODELUPDATE:
                return(new PBS.Battle.View.Events.ModelUpdate
                {
                    loadAssets = reader.ReadBoolean()
                });

            case MODELUPDATEPOKEMON:
                return(new PBS.Battle.View.Events.ModelUpdatePokemon
                {
                    loadAsset = reader.ReadBoolean(),
                    pokemon = reader.ReadBattleViewCompactPokemon()
                });

            case MODELUPDATETRAINER:
                return(new PBS.Battle.View.Events.ModelUpdateTrainer
                {
                    loadAsset = reader.ReadBoolean(),
                    name = reader.ReadString(),
                    playerID = reader.ReadInt32(),
                    teamID = reader.ReadInt32(),
                    party = reader.ReadList <string>(),
                    items = reader.ReadList <string>(),
                    controlPos = reader.ReadList <int>()
                });

            case MODELUPDATETEAM:
                return(new PBS.Battle.View.Events.ModelUpdateTeam
                {
                    loadAsset = reader.ReadBoolean(),
                    teamID = reader.ReadInt32(),
                    teamMode = (TeamMode)reader.ReadInt32(),
                    trainers = reader.ReadList <int>()
                });


            case COMMANDGENERALPROMPT:
                return(new PBS.Battle.View.Events.CommandGeneralPrompt
                {
                    playerID = reader.ReadInt32(),
                    multiTargetSelection = reader.ReadBoolean(),
                    canMegaEvolve = reader.ReadBoolean(),
                    canZMove = reader.ReadBoolean(),
                    canDynamax = reader.ReadBoolean(),
                    items = reader.ReadList <string>(),
                    pokemonToCommand = reader.ReadList <PBS.Battle.View.Events.CommandAgent>()
                });

            case COMMANDREPLACEMENTPROMPT:
                return(new PBS.Battle.View.Events.CommandReplacementPrompt
                {
                    playerID = reader.ReadInt32(),
                    fillPositions = reader.ReadArray <int>()
                });


            case TRAINERSENDOUT:
                return(new PBS.Battle.View.Events.TrainerSendOut
                {
                    playerID = reader.ReadInt32(),
                    pokemonUniqueIDs = reader.ReadList <string>()
                });

            case TRAINERMULTISENDOUT:
                return(new PBS.Battle.View.Events.TrainerMultiSendOut
                {
                    sendEvents = reader.ReadList <PBS.Battle.View.Events.TrainerSendOut>()
                });

            case TRAINERWITHDRAW:
                return(new PBS.Battle.View.Events.TrainerWithdraw
                {
                    playerID = reader.ReadInt32(),
                    pokemonUniqueIDs = reader.ReadList <string>()
                });

            case TRAINERITEMUSE:
                return(new PBS.Battle.View.Events.TrainerItemUse
                {
                    playerID = reader.ReadInt32(),
                    itemID = reader.ReadString()
                });


            case POKEMONCHANGEFORM:
                return(new PBS.Battle.View.Events.PokemonChangeForm
                {
                    pokemonUniqueID = reader.ReadString(),
                    preForm = reader.ReadString(),
                    postForm = reader.ReadString()
                });

            case POKEMONSWITCHPOSITION:
                return(new PBS.Battle.View.Events.PokemonSwitchPosition
                {
                    pokemonUniqueID1 = reader.ReadString(),
                    pokemonUniqueID2 = reader.ReadString()
                });

            case POKEMONHEALTHDAMAGE:
                return(new PBS.Battle.View.Events.PokemonHealthDamage
                {
                    pokemonUniqueID = reader.ReadString(),
                    preHP = reader.ReadInt32(),
                    postHP = reader.ReadInt32(),
                    maxHP = reader.ReadInt32()
                });

            case POKEMONHEALTHHEAL:
                return(new PBS.Battle.View.Events.PokemonHealthHeal
                {
                    pokemonUniqueID = reader.ReadString(),
                    preHP = reader.ReadInt32(),
                    postHP = reader.ReadInt32(),
                    maxHP = reader.ReadInt32()
                });

            case POKEMONHEALTHFAINT:
                return(new PBS.Battle.View.Events.PokemonHealthFaint
                {
                    pokemonUniqueID = reader.ReadString()
                });

            case POKEMONHEALTHREVIVE:
                return(new PBS.Battle.View.Events.PokemonHealthRevive
                {
                    pokemonUniqueID = reader.ReadString()
                });

            case POKEMONMOVEUSE:
                return(new PBS.Battle.View.Events.PokemonMoveUse
                {
                    pokemonUniqueID = reader.ReadString(),
                    moveID = reader.ReadString()
                });

            case POKEMONMOVEHIT:
                return(new PBS.Battle.View.Events.PokemonMoveHit
                {
                    pokemonUniqueID = reader.ReadString(),
                    moveID = reader.ReadString(),
                    currentHit = reader.ReadInt32(),
                    hitTargets = reader.ReadList <PBS.Battle.View.Events.PokemonMoveHitTarget>()
                });

            case POKEMONABILITYACTIVATE:
                return(new PBS.Battle.View.Events.PokemonAbilityActivate
                {
                    pokemonUniqueID = reader.ReadString(),
                    abilityID = reader.ReadString()
                });

            case POKEMONSTATCHANGE:
                PBS.Battle.View.Events.PokemonStatChange statChange = new PBS.Battle.View.Events.PokemonStatChange
                {
                    pokemonUniqueID = reader.ReadString(),
                    modValue        = reader.ReadInt32(),
                    maximize        = reader.ReadBoolean(),
                    minimize        = reader.ReadBoolean(),
                    statsToMod      = new List <PokemonStats>()
                };
                List <PokemonStats> statsToMod = new List <PokemonStats>();
                List <int>          statInts   = reader.ReadList <int>();
                for (int i = 0; i < statInts.Count; i++)
                {
                    statsToMod.Add((PokemonStats)statInts[i]);
                }
                statChange.statsToMod.AddRange(statsToMod);
                return(statChange);

            case POKEMONSTATUNCHANGEABLE:
                PBS.Battle.View.Events.PokemonStatUnchangeable statUnchangeable = new PBS.Battle.View.Events.PokemonStatUnchangeable
                {
                    pokemonUniqueID = reader.ReadString(),
                    tooHigh         = reader.ReadBoolean(),
                    statsToMod      = new List <PokemonStats>()
                };
                List <PokemonStats> statsToModUnchangeable = new List <PokemonStats>();
                List <int>          statIntsUnchangeable   = reader.ReadList <int>();
                for (int i = 0; i < statIntsUnchangeable.Count; i++)
                {
                    statsToModUnchangeable.Add((PokemonStats)statIntsUnchangeable[i]);
                }
                statUnchangeable.statsToMod.AddRange(statsToModUnchangeable);
                return(statUnchangeable);

            default:
                throw new System.Exception($"Invalid event type {type}");
            }
        }
예제 #45
0
 public void Deserialize(NetworkReader reader)
 {
     objID        = reader.ReadNetworkId();
     maxCountdown = reader.ReadSingle();
 }
예제 #46
0
 public override void OnDeserialize(NetworkReader reader, bool initialState)
 {
     value = reader.ReadInt();
 }
예제 #47
0
        /// <summary>
        /// Deserialize a message from the network.
        /// </summary>
        /// <remarks>
        /// Only receives what it needs and decompresses floats if you chose to.
        /// </remarks>
        /// <param name="writer">The Networkreader to read from.</param>
        override public void Deserialize(NetworkReader reader)
        {
            // The first received byte tells us what we need to be syncing.
            byte syncInfoByte        = reader.ReadByte();
            bool syncPosition        = shouldSyncPosition(syncInfoByte);
            bool syncRotation        = shouldSyncRotation(syncInfoByte);
            bool syncScale           = shouldSyncScale(syncInfoByte);
            bool syncVelocity        = shouldSyncVelocity(syncInfoByte);
            bool syncAngularVelocity = shouldSyncAngularVelocity(syncInfoByte);

            state.teleport         = shouldTeleport(syncInfoByte);
            state.atPositionalRest = shouldBeAtPositionalRest(syncInfoByte);
            state.atRotationalRest = shouldBeAtRotationalRest(syncInfoByte);

            NetworkInstanceId netID = reader.ReadNetworkId();
            int syncIndex           = (int)reader.ReadPackedUInt32();

            state.ownerTimestamp = reader.ReadSingle();

            // Find the GameObject
            GameObject ob = null;

            if (NetworkServer.active)
            {
                ob = NetworkServer.FindLocalObject(netID);
            }
            else
            {
                ob = ClientScene.FindLocalObject(netID);
            }

            if (!ob)
            {
                Debug.LogWarning("Could not find target for network state message.");
                return;
            }

            // It doesn't matter which SmoothSync is returned since they all have the same list.
            smoothSync = ob.GetComponent <SmoothSync>();

            // If we want the server to relay non-owned object information out to other clients, set these variables so we know what we need to send.
            if (NetworkServer.active && !smoothSync.hasAuthority)
            {
                state.serverShouldRelayPosition        = syncPosition;
                state.serverShouldRelayRotation        = syncRotation;
                state.serverShouldRelayScale           = syncScale;
                state.serverShouldRelayVelocity        = syncVelocity;
                state.serverShouldRelayAngularVelocity = syncAngularVelocity;
            }

            // Find the correct object to sync according to the syncIndex.
            for (int i = 0; i < smoothSync.childObjectSmoothSyncs.Length; i++)
            {
                if (smoothSync.childObjectSmoothSyncs[i].syncIndex == syncIndex)
                {
                    smoothSync = smoothSync.childObjectSmoothSyncs[i];
                }
            }

            if (!smoothSync)
            {
                Debug.LogWarning("Could not find target for network state message.");
                return;
            }

            // Read position.
            if (syncPosition)
            {
                if (smoothSync.isPositionCompressed)
                {
                    if (smoothSync.isSyncingXPosition)
                    {
                        state.position.x = HalfHelper.Decompress(reader.ReadUInt16());
                    }
                    if (smoothSync.isSyncingYPosition)
                    {
                        state.position.y = HalfHelper.Decompress(reader.ReadUInt16());
                    }
                    if (smoothSync.isSyncingZPosition)
                    {
                        state.position.z = HalfHelper.Decompress(reader.ReadUInt16());
                    }
                }
                else
                {
                    if (smoothSync.isSyncingXPosition)
                    {
                        state.position.x = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingYPosition)
                    {
                        state.position.y = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingZPosition)
                    {
                        state.position.z = reader.ReadSingle();
                    }
                }
            }
            else
            {
                if (smoothSync.stateCount > 0)
                {
                    state.position = smoothSync.stateBuffer[0].position;
                }
                else
                {
                    state.position = smoothSync.getPosition();
                }
            }

            // Read rotation.
            if (syncRotation)
            {
                state.reusableRotationVector = Vector3.zero;
                if (smoothSync.isRotationCompressed)
                {
                    if (smoothSync.isSyncingXRotation)
                    {
                        state.reusableRotationVector.x  = HalfHelper.Decompress(reader.ReadUInt16());
                        state.reusableRotationVector.x *= Mathf.Rad2Deg;
                    }
                    if (smoothSync.isSyncingYRotation)
                    {
                        state.reusableRotationVector.y  = HalfHelper.Decompress(reader.ReadUInt16());
                        state.reusableRotationVector.y *= Mathf.Rad2Deg;
                    }
                    if (smoothSync.isSyncingZRotation)
                    {
                        state.reusableRotationVector.z  = HalfHelper.Decompress(reader.ReadUInt16());
                        state.reusableRotationVector.z *= Mathf.Rad2Deg;
                    }
                    state.rotation = Quaternion.Euler(state.reusableRotationVector);
                }
                else
                {
                    if (smoothSync.isSyncingXRotation)
                    {
                        state.reusableRotationVector.x = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingYRotation)
                    {
                        state.reusableRotationVector.y = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingZRotation)
                    {
                        state.reusableRotationVector.z = reader.ReadSingle();
                    }
                    state.rotation = Quaternion.Euler(state.reusableRotationVector);
                }
            }
            else
            {
                if (smoothSync.stateCount > 0)
                {
                    state.rotation = smoothSync.stateBuffer[0].rotation;
                }
                else
                {
                    state.rotation = smoothSync.getRotation();
                }
            }
            // Read scale.
            if (syncScale)
            {
                if (smoothSync.isScaleCompressed)
                {
                    if (smoothSync.isSyncingXScale)
                    {
                        state.scale.x = HalfHelper.Decompress(reader.ReadUInt16());
                    }
                    if (smoothSync.isSyncingYScale)
                    {
                        state.scale.y = HalfHelper.Decompress(reader.ReadUInt16());
                    }
                    if (smoothSync.isSyncingZScale)
                    {
                        state.scale.z = HalfHelper.Decompress(reader.ReadUInt16());
                    }
                }
                else
                {
                    if (smoothSync.isSyncingXScale)
                    {
                        state.scale.x = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingYScale)
                    {
                        state.scale.y = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingZScale)
                    {
                        state.scale.z = reader.ReadSingle();
                    }
                }
            }
            else
            {
                if (smoothSync.stateCount > 0)
                {
                    state.scale = smoothSync.stateBuffer[0].scale;
                }
                else
                {
                    state.scale = smoothSync.getScale();
                }
            }
            // Read velocity.
            if (syncVelocity)
            {
                if (smoothSync.isVelocityCompressed)
                {
                    if (smoothSync.isSyncingXVelocity)
                    {
                        state.velocity.x = HalfHelper.Decompress(reader.ReadUInt16());
                    }
                    if (smoothSync.isSyncingYVelocity)
                    {
                        state.velocity.y = HalfHelper.Decompress(reader.ReadUInt16());
                    }
                    if (smoothSync.isSyncingZVelocity)
                    {
                        state.velocity.z = HalfHelper.Decompress(reader.ReadUInt16());
                    }
                }
                else
                {
                    if (smoothSync.isSyncingXVelocity)
                    {
                        state.velocity.x = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingYVelocity)
                    {
                        state.velocity.y = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingZVelocity)
                    {
                        state.velocity.z = reader.ReadSingle();
                    }
                }
                smoothSync.latestReceivedVelocity = state.velocity;
            }
            else
            {
                // If we didn't receive an updated velocity, use the latest received velocity.
                state.velocity = smoothSync.latestReceivedVelocity;
            }
            // Read anguluar velocity.
            if (syncAngularVelocity)
            {
                if (smoothSync.isAngularVelocityCompressed)
                {
                    state.reusableRotationVector = Vector3.zero;
                    if (smoothSync.isSyncingXAngularVelocity)
                    {
                        state.reusableRotationVector.x  = HalfHelper.Decompress(reader.ReadUInt16());
                        state.reusableRotationVector.x *= Mathf.Rad2Deg;
                    }
                    if (smoothSync.isSyncingYAngularVelocity)
                    {
                        state.reusableRotationVector.y  = HalfHelper.Decompress(reader.ReadUInt16());
                        state.reusableRotationVector.y *= Mathf.Rad2Deg;
                    }
                    if (smoothSync.isSyncingZAngularVelocity)
                    {
                        state.reusableRotationVector.z  = HalfHelper.Decompress(reader.ReadUInt16());
                        state.reusableRotationVector.z *= Mathf.Rad2Deg;
                    }
                    state.angularVelocity = state.reusableRotationVector;
                }
                else
                {
                    if (smoothSync.isSyncingXAngularVelocity)
                    {
                        state.angularVelocity.x = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingYAngularVelocity)
                    {
                        state.angularVelocity.y = reader.ReadSingle();
                    }
                    if (smoothSync.isSyncingZAngularVelocity)
                    {
                        state.angularVelocity.z = reader.ReadSingle();
                    }
                }
                smoothSync.latestReceivedAngularVelocity = state.angularVelocity;
            }
            else
            {
                // If we didn't receive an updated angular velocity, use the latest received angular velocity.
                state.angularVelocity = smoothSync.latestReceivedAngularVelocity;
            }
        }
 /// <summary>
 /// Deserialize the message
 /// </summary>
 /// <param name="reader">UNET based deserializer object</param>
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     length  = reader.ReadInt32();
     byteArr = reader.ReadBytes(length);
 }
예제 #49
0
 // Token: 0x060006DD RID: 1757 RVA: 0x00020E16 File Offset: 0x0001F016
 public override void OnDeserialize(NetworkReader reader)
 {
     base.OnDeserialize(reader);
     this.impactSpeed    = Mathf.Abs(reader.ReadSingle());
     this.impactPosition = reader.ReadVector3();
 }
예제 #50
0
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     Channels        = (ChatChannel)reader.ReadUInt32();
     ChatMessageText = reader.ReadString();
 }
예제 #51
0
 public static PBS.Battle.View.Events.CommandAgent.Moveslot ReadBattleViewEventCommandAgentMoveslot(this NetworkReader reader)
 {
     return(new PBS.Battle.View.Events.CommandAgent.Moveslot
     {
         moveID = reader.ReadString(),
         PP = reader.ReadInt32(),
         maxPP = reader.ReadInt32(),
         basePower = reader.ReadInt32(),
         accuracy = (float)reader.ReadDouble(),
         hide = reader.ReadBoolean(),
         useable = reader.ReadBoolean(),
         failMessageCode = reader.ReadString(),
         possibleTargets = reader.ReadList <List <BattlePosition> >()
     });
 }
예제 #52
0
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     ToClone       = reader.ReadUInt32();
     WorldPosition = reader.ReadVector2();
 }
예제 #53
0
 public static PBS.Battle.View.Events.PokemonMoveHitTarget ReadBattleViewEventPokemonMoveHitTarget(this NetworkReader reader)
 {
     return(new PBS.Battle.View.Events.PokemonMoveHitTarget
     {
         pokemonUniqueID = reader.ReadString(),
         affectedByMove = reader.ReadBoolean(),
         missed = reader.ReadBoolean(),
         criticalHit = reader.ReadBoolean(),
         preHP = reader.ReadInt32(),
         postHP = reader.ReadInt32(),
         maxHP = reader.ReadInt32(),
         damageDealt = reader.ReadInt32(),
         effectiveness = (float)reader.ReadDouble()
     });
 }
예제 #54
0
 public void OnMapUpdate(ref NetworkReader data)
 {
 }
예제 #55
0
 public override void OnDeserialize(NetworkReader reader)
 {
     base.OnDeserialize(reader);
     currentDirection = reader.ReadVector3();
     cancelled        = reader.ReadBoolean();
 }
예제 #56
0
 public void Deserialize(ref NetworkReader reader, IEntityReferenceSerializer refSerializer, int tick)
 {
     impactTick = reader.ReadInt32();
 }
예제 #57
0
 public override void OnDeserialize(NetworkReader reader, bool initialState)
 {
     throw new Exception("some exception");
 }
예제 #58
0
 public void Deserialize(ref NetworkReader reader, IEntityReferenceSerializer refSerializer, int tick)
 {
     phase          = (Phase)reader.ReadInt32();
     phaseStartTick = reader.ReadInt32();
 }
    public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId, NetworkReader extraMessageReader)
    {
        Vector3 location = tableLocations[tableSelected] + seatOffsets[seatSelected];
        Seating spot     = new Seating(tableSelected, seatSelected);

        loggedIn.Add(spot);

        GameObject player = GameObject.Instantiate(playerPrefab, location, Quaternion.identity);

        player.GetComponent <Controller>().SetSeatNum(seatSelected);
        player.GetComponent <Controller>().SetTableNum(tableSelected);
        player.GetComponent <Controller>().SetInstructor();
        NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
    }
예제 #60
0
파일: DropItem.cs 프로젝트: JiongSena/Jiong
 public override void Deserialize(NetworkReader reader)
 {
     Player    = reader.ReadGameObject();
     ItemIndex = (RoR2.ItemIndex)reader.ReadUInt16();
 }