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); } }
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]}"); } }
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); } }
/// <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); } }
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(); }
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; } }
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(); } }
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"); } }
// 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); }
void SetAvatar(byte[] data, uint dataLenght, CSteamID sender) { int avatarIndex = data[0]; SteamMatchmaking.SetLobbyMemberData(Client.Lobby.LobbyID, "AvatarID", avatarIndex.ToString()); }
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(); }
public void SetGreen() { SteamMatchmaking.SetLobbyMemberData(Sender.roomid, "key_ready", "GREEN"); }
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); }
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); }