public static CGameID GetGameID() { var fgi = new FriendGameInfo_t(); SteamFriends.GetFriendGamePlayed(new CSteamID(userID), out fgi); return(fgi.m_gameID); }
public static void FindFriendLobbies(Action <bool> OnFind) { s_OnFindLobbies = OnFind; s_nLobbiesFound = 0; s_nFriendLobbiesFound = 0; //if ( SteamMatchmaking() == 0 ) return; InteropHelp.TestIfAvailableClient(); int cFriends = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); for (int i = 0; i < cFriends; i++) { FriendGameInfo_t friendGameInfo; CSteamID steamIDFriend = (CSteamID)SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); if (SteamFriends.GetFriendGamePlayed(steamIDFriend, out friendGameInfo) && friendGameInfo.m_steamIDLobby.IsValid()) { m_friendLobbies[s_nFriendLobbiesFound++] = friendGameInfo.m_steamIDLobby; SteamMatchmaking.RequestLobbyData(friendGameInfo.m_steamIDLobby); //int cap = SteamMatchmaking().GetLobbyMemberLimit( friendGameInfo.m_steamIDLobby ); //Console.WriteLine("Found friend lobby with capacity {0}", cap); } } if (s_OnFindLobbies != null) { s_OnFindLobbies(false); } }
public FriendCollection GetFriends() { EFriendFlags flags = ( EFriendFlags.k_EFriendFlagImmediate | EFriendFlags.k_EFriendFlagRequestingFriendship | EFriendFlags.k_EFriendFlagFriendshipRequested ); int friendCount = SteamFriends.GetFriendCount(flags); List <FriendGamer> friends = new List <FriendGamer>(friendCount); for (int i = 0; i < friendCount; i += 1) { CSteamID id = SteamFriends.GetFriendByIndex(i, flags); EFriendRelationship relationship = SteamFriends.GetFriendRelationship(id); EPersonaState state = SteamFriends.GetFriendPersonaState(id); FriendGameInfo_t whoCares; friends.Add(new FriendGamer( id, SteamFriends.GetFriendPersonaName(id), SteamFriends.GetPlayerNickname(id), state != EPersonaState.k_EPersonaStateOffline, SteamFriends.GetFriendGamePlayed(id, out whoCares), state == EPersonaState.k_EPersonaStateAway, state == EPersonaState.k_EPersonaStateBusy, relationship == EFriendRelationship.k_EFriendRelationshipRequestRecipient, relationship == EFriendRelationship.k_EFriendRelationshipRequestInitiator )); } return(new FriendCollection(friends)); }
public static Dictionary <CSteamID, string[]> GetOnlineFriends() { var friends = new Dictionary <CSteamID, string[]>(); if (!SteamManager.Initialized) { Logger.Error("CONNECTION FAILED"); return(friends); } try { int friendCount = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); for (int i = 0; i < friendCount; ++i) { CSteamID friendSteamId = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); string friendName = SteamFriends.GetFriendPersonaName(friendSteamId); EPersonaState friendState = SteamFriends.GetFriendPersonaState(friendSteamId); if (friendState != EPersonaState.k_EPersonaStateOffline) { var fgi = new FriendGameInfo_t(); bool ret = SteamFriends.GetFriendGamePlayed(friendSteamId, out fgi); friends.Add(friendSteamId, new string[] { friendName, "" + fgi.m_gameID }); } } } catch (Exception e) { Logger.Error(e); } return(friends); }
public override void LoadFriendsList() { gameServiceFriendsList = new List <GameServiceUserInfo>(); int friendCount = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); for (int i = 0; i < friendCount; ++i) { CSteamID friendSteamId = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); string friendName = SteamFriends.GetFriendPersonaName(friendSteamId); EPersonaState friendState = SteamFriends.GetFriendPersonaState(friendSteamId); FriendGameInfo_t currentGame; if (SteamFriends.GetFriendGamePlayed(friendSteamId, out currentGame)) { if (currentGame.m_gameID == m_GameID) { GameServiceUserInfo friend = new GameServiceUserInfo(); friend.NickName = friendName; friend.PlayerId = friendSteamId.GetAccountID().m_AccountID.ToString(); friend.Status = Status.Available; friend.SetAvatarFromTexture2D(GetSmallAvatar(friendSteamId, false)); gameServiceFriendsList.Add(friend); } } } RaiseGameServiceEvent(new GameServiceEvent(GameServiceEventType.FriendsListReady)); }
/// <summary> /// Check if any of the current user's friends play this game and add the lobby to the server list if they do. /// </summary> private void GetFriendGamesList() { // Get the number of regular friends of the current local user var friendCount = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); if (friendCount == -1) { return; } for (int i = 0; i < friendCount; ++i) { // Get the Steam ID of the friend var friendSteamId = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); // Get what game the friend is playing FriendGameInfo_t gameInfo; if (SteamFriends.GetFriendGamePlayed(friendSteamId, out gameInfo)) { // If they are playing this game as well then get their lobby id if (gameInfo.m_gameID.AppID() == SteamUtils.GetAppID()) { AddServer(gameInfo.m_steamIDLobby); } } } }
// Token: 0x0600096D RID: 2413 RVA: 0x0004553C File Offset: 0x0004373C private void RequestFriendGames() { this.m_friendServers.Clear(); this.m_requestedFriendGames.Clear(); int num = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); if (num == -1) { ZLog.Log("GetFriendCount returned -1, the current user is not logged in."); num = 0; } for (int i = 0; i < num; i++) { CSteamID friendByIndex = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); string friendPersonaName = SteamFriends.GetFriendPersonaName(friendByIndex); FriendGameInfo_t friendGameInfo_t; if (SteamFriends.GetFriendGamePlayed(friendByIndex, out friendGameInfo_t) && friendGameInfo_t.m_gameID == (CGameID)((ulong)SteamManager.APP_ID) && friendGameInfo_t.m_steamIDLobby != CSteamID.Nil) { ZLog.Log("Friend is in our game"); this.m_requestedFriendGames.Add(new KeyValuePair <CSteamID, string>(friendGameInfo_t.m_steamIDLobby, friendPersonaName)); SteamMatchmaking.RequestLobbyData(friendGameInfo_t.m_steamIDLobby); } } this.m_serverListRevision++; }
// Update is called once per frame public void ListFriends() { int n = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); FriendStatus = new FriendStatusID[n]; for (int i = 0; i < n; i++) { FriendStatus[i].id = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); FriendStatus[i].status = (int)SteamFriends.GetFriendPersonaState(SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate)); var fgi = new FriendGameInfo_t(); bool StoGiocando = SteamFriends.GetFriendGamePlayed(SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate), out fgi); FriendStatus[i].game = StoGiocando ? 1 : 0; } FriendStatus = FriendStatus.OrderByDescending(go => go.game).ThenByDescending(go => go.status).ToArray(); for (int i = 0; i < n; i++) // Each RoomInfo "game" in the amount of games created "rooms" display the fallowing. { friendsList.Add((GameObject)Instantiate(FriendListButton)); friendsList[friendsAmount].transform.SetParent(FriendListPanel.transform); friendsList[friendsAmount].GetComponent <RectTransform>().transform.localScale = new Vector3(1, 1, 1); friendsList[friendsAmount].GetComponent <FriendButton>().m_Friend = FriendStatus[i].id; friendsAmount++; } contatoreFriends = 0; }
public bool IsPlayingThisGame(ulong id) { FriendGameInfo_t gameInfo; if (SteamFriends.GetFriendGamePlayed((CSteamID)id, out gameInfo)) { if (gameInfo.m_gameID.m_GameID == APP_ID.m_AppId) { return(true); } } return(false); }
public override void RequestFriendLobbyData() { EFriendFlags flags = EFriendFlags.k_EFriendFlagImmediate; int count = SteamFriends.GetFriendCount(flags); for (int i = 0; i < count; i++) { if (SteamFriends.GetFriendGamePlayed(SteamFriends.GetFriendByIndex(i, flags), out FriendGameInfo_t gameInfo) && !(gameInfo.m_gameID.AppID() != SteamUtils.GetAppID())) { SteamMatchmaking.RequestLobbyData(gameInfo.m_steamIDLobby); } } }
private void UpdateSteam() { if (Multiplayer.Clock.ElapsedMilliseconds - lastFriendUpdate < 2000) { return; } friends.Clear(); int friendCount = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); for (int i = 0; i < friendCount; i++) { CSteamID friend = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); SteamFriends.GetFriendGamePlayed(friend, out FriendGameInfo_t friendGame); bool playingRimworld = friendGame.m_gameID.AppID() == SteamIntegration.RimWorldAppId; if (!playingRimworld) { continue; } int avatar = SteamFriends.GetSmallFriendAvatar(friend); string username = SteamFriends.GetFriendPersonaName(friend); string connectValue = SteamFriends.GetFriendRichPresence(friend, "connect"); CSteamID serverHost = CSteamID.Nil; if (connectValue != null && connectValue.Contains(SteamIntegration.SteamConnectStart) && ulong.TryParse(connectValue.Substring(SteamIntegration.SteamConnectStart.Length), out ulong hostId)) { serverHost = (CSteamID)hostId; } friends.Add(new SteamPersona() { id = friend, avatar = avatar, username = username, playingRimworld = playingRimworld, serverHost = serverHost, }); } friends.SortByDescending(f => f.serverHost != CSteamID.Nil); lastFriendUpdate = Multiplayer.Clock.ElapsedMilliseconds; }
public ulong?GetLobbyOwner(ulong lobbyID) { if (IsOnline) { foreach (var f in GetFriends()) { FriendGameInfo_t gi; SteamFriends.GetFriendGamePlayed(new CSteamID(f), out gi); if (gi.m_steamIDLobby.m_SteamID == lobbyID) { return(f); } } } return(null); }
public override void OnEnter() { ulong ID = ulong.Parse(this.steamID.Value); CSteamID IDsteam; IDsteam.m_SteamID = ID; isPlaying.Value = SteamFriends.GetFriendGamePlayed(IDsteam, out friendGameInfo); if (isPlaying.Value) { string gameID = Convert.ToString(friendGameInfo.m_gameID); if (appID != null) { appID.Value = gameID; } if (gameName != null && maxStringLenght.Value > 0) { string name; int ifNegative = SteamAppList.GetAppName((AppId_t)Convert.ToUInt32(gameID), out name, maxStringLenght.Value); if (ifNegative != -1) { gameName.Value = name; } else { gameName.Value = "No Name"; } } if (gameIP != null) { gameIP.Value = Convert.ToString(friendGameInfo.m_unGameIP); } if (gamePort != null) { gamePort.Value = (int)friendGameInfo.m_usGamePort; } if (queryPort != null) { queryPort.Value = (int)friendGameInfo.m_usGamePort; } if (steamIDLobby != null) { steamIDLobby.Value = Convert.ToString(friendGameInfo.m_steamIDLobby); } } Finish(); }
private void FindFriendLobbies() { lobbyDisplay.Clear(); lobbyIDS.Clear(); lobbyDisplay.Add(new KeyValuePair <string, CSteamID>("Back", (CSteamID)0)); lobbyDisplay.Add(new KeyValuePair <string, CSteamID>("Refresh", (CSteamID)0)); initializedStatus = 2; int steamFriends = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); for (int i = 0; i < steamFriends; i++) { FriendGameInfo_t friendGameInfo; CSteamID steamIDFriend = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); if (SteamFriends.GetFriendGamePlayed(steamIDFriend, out friendGameInfo) && friendGameInfo.m_steamIDLobby.IsValid()) { lobbyIDS.Add(friendGameInfo.m_steamIDLobby); SteamMatchmaking.RequestLobbyData(friendGameInfo.m_steamIDLobby); } } }
// Use this for initialization void Start() { Nickname = transform.Find("FriendNickname").gameObject; Status = transform.Find("Status").gameObject; Bordo = transform.Find("Image").gameObject; Immagine = Bordo.transform.Find("FriendImage").gameObject; transform.GetComponent <Button>().onClick.AddListener(() => { OpenChat(); }); int FriendAvatar = SteamFriends.GetMediumFriendAvatar(m_Friend); uint ImageWidth; uint ImageHeight; bool ret = SteamUtils.GetImageSize(FriendAvatar, out ImageWidth, out ImageHeight); if (ret && ImageWidth > 0 && ImageHeight > 0) { byte[] Image = new byte[ImageWidth * ImageHeight * 4]; ret = SteamUtils.GetImageRGBA(FriendAvatar, Image, (int)(ImageWidth * ImageHeight * 4)); Texture2D m_SmallAvatar; m_SmallAvatar = new Texture2D((int)ImageWidth, (int)ImageHeight, TextureFormat.RGBA32, false, true); m_SmallAvatar.LoadRawTextureData(Image); // The image is upside down! "@ares_p: in Unity all texture data starts from "bottom" (OpenGL convention)" m_SmallAvatar.Apply(); Immagine.GetComponent <Image>().sprite = Sprite.Create(m_SmallAvatar, new Rect(0, 0, m_SmallAvatar.width, m_SmallAvatar.height), new Vector2(0.5f, 0.5f)); } if (SteamFriends.GetFriendPersonaState(m_Friend).ToString() == "k_EPersonaStateOffline") { Nickname.GetComponent <Text>().color = new Color32(255, 255, 255, 100); Status.GetComponent <Text>().color = new Color32(255, 255, 255, 100); Status.GetComponent <Text>().text = "Offline"; Bordo.GetComponent <Image>().color = new Color32(255, 255, 255, 100); } else if (SteamFriends.GetFriendPersonaState(m_Friend).ToString() == "k_EPersonaStateSnooze") { Nickname.GetComponent <Text>().color = new Color32(77, 148, 176, 255); Status.GetComponent <Text>().color = new Color32(77, 148, 176, 255); Status.GetComponent <Text>().text = "Snooze"; Bordo.GetComponent <Image>().color = new Color32(77, 148, 176, 255); } else { var fgi = new FriendGameInfo_t(); bool StoGiocando = SteamFriends.GetFriendGamePlayed(m_Friend, out fgi); if (StoGiocando) { Bordo.GetComponent <Image>().color = new Color32(126, 161, 54, 255); Nickname.GetComponent <Text>().color = new Color32(126, 161, 54, 255); Status.GetComponent <Text>().color = new Color32(126, 161, 54, 255); if (fgi.m_gameID.ToString() != "480") { Status.GetComponent <Text>().text = "Playing another game"; } else { Status.GetComponent <Text>().text = "Playing RageGame"; } } else { Nickname.GetComponent <Text>().color = new Color32(77, 148, 176, 255); Status.GetComponent <Text>().color = new Color32(77, 148, 176, 255); Status.GetComponent <Text>().text = "Online"; Bordo.GetComponent <Image>().color = new Color32(77, 148, 176, 255); } } Nickname.GetComponent <Text>().text = SteamFriends.GetFriendPersonaName(m_Friend); }
public void RenderOnGUI() { GUILayout.BeginArea(new Rect(Screen.width - 200, 0, 200, Screen.height)); GUILayout.Label("Variables:"); GUILayout.Label("m_Friend: " + m_Friend); GUILayout.Label("m_Clan: " + m_Clan); GUILayout.Label("m_CoPlayFriend: " + m_CoPlayFriend); GUILayout.Label("m_SmallAvatar:"); GUILayout.Label(m_SmallAvatar); GUILayout.Label("m_MediumAvatar:"); GUILayout.Label(m_MediumAvatar); GUILayout.Label("m_LargeAvatar:"); GUILayout.Label(m_LargeAvatar); GUILayout.EndArea(); GUILayout.BeginVertical("box"); m_ScrollPos = GUILayout.BeginScrollView(m_ScrollPos, GUILayout.Width(Screen.width - 215), GUILayout.Height(Screen.height - 33)); GUILayout.Label("GetPersonaName() : " + SteamFriends.GetPersonaName()); if (GUILayout.Button("SetPersonaName(SteamFriends.GetPersonaName())")) { SteamAPICall_t handle = SteamFriends.SetPersonaName(SteamFriends.GetPersonaName()); OnSetPersonaNameResponseCallResult.Set(handle); print("SteamFriends.SetPersonaName(" + SteamFriends.GetPersonaName() + ") : " + handle); } GUILayout.Label("GetPersonaState() : " + SteamFriends.GetPersonaState()); GUILayout.Label("GetFriendCount(EFriendFlags.k_EFriendFlagImmediate) : " + SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate)); { m_Friend = SteamFriends.GetFriendByIndex(0, EFriendFlags.k_EFriendFlagImmediate); GUILayout.Label("GetFriendByIndex(0, EFriendFlags.k_EFriendFlagImmediate) : " + m_Friend); } GUILayout.Label("GetFriendRelationship(m_Friend) : " + SteamFriends.GetFriendRelationship(m_Friend)); GUILayout.Label("GetFriendPersonaState(m_Friend) : " + SteamFriends.GetFriendPersonaState(m_Friend)); GUILayout.Label("GetFriendPersonaName(m_Friend) : " + SteamFriends.GetFriendPersonaName(m_Friend)); { var fgi = new FriendGameInfo_t(); bool ret = SteamFriends.GetFriendGamePlayed(m_Friend, out fgi); GUILayout.Label("GetFriendGamePlayed(m_Friend, out fgi) : " + ret + " -- " + fgi.m_gameID + " -- " + fgi.m_unGameIP + " -- " + fgi.m_usGamePort + " -- " + fgi.m_usQueryPort + " -- " + fgi.m_steamIDLobby); } GUILayout.Label("GetFriendPersonaNameHistory(m_Friend, 1) : " + SteamFriends.GetFriendPersonaNameHistory(m_Friend, 1)); GUILayout.Label("GetFriendSteamLevel(m_Friend) : " + SteamFriends.GetFriendSteamLevel(m_Friend)); GUILayout.Label("GetPlayerNickname(m_Friend) : " + SteamFriends.GetPlayerNickname(m_Friend)); { int FriendsGroupCount = SteamFriends.GetFriendsGroupCount(); GUILayout.Label("GetFriendsGroupCount() : " + FriendsGroupCount); if (FriendsGroupCount > 0) { FriendsGroupID_t FriendsGroupID = SteamFriends.GetFriendsGroupIDByIndex(0); GUILayout.Label("SteamFriends.GetFriendsGroupIDByIndex(0) : " + FriendsGroupID); GUILayout.Label("GetFriendsGroupName(FriendsGroupID) : " + SteamFriends.GetFriendsGroupName(FriendsGroupID)); int FriendsGroupMembersCount = SteamFriends.GetFriendsGroupMembersCount(FriendsGroupID); GUILayout.Label("GetFriendsGroupMembersCount(FriendsGroupID) : " + FriendsGroupMembersCount); if (FriendsGroupMembersCount > 0) { CSteamID[] FriendsGroupMembersList = new CSteamID[FriendsGroupMembersCount]; SteamFriends.GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount); GUILayout.Label("GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount) : " + FriendsGroupMembersList[0]); } } } GUILayout.Label("HasFriend(m_Friend, EFriendFlags.k_EFriendFlagImmediate) : " + SteamFriends.HasFriend(m_Friend, EFriendFlags.k_EFriendFlagImmediate)); GUILayout.Label("GetClanCount() : " + SteamFriends.GetClanCount()); m_Clan = SteamFriends.GetClanByIndex(0); GUILayout.Label("GetClanByIndex(0) : " + m_Clan); GUILayout.Label("GetClanName(m_Clan) : " + SteamFriends.GetClanName(m_Clan)); GUILayout.Label("GetClanTag(m_Clan) : " + SteamFriends.GetClanTag(m_Clan)); { int Online; int InGame; int Chatting; bool ret = SteamFriends.GetClanActivityCounts(m_Clan, out Online, out InGame, out Chatting); GUILayout.Label("GetClanActivityCounts(m_Clan, out Online, out InGame, out Chatting) : " + ret + " -- " + Online + " -- " + InGame + " -- " + Chatting); } if (GUILayout.Button("DownloadClanActivityCounts(Clans, Clans.Length)")) { CSteamID[] Clans = { m_Clan, TestConstants.Instance.k_SteamId_Group_SteamUniverse }; SteamAPICall_t handle = SteamFriends.DownloadClanActivityCounts(Clans, Clans.Length); OnDownloadClanActivityCountsResultCallResult.Set(handle); // This call never seems to produce the CallResult. print("SteamFriends.DownloadClanActivityCounts(" + Clans + ", " + Clans.Length + ") : " + handle); } { int FriendCount = SteamFriends.GetFriendCountFromSource(m_Clan); GUILayout.Label("GetFriendCountFromSource(m_Clan) : " + FriendCount); if (FriendCount > 0) { GUILayout.Label("GetFriendFromSourceByIndex(m_Clan, 0) : " + SteamFriends.GetFriendFromSourceByIndex(m_Clan, 0)); } } GUILayout.Label("IsUserInSource(m_Friend, m_Clan) : " + SteamFriends.IsUserInSource(m_Friend, m_Clan)); if (GUILayout.Button("SetInGameVoiceSpeaking(SteamUser.GetSteamID(), false)")) { SteamFriends.SetInGameVoiceSpeaking(SteamUser.GetSteamID(), false); print("SteamFriends.SetInGameVoiceSpeaking(" + SteamUser.GetSteamID() + ", " + false + ")"); } if (GUILayout.Button("ActivateGameOverlay(\"Friends\")")) { SteamFriends.ActivateGameOverlay("Friends"); print("SteamFriends.ActivateGameOverlay(" + "\"Friends\"" + ")"); } if (GUILayout.Button("ActivateGameOverlayToUser(\"friendadd\", TestConstants.Instance.k_SteamId_rlabrecque)")) { SteamFriends.ActivateGameOverlayToUser("friendadd", TestConstants.Instance.k_SteamId_rlabrecque); print("SteamFriends.ActivateGameOverlayToUser(" + "\"friendadd\"" + ", " + TestConstants.Instance.k_SteamId_rlabrecque + ")"); } if (GUILayout.Button("ActivateGameOverlayToWebPage(\"http://steamworks.github.io\")")) { SteamFriends.ActivateGameOverlayToWebPage("http://steamworks.github.io"); print("SteamFriends.ActivateGameOverlayToWebPage(" + "\"http://steamworks.github.io\"" + ")"); } if (GUILayout.Button("ActivateGameOverlayToStore(TestConstants.Instance.k_AppId_TeamFortress2, EOverlayToStoreFlag.k_EOverlayToStoreFlag_None)")) { SteamFriends.ActivateGameOverlayToStore(TestConstants.Instance.k_AppId_TeamFortress2, EOverlayToStoreFlag.k_EOverlayToStoreFlag_None); print("SteamFriends.ActivateGameOverlayToStore(" + TestConstants.Instance.k_AppId_TeamFortress2 + ", " + EOverlayToStoreFlag.k_EOverlayToStoreFlag_None + ")"); } if (GUILayout.Button("SetPlayedWith(TestConstants.Instance.k_SteamId_rlabrecque)")) { SteamFriends.SetPlayedWith(TestConstants.Instance.k_SteamId_rlabrecque); print("SteamFriends.SetPlayedWith(" + TestConstants.Instance.k_SteamId_rlabrecque + ")"); } if (GUILayout.Button("ActivateGameOverlayInviteDialog(TestConstants.Instance.k_SteamId_rlabrecque)")) { SteamFriends.ActivateGameOverlayInviteDialog(TestConstants.Instance.k_SteamId_rlabrecque); print("SteamFriends.ActivateGameOverlayInviteDialog(" + TestConstants.Instance.k_SteamId_rlabrecque + ")"); } if (GUILayout.Button("GetSmallFriendAvatar(m_Friend)")) { int ret = SteamFriends.GetSmallFriendAvatar(m_Friend); print("SteamFriends.GetSmallFriendAvatar(" + m_Friend + ") : " + ret); m_SmallAvatar = SteamUtilsTest.GetSteamImageAsTexture2D(ret); } if (GUILayout.Button("GetMediumFriendAvatar(m_Friend)")) { int ret = SteamFriends.GetMediumFriendAvatar(m_Friend); print("SteamFriends.GetMediumFriendAvatar(" + m_Friend + ") : " + ret); m_MediumAvatar = SteamUtilsTest.GetSteamImageAsTexture2D(ret); } if (GUILayout.Button("GetLargeFriendAvatar(m_Friend)")) { int ret = SteamFriends.GetLargeFriendAvatar(m_Friend); print("SteamFriends.GetLargeFriendAvatar(" + m_Friend + ") : " + ret); m_LargeAvatar = SteamUtilsTest.GetSteamImageAsTexture2D(ret); } if (GUILayout.Button("RequestUserInformation(m_Friend, false)")) { bool ret = SteamFriends.RequestUserInformation(m_Friend, false); print("SteamFriends.RequestUserInformation(" + m_Friend + ", " + false + ") : " + ret); } if (GUILayout.Button("RequestClanOfficerList(m_Clan)")) { SteamAPICall_t handle = SteamFriends.RequestClanOfficerList(m_Clan); OnClanOfficerListResponseCallResult.Set(handle); print("SteamFriends.RequestClanOfficerList(" + m_Clan + ") : " + handle); } GUILayout.Label("GetClanOwner(m_Clan) : " + SteamFriends.GetClanOwner(m_Clan)); GUILayout.Label("GetClanOfficerCount(m_Clan) : " + SteamFriends.GetClanOfficerCount(m_Clan)); GUILayout.Label("GetClanOfficerByIndex(m_Clan, 0) : " + SteamFriends.GetClanOfficerByIndex(m_Clan, 0)); GUILayout.Label("GetUserRestrictions() : " + SteamFriends.GetUserRestrictions()); if (GUILayout.Button("SetRichPresence(\"status\", \"Testing 1.. 2.. 3..\")")) { bool ret = SteamFriends.SetRichPresence("status", "Testing 1.. 2.. 3.."); print("SteamFriends.SetRichPresence(" + "\"status\"" + ", " + "\"Testing 1.. 2.. 3..\"" + ") : " + ret); } if (GUILayout.Button("ClearRichPresence()")) { SteamFriends.ClearRichPresence(); print("SteamFriends.ClearRichPresence()"); } GUILayout.Label("GetFriendRichPresence(SteamUser.GetSteamID(), \"status\") : " + SteamFriends.GetFriendRichPresence(SteamUser.GetSteamID(), "status")); GUILayout.Label("GetFriendRichPresenceKeyCount(SteamUser.GetSteamID()) : " + SteamFriends.GetFriendRichPresenceKeyCount(SteamUser.GetSteamID())); GUILayout.Label("GetFriendRichPresenceKeyByIndex(SteamUser.GetSteamID(), 0) : " + SteamFriends.GetFriendRichPresenceKeyByIndex(SteamUser.GetSteamID(), 0)); if (GUILayout.Button("RequestFriendRichPresence(m_Friend)")) { SteamFriends.RequestFriendRichPresence(m_Friend); print("SteamFriends.RequestFriendRichPresence(" + m_Friend + ")"); } if (GUILayout.Button("InviteUserToGame(SteamUser.GetSteamID(), \"testing\")")) { bool ret = SteamFriends.InviteUserToGame(SteamUser.GetSteamID(), "testing"); print("SteamFriends.InviteUserToGame(" + SteamUser.GetSteamID() + ", " + "\"testing\"" + ") : " + ret); } GUILayout.Label("GetCoplayFriendCount() : " + SteamFriends.GetCoplayFriendCount()); if (GUILayout.Button("GetCoplayFriend(0)")) { m_CoPlayFriend = SteamFriends.GetCoplayFriend(0); print("SteamFriends.GetCoplayFriend(" + 0 + ") : " + m_CoPlayFriend); } GUILayout.Label("GetFriendCoplayTime(m_CoPlayFriend) : " + SteamFriends.GetFriendCoplayTime(m_CoPlayFriend)); GUILayout.Label("GetFriendCoplayGame(m_CoPlayFriend) : " + SteamFriends.GetFriendCoplayGame(m_CoPlayFriend)); if (GUILayout.Button("JoinClanChatRoom(m_Clan)")) { SteamAPICall_t handle = SteamFriends.JoinClanChatRoom(m_Clan); OnJoinClanChatRoomCompletionResultCallResult.Set(handle); print("SteamFriends.JoinClanChatRoom(" + m_Clan + ") : " + handle); } if (GUILayout.Button("LeaveClanChatRoom(m_Clan)")) { bool ret = SteamFriends.LeaveClanChatRoom(m_Clan); print("SteamFriends.LeaveClanChatRoom(" + m_Clan + ") : " + ret); } GUILayout.Label("GetClanChatMemberCount(m_Clan) : " + SteamFriends.GetClanChatMemberCount(m_Clan)); GUILayout.Label("GetChatMemberByIndex(m_Clan, 0) : " + SteamFriends.GetChatMemberByIndex(m_Clan, 0)); if (GUILayout.Button("SendClanChatMessage(m_Clan, \"Test\")")) { bool ret = SteamFriends.SendClanChatMessage(m_Clan, "Test"); print("SteamFriends.SendClanChatMessage(" + m_Clan + ", " + "\"Test\"" + ") : " + ret); } //GUILayout.Label("SteamFriends.GetClanChatMessage() : " + SteamFriends.GetClanChatMessage()); // N/A - Must be called from within the callback OnGameConnectedClanChatMsg GUILayout.Label("IsClanChatAdmin(m_Clan, m_Friend) : " + SteamFriends.IsClanChatAdmin(m_Clan, m_Friend)); GUILayout.Label("IsClanChatWindowOpenInSteam(m_Clan) : " + SteamFriends.IsClanChatWindowOpenInSteam(m_Clan)); if (GUILayout.Button("OpenClanChatWindowInSteam(m_Clan)")) { bool ret = SteamFriends.OpenClanChatWindowInSteam(m_Clan); print("SteamFriends.OpenClanChatWindowInSteam(" + m_Clan + ") : " + ret); } if (GUILayout.Button("CloseClanChatWindowInSteam(m_Clan)")) { bool ret = SteamFriends.CloseClanChatWindowInSteam(m_Clan); print("SteamFriends.CloseClanChatWindowInSteam(" + m_Clan + ") : " + ret); } if (GUILayout.Button("SetListenForFriendsMessages(true)")) { bool ret = SteamFriends.SetListenForFriendsMessages(true); print("SteamFriends.SetListenForFriendsMessages(" + true + ") : " + ret); } if (GUILayout.Button("ReplyToFriendMessage(SteamUser.GetSteamID(), \"Testing!\")")) { bool ret = SteamFriends.ReplyToFriendMessage(SteamUser.GetSteamID(), "Testing!"); print("SteamFriends.ReplyToFriendMessage(" + SteamUser.GetSteamID() + ", " + "\"Testing!\"" + ") : " + ret); } //GUILayout.Label("SteamFriends.GetFriendMessage() : " + SteamFriends.GetFriendMessage()); // N/A - Must be called from within the callback OnGameConnectedFriendChatMsg if (GUILayout.Button("GetFollowerCount(SteamUser.GetSteamID())")) { SteamAPICall_t handle = SteamFriends.GetFollowerCount(SteamUser.GetSteamID()); OnFriendsGetFollowerCountCallResult.Set(handle); print("SteamFriends.GetFollowerCount(" + SteamUser.GetSteamID() + ") : " + handle); } if (GUILayout.Button("IsFollowing(m_Friend)")) { SteamAPICall_t handle = SteamFriends.IsFollowing(m_Friend); OnFriendsIsFollowingCallResult.Set(handle); print("SteamFriends.IsFollowing(" + m_Friend + ") : " + handle); } if (GUILayout.Button("EnumerateFollowingList(0)")) { SteamAPICall_t handle = SteamFriends.EnumerateFollowingList(0); OnFriendsEnumerateFollowingListCallResult.Set(handle); print("SteamFriends.EnumerateFollowingList(" + 0 + ") : " + handle); } GUILayout.Label("IsClanPublic(m_Clan) : " + SteamFriends.IsClanPublic(m_Clan)); GUILayout.Label("IsClanOfficialGameGroup(m_Clan) : " + SteamFriends.IsClanOfficialGameGroup(m_Clan)); GUILayout.EndScrollView(); GUILayout.EndVertical(); }
private void RenderPageOne() { GUILayout.Label("SteamFriends.GetPersonaName() : " + SteamFriends.GetPersonaName()); if (GUILayout.Button("SteamFriends.SetPersonaName(SteamFriends.GetPersonaName())")) { SteamAPICall_t handle = SteamFriends.SetPersonaName(SteamFriends.GetPersonaName()); OnSetPersonaNameResponseCallResult.Set(handle); print("SteamFriends.SetPersonaName(" + SteamFriends.GetPersonaName() + ") : " + handle); } GUILayout.Label("SteamFriends.GetPersonaState() : " + SteamFriends.GetPersonaState()); GUILayout.Label("SteamFriends.GetFriendCount(k_EFriendFlagImmediate) : " + SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate)); if (SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate) == 0) { Debug.LogError("You must have atleast one friend to use this Test"); return; } m_Friend = SteamFriends.GetFriendByIndex(0, EFriendFlags.k_EFriendFlagImmediate); GUILayout.Label("SteamFriends.GetFriendByIndex(0, k_EFriendFlagImmediate) : " + m_Friend); GUILayout.Label("SteamFriends.GetFriendRelationship(m_Friend) : " + SteamFriends.GetFriendRelationship(m_Friend)); GUILayout.Label("SteamFriends.GetFriendPersonaState(m_Friend) : " + SteamFriends.GetFriendPersonaState(m_Friend)); GUILayout.Label("SteamFriends.GetFriendPersonaName(m_Friend) : " + SteamFriends.GetFriendPersonaName(m_Friend)); { var fgi = new FriendGameInfo_t(); bool ret = SteamFriends.GetFriendGamePlayed(m_Friend, out fgi); GUILayout.Label("SteamFriends.GetFriendGamePlayed(m_Friend, out fgi) : " + ret + " -- " + fgi.m_gameID + " -- " + fgi.m_unGameIP + " -- " + fgi.m_usGamePort + " -- " + fgi.m_usQueryPort + " -- " + fgi.m_steamIDLobby); } GUILayout.Label("SteamFriends.GetFriendPersonaNameHistory(m_Friend, 1) : " + SteamFriends.GetFriendPersonaNameHistory(m_Friend, 1)); GUILayout.Label("SteamFriends.GetFriendSteamLevel(m_Friend) : " + SteamFriends.GetFriendSteamLevel(m_Friend)); GUILayout.Label("SteamFriends.GetPlayerNickname(m_Friend) : " + SteamFriends.GetPlayerNickname(m_Friend)); { int FriendsGroupCount = SteamFriends.GetFriendsGroupCount(); GUILayout.Label("SteamFriends.GetFriendsGroupCount() : " + FriendsGroupCount); if (FriendsGroupCount > 0) { FriendsGroupID_t FriendsGroupID = SteamFriends.GetFriendsGroupIDByIndex(0); GUILayout.Label("SteamFriends.GetFriendsGroupIDByIndex(0) : " + FriendsGroupID); GUILayout.Label("SteamFriends.GetFriendsGroupName(FriendsGroupID) : " + SteamFriends.GetFriendsGroupName(FriendsGroupID)); int FriendsGroupMembersCount = SteamFriends.GetFriendsGroupMembersCount(FriendsGroupID); GUILayout.Label("SteamFriends.GetFriendsGroupMembersCount(FriendsGroupID) : " + FriendsGroupMembersCount); if (FriendsGroupMembersCount > 0) { CSteamID[] FriendsGroupMembersList = new CSteamID[FriendsGroupMembersCount]; SteamFriends.GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount); GUILayout.Label("SteamFriends.GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount) : " + FriendsGroupMembersList[0]); } } } GUILayout.Label("SteamFriends.HasFriend(m_Friend, k_EFriendFlagImmediate) : " + SteamFriends.HasFriend(m_Friend, EFriendFlags.k_EFriendFlagImmediate)); GUILayout.Label("SteamFriends.GetClanCount() : " + SteamFriends.GetClanCount()); if (SteamFriends.GetClanCount() == 0) { Debug.LogError("You must have atleast one clan to use this Test"); return; } m_Clan = SteamFriends.GetClanByIndex(0); GUILayout.Label("SteamFriends.GetClanByIndex(0) : " + m_Clan); GUILayout.Label("SteamFriends.GetClanName(m_Clan) : " + SteamFriends.GetClanName(m_Clan)); GUILayout.Label("SteamFriends.GetClanTag(m_Clan) : " + SteamFriends.GetClanTag(m_Clan)); { int Online; int InGame; int Chatting; bool ret = SteamFriends.GetClanActivityCounts(m_Clan, out Online, out InGame, out Chatting); GUILayout.Label("SteamFriends.GetClanActivityCounts(m_Clan, out Online, out InGame, out Chatting) : " + ret + " -- " + Online + " -- " + InGame + " -- " + Chatting); } if (GUILayout.Button("SteamFriends.DownloadClanActivityCounts(m_Clans, 2)")) { CSteamID[] Clans = { m_Clan, new CSteamID(103582791434672565) }; // m_Clan, Steam Universe SteamAPICall_t handle = SteamFriends.DownloadClanActivityCounts(Clans, 2); OnDownloadClanActivityCountsResultCallResult.Set(handle); // This call never seems to produce a callback. print("SteamFriends.DownloadClanActivityCounts(" + Clans + ", 2) : " + handle); } { int FriendCount = SteamFriends.GetFriendCountFromSource(m_Clan); GUILayout.Label("SteamFriends.GetFriendCountFromSource(m_Clan) : " + FriendCount); if (FriendCount > 0) { GUILayout.Label("SteamFriends.GetFriendFromSourceByIndex(m_Clan, 0) : " + SteamFriends.GetFriendFromSourceByIndex(m_Clan, 0)); } } GUILayout.Label("SteamFriends.IsUserInSource(m_Friend, m_Clan) : " + SteamFriends.IsUserInSource(m_Friend, m_Clan)); if (GUILayout.Button("SteamFriends.SetInGameVoiceSpeaking(SteamUser.GetSteamID(), false)")) { SteamFriends.SetInGameVoiceSpeaking(SteamUser.GetSteamID(), false); print("SteamClient.SetInGameVoiceSpeaking(" + SteamUser.GetSteamID() + ", false);"); } if (GUILayout.Button("SteamFriends.ActivateGameOverlay(\"Friends\")")) { SteamFriends.ActivateGameOverlay("Friends"); print("SteamClient.ActivateGameOverlay(\"Friends\")"); } if (GUILayout.Button("SteamFriends.ActivateGameOverlayToUser(\"friendadd\", 76561197991230424)")) { SteamFriends.ActivateGameOverlayToUser("friendadd", new CSteamID(76561197991230424)); // rlabrecque print("SteamClient.ActivateGameOverlay(\"friendadd\", 76561197991230424)"); } if (GUILayout.Button("SteamFriends.ActivateGameOverlayToWebPage(\"http://google.com\")")) { SteamFriends.ActivateGameOverlayToWebPage("http://google.com"); print("SteamClient.ActivateGameOverlay(\"http://google.com\")"); } if (GUILayout.Button("SteamFriends.ActivateGameOverlayToStore(440, k_EOverlayToStoreFlag_None)")) { SteamFriends.ActivateGameOverlayToStore((AppId_t)440, EOverlayToStoreFlag.k_EOverlayToStoreFlag_None); // 440 = TF2 print("SteamClient.ActivateGameOverlay(440, k_EOverlayToStoreFlag_None)"); } if (GUILayout.Button("SteamFriends.SetPlayedWith(76561197991230424)")) { SteamFriends.SetPlayedWith(new CSteamID(76561197991230424)); //rlabrecque print("SteamClient.SetPlayedWith(76561197991230424)"); } if (GUILayout.Button("SteamFriends.ActivateGameOverlayInviteDialog(76561197991230424)")) { SteamFriends.ActivateGameOverlayInviteDialog(new CSteamID(76561197991230424)); //rlabrecque print("SteamClient.ActivateGameOverlayInviteDialog(76561197991230424)"); } if (GUILayout.Button("SteamFriends.GetSmallFriendAvatar(m_Friend)")) { int FriendAvatar = SteamFriends.GetSmallFriendAvatar(m_Friend); print("SteamFriends.GetSmallFriendAvatar(" + m_Friend + ") - " + FriendAvatar); uint ImageWidth; uint ImageHeight; bool ret = SteamUtils.GetImageSize(FriendAvatar, out ImageWidth, out ImageHeight); if (ret && ImageWidth > 0 && ImageHeight > 0) { byte[] Image = new byte[ImageWidth * ImageHeight * 4]; ret = SteamUtils.GetImageRGBA(FriendAvatar, Image, (int)(ImageWidth * ImageHeight * 4)); m_SmallAvatar = new Texture2D((int)ImageWidth, (int)ImageHeight, TextureFormat.RGBA32, false, true); m_SmallAvatar.LoadRawTextureData(Image); // The image is upside down! "@ares_p: in Unity all texture data starts from "bottom" (OpenGL convention)" m_SmallAvatar.Apply(); } } if (GUILayout.Button("SteamFriends.GetMediumFriendAvatar(m_Friend)")) { int FriendAvatar = SteamFriends.GetMediumFriendAvatar(m_Friend); print("SteamFriends.GetMediumFriendAvatar(" + m_Friend + ") - " + FriendAvatar); uint ImageWidth; uint ImageHeight; bool ret = SteamUtils.GetImageSize(FriendAvatar, out ImageWidth, out ImageHeight); if (ret && ImageWidth > 0 && ImageHeight > 0) { byte[] Image = new byte[ImageWidth * ImageHeight * 4]; ret = SteamUtils.GetImageRGBA(FriendAvatar, Image, (int)(ImageWidth * ImageHeight * 4)); m_MediumAvatar = new Texture2D((int)ImageWidth, (int)ImageHeight, TextureFormat.RGBA32, false, true); m_MediumAvatar.LoadRawTextureData(Image); m_MediumAvatar.Apply(); } } if (GUILayout.Button("SteamFriends.GetLargeFriendAvatar(m_Friend)")) { int FriendAvatar = SteamFriends.GetLargeFriendAvatar(m_Friend); print("SteamFriends.GetLargeFriendAvatar(" + m_Friend + ") - " + FriendAvatar); uint ImageWidth; uint ImageHeight; bool ret = SteamUtils.GetImageSize(FriendAvatar, out ImageWidth, out ImageHeight); if (ret && ImageWidth > 0 && ImageHeight > 0) { byte[] Image = new byte[ImageWidth * ImageHeight * 4]; ret = SteamUtils.GetImageRGBA(FriendAvatar, Image, (int)(ImageWidth * ImageHeight * 4)); if (ret) { m_LargeAvatar = new Texture2D((int)ImageWidth, (int)ImageHeight, TextureFormat.RGBA32, false, true); m_LargeAvatar.LoadRawTextureData(Image); m_LargeAvatar.Apply(); } } } }
public GameID GamePlayed(SteamID s) => steam_friends.GetFriendGamePlayed(s);
public void RefershFriends() { Log("Refreshing Friends"); int friendsCount = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); if (friendsCount == -1) { LogError("Friendcount == -1, user isn't logged into steam"); return; } /* * First we are going to sort the list into four sections * Friends playing vtol vr * Friends in game * Friends online * Friends offline */ CSteamID lastFriendID; List <CSteamID> vtolvrFriends = new List <CSteamID>(); Log("Getting all friends"); for (int i = 0; i < friendsCount; i++) { lastFriendID = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); if (SteamFriends.GetFriendGamePlayed(lastFriendID, out FriendGameInfo_t gameInfo)) { if (gameInfo.m_gameID.AppID().m_AppId == 667970) { //User is in VTOLVR vtolvrFriends.Add(lastFriendID); continue; } } } Log("Adding friends to list"); //Now we want to create the ingame list friendsTemplate.SetActive(true); GameObject lastFriendGO; VRUIListItemTemplate uiListItem; int totalFriends = 0; lableVTOL.transform.localPosition = new Vector3(0, -totalFriends * buttonHeight); for (int i = 0; i < vtolvrFriends.Count; i++) { totalFriends++; lastFriendGO = Instantiate(friendsTemplate, content.transform); steamFriends.Add(new FriendItem(vtolvrFriends[i], lastFriendGO.transform)); lastFriendGO.transform.localPosition = new Vector3(0f, -totalFriends * buttonHeight); uiListItem = lastFriendGO.GetComponent <VRUIListItemTemplate>(); uiListItem.Setup(SteamFriends.GetFriendPersonaName(vtolvrFriends[i]), totalFriends - 1, SelectFriend); uiListItem.labelText.color = Color.green; } Log("Updating Scroll Rect"); scrollRect.content.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, (2f + steamFriends.Count) * buttonHeight); scrollRect.ClampVertical(); JoinButton.SetActive(false); friendsTemplate.SetActive(false); Log("Refreahing Interactables"); GameObject.Find("InteractableCanvas").GetComponent <VRPointInteractableCanvas>().RefreshInteractables(); Log($"Total Friends:{totalFriends} In VTOLVR:{vtolvrFriends.Count}"); Networker.ResetNetworkUID(); }
public static void RequestAvailableLobbies() { if (!SteamManager.Initialized) { Logger.Error("CONNECTION FAILED"); return; } LobbyData.Clear(); MultiplayerListing.refreshLobbyList(); int cFriends = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); for (int i = 0; i < cFriends; i++) { FriendGameInfo_t friendGameInfo; CSteamID steamIDFriend = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); SteamFriends.GetFriendGamePlayed(steamIDFriend, out friendGameInfo); if (friendGameInfo.m_gameID == GetGameID() && friendGameInfo.m_steamIDLobby.IsValid()) { SteamMatchmaking.RequestLobbyData(friendGameInfo.m_steamIDLobby); } } }
internal IEnumerator GetFriends() { if (_funGetFriends == null) { yield break; } _FriendsList.Clear(); AppId_t[] appList; appList = new AppId_t[1]; SteamAppList.GetInstalledApps(appList, 1); SteamAppList.GetNumInstalledApps(); _FriendsCount = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate | EFriendFlags.k_EFriendFlagIgnoredFriend); for (int i = 0; i < _FriendsCount; i++) { try { SteamFriendsData data = new SteamFriendsData(); //get steamid data._SteamID = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate | EFriendFlags.k_EFriendFlagIgnoredFriend); var fgi = new FriendGameInfo_t(); //get playing game name bool ret = SteamFriends.GetFriendGamePlayed(data._SteamID, out fgi); if (ret) { if (fgi.m_gameID.AppID() == SteamUtils.GetAppID()) { data._PlayedGameName = "Planet Explorers"; } else { data._PlayedGameName = "Another game"; } //SteamAppList.GetAppName(fgi.m_gameID.AppID(), out data._PlayedGameName, 256); } //get player state data._PlayerState = SteamFriends.GetFriendPersonaState(data._SteamID); //get player name data._PlayerName = SteamFriends.GetFriendPersonaName(data._SteamID); //get avatar int FriendAvatar = SteamFriends.GetSmallFriendAvatar(data._SteamID); uint ImageWidth; uint ImageHeight; ret = SteamUtils.GetImageSize(FriendAvatar, out ImageWidth, out ImageHeight); if (ret && ImageWidth > 0 && ImageHeight > 0) { ret = SteamUtils.GetImageRGBA(FriendAvatar, _imageData, SteamFriendsData._imageHeight * SteamFriendsData._imageWidth * 4); for (int n = 0; n < _imageData.Length; n += 4) { int x = (n / 4) % SteamFriendsData._imageWidth; int y = (n / 4) / SteamFriendsData._imageHeight; int tag = (SteamFriendsData._imageWidth * (SteamFriendsData._imageHeight - y - 1) + x) * 4; _imageTurnData[n] = _imageData[tag]; _imageTurnData[n + 1] = _imageData[tag + 1]; _imageTurnData[n + 2] = _imageData[tag + 2]; _imageTurnData[n + 3] = _imageData[tag + 3]; } data._avatar.LoadRawTextureData(_imageTurnData); data._avatar.Apply(); } _FriendsList[i] = data; } catch (Exception e) { Debug.Log("SteamGetFriendsProcess GetFriends " + e.ToString()); _funGetFriends(null, false); } yield return(0); } _funGetFriends(_FriendsList, true); }
internal SteamFriendsData GetFriendInfo(CSteamID ID) { SteamFriendsData data = new SteamFriendsData(); data._SteamID = ID; var fgi = new FriendGameInfo_t(); //get playing game name bool ret = SteamFriends.GetFriendGamePlayed(data._SteamID, out fgi); if (ret) { if (fgi.m_gameID.AppID() == SteamUtils.GetAppID()) { data._PlayedGameName = "Planet Explorers"; } else { data._PlayedGameName = "Another game"; } //SteamAppList.GetAppName(fgi.m_gameID.AppID(), out data._PlayedGameName, 256); } else { data._PlayedGameName = ""; } //get player state data._PlayerState = SteamFriends.GetFriendPersonaState(data._SteamID); //get player name data._PlayerName = SteamFriends.GetFriendPersonaName(data._SteamID); //get avatar int FriendAvatar = SteamFriends.GetSmallFriendAvatar(data._SteamID); uint ImageWidth; uint ImageHeight; ret = SteamUtils.GetImageSize(FriendAvatar, out ImageWidth, out ImageHeight); if (ret && ImageWidth > 0 && ImageHeight > 0) { ret = SteamUtils.GetImageRGBA(FriendAvatar, _imageData, SteamFriendsData._imageHeight * SteamFriendsData._imageWidth * 4); for (int n = 0; n < _imageData.Length; n += 4) { int x = (n / 4) % SteamFriendsData._imageWidth; int y = (n / 4) / SteamFriendsData._imageHeight; int tag = (SteamFriendsData._imageWidth * (SteamFriendsData._imageHeight - y - 1) + x) * 4; _imageTurnData[n] = _imageData[tag]; _imageTurnData[n + 1] = _imageData[tag + 1]; _imageTurnData[n + 2] = _imageData[tag + 2]; _imageTurnData[n + 3] = _imageData[tag + 3]; } data._avatar.LoadRawTextureData(_imageTurnData); data._avatar.Apply(); } else { return(null); } return(data); }
public static void RequestLobbies() { if (!SteamManager.Initialized) { Logger.Error("CONNECTION FAILED"); return; } Logger.Debug($"Requesting list of all lobbies from steam"); LobbyData.Clear(); MultiplayerListing.refreshLobbyList(); SteamMatchmaking.AddRequestLobbyListFilterSlotsAvailable(1); SteamMatchmaking.AddRequestLobbyListStringFilter("version", PACKET_VERSION, ELobbyComparison.k_ELobbyComparisonEqual); SteamAPICall_t apiCall = SteamMatchmaking.RequestLobbyList(); OnLobbyMatchListCallResult.Set(apiCall); int cFriends = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate); for (int i = 0; i < cFriends; i++) { FriendGameInfo_t friendGameInfo; CSteamID steamIDFriend = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate); SteamFriends.GetFriendGamePlayed(steamIDFriend, out friendGameInfo); if (friendGameInfo.m_gameID == GetGameID() && friendGameInfo.m_steamIDLobby.IsValid()) { SteamMatchmaking.RequestLobbyData(friendGameInfo.m_steamIDLobby); } } }