Exemple #1
0
        public static void Disconnect()
        {
            try
            {
                Logger.Debug($"Disconnect from current lobby");
                SteamMatchmaking.SetLobbyMemberData(_lobbyInfo.LobbyID, "STATUS", "DISCONNECTED");
                Controllers.PlayerController.Instance.StopBroadcasting();
                _lobbyInfo.HostName = "";
                SendLobbyInfo(true);

                Connection = ConnectionState.DISCONNECTED;
                SteamMatchmaking.LeaveLobby(_lobbyInfo.LobbyID);
                Controllers.PlayerController.Instance.DestroyAvatars();
                WaitingMenu.firstInit  = true;
                WaitingMenu.queuedSong = null;
                _lobbyInfo             = new LobbyInfo();
                UpdateUserInfo();
                Scoreboard.Instance.RemoveAll();
                SongListUtils.InSong = false;
                Controllers.PlayerController.Instance._playerInfo = new PlayerInfo(GetUserName(), GetUserID());
                LobbyData.Clear();
            } catch (Exception e)
            {
                Logger.Error(e);
            }
        }
Exemple #2
0
        public static void KickAll()
        {
            List <ulong> connectedUsers = Controllers.PlayerController.Instance.GetConnectedPlayers();

            for (int i = 0; i < connectedUsers.Count; i++)
            {
                SteamMatchmaking.SetLobbyMemberData(_lobbyInfo.LobbyID, "STATUS", $"KICK={connectedUsers[i]}");
            }
        }
Exemple #3
0
    public void StartGame()
    {
        User u = Client.Lobby.GetUserFromID(Client.MyID);

        if (u != null && u.AvatarID != -1 && u.SteamAvatarImage != null)
        {
            SteamMatchmaking.SetLobbyMemberData(Client.Lobby.LobbyID, "Ready", "1");
        }
    }
 /// <summary>
 /// Read and write metadata values to the lobby
 /// </summary>
 /// <param name="metadataKey">The key of the value to be read or writen</param>
 /// <returns>The value of the key if any otherwise returns and empty string.</returns>
 public string this[string metadataKey]
 {
     get
     {
         return(SteamMatchmaking.GetLobbyMemberData(lobbyId, userData.id, metadataKey));
     }
     set
     {
         SteamMatchmaking.SetLobbyMemberData(lobbyId, metadataKey, value);
     }
 }
Exemple #5
0
 /// <summary>
 /// Setup customization profile to display to other players in premade lobby.
 /// Can be used as "refresh" when returning from arena to main menu
 /// </summary>
 public void PostCustomizationProfile()
 {
     if (teambuilderLobbyId != null)
     {
         var preset = DataManager.Instance.GetCustomizationProfile();
         if (C.LOG_INVITE)
         {
             Debug.Log("Setting up my customization profile: " + preset);
         }
         SteamMatchmaking.SetLobbyMemberData(teambuilderLobbyId, "preset", preset);
     }
 }
Exemple #6
0
    public void OnLobbyChatUpdate(LobbyChatUpdate_t pCallback)
    {
        if (C.LOG_INVITE)
        {
            Debug.Log("Premade lobby: OnLobbyChatUpdate");
        }

        UpdateTeammatesPresence();
        CheckLock();

        /// If someone left
        if (pCallback.m_ulSteamIDLobby == teambuilderLobbyId.m_SteamID &&
            (pCallback.m_rgfChatMemberStateChange == (uint)EChatMemberStateChange.k_EChatMemberStateChangeLeft ||
             pCallback.m_rgfChatMemberStateChange == (uint)EChatMemberStateChange.k_EChatMemberStateChangeDisconnected))
        {
            if (C.LOG_INVITE)
            {
                Debug.LogWarning(SteamFriends.GetFriendPersonaName(new CSteamID(pCallback.m_ulSteamIDUserChanged)) + " left lobby");
            }

            /// Leave lobby if left only this player
            if (SteamMatchmaking.GetNumLobbyMembers(teambuilderLobbyId) <= 1)
            {
                LeaveTeambuilderLobby();
            }

            /// Update 'premade' message
            var snm = SteamNetworkManager.Instance;
            if (snm.steamLobbyId != CSteamID.Nil)
            {
                SteamMatchmaking.SetLobbyMemberData(snm.steamLobbyId, "premade", GeneratePremadeMessage());
            }

            /// If became new lobby owner - start pinging chat
            if (IsLobbyOwner() && _pingCoroutine == null)
            {
                _pingCoroutine = StartCoroutine(PingChat());
            }
        }

        /// If user enters lobby
        else if (pCallback.m_rgfChatMemberStateChange == (uint)EChatMemberStateChange.k_EChatMemberStateChangeEntered &&
                 pCallback.m_ulSteamIDLobby == teambuilderLobbyId.m_SteamID)
        {
            if (C.LOG_INVITE)
            {
                Debug.LogWarning(SteamFriends.GetFriendPersonaName(new CSteamID(pCallback.m_ulSteamIDUserChanged)) + " joined lobby");
            }
        }
    }
    private void OnLobbyEnter(LobbyEnter_t callback)
    {
        if (!SteamManager.Initialized)
        {
            return;
        }
        if (this.m_LobbyId != (CSteamID)callback.m_ulSteamIDLobby)
        {
            this.m_LobbyId = new CSteamID(callback.m_ulSteamIDLobby);
        }
        CSteamID lobbyOwner = SteamMatchmaking.GetLobbyOwner(this.m_LobbyId);

        this.m_LobbyOwner = lobbyOwner;
        CSteamID steamID = SteamUser.GetSteamID();

        if (lobbyOwner.m_SteamID == steamID.m_SteamID)
        {
            if (P2PLogFilter.logInfo)
            {
                Debug.Log("[TransportLayerSteam] Connected to Steam lobby as owner");
            }
            SteamMatchmaking.SetLobbyData(this.m_LobbyId, "game_ver", GreenHellGame.s_GameVersion.ToString());
            SteamMatchmaking.SetLobbyData(this.m_LobbyId, "name", SteamFriends.GetPersonaName());
            SteamMatchmaking.SetLobbyMemberData(this.m_LobbyId, "member_name", SteamFriends.GetPersonaName());
            SteamMatchmaking.SetLobbyData(this.m_LobbyId, "lobby_type", EnumUtils <P2PGameVisibility> .GetName(this.GetGameVisibility()));
            P2PTransportLayer.OnLobbyEnter(true);
            return;
        }
        if (callback.m_EChatRoomEnterResponse == 1u)
        {
            if (P2PLogFilter.logInfo)
            {
                Debug.Log(string.Format("[TransportLayerSteam] Connected to Steam lobby {0} as member", this.m_LobbyId));
            }
            this.m_JoiningDelayed = this.RequestP2PConnectionWithHost();
            SteamMatchmaking.SetLobbyMemberData(this.m_LobbyId, "member_name", SteamFriends.GetPersonaName());
            P2PTransportLayer.OnLobbyEnter(false);
            return;
        }
        if (P2PLogFilter.logWarn)
        {
            string str = "[TransportLayerSteam] Lobby enter failure: ";
            EChatRoomEnterResponse echatRoomEnterResponse = (EChatRoomEnterResponse)callback.m_EChatRoomEnterResponse;
            Debug.LogWarning(str + echatRoomEnterResponse.ToString());
        }
        this.Shutdown();
    }
