コード例 #1
0
        public override void OnCalled(Message msg, NetIncomingMessage netMsg = null)
        {
            MessagePlayerHookReleased message = msg as MessagePlayerHookReleased;

            var player = MultiplayerManager.instance.m_players.FirstOrDefault(x => x.ID == message.playerId);
            player.PlayerGameObject.GetComponent<PlayerRemote>().OnPlayerHookReleased();
        }
コード例 #2
0
        public void SendNetworkMessage(Message message, SendTo sendTo, NetIncomingMessage netMessage = null, NetDeliveryMethod deliveryMethod = NetDeliveryMethod.ReliableOrdered)
        {
            if (m_isServer)
            {
                Type messageType = message.GetType();
                NetOutgoingMessage om = m_server.CreateMessage();
                om.Write((int)MessageFunction.ClassMessage);;
                om.Write(messageType.Assembly.ToString());
                om.Write(messageType.ToString());
                om.WriteAllFields(message);

                NetConnection sender = null;
                if (netMessage != null)
                {
                    sender = netMessage.SenderConnection;
                }

                switch (sendTo)
                {
                    case SendTo.All:
                        message.OnCalled(message, netMessage);
                        m_server.SendToAll(om, sender, deliveryMethod, 0);
                        break;
                    case SendTo.Others:
                        m_server.SendToAll(om, sender, deliveryMethod, 0);
                        if (sender != null)  //If server diden't send the message
                            message.OnCalled(message, netMessage);
                        break;
                    case SendTo.Server:
                        message.OnCalled(message, netMessage);
                        break;
                }
            }
            else
            {
                Type messageType = message.GetType();
                NetOutgoingMessage om = m_client.CreateMessage();
                om.Write((int)MessageFunction.ClassMessage);
                om.Write((int) sendTo);
                om.Write(messageType.Assembly.ToString());
                om.Write(messageType.ToString());
                om.WriteAllFields(message);
                m_client.SendMessage(om, deliveryMethod);

                if (sendTo == SendTo.All) //Trigger for sender if you sent it to everybody
                {
                    message.OnCalled(message, netMessage);
                }
            }
        }
コード例 #3
0
 public virtual void OnCalled(Message msg, NetIncomingMessage netMsg = null)
 {
 }
コード例 #4
0
        public override void OnCalled(Message msg, NetIncomingMessage netMsg = null)
        {
            MessageUpdatePlayerPosition message = msg as MessageUpdatePlayerPosition;
            var instance = MultiplayerManager.instance;

            var player = instance.m_players.FirstOrDefault(x => x.ID == message.playerId);
            if (player != null)
            {
                player.PlayerGameObject.GetComponent<PlayerNetworkView>().OnNetworkData(netMsg.ReceiveTime, message.position, Quaternion.Euler(message.rotation));
            }
        }
コード例 #5
0
 public override void OnCalled(Message msg, NetIncomingMessage netMsg = null)
 {
     MessageSpawnPlayer message = msg as MessageSpawnPlayer;
     MultiplayerManager.instance.SpawnPlayer(message.playerId, message.playerName, netMsg.SenderConnection);
 }
コード例 #6
0
 public override void OnCalled(Message msg, NetIncomingMessage netMsg = null)
 {
     MessageSendChatMessage message = msg as MessageSendChatMessage;
     MultiplayerManager.instance.Chat.OnReceiveChatMessage(message.chatMessage);
 }
コード例 #7
0
 public override void OnCalled(Message msg, NetIncomingMessage netMsg = null)
 {
     MessageRemovePlayer message = msg as MessageRemovePlayer;
     var player = MultiplayerManager.instance.m_players.FirstOrDefault(x => x.ID == message.playerId);
     if (player != null)
     {
         GameObject.Destroy(player.PlayerGameObject);
         MultiplayerManager.instance.m_players.Remove(player);
     }
 }
コード例 #8
0
        public override void OnCalled(Message msg, NetIncomingMessage netMsg = null)
        {
            MessagePlayerShotBullet message = msg as MessagePlayerShotBullet;
            BulletHitParticlePrefab.Create(message.hitPosition, message.hitDirection);

            if (message.hitPlayerId != 0)
            {
                var playerHit = MultiplayerManager.instance.m_players.FirstOrDefault(x => x.ID == message.hitPlayerId);
                if (playerHit != null)
                {
                    playerHit.PlayerGameObject.GetComponent<Player>().OnDamageTaken(playerId, damage);
                }
            }
        }