Esempio n. 1
0
    public void SendMovementMessage(ushort objID)
    {
        GameObject obj = objects[objID].gObj;

        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            writer.Write(obj.GetComponent <NetworkTrackable>().uniqueID);



            Vector3 localPosition = obj.transform.localPosition;

            writer.Write(localPosition.x);
            writer.Write(localPosition.y);
            writer.Write(localPosition.z);


            Vector3 angles = obj.transform.rotation.eulerAngles;
            writer.Write(angles.x);
            writer.Write(angles.y);
            writer.Write(angles.z);

            using (Message message = Message.Create(PICKUP_TAG, writer))
                client.SendMessage(message, SendMode.Unreliable);
        }
    }
Esempio n. 2
0
 internal void GetLobbyInfo(ushort page = 1)
 {
     using (DarkRiftWriter w = DarkRiftWriter.Create())
     {
         w.Write(page);
         using (Message m = Message.Create(UDRMS_Tags.getLobbyMatchs, w))
             client.SendMessage(m, SendMode.Reliable);
     }
 }
Esempio n. 3
0
 public void SendPlayerInformationMessage(string playerName)
 {
     using (DarkRiftWriter writer = DarkRiftWriter.Create()) {
         writer.Write(new PlayerInformationMessage(drClient.ID, playerName));
         using (Message message = Message.Create(Tags.PlayerInformationTag, writer)) {
             drClient.SendMessage(message, SendMode.Reliable);
         }
     }
 }
Esempio n. 4
0
    public void RequestAddItem(Item item, ItemContainer itemContainer)
    {
        using (DarkRiftWriter writer = DarkRiftWriter.Create()) {
            writer.Write(itemContainer.networkID);
            writer.Write(item.itemDefinition.nameID);
            writer.Write(item.amount);

            using (Message message = Message.Create(Tags.AddItemToContainerTag, writer))
                client.SendMessage(message, SendMode.Reliable);
        }
    }
Esempio n. 5
0
    public void SendSceneChanged(ushort sceneBuildIndex)
    {
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            writer.Write(sceneBuildIndex);

            using (Message message = Message.Create(Tags.ChangeScene, writer))
            {
                _client.SendMessage(message, SendMode.Reliable);
            }
        }
    }
 /// <summary>
 /// Sends a PlayerJoined message.
 /// </summary>
 public void SendPlayerJoinedMessage()
 {
     using (DarkRiftWriter writer = DarkRiftWriter.Create())
     {
         writer.Write(_client.ID);
         writer.Write(_playerOptions.Nickname);
         using (Message message = Message.Create(Tags.PlayerJoined, writer))
         {
             _client.SendMessage(message, SendMode.Reliable);
         }
         //LoadLobbyMessage is sent as response
     }
 }
Esempio n. 7
0
    public void SendPieceCoordinates(PlayerPiece p)
    {
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            //write the piece ID and its updated x and y coordinates
            writer.Write(p.GetComponent <NetworkCheckersPiece>().id);
            writer.Write(p.x);
            writer.Write(p.y);

            using (Message message = Message.Create(NetworkTags.InGame.CALLBACK_PIECE, writer))
                clientReference.SendMessage(message, SendMode.Unreliable);
            Player.instance.canMakeMove = false;
        }
    }
    public void UpdateServerData(string serverData, int maxPlayers)
    {
        if (!isServer)
        {
            return;
        }

        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            writer.Write(serverData);
            writer.Write(maxPlayers);
            using (Message sendUpdateRequest = Message.Create((ushort)OpCodes.UpdateRoomData, writer))
                drClient.SendMessage(sendUpdateRequest, SendMode.Reliable);
        }
    }
    //This will be called when the user presses enter in the input field
    public void MessageEntered()
    {
        //Check we have a client to send from
        if (client == null)
        {
            Debug.LogError("No client assigned to Chat component!");
            return;
        }

        //First we need to build a DarkRiftWriter to put the data we want to send in, it'll default to Unicode
        //encoding so we don't need to worry about that
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            //We can then write the input text into it
            writer.Write(input.text);

            //Next we construct a message, in this case we can just use a default tag because there is nothing fancy
            //that needs to happen before we read the data.
            using (Message message = Message.Create(0, writer))
            {
                //Finally we send the message to everyone connected!
                client.SendMessage(message, SendMode.Reliable);
            }
        }
    }
