GetPing() public static method

The current roundtrip time to the photon server
public static GetPing ( ) : int
return int
    // Token: 0x0600BACA RID: 47818 RVA: 0x004404B0 File Offset: 0x0043E6B0
    public Vector3 GetExtrapolatedPositionOffset()
    {
        float num = (float)(PhotonNetwork.time - this.IMNELEFELLD);

        if (this.HNCFAJJGIPN.ExtrapolateIncludingRoundTripTime)
        {
            num += (float)PhotonNetwork.GetPing() / 1000f;
        }
        Vector3 result = Vector3.zero;

        PhotonTransformViewPositionModel.ExtrapolateOptions extrapolateOption = this.HNCFAJJGIPN.ExtrapolateOption;
        if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues)
        {
            if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed)
            {
                if (extrapolateOption == PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn)
                {
                    Vector3 a = (this.LPBKKPPALCD - this.DNCBFGDAEKL()) * (float)PhotonNetwork.sendRateOnSerialize;
                    result = a * num;
                }
            }
            else
            {
                Vector3 normalized = (this.LPBKKPPALCD - this.DNCBFGDAEKL()).normalized;
                result = normalized * this.HNCFAJJGIPN.ExtrapolateSpeed * num;
            }
        }
        else
        {
            Quaternion rotation = Quaternion.Euler(0f, this.FEMCINHEMEO * num, 0f);
            result = rotation * (this.JPAGJFHJAAB * num);
        }
        return(result);
    }
Ejemplo n.º 2
0
        private void TrySwitchMasterClient()
        {
            if (!DB || Players == null || Players.Length == 1)
            {
                return;
            }

            int p = PhotonNetwork.GetPing();

            if (Players.Length > 1 && (p > DB.lagThreshold || errors >= DB.switchMasterErrors))
            {
                Player n = GetNextMaster();
                if (n == PhotonNetwork.LocalPlayer)
                {
                    lastLagCheck = Time.time + DB.lagCheck * LAG_CHECK_DELAY;
                    //continue;
                }
                else
                {
                    if (n != PhotonNetwork.MasterClient)
                    {
                        PhotonNetwork.SetMasterClient(n);
                    }
                    skipLagCheck = true;
                }
            }
        }
Ejemplo n.º 3
0
    /// <summary>
    /// reports ping every 10 (default) seconds by storing it as a custom player
    /// prefs value in the Photon Cloud. 'Ping' is defined as the roundtrip time to
    /// the Photon server and it is only reported if it has changed
    /// </summary>
    public virtual void UpdatePing()
    {
        // only report ping every 10 (default) seconds
        if (Time.time < m_NextAllowedPingTime)
        {
            return;
        }
        m_NextAllowedPingTime = Time.time + PingReportInterval;

        // get the roundtrip time to the photon server
        int ping = PhotonNetwork.GetPing();

        // only report ping if it changed since last time
        if (ping == m_LastPing)
        {
            return;
        }
        m_LastPing = ping;

        // send the ping as a custom player property (the first time it will be
        // created, from then on it will be updated)
        Hashtable playerCustomProps = new Hashtable();

        playerCustomProps["Ping"] = ping;
        PhotonNetwork.player.SetCustomProperties(playerCustomProps);
    }
 //Chamado assim que a conexão é realizada e validada
 public override void OnConnectedToMaster()
 {
     print("Conexão realizada e validada com sucesso");
     print("Server: " + PhotonNetwork.CloudRegion + " Ping: " + PhotonNetwork.GetPing()); //Local do servidor e ping
     partidasUI.gameObject.SetActive(true);
     //PhotonNetwork.JoinLobby(); //Entrar em um Lobby
 }
    private void NetworkMovement()
    {
        pingInSeconds       = (float)PhotonNetwork.GetPing() * 0.001f;
        timeSinceLastUpdate = (float)(PhotonNetwork.Time - _networkLastDataReceivedTime);
        totalTimePassed     = pingInSeconds + timeSinceLastUpdate;

        // Depending if grounded use the correct acceleration
        float acceleration = onGround ? maxAcceleration : maxAirAcceleration;
        //float maxSpeedChange = acceleration * Time.deltaTime;
        float maxSpeedChange = _networkVelocity.magnitude * Time.deltaTime;

        //Vector3 exterpolatedTargetPosition = _networkPosition + Vector3.Scale(transform.position, _networkVelocity) * totalTimePassed;
        //exterpolatedTargetPosition = _networkPosition + Vector3.Scale(transform.position, _networkVelocity) * totalTimePassed;

        //newPosition = Vector3.MoveTowards(transform.position, exterpolatedTargetPosition, _body.velocity.magnitude * Time.fixedDeltaTime);
        //newPosition.x = Mathf.MoveTowards(transform.position.x, exterpolatedTargetPosition.x, maxSpeedChange);
        //newPosition.y = Mathf.MoveTowards(transform.position.y, exterpolatedTargetPosition.y, maxSpeedChange);

        velocity.x =
            Mathf.MoveTowards(velocity.x, _networkVelocity.x, maxSpeedChange);
        velocity.y =
            Mathf.MoveTowards(velocity.x, _networkVelocity.y, maxSpeedChange);

        if (Vector3.Distance(transform.position, exterpolatedTargetPosition) > 2f)
        {
            newPosition = exterpolatedTargetPosition;
        }

        //newPosition.y = Mathf.Clamp(newPosition.y, 0.0f, 50f);
        _body.velocity = velocity;
        //transform.position = newPosition;
    }
