コード例 #1
0
 public static void ShowFriendRequest(PlayerIndex player, Gamer gamer)
 {
     SteamFriends.ActivateGameOverlayToUser(
         "friendadd",
         gamer.steamID
         );
 }
コード例 #2
0
 public bool ShowPlayerProfile(ulong id)
 {
     if (!SteamUtils.IsOverlayEnabled())
     {
         return(false);
     }
     SteamFriends.ActivateGameOverlayToUser("steamid", (CSteamID)id);
     return(true);
 }
コード例 #3
0
 public override void OnEnter()
 {
     if (!Application.isEditor)
     {
         ulong    ID = ulong.Parse(this.steamID.Value);
         CSteamID IDsteam;
         IDsteam.m_SteamID = ID;
         SteamFriends.ActivateGameOverlayToUser(overlayType.ToString(), IDsteam);
     }
     else
     {
         Debug.LogWarning("Steam Overlay does not work in editor mode");
         Finish();
     }
     Finish();
 }
コード例 #4
0
ファイル: TimeTrialUI.cs プロジェクト: tammukul/Lemma
        private Container leaderboardEntry(LeaderboardEntry_t entry)
        {
            Container container = this.main.UIFactory.CreateButton(delegate()
            {
                if (SteamWorker.SteamInitialized)
                {
                    SteamFriends.ActivateGameOverlayToUser("steamid", entry.m_steamIDUser);
                }
            });

            this.resizeContainer(container, 4.0f);

            TextElement rank = this.main.UIFactory.CreateLabel(entry.m_nGlobalRank.ToString());

            rank.AnchorPoint.Value = new Vector2(1, 0);
            rank.Position.Value    = new Vector2(this.width * 0.15f, 0);
            container.Children.Add(rank);

            TextElement name = this.main.UIFactory.CreateLabel();

            name.FilterUnicode.Value = true;
            if (SteamFriends.RequestUserInformation(entry.m_steamIDUser, true))
            {
                // Need to wait for a callback before we know their username
                name.Add(new Binding <string>(name.Text, () => SteamFriends.GetFriendPersonaName(entry.m_steamIDUser), this.PersonaNotification));
            }
            else
            {
                // We already know the username
                name.Text.Value = SteamFriends.GetFriendPersonaName(entry.m_steamIDUser);
            }
            name.Position.Value = new Vector2(this.width * 0.15f + this.spacing, 0);
            container.Children.Add(name);

            TextElement score = this.main.UIFactory.CreateLabel(SecondsToTimeString((float)entry.m_nScore / 1000.0f));

            score.AnchorPoint.Value = new Vector2(1, 0);
            score.Position.Value    = new Vector2(this.width - 4.0f - this.spacing, 0);
            container.Children.Add(score);
            return(container);
        }
コード例 #5
0
    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();
    }
コード例 #6
0
    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();
                }
            }
        }
    }
