public void RequestState(StateParameter parameter)
 {
     if (Player.IsHost)
     {
         lobbyWriter.Write((byte)NetMessageType.Data);
         lobbyWriter.Write((byte)MessageType.RequestState);
         parameter.Encode(lobbyWriter);
     }
 }
示例#2
0
 /// <summary>
 /// Requests the server to set a state to a given value
 /// </summary>
 /// <param name="param">The parameter to request</param>
 public void RequestState(StateParameter param)
 {
     if (IsConnected)
     {
         NetOutgoingMessage msg = myPeer.CreateMessage();
         msg.Write((byte)MessageType.RequestState);
         param.Encode(msg);
         Send(msg);
     }
 }
示例#3
0
        /// <summary>
        /// Invoked by game state when a parameter has changed
        /// </summary>
        /// <param name="sender">The object to invoke this method</param>
        /// <param name="e">The event arguments</param>
        private void MyGameState_OnStateChanged(object sender, StateParameter e)
        {
            if (myState == ServerState.InGame && e.IsSynced)
            {
                // Prepare the game state changed
                NetOutgoingMessage msg = myServer.CreateMessage();
                msg.Write((byte)MessageType.GameStateChanged);
                e.Encode(msg);

                // Send to all clients
                SendToAll(msg);
            }
        }