Ejemplo n.º 6
0
    /// <summary>
    /// Calculates an estimated position based on the last synchronized position,
    /// the time when the last position was received and the movement speed of the object
    /// </summary>
    /// <returns>Estimated position of the remote object</returns>
    public Vector3 GetExtrapolatedPositionOffset()
    {
        float timePassed = (float)(PhotonNetwork.time - m_LastSerializeTime);

        if (m_Model.ExtrapolateIncludingRoundTripTime == true)
        {
            timePassed += (float)PhotonNetwork.GetPing() / 1000f;
        }

        Vector3 extrapolatePosition = Vector3.zero;

        switch (m_Model.ExtrapolateOption)
        {
        case PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues:
            Quaternion turnRotation = Quaternion.Euler(0, m_SynchronizedTurnSpeed * timePassed, 0);
            extrapolatePosition = turnRotation * (m_SynchronizedSpeed * timePassed);
            break;

        case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed:
            Vector3 moveDirection = (m_NetworkPosition - GetOldestStoredNetworkPosition()).normalized;

            extrapolatePosition = moveDirection * m_Model.ExtrapolateSpeed * timePassed;
            break;

        case PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn:
            Vector3 moveDelta = (m_NetworkPosition - GetOldestStoredNetworkPosition()) * PhotonNetwork.sendRateOnSerialize;
            extrapolatePosition = moveDelta * timePassed;
            break;
        }

        return(extrapolatePosition);
    }
    public Vector3 GetExtrapolatedPositionOffset()
    {
        float num = (float)(PhotonNetwork.time - this.m_LastSerializeTime);

        if (this.m_Model.ExtrapolateIncludingRoundTripTime)
        {
            num += (float)PhotonNetwork.GetPing() / 1000f;
        }
        Vector3 result = Vector3.zero;

        switch (this.m_Model.ExtrapolateOption)
        {
        case PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues:
        {
            Quaternion rotation = Quaternion.Euler(0f, this.m_SynchronizedTurnSpeed * num, 0f);
            result = rotation * (this.m_SynchronizedSpeed * num);
            break;
        }

        case PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn:
        {
            Vector3 a = (this.m_NetworkPosition - this.GetOldestStoredNetworkPosition()) * (float)PhotonNetwork.sendRateOnSerialize;
            result = a * num;
            break;
        }

        case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed:
        {
            Vector3 normalized = (this.m_NetworkPosition - this.GetOldestStoredNetworkPosition()).normalized;
            result = normalized * this.m_Model.ExtrapolateSpeed * num;
            break;
        }
        }
        return(result);
    }
Ejemplo n.º 8
0
    private void Update()
    {
        if (textConnectedRegion != null)
        {
            textConnectedRegion.text = string.Format(formatConnectedRegion, PhotonNetwork.CloudRegion);
        }

        if (textPing != null)
        {
            textPing.text = string.Format(formatPing, PhotonNetwork.GetPing().ToString("N0"));
        }

        if (textCountOfPlayers != null)
        {
            textCountOfPlayers.text = string.Format(formatCountOfPlayers, PhotonNetwork.CountOfPlayers.ToString("N0"));
        }

        if (textCountOfPlayersInRoom != null)
        {
            textCountOfPlayersInRoom.text = string.Format(formatCountOfPlayersInRoom, PhotonNetwork.CountOfPlayersInRooms.ToString("N0"));
        }

        if (textCountOfPlayersOnMaster != null)
        {
            textCountOfPlayersOnMaster.text = string.Format(formatCountOfPlayersOnMaster, PhotonNetwork.CountOfPlayersOnMaster.ToString("N0"));
        }

        if (textCountOfRooms != null)
        {
            textCountOfRooms.text = string.Format(formatCountOfRooms, PhotonNetwork.CountOfRooms.ToString("N0"));
        }
    }
