示例#1
0
        public void OnData(int connectionId, int channelId, int receiveSize)
        {
            GameStatics.OnlineSession.NetBuffer.SeekZero();
            NetworkMessageID msgId = (NetworkMessageID)GameStatics.OnlineSession.NetBuffer.ReadInt();

            switch (msgId)
            {
            case (NetworkMessageID.PlayerRegistration):
                PlayerRegistrationMsg prm = new PlayerRegistrationMsg();
                prm.Deserialize(GameStatics.OnlineSession.NetBuffer);
                HandlePlayerRegistrationMsg(ref prm, connectionId);
                break;

            case (NetworkMessageID.PlayerAdd):
                PlayerAddMsg pam = new PlayerAddMsg();
                pam.Deserialize(GameStatics.OnlineSession.NetBuffer);
                HandlePlayerAddMsg(ref pam, connectionId);
                break;

            case (NetworkMessageID.SceneLoading):
                SceneLoadingMsg lsm = new SceneLoadingMsg();
                lsm.Deserialize(GameStatics.OnlineSession.NetBuffer);
                HandleLoadSceneMsg(ref lsm);
                break;
            }
        }
示例#2
0
        public void OnData(int connectionId, int channelId, int receiveSize, int msgId)
        {
            NetworkMessageID iMsgId = (NetworkMessageID)msgId;

            switch (iMsgId)
            {
            case (NetworkMessageID.SceneLoading):
                SceneLoadingMsg slm = new SceneLoadingMsg();
                slm.Deserialize(GameStatics.OnlineSession.NetBuffer);
                HandleLoadSceneMsg(ref slm, connectionId);
                break;

            case (NetworkMessageID.TickSync):
                TickSyncMsg tsm = new TickSyncMsg();
                tsm.Deserialize(GameStatics.OnlineSession.NetBuffer);
                HandleTickSyncMsg(ref tsm, connectionId);
                break;

            case (NetworkMessageID.SimpleEvent):
                SimpleEventMsg sem = new SimpleEventMsg();
                sem.Deserialize(GameStatics.OnlineSession.NetBuffer);
                HandleSimpleEventMsg(connectionId, sem.Event);
                break;

            case (NetworkMessageID.SpawnPlayer):
                SpawnPlayerMsg spm = new SpawnPlayerMsg();
                spm.Deserialize(GameStatics.OnlineSession.NetBuffer);
                HandleSpawnPlayerMsg(ref spm, connectionId);
                break;

            case (NetworkMessageID.SpawnCharacter):
                SpawnCharacterMsg scm = new SpawnCharacterMsg();
                scm.Deserialize(GameStatics.OnlineSession.NetBuffer);
                HandleSpawnCharacterMsg(ref scm);
                break;

            case (NetworkMessageID.LazerHit):
                LazerFireMsg lhm = new LazerFireMsg();
                lhm.Deserialize(GameStatics.OnlineSession.NetBuffer);
                HandleLazerFireMsg(ref lhm);
                break;
            }
        }
        /// <summary>
        /// Initial chunk syncronization
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="whoAmI"></param>
        public override void HandlePacket(BinaryReader reader, int whoAmI)
        {
            NetworkMessageID messageType = (NetworkMessageID)reader.ReadByte();

            switch (messageType)
            {
            case NetworkMessageID.syncChunk:
                if (Main.netMode == NetmodeID.MultiplayerClient)
                {
                    SyncChunkClient(reader);
                }
                break;

            case NetworkMessageID.regularChunkUpdate:
                if (Main.netMode == NetmodeID.MultiplayerClient)
                {
                    UpdateClientChunk(reader);
                }
                break;
            }
        }
 public NetworkMessage(NetworkMessageID message, Coord positionP, ResourceType resourceT)
 {
     messageID = message;
     position  = positionP;
     resource  = resourceT;
 }
 public NetworkMessage(NetworkMessageID message, Coord positionP, BuildingType buildingT)
 {
     messageID = message;
     position  = positionP;
     building  = buildingT;
 }
 public NetworkMessage()
 {
     messageID = NetworkMessageID.NULL;
 }