Exemple #8
0
 void OnLobbyEntered(LobbyEnter_t result)
 {
     if (current_lobbyID == result.m_ulSteamIDLobby)
     {
         return;
     }
     current_lobbyID = result.m_ulSteamIDLobby;
     if (result.m_EChatRoomEnterResponse == 1)
     {
         if (SteamMatchmaking.GetLobbyData((CSteamID)current_lobbyID, "status") != "open" || SteamMatchmaking.GetNumLobbyMembers((CSteamID)current_lobbyID) > 2)
         {
             SetText("joinfail");
             initializedStatus = -2;
             SteamMatchmaking.LeaveLobby((CSteamID)current_lobbyID);
             return;
         }
         otherUsr = SteamMatchmaking.GetLobbyMemberByIndex((CSteamID)current_lobbyID, 0);
         if ((CSteamID)otherUsr == SteamUser.GetSteamID())
         {
             Debug.Log("F**K!");
             return;
         }
         initializedStatus = 5;
         SetUpReadyButtons();
         lastTimeMessageReceived = Time.time;
         //Debug.Log ("OTHERUSR: "******"player", ((int)PD.p1Char).ToString());
         int score = 0;
         SteamUserStats.GetUserStat(otherUsr, "GAMESCORE", out score);
         if (player2Rank == null)
         {
             FontData f = PD.mostCommonFont.Clone(); f.color = Color.white;
             player2Rank = GetMeshText(new Vector3(0.745f, 1.8f), SteamFriends.GetFriendPersonaName(otherUsr), f);
             SteamUserStats.RequestUserStats(otherUsr);
         }
         parent.ForcePlayer2(int.Parse(SteamMatchmaking.GetLobbyData((CSteamID)current_lobbyID, "playerone")));
         myMesh.gameObject.SetActive(false);
     }
     else
     {
         SetText("joinfail");
         initializedStatus = -2;
         current_lobbyID   = 0;
     }
 }
Exemple #9
0
    private void OnP2PSessionRequest(P2PSessionRequest_t request)
    {
        Debug.Log("RECEIVED P2P CONNECTION");
        CSteamID clientId = request.m_steamIDRemote;

        if (clientId == otherUsr)
        {
            Debug.Log("RECIEVED CORRECT P2P CONNECTION");
            SteamNetworking.AcceptP2PSessionWithUser(clientId);
            SteamMatchmaking.SetLobbyMemberData((CSteamID)current_lobbyID, "fullReady", "yes");
            lastTimeMessageReceived = Time.time;
            if (!PD.isOnlineHost)
            {
                SendMessage();
            }
            GoToMatch();
        }
    }
Exemple #10
0
 public void SetReady()
 {
     if (Readytoggle.isOn)
     {
         if (DataSheetDone())
         {
             MPanel.GetComponent <CanvasGroup>().interactable = false;
             SteamMatchmaking.SetLobbyMemberData(Sender.roomid, "key_ready", "READY");
         }
         else
         {
             Readytoggle.isOn = false;
         }
     }
     else
     {
         SteamMatchmaking.SetLobbyMemberData(Sender.roomid, "key_ready", "NOT READY");
     }
 }
Exemple #11
0
    // Callback for Matchmaking JoinLobby
    private void OnLobbyJoin(LobbyEnter_t lobbyEnter)
    {
        m_lobbyID = new CSteamID(lobbyEnter.m_ulSteamIDLobby);
        EChatRoomEnterResponse response = (EChatRoomEnterResponse)lobbyEnter.m_EChatRoomEnterResponse;

        print("joined lobby waiting to test 3secs...");

        string hostSteamID = SteamMatchmaking.GetLobbyData(m_lobbyID, "Host");
        ulong  steamid     = ulong.Parse(hostSteamID);

        int neededPlayers = int.Parse(SteamMatchmaking.GetLobbyData(m_lobbyID, "NeededPlayers"));
        int playerCount   = SteamMatchmaking.GetNumLobbyMembers(m_lobbyID);

        SteamMatchmaking.SetLobbyMemberData(m_lobbyID, "cid", ClientPlayer.Singleton.Cid.ToString());

        Match.InitMatch();

        Match.NetworkLobby.SetSteamIDToConnect(steamid);
        Match.MatchSettings = new MatchSettings(BallersGamemode.SP_BOTS, 5, 60.0f * 6.0f, 4);
        Match.PlayersNeeded = int.Parse(SteamMatchmaking.GetLobbyData(m_lobbyID, "NeededPlayers"));;
        Match.MatchID       = 1;

        if (steamid == ClientPlayer.Singleton.SteamID)
        {
            Match.HostServer = true;
            //Match.AddPlayer(steamid, ClientPlayer.Singleton.Cid);
            //StartCoroutine(Test());
        }
//         Debug.Log($"{playerCount} / {neededPlayers}");
//         if (playerCount >= neededPlayers)
//         {
//             Debug.Log($"Required players met. Starting...");
//             m_matchSetup.Setup(Match.HostID);
//         }


        ClientPlayer.Singleton.State = ServerPlayerState.JOINED;

        // FOR DEBUGGING
        //m_matchSetup.Setup(lobbyEnter, steamid);
    }