Ejemplo n.º 9
0
    // Update is called once per frame
    void Update()
    {
        //pingを常に取得し、値に応じて表記を変更
        ping           = PhotonNetwork.GetPing();
        pingText.color = (ping >= 100) ? Color.red : Color.black;
        pingText.text  = "Ping : " + ping;
        if (isInRoom)
        {
            roomNameText.text = PhotonNetwork.room.Name + "\n" + PhotonNetwork.room.PlayerCount + " / " + PhotonNetwork.room.MaxPlayers;
            if (PhotonNetwork.room.PlayerCount == PhotonNetwork.room.MaxPlayers)
            {
                isMax = true;
            }
        }

        //ルーム内の人数が最大人数になったら自動的にキャラクター選択画面を表示


        if (isMax && !isInCharaSelect)
        {
            isMax           = false;
            isInCharaSelect = true;
            //キャラ選択画面を表示
            GoToSelectCharaMenu();
        }
    }
Ejemplo n.º 10
0
    void OnGUI()
    {
        //Check connection state..
        if (!PhotonNetwork.connected && !PhotonNetwork.connecting)
        {
            //We are currently disconnected
            GUILayout.Label("Connection status: " + PhotonNetwork.connectionStateDetailed);

            GUILayout.BeginVertical();
            if (GUILayout.Button("Connect"))
            {
                //Connect using the PUN wizard settings (Self-hosted server or Photon cloud)
                PhotonNetwork.ConnectUsingSettings("1.0");
            }
            GUILayout.EndVertical();
        }
        else
        {
            //We're connected!
            GUILayout.Label("Connection status: " + PhotonNetwork.connectionStateDetailed);
            if (PhotonNetwork.room != null)
            {
                GUILayout.Label("Room: " + PhotonNetwork.room.name);
                GUILayout.Label("Players: " + PhotonNetwork.room.playerCount + "/" + PhotonNetwork.room.maxPlayers);
            }
            else
            {
                GUILayout.Label("Not inside any room");
            }

            GUILayout.Label("Ping to server: " + PhotonNetwork.GetPing());
        }
    }
Ejemplo n.º 11
0
        // Round timers
        public void StartRoundTimerSynchronization()
        {
            if (matchStatus == MatchStatus.WaitingToStartRound)
            {
                // There should only be one other player in this list
                // Ping in this situation is RTT
                // Note this value could overflow to negative

                // Cache value for validation
                Photon.Realtime.Player[] otherPlayerList = PhotonNetwork.PlayerListOthers;

                if (otherPlayerList.Length > 0)
                {
                    int otherPlayerPing = (int)otherPlayerList[0].CustomProperties["Ping"];
                    int thisPlayerPing  = PhotonNetwork.GetPing();

                    // Whichever player has the higher ping, use their ping as the delay to start the timer
                    int delayPing = (otherPlayerPing > thisPlayerPing) ? otherPlayerPing : thisPlayerPing;

                    // Note there may be discrepancy if the ping of the other client changes significantly within the time to recieve this RPC
                    // Buffer this by double so that the client with the highest ping will not have to start the timer right away
                    photonView.RPC("HandleRoundTimerStartSynchronization", RpcTarget.AllViaServer, PhotonNetwork.ServerTimestamp, 2 * delayPing);
                }
            }
        }
Ejemplo n.º 12
0
 public void GetPing(int count)
 {
     if (count < 19)
     {
         pinged[count] = PhotonNetwork.GetPing();
     }
     if (count == 19)
     {
         pinged [count] = PhotonNetwork.GetPing();
         float pingAvg  = (pinged [0] + pinged [1] + pinged [2] + pinged [3] + pinged [4] + pinged [5] + pinged [6] + pinged [7] + pinged [8] + pinged [9] + pinged [10] + pinged [11] + pinged [12] + pinged [13] + pinged [14] + pinged [15] + pinged [16] + pinged [17] + pinged [18] + pinged [19]) / 20;
         Text  pingText = GetComponent <Text> ();
         pingText.text = "" + Mathf.RoundToInt(pingAvg);
         if (pingAvg < 110)
         {
             pingText.color = Color.green;
         }
         if (pingAvg >= 110 && pingAvg < 220)
         {
             pingText.color = Color.yellow;
         }
         if (pingAvg >= 220)
         {
             pingText.color = Color.red;
         }
     }
 }