Esempio n. 10
0
    //Called when the object is dragged by the mouse
    void OnMouseDrag()
    {
        //Check we have a client to send from
        if (client == null)
        {
            Debug.LogError("No client assigned to DragObject!");
            return;
        }

        //Firstly we need to work out where the object should be, we can ignore the z-coord returned
        Vector3 newPos = Camera.main.ScreenPointToRay(Input.mousePosition).GetPoint(10);

        //We want to send the new position of the object to the other clients so we write the position
        //into a DarkRiftWriter as x, y and z components
        DarkRiftWriter writer = new DarkRiftWriter();

        writer.Write(newPos.x);
        writer.Write(newPos.y);

        //Then we'll create a new TagSubject message and put the DarkRiftWriter into it.
        //The tag and subject indicate what the message is about so we'll put a tag of '0' to indicate a
        //movement and set the subject to the ID of this object so that we can easily identify it later.
        Message message = new TagSubjectMessage(dragID, 0, writer);

        //We can then send the message
        client.SendMessage(message, SendMode.Unreliable);    //TODO 1 will this be a problem without others as an intention?

        //Last but not least we'll actually move the object on our screen so set the target position to
        //the new position
        targetPosition = new Vector3(newPos.x, newPos.y, 0);
    }
Esempio n. 11
0
    //Called when the object is dragged by the mouse
    void OnMouseDrag()
    {
        //Check we have a client to send from
        if (client == null)
        {
            Debug.LogError("No client assigned to DragObject!");
            return;
        }

        //Firstly we need to work out where the object should be, we can ignore the z-coord returned
        Vector3 newPos = Camera.main.ScreenPointToRay(Input.mousePosition).GetPoint(10);

        //We want to send the new position of the object to the other clients so we write our ID and
        //our position (as x, y and z components) into a DarkRiftWriter
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            writer.Write(dragID);
            writer.Write(newPos.x);
            writer.Write(newPos.y);

            //Then we'll create a new message and put the DarkRiftWriter into it.
            //The tag indicates what the message is about so we'll put a tag of '0' to indicate a
            //movement.
            using (Message message = Message.Create(MOVE_TAG, writer))
            {
                //We can then send the message
                client.SendMessage(message, SendMode.Unreliable);
            }
        }

        //Last but not least we'll actually move the object on our screen so set the target position to
        //the new position
        targetPosition = new Vector3(newPos.x, newPos.y, 0);
    }
 /// <summary>
 /// Sends ushort message to Server
 /// </summary>
 /// <param name="txt"></param>
 /// <param name="tag"></param>
 public static void SendToServer(ushort number, ushort tag, UnityClient client)
 {
     using (DarkRiftWriter writer = DarkRiftWriter.Create())
     {
         writer.Write(number);
         using (Message playerMessage = Message.Create(tag, writer))
             client.SendMessage(playerMessage, SendMode.Reliable);
     }
 }
Esempio n. 13
0
    /// <summary>
    /// Sends a message with a list of clients and their ready status to provide visual list to the lobby.
    /// </summary>
    public void SendUpdateLobbyMessage()
    {
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            foreach (ushort playerId in _lobbyState.PlayersReadyStatus.Keys)
            {
                var playerData = _lobbyState.PlayersReadyStatus[playerId];
                writer.Write(playerId);
                writer.Write(playerData.Ready);
                writer.Write(playerData.Nickname);
            }

            using (Message message = Message.Create(Tags.UpdateLobby, writer))
            {
                _client.SendMessage(message, SendMode.Reliable);
            }
        }
    }
