コード例 #1
0
 void _server_MessageError(object sender, Shared.Net.Connections.ProtocolMessageEventArgs <ErrorMessage> e)
 {
     if (e.Message.ErrorCode == ErrorCodes.DesyncDetected)
     {
         OnDesyncDetected(new DesyncEventArgs());
     }
 }
コード例 #2
0
        void server_MessageEntityData(object sender, Shared.Net.Connections.ProtocolMessageEventArgs <EntityDataMessage> e)
        {
            // update the entity
            if (e.Message.Entity != null)
            {
                var dynEntity = (ICharacterEntity)e.Message.Entity;

                _dynamicEntityManager.UpdateEntity(dynEntity);

                if (dynEntity.DynamicId == PlayerManager.PlayerCharacter.DynamicId)
                {
                    //These are properties not synchronized with server, need to keep the local one !
                    var prevDisplacementMode = PlayerManager.PlayerCharacter.DisplacementMode;
                    var staminaBckp          = new Energy(PlayerManager.PlayerCharacter.Stamina);
                    var oxygenBckp           = new Energy(PlayerManager.PlayerCharacter.Oxygen);

                    var playerChar = (PlayerCharacter)dynEntity;
                    playerChar.DisplacementMode = prevDisplacementMode;
                    playerChar.Stamina          = staminaBckp;
                    playerChar.Oxygen           = oxygenBckp;

                    PlayerManager.PlayerCharacter = playerChar;
                }
            }
        }
コード例 #3
0
 void EntityManagerEntityLockChanged(object sender, Shared.Net.Connections.ProtocolMessageEventArgs <Shared.Net.Messages.EntityLockMessage> e)
 {
     if (e.Message.EntityLink.IsStatic)
     {
         GetArea(new Vector3D(e.Message.EntityLink.ChunkPosition.X * AbstractChunk.ChunkSize.X, 0, e.Message.EntityLink.ChunkPosition.Z * AbstractChunk.ChunkSize.Z)).OnEntityLockChanged(e);
     }
 }