Esempio n. 1
0
        private static byte[] GenerateMessage(string senderName, string dataDescription, byte[] data)
        {
            NetworkerMessage message = new NetworkerMessage
            {
                ModID           = ModID,
                SenderID        = MyAPIGateway.Multiplayer.MyId,
                DataTag         = senderName,
                DataDescription = dataDescription,
                Data            = data
            };

            return(MyAPIGateway.Utilities.SerializeToBinary(message));
        }
Esempio n. 2
0
 protected void Handler(NetworkerMessage message)
 {
     if (MyAPIGateway.Multiplayer.IsServer)
     {
         if (message.DataDescription == "UpdateRequest")
         {
             Data = Deserialize(message.Data);
         }
         else if (message.DataDescription == "Get")
         {
             Networker.SendTo(message.SenderID, SenderName, "Update", Serialize(Data));
         }
     }
     else
     {
         if (message.DataDescription == "Update" && message.SenderID == MyAPIGateway.Multiplayer.ServerId)
         {
             Data = Deserialize(message.Data);
         }
     }
 }
Esempio n. 3
0
        static void Handler(byte[] rawmessage)
        {
            NetworkerMessage message = MyAPIGateway.Utilities.SerializeFromBinary <NetworkerMessage>(rawmessage);

            if (message == null || message.ModID != ModID)
            {
                return;
            }
            // TODO: <Cheetah Comment> Add logging
            if (MessageHandlers.ContainsKey(message.DataTag))
            {
                foreach (Action <NetworkerMessage> handler in MessageHandlers[message.DataTag])
                {
                    try
                    {
                        if (handler != null)
                        {
                            handler(message);
                        }
                    }
                    catch { }
                }
            }
        }