Esempio n. 1
0
    void CancelOnlineStatusRequest()
    {
        CancelInvoke("CreateOnlineStatusRequest");

        if (m_OnlineStatusRequest != null)
        {
            m_OnlineStatusRequest.Cancel();
            m_OnlineStatusRequest = null;
        }
    }
Esempio n. 2
0
    // =========================================================================================================================
    // === online status =======================================================================================================
    void CreateOnlineStatusRequest()
    {
        CancelOnlineStatusRequest();

        string[] friends = new string[m_Friends.Count];
        for (int idx = 0; idx < m_Friends.Count; ++idx)
        {
            friends[idx] = m_Friends[idx].PrimaryKey;
        }

        m_OnlineStatusRequest = LobbyClient.CreatePlayerStatusRequest(friends, OnOnlineStatusRequest);
    }
Esempio n. 3
0
    void OnOnlineStatusRequest(LobbyClient.PlayerStatusMultiRequest request)
    {
        if (request.HasSucceeded == true)
        {
            foreach (var friend in m_Friends)
            {
                LobbyClient.PlayerStatus status = request.GetPlayerStatus(friend.PrimaryKey);
                if (status == null || status.IsOnline == false)
                {
                    friend.OnlineStatus = E_OnlineStatus.Offline;
                }
                else
                {
                    friend.OnlineStatus   = status.IsInGame == true ? E_OnlineStatus.InGame : E_OnlineStatus.InLobby;
                    friend.LastOnlineDate = GuiBaseUtils.DateToEpoch(CloudDateTime.UtcNow);
                }
            }

            OnFriendListChanged();
        }

        Invoke("CreateOnlineStatusRequest", ONLINE_STATUS_FREQUENCY);
    }