Esempio n. 14
0
 public void StartGame()
 {
     using (DarkRiftWriter gameStartWriter = DarkRiftWriter.Create())
     {
         using (Message gameStartMessage = Message.Create(Tags.StartGameTag, gameStartWriter))
         {
             clientReference.SendMessage(gameStartMessage, SendMode.Reliable);
         }
     }
 }
    internal void AddBlock(Vector3 position)
    {
        if (client == null)
        {
            Debug.LogError("No client assigned to BlockWorld component!");
            return;
        }

        //Don't worry about snapping, we'll do that on the server
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            writer.Write(position.x);
            writer.Write(position.y);
            writer.Write(position.z);

            using (Message message = Message.Create(BlockTags.PlaceBlock, writer))
                client.SendMessage(message, SendMode.Reliable);
        }
    }
 public void SendMessageWithResponse(Message message, Action actionOnComplete = null, SendMode sendMode = SendMode.Reliable)
 {
     BuildClientsList();
     ClearEvents();
     if (actionOnComplete != null)
     {
         Completed += actionOnComplete;
     }
     _client.SendMessage(message, sendMode);
 }
Esempio n. 17
0
    internal void AddBlock(Vector3 position)
    {
        if (client == null)
        {
            Debug.LogError("No client assigned to BlockWorld component!");
            return;
        }

        //Don't worry about snapping, we'll do that on the server
        DarkRiftWriter writer = new DarkRiftWriter();

        writer.Write(position.x);
        writer.Write(position.y);
        writer.Write(position.z);

        TagSubjectMessage message = new TagSubjectMessage(WORLD_TAG, PLACE_BLOCK_SUBJECT, writer);

        client.SendMessage(message, SendMode.Reliable);
    }
 /// <summary>
 /// Sends an information whether the game is won/lost to all clients.
 /// </summary>
 public void SendGameState()
 {
     using (DarkRiftWriter writer = DarkRiftWriter.Create())
     {
         writer.Write(_state.State == GameplayState.Win);
         using (Message gameStateUpdate = Message.Create(Tags.UpdateGameState, writer))
         {
             _client.SendMessage(gameStateUpdate, SendMode.Reliable);
         }
     }
 }
Esempio n. 19
0
 private void SendRequest(DeathParameters deathParameters)
 {
     using (var writer = DarkRiftWriter.Create())
     {
         writer.Write(_info.Id);
         using (var msg = Message.Create(Tags.DeathRequest, writer))
         {
             _client.SendMessage(msg, SendMode.Reliable);
         }
     }
 }
Esempio n. 20
0
 private void SendNetworkID(ushort networkID, ushort messageTag, SendMode sendMode)
 {
     using (var writer = DarkRiftWriter.Create())
     {
         writer.Write(networkID);
         using (var message = Message.Create(messageTag, writer))
         {
             Client.SendMessage(message, sendMode);
         }
     }
 }
Esempio n. 21
0
    /// <summary>
    /// Extension method for quickly sending unreliable messages to the server.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="client"></param>
    /// <param name="message">The message to be sent, needs to inherit from IDarkRiftSerializable</param>
    public static void SendMessageUnreliable <T>(this UnityClient client, T message)
        where T : IDarkRiftSerializable, IMessage
    {
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            writer.Write <T>(message);

            using (Message msg = Message.Create((ushort)message.Tag, writer))
                client.SendMessage(msg, SendMode.Unreliable);
        }
    }