コード例 #7
0
    private void GetMouseInput(float a_deltaTime)
    {
        if (Time.timeSinceLevelLoad < 0.5f)
        {
            return;
        }
        bool    flag          = !this.m_inventory.IsVisible() && !this.m_communicator.IsActive(true) && false == this.m_popupGui.IsActive();
        Vector3 mousePosition = Input.mousePosition;
        bool    flag2         = (this.m_lastMousePos - mousePosition).sqrMagnitude > 4f;

        this.m_lastMousePos = mousePosition;
        Ray ray = Camera.main.ScreenPointToRay(mousePosition);

        if (flag2)
        {
            this.m_hideCursorTime = Time.time + 1f;
        }
        bool flag3 = Time.time < this.m_hideCursorTime;

        if (flag3 != Screen.showCursor)
        {
            Screen.showCursor = flag3;
        }
        if (Input.GetMouseButton(1) && flag)
        {
            this.m_buildRot += a_deltaTime * 90f;
            while (this.m_buildRot > 360f)
            {
                this.m_buildRot -= 360f;
            }
        }
        if (Input.GetMouseButtonDown(1))
        {
            RaycastHit raycastHit;
            if (Physics.Raycast(ray, out raycastHit, 100f, 665600))
            {
                int layer = raycastHit.transform.gameObject.layer;
                if (layer != 13)
                {
                    if (layer == 17)
                    {
                        if (!this.m_inventory.IsShopActive())
                        {
                            RemoteItem component = raycastHit.transform.GetComponent <RemoteItem>();
                            if (null != component && this.m_inventory.IsVisible())
                            {
                                this.m_itemGui.Show(component, ray.GetPoint(4.5f));
                            }
                        }
                    }
                }
                else if (flag)
                {
                    RemoteCharacter component2 = raycastHit.transform.GetComponent <RemoteCharacter>();
                    if (null != component2 && null != this.m_client)
                    {
                        ulong steamId = this.m_client.GetSteamId(component2.m_id);
                        if (Global.isSteamActive && 0UL < steamId)
                        {
                            SteamFriends.ActivateGameOverlayToUser("steamid", new CSteamID(steamId));
                        }
                    }
                }
            }
        }
        else if (Input.GetMouseButtonDown(0))
        {
            if (flag)
            {
                this.ResetTarget();
            }
            bool       flag4 = false;
            RaycastHit raycastHit2;
            if (Physics.Raycast(ray, out raycastHit2, 100f, 6995488))
            {
                switch (raycastHit2.transform.gameObject.layer)
                {
                case 9:
                case 13:
                    if (flag)
                    {
                        RemoteCharacter component3 = raycastHit2.transform.GetComponent <RemoteCharacter>();
                        if (null != component3)
                        {
                            if (!component3.m_isOwnPlayer)
                            {
                                this.m_currentTarget = component3;
                                flag4 = true;
                            }
                        }
                        else if (flag && Input.GetAxis("Vertical") == 0f && Input.GetAxis("Horizontal") == 0f)
                        {
                            this.CalculatePath(raycastHit2.point, 12 != raycastHit2.transform.gameObject.layer);
                        }
                    }
                    break;

                case 10:
                case 12:
                case 21:
                    if (flag && Input.GetAxis("Vertical") == 0f && Input.GetAxis("Horizontal") == 0f && null != this.m_client && !this.m_client.IsInVehicle())
                    {
                        Vector3 point = raycastHit2.point;
                        this.m_walkIndicator.position = new Vector3(raycastHit2.point.x, 0.1f, raycastHit2.point.z);
                        this.CalculatePath(point, 12 != raycastHit2.transform.gameObject.layer);
                    }
                    break;

                case 11:
                case 15:
                case 19:
                case 22:
                    flag4 = flag;
                    break;

                case 17:
                    if (this.m_inventory.IsShopActive())
                    {
                        RemoteItem component4 = raycastHit2.transform.GetComponent <RemoteItem>();
                        if (null != component4 && component4.m_type != 254 && this.m_inventory.IsVisible())
                        {
                            this.m_buySellPos = this.m_inventory.ToWorldPos(component4.transform.localPosition);
                            bool    flag5   = this.m_buySellPos.x < 6f;
                            float   num     = (!flag5) ? this.m_inventory.GetShopBuyMultiplier() : this.m_inventory.GetShopSellMultiplier();
                            string  text    = (!flag5) ? LNG.Get("BUY") : LNG.Get("SELL");
                            int     num2    = (int)(Items.GetValue(component4.m_type, component4.m_amountOrCond) * num + 0.5f);
                            string  text2   = (!Items.HasCondition(component4.m_type)) ? ("x " + component4.m_amountOrCond) : (component4.m_amountOrCond.ToString() + "%");
                            ItemDef itemDef = Items.GetItemDef(component4.m_type);
                            if (flag5 || this.m_client.GetGoldCount() >= num2)
                            {
                                string a_caption = string.Concat(new object[]
                                {
                                    text,
                                    "\n",
                                    LNG.Get(itemDef.ident),
                                    "\n",
                                    text2,
                                    "\nfor ",
                                    num2,
                                    " ",
                                    LNG.Get("CURRENCY"),
                                    "?"
                                });
                                this.m_buySellPopupSessionId = this.m_popupGui.ShowGui(true, a_caption);
                            }
                            else
                            {
                                string a_caption2 = string.Concat(new object[]
                                {
                                    LNG.Get("ITEMSHOP_TOO_LESS_GOLD"),
                                    "\n",
                                    num2,
                                    " ",
                                    LNG.Get("CURRENCY")
                                });
                                this.m_popupGui.ShowGui(true, a_caption2);
                            }
                        }
                    }
                    else if (Time.time < this.m_doubleClickTime)
                    {
                        this.m_doubleClickTime = 0f;
                        if (null != raycastHit2.transform)
                        {
                            Vector3 localPosition = raycastHit2.transform.localPosition;
                            Vector3 zero          = Vector3.zero;
                            if (this.m_inventory.DragDrop(ref localPosition, ref zero))
                            {
                                this.m_sendDragPos = localPosition;
                                this.m_sendDropPos = Vector3.zero;
                            }
                        }
                    }
                    else
                    {
                        this.m_dragItem     = raycastHit2.transform;
                        this.m_startDragPos = this.m_dragItem.localPosition;
                    }
                    break;
                }
            }
            if (flag4)
            {
                this.CalculateRotTowardsMouse(mousePosition);
                this.m_stopAttackingTime = Time.time + 0.3f;
            }
        }
        else if (Input.GetMouseButtonUp(0) && null != this.m_dragItem)
        {
            Vector3 startDragPos   = this.m_startDragPos;
            Vector3 localPosition2 = this.m_dragItem.localPosition;
            if (this.m_inventory.DragDrop(ref startDragPos, ref localPosition2))
            {
                if (startDragPos != localPosition2)
                {
                    this.m_sendDragPos = startDragPos;
                    this.m_sendDropPos = localPosition2;
                }
                else
                {
                    this.m_dragItem.localPosition = this.m_startDragPos;
                    this.m_doubleClickTime        = Time.time + 0.5f;
                }
            }
            this.m_dragItem = null;
        }
        if (null != this.m_dragItem)
        {
            this.m_dragItem.position = ray.GetPoint(5f);
            Vector3 localPosition3 = this.m_dragItem.localPosition;
            localPosition3.z = 0f;
            this.m_dragItem.localPosition = localPosition3;
        }
        else if (!flag2)
        {
            if (this.m_mouseOverDur != -1f)
            {
                this.m_mouseOverDur += a_deltaTime;
                if (this.m_mouseOverDur > 0.1f)
                {
                    this.m_buildingHealthIndicator.position = Vector3.up * 1000f;
                    this.m_tooltip.position     = Vector3.up * 1000f;
                    this.m_tooltipHudR.position = Vector3.up * 1000f;
                    this.m_tooltipHudR.parent   = null;
                    this.m_tooltipHudL.position = Vector3.up * 1000f;
                    this.m_tooltipHudL.parent   = null;
                    if (this.m_mouseOverRenderers != null && this.m_mouseOverRenderers.Length != 0)
                    {
                        foreach (Renderer renderer in this.m_mouseOverRenderers)
                        {
                            if (null != renderer)
                            {
                                renderer.gameObject.layer = this.m_mouseOverLayer;
                            }
                        }
                        this.m_mouseOverRenderers = null;
                    }
                    if (null != this.m_mouseOverTransform)
                    {
                        this.m_mouseOverTransform.localScale = this.m_initialMouseOverScale;
                        this.m_mouseOverTransform            = null;
                    }
                    RaycastHit raycastHit3;
                    if (Physics.Raycast(ray, out raycastHit3, 100f, 7007776))
                    {
                        if (raycastHit3.transform.gameObject.layer == 5)
                        {
                            string[] array = raycastHit3.transform.gameObject.name.Split(new char[]
                            {
                                '-'
                            });
                            if (array != null && 1 < array.Length)
                            {
                                if ("tooltip" == array[0])
                                {
                                    this.m_tooltipHudRText.text = LNG.Get(array[1]);
                                    this.m_tooltipHudR.position = raycastHit3.transform.position - raycastHit3.transform.right * 0.3f;
                                    this.m_tooltipHudR.rotation = raycastHit3.transform.rotation;
                                    this.m_tooltipHudR.parent   = raycastHit3.transform;
                                }
                                else if ("mission" == array[0])
                                {
                                    int a_index = 0;
                                    try
                                    {
                                        a_index = int.Parse(array[1]);
                                    }
                                    catch (Exception ex)
                                    {
                                        Debug.LogWarning("ClientInput.cs: " + ex.ToString());
                                    }
                                    Mission mission = this.m_client.GetMission(a_index);
                                    if (mission != null)
                                    {
                                        this.m_tooltipHudLText.text = string.Concat(new object[]
                                        {
                                            this.GetMissionText(mission),
                                            LNG.Get("TIME_LEFT"),
                                            ": ",
                                            (int)(mission.m_dieTime / 60f),
                                            " min"
                                        });
                                        this.m_tooltipHudL.position = raycastHit3.transform.position + raycastHit3.transform.right * 0.3f;
                                        this.m_tooltipHudL.rotation = raycastHit3.transform.rotation;
                                        this.m_tooltipHudL.parent   = raycastHit3.transform;
                                    }
                                }
                            }
                        }
                        else
                        {
                            this.m_mouseOverTransform    = raycastHit3.transform;
                            this.m_initialMouseOverScale = this.m_mouseOverTransform.localScale;
                            if (raycastHit3.transform.gameObject.layer == 17)
                            {
                                if (this.m_inventory.IsVisible())
                                {
                                    this.m_inventory.ShowInfo(raycastHit3.transform.position);
                                }
                            }
                            else if (raycastHit3.transform.gameObject.layer == 10)
                            {
                                this.m_mouseOverTransform.localScale *= 1.33f;
                            }
                            else if (raycastHit3.transform.gameObject.layer == 19)
                            {
                                RemoteBuilding component5 = raycastHit3.transform.parent.GetComponent <RemoteBuilding>();
                                if (null != this.m_buildingHealthIndicator && null != component5)
                                {
                                    Vector3 b = Vector3.up * 4f;
                                    float   x = 0.25f * (float)(3 - (int)(component5.m_health * 0.033f));
                                    this.m_buildingHealthIndicator.renderer.material.mainTextureOffset = new Vector2(x, 0f);
                                    this.m_buildingHealthIndicator.position = raycastHit3.transform.position + b;
                                }
                            }
                            else if (raycastHit3.transform.gameObject.layer == 15)
                            {
                                bool    flag6 = "building_10" == raycastHit3.transform.gameObject.name || "building_11" == raycastHit3.transform.gameObject.name;
                                Vector3 b2    = Vector3.up * ((!flag6) ? 3f : 6.5f);
                                this.m_tooltipText.text = LNG.Get("TOOLTIP_RESOURCE");
                                this.m_tooltip.position = raycastHit3.transform.position + b2;
                            }
                            else if (raycastHit3.transform.gameObject.layer == 21)
                            {
                                Vector3 b3 = Vector3.up * 2f;
                                this.m_tooltipText.text = LNG.Get("TOOLTIP_ITEMSTORAGE");
                                this.m_tooltip.position = raycastHit3.transform.position + b3;
                            }
                            else if (raycastHit3.transform.gameObject.layer == 9)
                            {
                                RemoteCharacter component6 = raycastHit3.transform.GetComponent <RemoteCharacter>();
                                if (null == component6)
                                {
                                    Vector3 b4 = Vector3.up * 3f;
                                    this.m_tooltipText.text = LNG.Get("TOOLTIP_INTERACT");
                                    this.m_tooltip.position = raycastHit3.transform.position + b4;
                                }
                            }
                            else if (raycastHit3.transform.gameObject.layer == 22)
                            {
                                MissionObjective component7 = raycastHit3.transform.GetComponent <MissionObjective>();
                                if (null != component7)
                                {
                                    Vector3 b5 = Vector3.up * 3f;
                                    this.m_tooltipText.text = LNG.Get("MISSION_TYPE_" + component7.m_type.ToString("d"));
                                    this.m_tooltip.position = raycastHit3.transform.position + b5;
                                }
                            }
                            this.m_mouseOverRenderers = raycastHit3.transform.GetComponentsInChildren <Renderer>();
                            if (this.m_mouseOverRenderers.Length == 0 && null != raycastHit3.transform.parent)
                            {
                                this.m_mouseOverRenderers = raycastHit3.transform.parent.GetComponentsInChildren <Renderer>();
                            }
                            if (this.m_mouseOverRenderers.Length != 0)
                            {
                                this.m_mouseOverLayer = this.m_mouseOverRenderers[0].gameObject.layer;
                                foreach (Renderer renderer2 in this.m_mouseOverRenderers)
                                {
                                    renderer2.gameObject.layer = 20;
                                }
                            }
                        }
                    }
                    this.m_mouseOverDur = -1f;
                }
            }
        }
        else
        {
            this.m_mouseOverDur = 0f;
        }
    }