Ejemplo n.º 13
0
    public void OnEnterPassworld(InputField pass)
    {
        if (checkingRoom == null)
        {
            Debug.Log("Checking room is not assigned more!");
            return;
        }

        if ((string)checkingRoom.CustomProperties[PropertiesKeys.RoomPassworld] == pass.text && checkingRoom.PlayerCount < checkingRoom.MaxPlayers)
        {
            if (PhotonNetwork.GetPing() < (int)checkingRoom.CustomProperties[PropertiesKeys.MaxPing])
            {
                FadeImage.SetActive(true);
                FadeImage.GetComponent <Animator>().speed = 2;
                if (checkingRoom.PlayerCount < checkingRoom.MaxPlayers)
                {
                    PhotonNetwork.JoinRoom(checkingRoom.Name);
                }
            }
        }
        else
        {
            PasswordLogText.text = "Wrong room password";
        }
    }
    // Token: 0x0600BAD2 RID: 47826 RVA: 0x0044093C File Offset: 0x0043EB3C
    public Vector3 ECGDJCOKCBF()
    {
        float num = (float)(PhotonNetwork.time - this.IMNELEFELLD);

        if (this.HNCFAJJGIPN.ExtrapolateIncludingRoundTripTime)
        {
            num += (float)PhotonNetwork.GetPing() / 737f;
        }
        Vector3 result = Vector3.zero;

        PhotonTransformViewPositionModel.ExtrapolateOptions extrapolateOption = this.HNCFAJJGIPN.ExtrapolateOption;
        if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.Disabled)
        {
            if (extrapolateOption != (PhotonTransformViewPositionModel.ExtrapolateOptions) 4)
            {
                if (extrapolateOption == (PhotonTransformViewPositionModel.ExtrapolateOptions) 4)
                {
                    Vector3 a = (this.LPBKKPPALCD - this.DEKDAMEJFGB()) * (float)PhotonNetwork.sendRateOnSerialize;
                    result = a * num;
                }
            }
            else
            {
                Vector3 normalized = (this.LPBKKPPALCD - this.DNCBFGDAEKL()).normalized;
                result = normalized * this.HNCFAJJGIPN.ExtrapolateSpeed * num;
            }
        }
        else
        {
            Quaternion rotation = Quaternion.Euler(1224f, this.FEMCINHEMEO * num, 1456f);
            result = rotation * (this.JPAGJFHJAAB * num);
        }
        return(result);
    }
Ejemplo n.º 15
0
        private void OnGUI()
        {
            GUILayout.Label("FPS:" + currentFPS.ToString("f2"));
            GUILayout.Label("Ping:" + PhotonNetwork.GetPing());
            GUILayout.Label("当前时间:" + mapdynamicloading.elapsed);
            switch (state)
            {
            case (mapStates.WaitforReset):
            {
                GUILayout.Label(timeOfReset + "s重置安全区");
                break;
            }

            case (mapStates.WaitforCollapse):
            {
                GUILayout.Label(timeOfCollapse + "s开始塌陷");
                break;
            }

            case (mapStates.Collapse):
            {
                GUILayout.Label(timeOfFinishCollapse + "s停止塌陷");
                break;
            }
            }
        }
Ejemplo n.º 16
0
    public void RoomRenewal()
    {
        Hashtable PlayerCustomProps = new Hashtable();

        ListText.text = "";
        for (int i = 0; i < PhotonNetwork.PlayerList.Length; i++)
        {
            PlayerCustomProps["Ping"] = PhotonNetwork.GetPing();
            if (PhotonNetwork.PlayerList[i].NickName == PhotonNetwork.NickName)
            {
                PhotonNetwork.PlayerList[i].SetCustomProperties(PlayerCustomProps);
            }


            if (playerCountSave.instance.isKor())
            {
                ListText.text += PhotonNetwork.PlayerList[i].NickName + (PhotonNetwork.PlayerList[i].IsMasterClient == true ? "(방장)" :"") + " - " + PhotonNetwork.PlayerList[i].CustomProperties["Ping"] + "ms" + "\n";
            }
            else
            {
                ListText.text += PhotonNetwork.PlayerList[i].NickName + (PhotonNetwork.PlayerList[i].IsMasterClient == true ? "(Master)" :"") + " - " + PhotonNetwork.PlayerList[i].CustomProperties["Ping"] + "ms" + "\n";
            }
        }

        RoomInfoText.text = PhotonNetwork.CurrentRoom.Name + " - " + PhotonNetwork.CurrentRoom.PlayerCount + " / " + PhotonNetwork.CurrentRoom.MaxPlayers;
    }