Esempio n. 22
0
    public void SendWeaponChangedMessage(IWeapon newWeapon)
    {
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            writer.Write(_characterFacade.Id);

            using (Message message = Message.Create(Tags.UpdateCharacterEquipment, writer))
            {
                _networkManager.SendMessage(message, SendMode.Reliable);
            }
        }
    }
    public void SendClientReady()
    {
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            writer.Write(_client.ID);

            using (Message message = Message.Create(Tags.ClientReady, writer))
            {
                _client.SendMessage(message, SendMode.Reliable);
            }
        }
    }
 void SendName()
 {
     Debug.Log("sending name...");
     using (DarkRiftWriter writer = DarkRiftWriter.Create())
     {
         writer.Write(nameInput.text);
         using (Message message = Message.Create(Tags.ClientNameRequestTag, writer))
             client.SendMessage(message, SendMode.Reliable);
     }
     Debug.Log("name sent sucessfully");
     mainMenuPanel.SetActive(false);
 }
 //This function sends the use state of an object to the server
 void SendUseMessage(ushort objID, ushort useTag)
 {
     using (DarkRiftWriter writer = DarkRiftWriter.Create())
     {
         writer.Write(objID);
         writer.Write(useTag);
         using (Message useMessage = Message.Create(USE_TAG, writer))
         {
             Client.SendMessage(useMessage, SendMode.Reliable);
         }
     }
 }
Esempio n. 26
0
    void HandleInput()
    {
        UnityClient client = gameObject.GetComponent <UnityClient>();

        Vector3 moveDirection = mainCameraTransform.right * Input.GetAxis("Horizontal") + mainCameraTransform.forward * Input.GetAxis("Vertical");

        moveDirection.y = 0f;
        moveDirection.Normalize();
        dashing = Input.GetButton("Jump");

        if (moveDirection != lastMoveVector || dashing != lastDashing)
        {
            using (DarkRiftWriter moveInputWriter = DarkRiftWriter.Create())
            {
                moveInputWriter.Write(new TTS.InputMovementMessage(moveDirection, dashing));
                using (Message moveInputMessage = Message.Create((ushort)TTS.MessageType.INPUT_MOVEMENT, moveInputWriter))
                    client.SendMessage(moveInputMessage, SendMode.Unreliable);
            }
        }

        lastMoveVector = moveDirection;
        lastDashing    = dashing;

        fire1 = Input.GetButton("Fire1");
        fire2 = Input.GetButton("Fire2");

        if (fire1 != lastFire1 || fire2 != lastFire2)
        {
            using (DarkRiftWriter interactInputWriter = DarkRiftWriter.Create())
            {
                interactInputWriter.Write(new TTS.InputInteractMessage(fire1, fire2));
                using (Message interactInputMessage = Message.Create((ushort)TTS.MessageType.INPUT_INTERACT, interactInputWriter))
                    client.SendMessage(interactInputMessage, SendMode.Reliable);
            }
        }

        lastFire1 = fire1;
        lastFire2 = fire2;
    }
Esempio n. 27
0
    private void SendMessage(float damage)
    {
        using (var writer = DarkRiftWriter.Create())
        {
            writer.Write(_info.Id);
            writer.Write(damage);

            using (var msg = Message.Create(Tags.TakeDamage, writer))
            {
                _client.SendMessage(msg, SendMode.Reliable);
            }
        }
    }
Esempio n. 28
0
    void Update()
    {
        if (Vector3.Distance(lastPosition, transform.position) > moveDistance && Client != null)
        {
            Message movMessage = Message.Create(Tags.MovePlayerTag,
                                                new NetworkMessages.MovementMessage(transform.position, transform.rotation));

            Client.SendMessage(movMessage, SendMode.Unreliable);

            lastPosition = transform.position;
            lastRotation = transform.rotation;
        }
    }
Esempio n. 29
0
        private void SendMessage(DamageTakenArgs args)
        {
            using (var writer = DarkRiftWriter.Create())
            {
                writer.Write(_info.Id);
                writer.Write(args.damage);
                writer.Write(_health.Health);

                using (var msg = Message.Create(Tags.UpdateHealth, writer))
                {
                    _client.SendMessage(msg, SendMode.Reliable);
                }
            }
        }
    private void SendWeaponChanged(List <IModule> modules)
    {
        using (DarkRiftWriter writer = DarkRiftWriter.Create())
        {
            //write message
            writer.Write(_characterFacade.Id);
            modules.ForEach(module => writer.Write(module.Id));

            using (Message message = Message.Create(Tags.WeaponChanged, writer))
            {
                _unityClient.SendMessage(message, SendMode.Reliable);
            }
        }
    }