Exemple #12
0
    void SetAvatar(byte[] data, uint dataLenght, CSteamID sender)
    {
        int avatarIndex = data[0];

        SteamMatchmaking.SetLobbyMemberData(Client.Lobby.LobbyID, "AvatarID", avatarIndex.ToString());
    }
Exemple #13
0
    public void RenderOnGUI()
    {
        GUILayout.BeginArea(new Rect(Screen.width - 200, 0, 200, Screen.height));
        GUILayout.Label("Variables:");
        GUILayout.Label("m_Lobby: " + m_Lobby);
        GUILayout.EndArea();

        GUILayout.BeginVertical("box");
        m_ScrollPos = GUILayout.BeginScrollView(m_ScrollPos, GUILayout.Width(Screen.width - 215), GUILayout.Height(Screen.height - 33));

        GUILayout.Label("GetFavoriteGameCount() : " + SteamMatchmaking.GetFavoriteGameCount());

        {
            AppId_t AppID;
            uint    IP;
            ushort  ConnPort;
            ushort  QueryPort;
            uint    Flags;
            uint    LastPlayedOnServer;
            bool    ret = SteamMatchmaking.GetFavoriteGame(0, out AppID, out IP, out ConnPort, out QueryPort, out Flags, out LastPlayedOnServer);
            GUILayout.Label("GetFavoriteGame(0, out AppID, out IP, out ConnPort, out QueryPort, out Flags, out LastPlayedOnServer) : " + ret + " -- " + AppID + " -- " + IP + " -- " + ConnPort + " -- " + QueryPort + " -- " + Flags + " -- " + LastPlayedOnServer);
        }

        if (GUILayout.Button("AddFavoriteGame(TestConstants.Instance.k_AppId_TeamFortress2, TestConstants.k_IpAddress208_78_165_233_uint, TestConstants.k_Port27015, TestConstants.k_Port27015, Constants.k_unFavoriteFlagFavorite, CurrentUnixTime)"))
        {
            uint CurrentUnixTime = (uint)(System.DateTime.UtcNow.Subtract(new System.DateTime(1970, 1, 1))).TotalSeconds;
            int  ret             = SteamMatchmaking.AddFavoriteGame(TestConstants.Instance.k_AppId_TeamFortress2, TestConstants.k_IpAddress208_78_165_233_uint, TestConstants.k_Port27015, TestConstants.k_Port27015, Constants.k_unFavoriteFlagFavorite, CurrentUnixTime);
            print("SteamMatchmaking.AddFavoriteGame(" + TestConstants.Instance.k_AppId_TeamFortress2 + ", " + TestConstants.k_IpAddress208_78_165_233_uint + ", " + TestConstants.k_Port27015 + ", " + TestConstants.k_Port27015 + ", " + Constants.k_unFavoriteFlagFavorite + ", " + CurrentUnixTime + ") : " + ret);
        }

        if (GUILayout.Button("RemoveFavoriteGame(TestConstants.Instance.k_AppId_TeamFortress2, TestConstants.k_IpAddress208_78_165_233_uint, TestConstants.k_Port27015, TestConstants.k_Port27015, Constants.k_unFavoriteFlagFavorite)"))
        {
            bool ret = SteamMatchmaking.RemoveFavoriteGame(TestConstants.Instance.k_AppId_TeamFortress2, TestConstants.k_IpAddress208_78_165_233_uint, TestConstants.k_Port27015, TestConstants.k_Port27015, Constants.k_unFavoriteFlagFavorite);
            print("SteamMatchmaking.RemoveFavoriteGame(" + TestConstants.Instance.k_AppId_TeamFortress2 + ", " + TestConstants.k_IpAddress208_78_165_233_uint + ", " + TestConstants.k_Port27015 + ", " + TestConstants.k_Port27015 + ", " + Constants.k_unFavoriteFlagFavorite + ") : " + ret);
        }

        if (GUILayout.Button("RequestLobbyList()"))
        {
            SteamAPICall_t handle = SteamMatchmaking.RequestLobbyList();
            OnLobbyMatchListCallResult.Set(handle);
            print("SteamMatchmaking.RequestLobbyList() : " + handle);
        }

        if (GUILayout.Button("AddRequestLobbyListStringFilter(\"SomeStringKey\", \"SomeValue\", ELobbyComparison.k_ELobbyComparisonNotEqual)"))
        {
            SteamMatchmaking.AddRequestLobbyListStringFilter("SomeStringKey", "SomeValue", ELobbyComparison.k_ELobbyComparisonNotEqual);
            print("SteamMatchmaking.AddRequestLobbyListStringFilter(" + "\"SomeStringKey\"" + ", " + "\"SomeValue\"" + ", " + ELobbyComparison.k_ELobbyComparisonNotEqual + ")");
        }

        if (GUILayout.Button("AddRequestLobbyListNumericalFilter(\"SomeIntKey\", 0, ELobbyComparison.k_ELobbyComparisonNotEqual)"))
        {
            SteamMatchmaking.AddRequestLobbyListNumericalFilter("SomeIntKey", 0, ELobbyComparison.k_ELobbyComparisonNotEqual);
            print("SteamMatchmaking.AddRequestLobbyListNumericalFilter(" + "\"SomeIntKey\"" + ", " + 0 + ", " + ELobbyComparison.k_ELobbyComparisonNotEqual + ")");
        }

        if (GUILayout.Button("AddRequestLobbyListNearValueFilter(\"SomeIntKey\", 0)"))
        {
            SteamMatchmaking.AddRequestLobbyListNearValueFilter("SomeIntKey", 0);
            print("SteamMatchmaking.AddRequestLobbyListNearValueFilter(" + "\"SomeIntKey\"" + ", " + 0 + ")");
        }

        if (GUILayout.Button("AddRequestLobbyListFilterSlotsAvailable(3)"))
        {
            SteamMatchmaking.AddRequestLobbyListFilterSlotsAvailable(3);
            print("SteamMatchmaking.AddRequestLobbyListFilterSlotsAvailable(" + 3 + ")");
        }

        if (GUILayout.Button("AddRequestLobbyListDistanceFilter(ELobbyDistanceFilter.k_ELobbyDistanceFilterWorldwide)"))
        {
            SteamMatchmaking.AddRequestLobbyListDistanceFilter(ELobbyDistanceFilter.k_ELobbyDistanceFilterWorldwide);
            print("SteamMatchmaking.AddRequestLobbyListDistanceFilter(" + ELobbyDistanceFilter.k_ELobbyDistanceFilterWorldwide + ")");
        }

        if (GUILayout.Button("AddRequestLobbyListResultCountFilter(1)"))
        {
            SteamMatchmaking.AddRequestLobbyListResultCountFilter(1);
            print("SteamMatchmaking.AddRequestLobbyListResultCountFilter(" + 1 + ")");
        }

        if (GUILayout.Button("AddRequestLobbyListCompatibleMembersFilter((CSteamID)0)"))
        {
            SteamMatchmaking.AddRequestLobbyListCompatibleMembersFilter((CSteamID)0);
            print("SteamMatchmaking.AddRequestLobbyListCompatibleMembersFilter(" + (CSteamID)0 + ")");
        }

        if (GUILayout.Button("GetLobbyByIndex(0)"))
        {
            m_Lobby = SteamMatchmaking.GetLobbyByIndex(0);
            print("SteamMatchmaking.GetLobbyByIndex(" + 0 + ") : " + m_Lobby);
        }

        if (GUILayout.Button("CreateLobby(ELobbyType.k_ELobbyTypePublic, 1)"))
        {
            SteamAPICall_t handle = SteamMatchmaking.CreateLobby(ELobbyType.k_ELobbyTypePublic, 1);
            OnLobbyCreatedCallResult.Set(handle);
            print("SteamMatchmaking.CreateLobby(" + ELobbyType.k_ELobbyTypePublic + ", " + 1 + ") : " + handle);
        }

        if (GUILayout.Button("JoinLobby(m_Lobby)"))
        {
            SteamAPICall_t handle = SteamMatchmaking.JoinLobby(m_Lobby);
            OnLobbyEnterCallResult.Set(handle);
            print("SteamMatchmaking.JoinLobby(" + m_Lobby + ") : " + handle);
        }

        if (GUILayout.Button("LeaveLobby(m_Lobby)"))
        {
            SteamMatchmaking.LeaveLobby(m_Lobby);
            m_Lobby = CSteamID.Nil;
            print("SteamMatchmaking.LeaveLobby(" + m_Lobby + ")");
        }

        if (GUILayout.Button("InviteUserToLobby(m_Lobby, SteamUser.GetSteamID())"))
        {
            bool ret = SteamMatchmaking.InviteUserToLobby(m_Lobby, SteamUser.GetSteamID());
            print("SteamMatchmaking.InviteUserToLobby(" + m_Lobby + ", " + SteamUser.GetSteamID() + ") : " + ret);
        }

        GUILayout.Label("GetNumLobbyMembers(m_Lobby) : " + SteamMatchmaking.GetNumLobbyMembers(m_Lobby));

        GUILayout.Label("GetLobbyMemberByIndex(m_Lobby, 0) : " + SteamMatchmaking.GetLobbyMemberByIndex(m_Lobby, 0));

        GUILayout.Label("GetLobbyData(m_Lobby, \"name\") : " + SteamMatchmaking.GetLobbyData(m_Lobby, "name"));

        if (GUILayout.Button("SetLobbyData(m_Lobby, \"name\", \"Test Lobby!\")"))
        {
            bool ret = SteamMatchmaking.SetLobbyData(m_Lobby, "name", "Test Lobby!");
            print("SteamMatchmaking.SetLobbyData(" + m_Lobby + ", " + "\"name\"" + ", " + "\"Test Lobby!\"" + ") : " + ret);
        }

        GUILayout.Label("GetLobbyDataCount(m_Lobby) : " + SteamMatchmaking.GetLobbyDataCount(m_Lobby));

        {
            string Key;
            string Value;
            bool   ret = SteamMatchmaking.GetLobbyDataByIndex(m_Lobby, 0, out Key, 255, out Value, 255);
            GUILayout.Label("GetLobbyDataByIndex(m_Lobby, 0, out Key, 255, out Value, 255) : " + ret + " -- " + Key + " -- " + Value);
        }

        if (GUILayout.Button("DeleteLobbyData(m_Lobby, \"name\")"))
        {
            bool ret = SteamMatchmaking.DeleteLobbyData(m_Lobby, "name");
            print("SteamMatchmaking.DeleteLobbyData(" + m_Lobby + ", " + "\"name\"" + ") : " + ret);
        }

        GUILayout.Label("GetLobbyMemberData(m_Lobby, SteamUser.GetSteamID(), \"test\") : " + SteamMatchmaking.GetLobbyMemberData(m_Lobby, SteamUser.GetSteamID(), "test"));

        if (GUILayout.Button("SetLobbyMemberData(m_Lobby, \"test\", \"This is a test Key!\")"))
        {
            SteamMatchmaking.SetLobbyMemberData(m_Lobby, "test", "This is a test Key!");
            print("SteamMatchmaking.SetLobbyMemberData(" + m_Lobby + ", " + "\"test\"" + ", " + "\"This is a test Key!\"" + ")");
        }

        if (GUILayout.Button("SendLobbyChatMsg(m_Lobby, MsgBody, MsgBody.Length)"))
        {
            byte[] MsgBody = System.Text.Encoding.UTF8.GetBytes("Test Message!");
            bool   ret     = SteamMatchmaking.SendLobbyChatMsg(m_Lobby, MsgBody, MsgBody.Length);
            print("SteamMatchmaking.SendLobbyChatMsg(" + m_Lobby + ", " + MsgBody + ", " + MsgBody.Length + ") : " + ret);
        }

        //SteamMatchmaking.GetLobbyChatEntry() // Only called from within OnLobbyChatMsg!

        if (GUILayout.Button("RequestLobbyData(m_Lobby)"))
        {
            bool ret = SteamMatchmaking.RequestLobbyData(m_Lobby);
            print("SteamMatchmaking.RequestLobbyData(" + m_Lobby + ") : " + ret);
        }

        if (GUILayout.Button("SetLobbyGameServer(m_Lobby, TestConstants.k_IpAddress127_0_0_1_uint, TestConstants.k_Port27015, CSteamID.NonSteamGS)"))
        {
            SteamMatchmaking.SetLobbyGameServer(m_Lobby, TestConstants.k_IpAddress127_0_0_1_uint, TestConstants.k_Port27015, CSteamID.NonSteamGS);
            print("SteamMatchmaking.SetLobbyGameServer(" + m_Lobby + ", " + TestConstants.k_IpAddress127_0_0_1_uint + ", " + TestConstants.k_Port27015 + ", " + CSteamID.NonSteamGS + ")");
        }

        {
            uint     GameServerIP;
            ushort   GameServerPort;
            CSteamID SteamIDGameServer;
            bool     ret = SteamMatchmaking.GetLobbyGameServer(m_Lobby, out GameServerIP, out GameServerPort, out SteamIDGameServer);
            GUILayout.Label("GetLobbyGameServer(m_Lobby, out GameServerIP, out GameServerPort, out SteamIDGameServer) : " + ret + " -- " + GameServerIP + " -- " + GameServerPort + " -- " + SteamIDGameServer);
        }

        if (GUILayout.Button("SetLobbyMemberLimit(m_Lobby, 6)"))
        {
            bool ret = SteamMatchmaking.SetLobbyMemberLimit(m_Lobby, 6);
            print("SteamMatchmaking.SetLobbyMemberLimit(" + m_Lobby + ", " + 6 + ") : " + ret);
        }

        GUILayout.Label("GetLobbyMemberLimit(m_Lobby) : " + SteamMatchmaking.GetLobbyMemberLimit(m_Lobby));

        if (GUILayout.Button("SetLobbyType(m_Lobby, ELobbyType.k_ELobbyTypePublic)"))
        {
            bool ret = SteamMatchmaking.SetLobbyType(m_Lobby, ELobbyType.k_ELobbyTypePublic);
            print("SteamMatchmaking.SetLobbyType(" + m_Lobby + ", " + ELobbyType.k_ELobbyTypePublic + ") : " + ret);
        }

        if (GUILayout.Button("SetLobbyJoinable(m_Lobby, true)"))
        {
            bool ret = SteamMatchmaking.SetLobbyJoinable(m_Lobby, true);
            print("SteamMatchmaking.SetLobbyJoinable(" + m_Lobby + ", " + true + ") : " + ret);
        }

        if (GUILayout.Button("GetLobbyOwner(m_Lobby)"))
        {
            CSteamID ret = SteamMatchmaking.GetLobbyOwner(m_Lobby);
            print("SteamMatchmaking.GetLobbyOwner(" + m_Lobby + ") : " + ret);
        }

        if (GUILayout.Button("SetLobbyOwner(m_Lobby, SteamUser.GetSteamID())"))
        {
            bool ret = SteamMatchmaking.SetLobbyOwner(m_Lobby, SteamUser.GetSteamID());
            print("SteamMatchmaking.SetLobbyOwner(" + m_Lobby + ", " + SteamUser.GetSteamID() + ") : " + ret);
        }

        if (GUILayout.Button("SetLinkedLobby(m_Lobby, m_Lobby)"))
        {
            bool ret = SteamMatchmaking.SetLinkedLobby(m_Lobby, m_Lobby);
            print("SteamMatchmaking.SetLinkedLobby(" + m_Lobby + ", " + m_Lobby + ") : " + ret);
        }

        //SteamMatchmaking.CheckForPSNGameBootInvite() // PS3 Only.

        GUILayout.EndScrollView();
        GUILayout.EndVertical();
    }