Ejemplo n.º 17
0
    void UpdateStatus()
    {
        string status = PhotonNetwork.connectionStateDetailed.ToString();
        int    ping   = PhotonNetwork.GetPing();

        Debug.Log(status + ", " + ping + "ms");
    }
Ejemplo n.º 18
0
 void Awake()
 {
     realPosition                      = Vector3.zero;
     PhotonNetwork.sendRate            = Mathf.FloorToInt(2000.0f / PhotonNetwork.GetPing());
     PhotonNetwork.sendRateOnSerialize = Mathf.FloorToInt(2000.0f / PhotonNetwork.GetPing());
     StartCoroutine(SetPlayerPing());
 }
Ejemplo n.º 19
0
    public override void Move(Vector2 goTo, int leaderID = -1, float speed = -1, float arrivalThreshholdOverride = -1)
    {
        Vector2   nowGoing    = body.velocity;
        Vector2   nowAt       = transform.position;
        double    whenToStart = PhotonNetwork.Time + PhotonNetwork.GetPing() * 0.0015;
        Transform leader      = null;

        if (leaderID != -1)
        {
            leader = PhotonNetwork.GetPhotonView(leaderID).transform;
        }
        float arrivalThreshhold;

        if (arrivalThreshholdOverride == -1)
        {
            arrivalThreshhold = bodyCircle.radius;
        }
        else
        {
            arrivalThreshhold = arrivalThreshholdOverride;
        }
        int noiseStartPoint = Random.Range(0, 100);

        // photonView.RPC("Move", RpcTarget.Others, whenToStart, nowGoing.x, nowGoing.y, nowAt.x, nowAt.y, goTo.x, goTo.y, noiseStartPoint, leaderID, moveConductor.GetSpeed(), arrivalThreshholdOverride);
        moveConductor.Go(goTo, whenToStart, noiseStartPoint, leader, speed, arrivalThreshhold);
    }
Ejemplo n.º 20
0
    private double GetInterpolationBackTime()
    {
        int interpolaitionBackTime;
        int ping = PhotonNetwork.GetPing();

        if (ping < 50)
        {
            interpolaitionBackTime = 100;
        }
        else if (ping < 100)
        {
            interpolaitionBackTime = 150;
        }
        else if (ping < 200)
        {
            interpolaitionBackTime = 250;
        }
        else if (ping < 400)
        {
            interpolaitionBackTime = 450;
        }
        else if (ping < 600)
        {
            interpolaitionBackTime = 650;
        }
        else
        {
            interpolaitionBackTime = 1050;
        }
        return(interpolaitionBackTime / 1000d);
    }
Ejemplo n.º 21
0
    private void Update()
    {
        Timer += Time.deltaTime;
        int TimeLeft = (int)(MatchLength - Timer);
        //TimerText.text = Convert.ToString(MatchLength - Timer);
        int minutes = Mathf.FloorToInt(TimeLeft / 60F);
        int seconds = Mathf.FloorToInt(TimeLeft % 60F);

        TimerText.text = minutes.ToString("0") + ":" + seconds.ToString("00");

        if (TimeLeft <= 0 && !endedGame)
        {
            EndGame();
            endedGame = true;
        }

        if (TimeLeft <= -10)
        {
            OnClick_LoadLobby();
        }

        EliminationsText.text = localPlayer.GetComponent <PlayerHealth>().Eliminations.ToString();

        PingText.text = "Ping: " + PhotonNetwork.GetPing();

        if (RespawnTimerActive)
        {
            StartRespawn();
        }
    }
