예제 #1
0
 public void sendMovementPacket(Vector3 pos, string animName, int isFlipped)
 {
     using (RTData data = RTData.Get())
     {
         data.SetVector2(1, pos);
         data.SetString(2, animName);
         data.SetInt(3, isFlipped);
         RTClass.SendData(100, GameSparksRT.DeliveryIntent.UNRELIABLE_SEQUENCED, data);
     }
 }
예제 #2
0
    internal void SendInputData(SlimeType slimeType, int i, int j)
    {
        int other_player = PeerId == 1 ? 2 : 1;

        int[] targets = new int[] { other_player };

        RTData data = new RTData();

        data.SetInt(3, (int)slimeType);
        data.SetInt(1, i);
        data.SetInt(2, j);

        RtGS.SendData(1, GameSparksRT.DeliveryIntent.RELIABLE, data, targets);
    }
예제 #3
0
    // Use this for initialization
    void Start()
    {
        game_manager = GameObject.FindGameObjectWithTag("GameManager").GetComponent <GameManager>();
        RT_manager   = game_manager.GetGameSparksRTManager();
        net_manager  = game_manager.GetNetworkManager();
        nav_map      = GameObject.FindGameObjectWithTag("Map").GetComponent <NavigationMap>();

        StartCoroutine(SendTimeStamp());

        // Inform the server that the match is ready
        using (RTData data = RTData.Get())
        {
            data.SetLong(1, 0);
            RT_manager.SendData(103, GameSparks.RT.GameSparksRT.DeliveryIntent.UNRELIABLE_SEQUENCED, data, new int[] { 0 }); // send to peerId -> 0, which is the server
        }

        StartCoroutine(DelayTurnStart());

        turn_info.turn = turn_type.stop;
        curr_action    = action.wait;

        attack_button.gameObject.SetActive(false);
        finish_player_turn.gameObject.SetActive(false);
        state_text.gameObject.SetActive(false);

        card1.gameObject.SetActive(false);
        card2.gameObject.SetActive(false);
        card3.gameObject.SetActive(false);
    }
예제 #4
0
    private void SendPacket(int command, RTData data, bool reliable)
    {
        if (data == null)
        {
            data = new RTData();
        }
//		Debug.Log("Sent RT packet, opCode = " + command);
        _RT.SendData(command, reliable?GameSparksRT.DeliveryIntent.RELIABLE:GameSparksRT.DeliveryIntent.UNRELIABLE_SEQUENCED, data, _serverPeerId);
    }
예제 #5
0
    public static void SendTimeStamp(GameSparksRTUnity rtSession)
    {
        if (rtSession == null)
        {
            return;
        }

        using (RTData data = RTData.Get())
        {
            long unixTime = GetUnixTime();
            data.SetLong(1, (long)unixTime);

            rtSession.SendData((int)OpCodes.TimeStamp, GameSparksRT.DeliveryIntent.UNRELIABLE, data, SERVER_PEER_ID);
        }
    }
예제 #6
0
    /// <summary>
    /// Sends the RPC.
    /// </summary>
    /// <param name="code">Code.</param>
    /// <param name="methodName">Method name.</param>
    /// <param name="targetPlayer">Target player.</param>
    /// <param name="isBuffered">If set to <c>true</c> is buffered.</param>
    /// <param name="isLocal">If set to <c>true</c> is local.</param>
    /// <param name="parameters">Parameters.</param>
    private void SendEvent_RPC(OpCode code, string methodName, int[] receiverIds, bool isBuffered, params object[] parameters)
    {
        SparkRPC rpc = new SparkRPC(Guid.Empty, methodName, receiverIds, LocalPlayer, parameters);

        using (RTData data = RTData.Get()) {
            data.SetString(1, SparkExtensions.Serialize(rpc));

            sparkNetwork.SendData(Convert.ToInt32(code), GameSparksRT.DeliveryIntent.RELIABLE, data, receiverIds);
        }

        if (isBuffered)
        {
            LocalRPC_Buffer.Add(rpc);
            LocalRPC("Add_LocalRPC_Buffer", SparkTargets.Others, false, rpc);
        }
    }
예제 #7
0
    public static void SendPlayerMovement(Survivor survivor, GameSparksRTUnity rtSession)
    {
        using (RTData data = RTData.Get())
        {
            data.SetVector3(1, survivor.transform.position);
            data.SetVector3(2, survivor.transform.rotation.eulerAngles);
            data.SetVector3(3, survivor.GetComponent <Rigidbody>().velocity);

            data.SetVector4(4, survivor.UserControl.Move);

            float jumpFloat   = survivor.UserControl.Jump ? 1 : 0;
            float crouchFloat = survivor.UserControl.Crouch ? 1 : 0;
            data.SetVector2(5, new Vector2(jumpFloat, crouchFloat));

            rtSession.SendData((int)OpCodes.PlayerTransform, GameSparksRT.DeliveryIntent.UNRELIABLE_SEQUENCED, data);
        }
    }
예제 #8
0
 public static void SendPacket(int _opCode, GameSparksRT.DeliveryIntent _intent, RTData _data, int[] _targets)
 {
     gamesparksRTUnity.SendData(_opCode, _intent, _data, _targets);
 }