Exemple #14
0
 public void SetGreen()
 {
     SteamMatchmaking.SetLobbyMemberData(Sender.roomid, "key_ready", "GREEN");
 }
Exemple #15
0
 public void Update()
 {
     SteamAPI.RunCallbacks();
     if (initializedStatus == -3)          // LEAVING LOBBY LIST
     {
         MoveTextDown();
         lobbyCursor.SetVisibility(false);
         lobbyCursor.setY(8);
         SetText("leftlobby");
         initializedStatus = -2;
     }
     else if (initializedStatus == -1)            // CONNECTION FAILED
     {
         SetText("connfail");
         initializedStatus = -2;
     }
     else if (initializedStatus == 1)            // SELECTING OPTION
     {
         if (myMode == 1)
         {
             SetText("roomMake");
             SteamAPICall_t try_toHost = SteamMatchmaking.CreateLobby(ELobbyType.k_ELobbyTypeFriendsOnly, 2);
             initializedStatus = 3;
         }
         else if (myMode == 2)
         {
             SetText("roomFind");
             FindFriendLobbies();
         }
         else if (myMode == 3)
         {
             SetText("matchFind");
             SteamAPICall_t try_getList = SteamMatchmaking.RequestLobbyList();
         }
     }
     else if (initializedStatus == 2)            // VIEWING FRIEND LIST
     {
         LobbyUpdate();
     }
     else if (initializedStatus == 4)            // HOST WAITING FOR FRIEND TO JOIN
     {
         HandleWaiting();
     }
     else if (initializedStatus == 5)                                            // FRIEND WAITING FOR BOTH TO BE READY
     {
         if (SteamMatchmaking.GetNumLobbyMembers((CSteamID)current_lobbyID) < 2) // whoppy machine broke
         {
             BailFromState5(false);
         }
         else if (lobbyCursor.back())                // bailing
         {
             BailFromState5(false);
             return;
         }
         else if (lobbyCursor.launchOrPause())
         {
             p1Ok.GetComponent <SpriteRenderer>().sprite = roundsSheet[1];
             SteamMatchmaking.SetLobbyMemberData((CSteamID)current_lobbyID, "ready", "yes");
             isReady = true;
         }
         if (SteamMatchmaking.GetLobbyData((CSteamID)current_lobbyID, "ready") == "yes")
         {
             p2Ok.GetComponent <SpriteRenderer>().sprite = roundsSheet[1];
             lastTimeMessageReceived = Time.time;
             if (isReady)
             {
                 CleanUpReadyButtons(true);
                 initializedStatus = 7;
             }
         }
         else if (IsTimedOut(20.0f))
         {
             BailFromState5();
             return;
         }
     }
     else if (initializedStatus == 6)                                            // HOST WAITING FOR BOTH TO BE READY
     {
         if (SteamMatchmaking.GetNumLobbyMembers((CSteamID)current_lobbyID) < 2) // whoppy machine broke
         {
             parent.HidePlayer2();
             SetText("hostfriendlefthost");
             Destroy(player2Rank);
             myMesh.gameObject.SetActive(true);
             SteamMatchmaking.SetLobbyData((CSteamID)current_lobbyID, "status", "open");
             initializedStatus = 4;
             CleanUpReadyButtons(false);
         }
         else if (lobbyCursor.back())                // bailing
         {
             parent.HidePlayer2();
             SetText("friendlefthost");
             MoveTextDown();
             myMesh.gameObject.SetActive(true);
             SteamMatchmaking.SetLobbyData((CSteamID)current_lobbyID, "status", "dead");
             SteamMatchmaking.LeaveLobby((CSteamID)current_lobbyID);
             CleanUpReadyButtons(false);
             Destroy(player2Rank);
             initializedStatus = -2;
             return;
         }
         else if (lobbyCursor.launchOrPause())
         {
             p1Ok.GetComponent <SpriteRenderer>().sprite = roundsSheet[1];
             SteamMatchmaking.SetLobbyData((CSteamID)current_lobbyID, "ready", "yes");
             isReady = true;
         }
         if (SteamMatchmaking.GetLobbyMemberData((CSteamID)current_lobbyID, otherUsr, "ready") == "yes")
         {
             p2Ok.GetComponent <SpriteRenderer>().sprite = roundsSheet[1];
             if (isReady)
             {
                 CleanUpReadyButtons(true);
                 initializedStatus = 8;
             }
         }
         else if (IsTimedOut(20.0f))
         {
             BailFromState5();
             return;
         }
     }
     else if (initializedStatus == 7)            // p2 waiting for P2P connection and match starting *
     {
         PD.isOnlineHost     = false;
         PD.onlineOpponentId = (ulong)otherUsr;
         //Debug.Log ("AWAITING P2P CONNECTION");
         if (GetMessages().Count > 0)
         {
             lastTimeMessageReceived = Time.time;
             SteamMatchmaking.SetLobbyMemberData((CSteamID)current_lobbyID, "fullReady", "yes");
             SendMessage();
             GoToMatch();
         }
         else if (IsTimedOut(20.0f))
         {
             BailFromState5();
             return;
         }
         // waiting for OnP2PSessionRequest
     }
     else if (initializedStatus == 8)            // p1 sending P2P connection
     {
         SendMessage();
         Debug.Log("SENDING P2P CONNECTION TO " + otherUsr.ToString());
         initializedStatus = 9;
         if (IsTimedOut(20.0f))
         {
             BailFromState5();
             return;
         }
     }
     else if (initializedStatus == 9)            // p1 waiting for p2 to receive
     //if(SteamMatchmaking.GetLobbyMemberData((CSteamID)current_lobbyID, otherUsr, "fullReady") == "yes") {
     {
         Debug.Log("AWAITING P2P CONNECTION");
         PD.isOnlineHost     = true;
         PD.onlineOpponentId = (ulong)otherUsr;
         if (GetMessages().Count > 0)
         {
             lastTimeMessageReceived = Time.time;
             SteamMatchmaking.SetLobbyMemberData((CSteamID)current_lobbyID, "fullReady", "yes");
             GoToMatch();
         }
         else if (IsTimedOut(20.0f))
         {
             BailFromState5();
             return;
         }
     }
 }
    public void RenderOnGUI()
    {
        //GUILayout.BeginArea(new Rect(Screen.width - 120, 0, 120, Screen.height));
        Console.WriteLine("Variables:");
        Console.WriteLine("m_Lobby: " + m_Lobby);
        //GUILayout.EndArea();

        Console.WriteLine("GetFavoriteGameCount() : " + SteamMatchmaking.GetFavoriteGameCount());

        {
            AppId_t AppID;
            uint    IP;
            ushort  ConnPort;
            ushort  QueryPort;
            uint    Flags;
            uint    LastPlayedOnServer;
            bool    ret = SteamMatchmaking.GetFavoriteGame(0, out AppID, out IP, out ConnPort, out QueryPort, out Flags, out LastPlayedOnServer);
            Console.WriteLine("GetFavoriteGame(0, out AppID, out IP, out ConnPort, out QueryPort, out Flags, out LastPlayedOnServer) : " + ret + " -- " + AppID + " -- " + IP + " -- " + ConnPort + " -- " + QueryPort + " -- " + Flags + " -- " + LastPlayedOnServer);
        }

        // 3494815209 = 208.78.165.233 = Valve Payload Server (Virginia srcds150 #1)
        //if (GUILayout.Button("AddFavoriteGame((AppId_t)480, 3494815209, 27015, 27015, Constants.k_unFavoriteFlagFavorite, CurrentUnixTime"))
        {
            uint CurrentUnixTime = (uint)(System.DateTime.UtcNow.Subtract(new System.DateTime(1970, 1, 1))).TotalSeconds;
            Console.WriteLine("SteamMatchmaking.AddFavoriteGame(" + (AppId_t)480 + ", 3494815209, 27015, 27015, Constants.k_unFavoriteFlagFavorite, " + CurrentUnixTime + ") : " + SteamMatchmaking.AddFavoriteGame((AppId_t)480, 3494815209, 27015, 27015, Constants.k_unFavoriteFlagFavorite, CurrentUnixTime));
        }

        //if (GUILayout.Button("RemoveFavoriteGame((AppId_t)480, 3494815209, 27015, 27015, Constants.k_unFavoriteFlagFavorite)"))
        {
            Console.WriteLine("SteamMatchmaking.RemoveFavoriteGame(" + (AppId_t)480 + ", 3494815209, 27015, 27015, Constants.k_unFavoriteFlagFavorite) : " + SteamMatchmaking.RemoveFavoriteGame((AppId_t)480, 3494815209, 27015, 27015, Constants.k_unFavoriteFlagFavorite));
        }

        //if (GUILayout.Button("RequestLobbyList()"))
        {
            SteamAPICall_t handle = SteamMatchmaking.RequestLobbyList();
            OnLobbyMatchListCallResult.Set(handle);
            Console.WriteLine("SteamMatchmaking.RequestLobbyList() : " + handle);
        }

        //if (GUILayout.Button("AddRequestLobbyListStringFilter(\"SomeStringKey\", \"SomeValue\", ELobbyComparison.k_ELobbyComparisonNotEqual)"))
        {
            SteamMatchmaking.AddRequestLobbyListStringFilter("SomeStringKey", "SomeValue", ELobbyComparison.k_ELobbyComparisonNotEqual);
            Console.WriteLine("SteamMatchmaking.AddRequestLobbyListStringFilter(\"SomeStringKey\", \"SomeValue\", ELobbyComparison.k_ELobbyComparisonNotEqual)");
        }

        //if (GUILayout.Button("AddRequestLobbyListNumericalFilter(\"SomeIntKey\", 0, ELobbyComparison.k_ELobbyComparisonNotEqual)"))
        {
            SteamMatchmaking.AddRequestLobbyListNumericalFilter("SomeIntKey", 0, ELobbyComparison.k_ELobbyComparisonNotEqual);
            Console.WriteLine("SteamMatchmaking.AddRequestLobbyListNumericalFilter(\"SomeIntKey\", 0, ELobbyComparison.k_ELobbyComparisonNotEqual)");
        }

        //if (GUILayout.Button("AddRequestLobbyListNearValueFilter(\"SomeIntKey\", 0)"))
        {
            SteamMatchmaking.AddRequestLobbyListNearValueFilter("SomeIntKey", 0);
            Console.WriteLine("SteamMatchmaking.AddRequestLobbyListNearValueFilter(\"SomeIntKey\", 0)");
        }

        //if (GUILayout.Button("AddRequestLobbyListFilterSlotsAvailable(3)"))
        {
            SteamMatchmaking.AddRequestLobbyListFilterSlotsAvailable(3);
            Console.WriteLine("SteamMatchmaking.AddRequestLobbyListFilterSlotsAvailable(3)");
        }

        //if (GUILayout.Button("AddRequestLobbyListDistanceFilter(ELobbyDistanceFilter.k_ELobbyDistanceFilterWorldwide)"))
        {
            SteamMatchmaking.AddRequestLobbyListDistanceFilter(ELobbyDistanceFilter.k_ELobbyDistanceFilterWorldwide);
            Console.WriteLine("SteamMatchmaking.AddRequestLobbyListDistanceFilter(ELobbyDistanceFilter.k_ELobbyDistanceFilterWorldwide)");
        }

        //if (GUILayout.Button("AddRequestLobbyListResultCountFilter(1)"))
        {
            SteamMatchmaking.AddRequestLobbyListResultCountFilter(1);
            Console.WriteLine("SteamMatchmaking.AddRequestLobbyListResultCountFilter(1)");
        }

        //if (GUILayout.Button("AddRequestLobbyListCompatibleMembersFilter((CSteamID)0)"))
        {
            SteamMatchmaking.AddRequestLobbyListCompatibleMembersFilter((CSteamID)0);
            Console.WriteLine("SteamMatchmaking.AddRequestLobbyListCompatibleMembersFilter((CSteamID)0)");
        }

        //if (GUILayout.Button("GetLobbyByIndex(0)"))
        {
            m_Lobby = SteamMatchmaking.GetLobbyByIndex(0);
            Console.WriteLine("SteamMatchmaking.SteamMatchmaking.GetLobbyByIndex(0) : " + m_Lobby);
        }

        //if (GUILayout.Button("CreateLobby(ELobbyType.k_ELobbyTypePublic, 1)"))
        {
            SteamAPICall_t handle = SteamMatchmaking.CreateLobby(ELobbyType.k_ELobbyTypePublic, 1);
            OnLobbyCreatedCallResult.Set(handle);
            Console.WriteLine("SteamMatchmaking.CreateLobby(ELobbyType.k_ELobbyTypePublic, 1) : " + handle);
        }

        //if (GUILayout.Button("JoinLobby(m_Lobby)"))
        {
            SteamAPICall_t handle = SteamMatchmaking.JoinLobby(m_Lobby);
            OnLobbyEnterCallResult.Set(handle);
            Console.WriteLine("SteamMatchmaking.JoinLobby(" + m_Lobby + ") : " + handle);
        }

        //if (GUILayout.Button("LeaveLobby(m_Lobby)"))
        {
            SteamMatchmaking.LeaveLobby(m_Lobby);
            m_Lobby = CSteamID.Nil;
            Console.WriteLine("SteamMatchmaking.LeaveLobby(" + m_Lobby + ")");
        }

        //if (GUILayout.Button("InviteUserToLobby(m_Lobby, SteamUser.GetSteamID())"))
        {
            Console.WriteLine("SteamMatchmaking.InviteUserToLobby(" + m_Lobby + ", SteamUser.GetSteamID()) : " + SteamMatchmaking.InviteUserToLobby(m_Lobby, SteamUser.GetSteamID()));
        }

        Console.WriteLine("GetNumLobbyMembers(m_Lobby) : " + SteamMatchmaking.GetNumLobbyMembers(m_Lobby));

        Console.WriteLine("GetLobbyMemberByIndex(m_Lobby, 0) : " + SteamMatchmaking.GetLobbyMemberByIndex(m_Lobby, 0));

        Console.WriteLine("SteamMatchmaking.GetLobbyData(m_Lobby, \"name\") : " + SteamMatchmaking.GetLobbyData(m_Lobby, "name"));

        //if (GUILayout.Button("SetLobbyData(m_Lobby, \"name\", \"Test Lobby!\")"))
        {
            Console.WriteLine("SteamMatchmaking.SetLobbyData(" + m_Lobby + ", \"name\", \"Test Lobby!\") : " + SteamMatchmaking.SetLobbyData(m_Lobby, "name", "Test Lobby!"));
        }

        Console.WriteLine("GetLobbyDataCount(m_Lobby) : " + SteamMatchmaking.GetLobbyDataCount(m_Lobby));

        {
            string Key;
            string Value;
            bool   ret = SteamMatchmaking.GetLobbyDataByIndex(m_Lobby, 0, out Key, 255, out Value, 255);
            Console.WriteLine("SteamMatchmaking.GetLobbyDataByIndex(m_Lobby, 0, out Key, 255, out Value, 255) : " + ret + " -- " + Key + " -- " + Value);
        }

        //if (GUILayout.Button("DeleteLobbyData(m_Lobby, \"name\")"))
        {
            Console.WriteLine("SteamMatchmaking.DeleteLobbyData(" + m_Lobby + ", \"name\") : " + SteamMatchmaking.DeleteLobbyData(m_Lobby, "name"));
        }

        {
            Console.WriteLine("SteamMatchmaking.GetLobbyMemberData(m_Lobby, SteamUser.GetSteamID(), \"test\") : " + SteamMatchmaking.GetLobbyMemberData(m_Lobby, SteamUser.GetSteamID(), "test"));
        }

        //if (GUILayout.Button("SetLobbyMemberData(m_Lobby, \"test\", \"This is a test Key!\")"))
        {
            SteamMatchmaking.SetLobbyMemberData(m_Lobby, "test", "This is a test Key!");
            Console.WriteLine("SteamMatchmaking.SetLobbyMemberData(" + m_Lobby + ", \"test\", \"This is a test Key!\")");
        }

        //if (GUILayout.Button("SendLobbyChatMsg(m_Lobby, MsgBody, MsgBody.Length)"))
        {
            byte[] MsgBody = System.Text.Encoding.UTF8.GetBytes("Test Message!");
            Console.WriteLine("SteamMatchmaking.SendLobbyChatMsg(" + m_Lobby + ", MsgBody, MsgBody.Length) : " + SteamMatchmaking.SendLobbyChatMsg(m_Lobby, MsgBody, MsgBody.Length));
        }

        //GetLobbyChatEntry(CSteamID steamIDLobby, int iChatID, out CSteamID pSteamIDUser, byte[] pvData, int cubData, out EChatEntryType peChatEntryType); // Only called from within OnLobbyChatMsg!

        //if (GUILayout.Button("RequestLobbyData(m_Lobby)"))
        {
            Console.WriteLine("SteamMatchmaking.RequestLobbyData(" + m_Lobby + ") : " + SteamMatchmaking.RequestLobbyData(m_Lobby));
        }

        //if (GUILayout.Button("SetLobbyGameServer(m_Lobby, 2130706433, 1337, CSteamID.NonSteamGS)"))
        {
            SteamMatchmaking.SetLobbyGameServer(m_Lobby, 2130706433, 1337, CSteamID.NonSteamGS); //127.0.0.1
            Console.WriteLine("SteamMatchmaking.SetLobbyGameServer(" + m_Lobby + ", 2130706433, 1337, CSteamID.NonSteamGS)");
        }

        {
            uint     GameServerIP;
            ushort   GameServerPort;
            CSteamID SteamIDGameServer;
            bool     ret = SteamMatchmaking.GetLobbyGameServer(m_Lobby, out GameServerIP, out GameServerPort, out SteamIDGameServer);
            Console.WriteLine("GetLobbyGameServer(m_Lobby, out GameServerIP, out GameServerPort, out SteamIDGameServer) : " + ret + " -- " + GameServerIP + " -- " + GameServerPort + " -- " + SteamIDGameServer);
        }

        //if (GUILayout.Button("SetLobbyMemberLimit(m_Lobby, 6)"))
        {
            Console.WriteLine("SteamMatchmaking.SteamMatchmaking.SetLobbyMemberLimit(" + m_Lobby + ", 6) : " + SteamMatchmaking.SetLobbyMemberLimit(m_Lobby, 6));
        }

        Console.WriteLine("GetLobbyMemberLimit(m_Lobby) : " + SteamMatchmaking.GetLobbyMemberLimit(m_Lobby));

        //if (GUILayout.Button("SetLobbyType(m_Lobby, ELobbyType.k_ELobbyTypePublic))"))
        {
            Console.WriteLine("SteamMatchmaking.SetLobbyType(" + m_Lobby + ", ELobbyType.k_ELobbyTypePublic)) : " + SteamMatchmaking.SetLobbyType(m_Lobby, ELobbyType.k_ELobbyTypePublic));
        }

        //if (GUILayout.Button("SetLobbyJoinable(m_Lobby, true)"))
        {
            Console.WriteLine("SteamMatchmaking.SetLobbyJoinable(" + m_Lobby + ", true) : " + SteamMatchmaking.SetLobbyJoinable(m_Lobby, true));
        }

        //if (GUILayout.Button("GetLobbyOwner(m_Lobby)"))
        {
            Console.WriteLine("SteamMatchmaking.GetLobbyOwner(" + m_Lobby + ") : " + SteamMatchmaking.GetLobbyOwner(m_Lobby));
        }

        //if (GUILayout.Button("SetLobbyOwner(m_Lobby, SteamUser.GetSteamID())"))
        {
            Console.WriteLine("SteamMatchmaking.SteamMatchmaking.SetLobbyOwner(" + m_Lobby + ", SteamUser.GetSteamID()) : " + SteamMatchmaking.SetLobbyOwner(m_Lobby, SteamUser.GetSteamID()));
        }

        //if (GUILayout.Button("SetLinkedLobby(m_Lobby, m_Lobby)"))
        {
            Console.WriteLine("SteamMatchmaking.SteamMatchmaking.SetLinkedLobby(" + m_Lobby + ", " + m_Lobby + ") : " + SteamMatchmaking.SetLinkedLobby(m_Lobby, m_Lobby));
        }
    }
        public static void SetLobbyMemberData <T>(CSteamID lobby, string key, T value)
        {
            var result = JsonUtility.ToJson(value, false);

            SteamMatchmaking.SetLobbyMemberData(lobby, key, result);
        }
Exemple #18
0
 void SetInGame(Scene s, LoadSceneMode ls)
 {
     Server.Init();
     SteamMatchmaking.SetLobbyMemberData(Client.Lobby.LobbyID, "InGame", "1");
 }
        public void OnSetDefaultLobbyMemberData(SteamConnection conn)
        {
            var result = SetDefaultLobbyMemberData?.Invoke();

            SteamMatchmaking.SetLobbyMemberData(conn.LobbyID, SteamNetworkLobby.LobbyMemberData, result);
        }