コード例 #8
0
 public void Profile(ulong steamid)
 {
     SteamFriends.ActivateGameOverlayToUser("steamid", new CSteamID(steamid));
 }
コード例 #9
0
 public static void ShowGamerCard(PlayerIndex player, Gamer gamer)
 {
     SteamFriends.ActivateGameOverlayToUser("steamid", gamer.steamID);
 }
コード例 #10
0
    public void FriendRemove(ulong steamID)
    {
        CSteamID ID = new CSteamID(steamID);

        SteamFriends.ActivateGameOverlayToUser("friendremove", ID);
    }
コード例 #11
0
    public void FriendRequestIgnore(ulong steamID)
    {
        CSteamID ID = new CSteamID(steamID);

        SteamFriends.ActivateGameOverlayToUser("friendrequestignore", ID);
    }
コード例 #12
0
    public void FriendAdd(ulong steamID)
    {
        CSteamID ID = new CSteamID(steamID);

        SteamFriends.ActivateGameOverlayToUser("friendadd", ID);
    }
コード例 #13
0
    public void ChatTo(ulong steamID)
    {
        CSteamID ID = new CSteamID(steamID);

        SteamFriends.ActivateGameOverlayToUser("chat", ID);
    }
コード例 #14
0
 public static void ShowPlayerReview(PlayerIndex player, Gamer gamer)
 {
     // Comments/Rating are on the user profile
     SteamFriends.ActivateGameOverlayToUser("steamid", gamer.steamID);
 }