Ejemplo n.º 22
0
 public override void OnConnectedToMaster()
 {
     LogManager.Instance.Add("Callback: OnConnectedToMaster(). Cloud Region: " + PhotonNetwork.CloudRegion +
                             ". Ping: " + PhotonNetwork.GetPing() + "ms.");
     LogManager.Instance.Add("Call: JoinRandomRoom().");
     PhotonNetwork.JoinRandomRoom();
 }
Ejemplo n.º 23
0
    /// <summary>
    /// Updates the network matchmaker
    /// </summary>
    void Update()
    {
        if (Diagnostics.IsActive())
        {
            Diagnostics.Add("Network Status", m_networkDiagnostic);
            Diagnostics.Add("Disconnect Status", m_disconnectCause);
            Diagnostics.Add("Ping", PhotonNetwork.GetPing());
            Diagnostics.Add("Server Time", PhotonNetwork.time);
        }

        // Attempt to reconnect when disconnected
        if (m_reconnectTimer != 0.0f)
        {
            m_reconnectTimer -= Time.deltaTime;
            if (m_reconnectTimer <= 0.0f)
            {
                m_reconnectTimer = 0.0f;
                ConnectToMatchmaker();
            }
        }

        // Creates a new player when the level has fully initialised
        if (!m_synchedPrefabs.IsInitialised() &&
            IsConnectedToLevel() &&
            Utilities.IsLevelLoaded() &&
            !Utilities.IsGameOver())
        {
            m_synchedPrefabs.Create();
        }
    }
Ejemplo n.º 24
0
    /// <summary>
    /// Muestra en pantalla datos de conección, como el estado de coneccion o el nombre de sala en la que se encuentra,
    /// ping y usuarios conectados.
    /// </summary>
    private void OnGUI()
    {
        toggleGUI = GUI.Toggle(new Rect((Screen.width) - 50, 0, 200, 200), toggleGUI, ".");

        GUI.enabled = false;
        if (this.toggleGUI)
        {
            GUILayout.TextArea(PhotonNetwork.countOfPlayers.ToString());
            GUILayout.TextArea(PhotonNetwork.connectionState.ToString());
            GUILayout.TextArea(PhotonNetwork.GetPing().ToString());
            GUILayout.TextArea("In Room= " + PhotonNetwork.countOfPlayersInRooms);
            //Centro
            GUILayout.BeginArea(new Rect((Screen.width / 2) - 50, 0, 200, 200));
            GUILayout.TextArea(this.photonHandler.Identificador);
            GUILayout.EndArea();

            if (joinRoom)
            {
                GUILayout.BeginArea(new Rect((Screen.width) - 200, 0, 200, 200));
                GUILayout.TextArea("Nombre de sala: \n" + PhotonNetwork.room.Name);
                GUILayout.TextArea("Jugadores");
                foreach (var item in PhotonNetwork.playerList)
                {
                    GUILayout.TextArea(item.NickName);
                }
                GUILayout.EndArea();
            }
        }
        GUI.enabled = true;
    }
    public Vector3 GetExtrapolatedPositionOffset()
    {
        float num = (float)(PhotonNetwork.time - this.m_LastSerializeTime);

        if (this.m_Model.ExtrapolateIncludingRoundTripTime)
        {
            num += (float)PhotonNetwork.GetPing() / 1000f;
        }
        Vector3 vector3_1 = Vector3.get_zero();

        switch (this.m_Model.ExtrapolateOption)
        {
        case PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues:
            vector3_1 = Quaternion.op_Multiply(Quaternion.Euler(0.0f, this.m_SynchronizedTurnSpeed * num, 0.0f), Vector3.op_Multiply(this.m_SynchronizedSpeed, num));
            break;

        case PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn:
            vector3_1 = Vector3.op_Multiply(Vector3.op_Multiply(Vector3.op_Subtraction(this.m_NetworkPosition, this.GetOldestStoredNetworkPosition()), (float)PhotonNetwork.sendRateOnSerialize), num);
            break;

        case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed:
            Vector3 vector3_2 = Vector3.op_Subtraction(this.m_NetworkPosition, this.GetOldestStoredNetworkPosition());
            // ISSUE: explicit reference operation
            vector3_1 = Vector3.op_Multiply(Vector3.op_Multiply(((Vector3)@vector3_2).get_normalized(), this.m_Model.ExtrapolateSpeed), num);
            break;
        }
        return(vector3_1);
    }
Ejemplo n.º 26
0
    private void OnGUI()
    {
        if (_Debug)
        {
            GUILayout.BeginHorizontal();

            GUILayout.BeginVertical();

            GUI.color = Color.green;
            GUILayout.Label("Network Debugger: ");
            GUILayout.Space(3);
            GUI.color = Color.white;
            GUILayout.Label("Connection Status " + PhotonNetwork.ConnectMethod.ToString());
            GUILayout.Label("Server: " + PhotonNetwork.CloudRegion);
            GUILayout.Label("Ping: " + PhotonNetwork.GetPing());
            GUILayout.Label("In Room: " + PhotonNetwork.InRoom);
            if (PhotonNetwork.InRoom)
            {
                GUILayout.Label("Room name: " + PhotonNetwork.CurrentRoom.Name);
                GUILayout.Label("Maximum players allowed in room: " + PhotonNetwork.CurrentRoom.MaxPlayers);
                GUILayout.Label("Number of players in room:" + PhotonNetwork.CurrentRoom.PlayerCount);
            }

            GUILayout.EndVertical();

            GUILayout.EndHorizontal();
        }
    }
    // INTERNALS

    private void CheckPlayerPing()
    {
        int currentPing = PhotonNetwork.GetPing();

        int diff    = currentPing - m_LastPlayerPing;
        int absDiff = Mathf.Abs(diff);

        if (diff < 0)
        {
            if (absDiff > m_PlayerFallingThreshold)
            {
                WritePlayerProperty(currentPing);
            }
        }
        else
        {
            if (diff > 0)
            {
                if (absDiff > m_PlayerRisingThreshold)
                {
                    WritePlayerProperty(currentPing);
                }
            }
        }

        m_LastPlayerPing = currentPing;
    }
Ejemplo n.º 28
0
    void OnJoinedRoom()
    {
        Debug.Log("inroom");
        create_hands();

        Debug.Log(PhotonNetwork.GetPing());
    }
Ejemplo n.º 29
0
    void UpdateNetworkedPosition()
    {
        //Here we try to predict where the player actually is depending on the data we received through the network
        //Check out Part 1 Lesson 2 http://youtu.be/7hWuxxm6wsA for more detailed explanations
        float pingInSeconds       = (float)PhotonNetwork.GetPing() * 0.001f;
        float timeSinceLastUpdate = (float)(PhotonNetwork.time - m_LastNetworkDataReceivedTime);
        float totalTimePassed     = pingInSeconds + timeSinceLastUpdate;

        Vector3 exterpolatedTargetPosition = m_NetworkPosition
                                             + transform.forward * Speed * totalTimePassed;


        Vector3 newPosition = Vector3.MoveTowards(transform.position
                                                  , exterpolatedTargetPosition
                                                  , Speed * Time.deltaTime);

        if (Vector3.Distance(transform.position, exterpolatedTargetPosition) > 2f)
        {
            newPosition = exterpolatedTargetPosition;
        }

        newPosition.y = Mathf.Clamp(newPosition.y, 0.5f, 50f);

        transform.position = newPosition;
    }
    // Token: 0x0600BAC7 RID: 47815 RVA: 0x004402B0 File Offset: 0x0043E4B0
    public Vector3 FLFDHNJMIOC()
    {
        float num = (float)(PhotonNetwork.time - this.IMNELEFELLD);

        if (this.HNCFAJJGIPN.ExtrapolateIncludingRoundTripTime)
        {
            num += (float)PhotonNetwork.GetPing() / 540f;
        }
        Vector3 result = Vector3.zero;

        PhotonTransformViewPositionModel.ExtrapolateOptions extrapolateOption = this.HNCFAJJGIPN.ExtrapolateOption;
        if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues)
        {
            if (extrapolateOption != (PhotonTransformViewPositionModel.ExtrapolateOptions) 4)
            {
                if (extrapolateOption == (PhotonTransformViewPositionModel.ExtrapolateOptions) 8)
                {
                    Vector3 a = (this.LPBKKPPALCD - this.DJGBPPCBIAP()) * (float)PhotonNetwork.sendRateOnSerialize;
                    result = a * num;
                }
            }
            else
            {
                Vector3 normalized = (this.LPBKKPPALCD - this.DEKDAMEJFGB()).normalized;
                result = normalized * this.HNCFAJJGIPN.ExtrapolateSpeed * num;
            }
        }
        else
        {
            Quaternion rotation = Quaternion.Euler(161f, this.FEMCINHEMEO * num, 1645f);
            result = rotation * (this.JPAGJFHJAAB * num);
        }
        return(result);
    }