コード例 #15
0
 private void LateUpdate()
 {
     if (null != this.m_guimaster)
     {
         string clickedButtonName      = this.m_guimaster.GetClickedButtonName();
         string rightClickedButtonName = this.m_guimaster.GetRightClickedButtonName();
         string text = (!(string.Empty != clickedButtonName)) ? rightClickedButtonName : clickedButtonName;
         if (string.Empty != text)
         {
             if (text.StartsWith("btnpe_") && null != this.m_client)
             {
                 ulong num = 0UL;
                 try
                 {
                     num = ulong.Parse(text.Substring("btnpe_".Length));
                 }
                 catch (Exception)
                 {
                 }
                 if (0UL < num)
                 {
                     if (this.m_invitePartyMode)
                     {
                         if (!this.m_invitedSteamIds.Contains(num) && this.m_client.GetSteamId() != num)
                         {
                             this.m_client.SendPartyRequest(ePartyControl.invite, num);
                             this.m_invitedSteamIds.Add(num);
                             this.UpdateList();
                             this.m_descriptionText.text = LNG.Get("PARTY_SENT_INVITE");
                         }
                     }
                     else if (string.Empty != clickedButtonName)
                     {
                         if (Global.isSteamActive)
                         {
                             SteamFriends.ActivateGameOverlayToUser("steamid", new CSteamID(num));
                         }
                     }
                     else if (this.m_client.GetSteamId() != num)
                     {
                         if (this.m_mutedSteamIds.Contains(num))
                         {
                             this.m_mutedSteamIds.Remove(num);
                         }
                         else
                         {
                             this.m_mutedSteamIds.Add(num);
                         }
                         this.UpdateList();
                     }
                 }
             }
             else if (text.StartsWith("btn_page_"))
             {
                 try
                 {
                     this.m_page = int.Parse(text.Substring("btn_page_".Length)) - 1;
                     this.UpdateList();
                 }
                 catch (Exception)
                 {
                 }
             }
         }
     }
 }
コード例 #16
0
 void OpenChat()
 {
     SteamFriends.ActivateGameOverlayToUser("chat", m_Friend);
 }
コード例 #17
0
        // ReSharper disable once InconsistentNaming
        // ReSharper disable once UnusedMember.Local
        private void OnGUI()
        {
            if (LabelStyle == null)
            {
                // Setup label style
                LabelStyle = new GUIStyle(GUI.skin.label)
                {
                    fontSize = 12
                };
            }

            if (!IsOpen || ChatBox.IsChatOpen)
            {
                return;
            }

            // Lock the view
            LocalPlayer.FpCharacter.LockView();

            // Apply the skin
            GUI.skin = ModAPI.Gui.Skin;

            // Create the menu
            MenuRect = new Rect((Camera.main.pixelWidth - Width) / 2, 10, Width, Height);
            GUI.Box(MenuRect, "", GUI.skin.window);
            CurrentTab = GUI.Toolbar(new Rect(MenuRect.xMin, MenuRect.yMin, MenuRect.width, ToolbarHeight), CurrentTab,
                                     new[]
            {
                nameof(Values.Self),
                "Chat",
                "Voice",
                "Players",
                "Spawn",
                "Sphere",
                "Aura"
            },
                                     GUI.skin.GetStyle("Tabs"));

            Y = MenuRect.yMin + ToolbarHeight + Padding;

            // ReSharper disable once SwitchStatementMissingSomeCases
            switch (CurrentTab)
            {
                #region Self

            case 0:
            {
                Y -= Padding;
                //GUI.Box(new Rect(MenuRect.xMin, Y - 1f, Width - 8f, Height - ToolbarHeight), "", GUI.skin.box);
                Values.Self.ScrollPosition = GUI.BeginScrollView(new Rect(MenuRect.xMin, Y, Width, Height - ToolbarHeight - 5), Values.Self.ScrollPosition, new Rect(0, 0, Width - 24, Height * 2));

                Y = Padding;

                AddLabel("OPTIONS", increaseY: true, autoAlign: false);

                AddLabel("InstantRevive:", autoAlign: false);
                AddCheckBox(ref Values.Self.InstaRevive, increaseY: true, autoAlign: false);

                AddLabel("Visible:", autoAlign: false);
                AddCheckBox(ref Values.Self.Visible, increaseY: true, autoAlign: false);

                AddLabel("Fire trail:", autoAlign: false);
                AddCheckBox(ref Values.Self.FireTrail, increaseY: true, autoAlign: false);

                AddLabel("God mode:", autoAlign: false);
                AddCheckBox(ref Values.Self.GodMode, increaseY: true, autoAlign: false);

                AddLabel("Fly mode:", autoAlign: false);
                AddCheckBox(ref Values.Self.FlyMode, increaseY: true, autoAlign: false);

                if (Values.Self.FlyMode)
                {
                    AddLabel("Noclip:", autoAlign: false);
                    AddCheckBox(ref Values.Self.NoClip, increaseY: true, autoAlign: false);
                }

                AddLabel("InstantTree:", autoAlign: false);
                AddCheckBox(ref Values.Self.InstantTree, increaseY: true, autoAlign: false);

                AddLabel("InstantDestroy:", autoAlign: false);
                AddCheckBox(ref Values.Self.InstaDestroy, increaseY: true, autoAlign: false);

                AddLabel("Move speed:", autoAlign: false);
                AddSlider(ref Values.Self.SpeedMultiplier, 1, 10, increaseY: true, autoAlign: false);

                AddLabel("Jump power:", autoAlign: false);
                AddSlider(ref Values.Self.JumpMultiplier, 1, 10, increaseY: true, autoAlign: false);

                Y += Padding;
                AddLabel("STATS", autoAlign: false);

                const float checkBoxPosition = 360;
                AddLabel("Fix", checkBoxPosition, increaseY: true, autoAlign: false);

                AddStatSlider("Health:", ref Values.Stats.FixedHealth, ref LocalPlayer.Stats.Health, 0, 100, ref Values.Stats.FixHealth, checkBoxPosition, false);
                AddStatSlider("Battery charge:", ref Values.Stats.FixedBatteryCharge, ref LocalPlayer.Stats.BatteryCharge, 0, 100, ref Values.Stats.FixBatteryCharge, checkBoxPosition, false);
                AddStatSlider("Fullness:", ref Values.Stats.FixedFullness, ref LocalPlayer.Stats.Fullness, 0, 1, ref Values.Stats.FixFullness, checkBoxPosition, false);
                AddStatSlider("Stamina:", ref Values.Stats.FixedStamina, ref LocalPlayer.Stats.Stamina, 0, 100, ref Values.Stats.FixStamina, checkBoxPosition, false);
                AddStatSlider("Energy:", ref Values.Stats.FixedEnergy, ref LocalPlayer.Stats.Energy, 0, 100, ref Values.Stats.FixEnergy, checkBoxPosition, false);
                AddStatSlider("Thirst:", ref Values.Stats.FixedThirst, ref LocalPlayer.Stats.Thirst, 0, 1, ref Values.Stats.FixThirst, checkBoxPosition, false);
                AddStatSlider("Starvation:", ref Values.Stats.FixedStarvation, ref LocalPlayer.Stats.Starvation, 0, 1, ref Values.Stats.FixStarvation, checkBoxPosition, false);
                AddStatSlider("Body temp:", ref Values.Stats.FixedBodyTemp, ref LocalPlayer.Stats.BodyTemp, 10, 60, ref Values.Stats.FixBodyTemp, checkBoxPosition, false);

                GUI.EndScrollView();

                break;
            }

                #endregion

                #region Chat

            case 1:
            {
                AddLabel("Chat as...", increaseY: true);
                AddRadioButtons(ref GriefClientPro.ChatManager.ChatAsValue, ChatManager.ChatAsNames, ChatManager.ChatAsCount, width: ChatManager.ChatAsCount * 100, increaseY: true);

                if (GriefClientPro.ChatManager.CurrentChatAs == ChatManager.ChatAs.Self)
                {
                    AddLabel("Chat as while invisible...", increaseY: true);
                    AddRadioButtons(ref GriefClientPro.ChatManager.ChatAsInvisibleValue, ChatManager.ChatAsInvisibleNames, ChatManager.ChatAsInvisibleCount,
                                    width: ChatManager.ChatAsInvisibleCount * 100, increaseY: true);
                }

                AddLabel("Prefix options", increaseY: true);
                AddCheckBox(ref GriefClientPro.ChatManager.UsePrefixWhenVisible, 20);
                AddLabel("Visible", 40);
                AddCheckBox(ref GriefClientPro.ChatManager.UsePrefixWhenInvisible, 100);
                AddLabel("Invisible", 120);
                AddLabel("Prefix: ", 190);
                GriefClientPro.ChatManager.Prefix = GUI.TextField(new Rect(MenuRect.xMin + Padding + 235, Y, 50, 20), GriefClientPro.ChatManager.Prefix);
                IncreaseY();

                if (GriefClientPro.ChatManager.CurrentChatAs == ChatManager.ChatAs.Selected ||
                    GriefClientPro.ChatManager.CurrentChatAsInvisible == ChatManager.ChatAsInvisible.Selected)
                {
                    // Validate current player
                    GriefClientPro.ChatManager.ValidatePlayer();

                    AddLabel("Select a player", increaseY: true);
                    if (GriefClientPro.PlayerManager.Players.Count == 0)
                    {
                        AddLabel("- none found -", 20, increaseY: true);
                    }
                    else
                    {
                        foreach (var player in GriefClientPro.PlayerManager.Players)
                        {
                            // Add checkbox
                            if (GUI.Toggle(new Rect(MenuRect.xMin + Padding + 20, Y, 20, 20), GriefClientPro.ChatManager.LastChattedAs?.SteamId == player.SteamId, ""))
                            {
                                // Apply player
                                GriefClientPro.ChatManager.LastChattedAs = player;
                            }

                            // Add player name
                            AddLabel(player.FriendlyName, 40, increaseY: true);
                        }
                    }
                }

                break;
            }

                #endregion

                #region Voice

            case 2:
            {
                AddLabel("Sendng voice as...", increaseY: true);
                AddRadioButtons(ref GriefClientPro.VoiceManager.ChatAsValue, VoiceManager.ChatAsNames, VoiceManager.ChatAsCount, width: VoiceManager.ChatAsCount * 100, increaseY: true);

                if (GriefClientPro.VoiceManager.CurrentChatAs == VoiceManager.VoiceChatAs.Self)
                {
                    AddLabel("Chat as while invisible...", increaseY: true);
                    AddRadioButtons(ref GriefClientPro.VoiceManager.ChatAsInvisibleValue, VoiceManager.ChatAsInvisibleNames, VoiceManager.ChatAsInvisibleCount,
                                    width: VoiceManager.ChatAsInvisibleCount * 100, increaseY: true);
                }

                if (GriefClientPro.VoiceManager.CurrentChatAs == VoiceManager.VoiceChatAs.Selected ||
                    GriefClientPro.VoiceManager.CurrentChatAsInvisible == VoiceManager.VoiceChatAsInvisible.Selected)
                {
                    // Validate current player
                    GriefClientPro.VoiceManager.ValidatePlayer();

                    AddLabel("Select a player", increaseY: true);
                    if (GriefClientPro.PlayerManager.Players.Count == 0)
                    {
                        AddLabel("- none found -", 20, increaseY: true);
                    }
                    else
                    {
                        foreach (var player in GriefClientPro.PlayerManager.Players)
                        {
                            // Add checkbox
                            if (GUI.Toggle(new Rect(MenuRect.xMin + Padding + 20, Y, 20, 20), GriefClientPro.VoiceManager.LastChattedAs?.SteamId == player.SteamId, ""))
                            {
                                // Apply player
                                GriefClientPro.VoiceManager.LastChattedAs = player;
                            }

                            // Add player name
                            AddLabel(player.FriendlyName, 40, increaseY: true);
                        }
                    }
                }

                break;
            }

                #endregion

                #region Players

            case 3:
            {
                // Kill, Fire trail, teleport, trap, steam
                AddLabel("Player Name");
                AddLabel("Kill", 160);
                AddLabel("Fire trail", 220, increaseY: true);

                if (GriefClientPro.PlayerManager.Players.Count == 0)
                {
                    AddLabel("- none found -", 20, increaseY: true);
                }
                else
                {
                    foreach (var player in GriefClientPro.PlayerManager.Players)
                    {
                        // Add player name
                        AddLabel(player.FriendlyName);

                        if (player.SteamId > 0)
                        {
                            // Add kill checkbox
                            if (GUI.Toggle(new Rect(MenuRect.xMin + Padding + 160, Y, 20, 20), GriefClientPro.KillAllPlayers.PermaKillPlayers.Contains(player.SteamId), ""))
                            {
                                GriefClientPro.KillAllPlayers.AddPlayerToPermaKill(player);
                            }
                            else
                            {
                                GriefClientPro.KillAllPlayers.RemovePlayerToPermaKill(player);
                            }

                            // Add fire trail checkbox
                            if (GUI.Toggle(new Rect(MenuRect.xMin + Padding + 220, Y, 20, 20), LastFirePositions.ContainsKey(player.SteamId), ""))
                            {
                                if (!LastFirePositions.ContainsKey(player.SteamId))
                                {
                                    LastFirePositions.Add(player.SteamId, Vector3.zero);
                                }
                            }
                            else
                            {
                                LastFirePositions.Remove(player.SteamId);
                            }
                        }

                        // Add teleport button
                        if (AddButton("Teleport", 300, 75))
                        {
                            LocalPlayer.Transform.position = player.Position;
                        }

                        // Add trap extreme button
                        if (AddButton("Trap", 385, 60))
                        {
                            if (SpawnOffsets == null)
                            {
                                SpawnOffsets = new List <Vector3>();

                                const int size = 5;
                                for (var x = -size; x < size; x++)
                                {
                                    for (var y = -1; y < size / 2; y++)
                                    {
                                        for (var z = -size; z < size; z++)
                                        {
                                            SpawnOffsets.Add(new Vector3(x * 8, y * 8, z * 8));
                                        }
                                    }
                                }

                                // Order offsets closest first
                                SpawnOffsets = SpawnOffsets.OrderBy(o => Vector3.Distance(Vector3.zero, o)).ThenBy(o => Vector3.Angle(Vector3.zero, o)).ToList();
                            }

                            foreach (var offset in SpawnOffsets)
                            {
                                // Set the rotation of spawned objects facing the target player
                                var rotation = Quaternion.LookRotation(new Vector3(offset.z, offset.y, -offset.x) - Vector3.zero);

                                // Spawn the traps
                                //BoltPrefabsHelper.Spawn(BoltPrefabs.Trap_TripWireExplosiveBuilt, position, rotation);
                                BoltPrefabsHelper.Spawn(BoltPrefabs.Bomb_Timed_Placed, player.Position + offset, rotation);
                            }
                        }

                        // Add steam profile button
                        if (player.SteamId > 0 && AddButton("Steam", 455, 75))
                        {
                            SteamFriends.ActivateGameOverlayToUser("steamid", new CSteamID(player.SteamId));
                        }

                        Y += StepY;
                    }
                }

                break;
            }

                #endregion

                #region Spawn

            case 4:
            {
                break;
            }

                #endregion

                #region Sphere

            case 5:
            {
                AddLabel("Enabled actions", Padding * 2, increaseY: true);
                Y += Padding;

                AddLabel("BluePrints:");
                AddCheckBox(ref SphereAction.Enabled.BluePrints, increaseY: true);
                AddLabel("BreakableCrates:");
                AddCheckBox(ref SphereAction.Enabled.BreakableCrates, increaseY: true);
                AddLabel("Buildings:");
                AddCheckBox(ref SphereAction.Enabled.Buildings, increaseY: true);
                AddLabel("Bushes:");
                AddCheckBox(ref SphereAction.Enabled.Bushes, increaseY: true);
                AddLabel("SuitCases:");
                AddCheckBox(ref SphereAction.Enabled.SuitCases, increaseY: true);
                AddLabel("Trees:");
                AddCheckBox(ref SphereAction.Enabled.Trees, increaseY: true);
                AddLabel("TreeStumps:");
                AddCheckBox(ref SphereAction.Enabled.TreeStumps, increaseY: true);
                AddLabel("KillPlayers:");
                AddCheckBox(ref SphereAction.Enabled.KillPlayers, increaseY: true);

                break;
            }

                #endregion

                #region Aura

            case 6:
            {
                AddLabel("Execute selected actions around camera", increaseY: true);
                AddLabel("Status: " + (Aura.Active ? "Active" : "Offline"), Padding * 3, increaseY: true);
                Y += Padding;

                AddLabel("Radius: " + Math.Round(Aura.Radius));
                Aura.Radius = AddSlider(ref Aura._radius, Aura.MinRadius, Aura.MaxRadius, width: MenuRect.width - Padding * 3 - 160, increaseY: true);

                AddLabel("KillEnemies:");
                AddCheckBox(ref Aura.Enabled.KillEnemies, increaseY: true);

                AddLabel("KillPlayers:");
                AddCheckBox(ref Aura.Enabled.KillPlayers, increaseY: true);

                AddLabel("RepairBuildings:");
                AddCheckBox(ref Aura.Enabled.RepairBuildings, increaseY: true);
                break;
            }

                #endregion
            }
        }