Пример #1
0
    void Awake()
    {
        try
        {
            Steamworks.SteamClient.Init(480);
        }
        catch (System.Exception e)
        {
            // Something went wrong - it's one of these:
            //
            //     Steam is closed?
            //     Can't find steam_api dll?
            //     Don't have permission to play app?
            //
        }
        var playername    = SteamClient.Name;
        var playersteamid = SteamClient.SteamId;
        int value         = 0;

        // Debug.Log(SteamClient.Name);
        SteamScreenshots.TriggerScreenshot();
        Steamworks.SteamUserStats.SetStat("deaths", value);
        foreach (var a in SteamUserStats.Achievements)
        {
            // Debug.Log( $"{a.Name} ({a.State})" );
        }
        foreach (var player in SteamFriends.GetFriends())
        {
            // Debug.Log( $"{player.Name}" );
        }
    }
        protected override void Initialize()
        {
            base.Initialize();

            Exiting += SteamworksIntegration_Exiting;

            try
            {
                SteamClient.Init(480);

                Functions.IsSteamRunning = true;

                SteamFriends.OnGameOverlayActivated += Functions.SteamFriends_OnGameOverlayActivated;
                SteamUserStats.OnUserStatsReceived  += SteamUserStats_OnUserStatsReceived;
                SteamUserStats.RequestCurrentStats();

                SteamUtils.OverlayNotificationPosition = NotificationPosition.TopRight;
                // Uncomment the next line to adjust the OverlayNotificationPosition.
                //SteamUtils.SetOverlayNotificationInset(400, 0);

                _CurrentLanguage = SteamApps.GameLanguage;
                _UserLevel       = SteamUser.SteamLevel;
                _UserID          = SteamClient.SteamId;
                _InstallDir      = SteamApps.AppInstallDir();

                _Scores      = Functions.FindLeaderboard("Quickest Win", 9).Result;
                _UserAvatar  = Functions.GetUserImage(_UserID, GraphicsDevice).Result;
                _PlayerCount = Functions.GetPlayerCount().Result;

                //The following lines can be helpful to know more about the user of your application
                //
                // Check if the user basically owns this app
                _OwnsApp = SteamApps.IsSubscribed;

                // Check if the user owns this app through Family Sharing
                _OwnsAppThroughFamilySharing = SteamApps.IsSubscribedFromFamilySharing;

                // Check if the user owns this app because of a Free Weekend
                _OwnsAppThroughFreeWeekend = SteamApps.IsSubscribedFromFreeWeekend;

                // The ownder SteamID of this app. It will be different from the users ID who started this application, when he just borrowed
                // this app through Family Sharing
                _OwnerID = SteamApps.AppOwner;

                // More information about the original app owner, which could be a Steam Friend (Family Sharing)
                try
                {
                    _OwnerFriend = SteamFriends.GetFriends().Where(x => x.Id == _OwnerID).First();
                }
                catch { }
            }
            catch (Exception e)
            {
                Console.Out.WriteLine(e.ToString());
            }

            Functions.LoadContent(Content);
        }
Пример #3
0
    void StartCuandoSteam()
    {
        if (refrescarLista)
        {
            refrescarLista.interactable = true;
        }

        if (abrirServer)
        {
            abrirServer.onClick.AddListener(AbrirServidor);
        }
        if (refrescarLista)
        {
            refrescarLista.onClick.AddListener(RefrescarLista);
        }

        friendsList = SteamFriends.GetFriends().ToArray();

        templateBotonAmigo.gameObject.SetActive(false);
        foreach (var friend in friendsList)
        {
            var bot = Instantiate(templateBotonAmigo, templateBotonAmigo.transform.parent);
            var txt = bot.GetComponentInChildren <Text>();
            if (txt)
            {
                txt.text = friend.Name;
            }
            bot.onClick.AddListener(() => UnirseAlServidorAmigo(friend));
            botonAutoJoin.Add(friend, bot);
        }

        if (unirseManual)
        {
            unirseManual.AddOptions(
                friendsList.Select(f => new Dropdown.OptionData(f.Name))
                .ToList()
                );
            unirseManual.onValueChanged.AddListener((val) =>
            {
                if (friendsList != null && val > 0)
                {
                    var selected = friendsList.FirstOrDefault(f => f.Name == unirseManual.options[val].text);
                    UnirseAlServidorAmigo(selected);
                }
            });
        }

        RefrescarLista();

        SetearInteractivo(true);

        // SteamMatchmaking.LobbyList.RequestAsync().ContinueWith((lobbis)=>{
        //     Debug.Log("list returned");
        //     foreach(var lobbi in lobbies) {
        //         Debug.Log($"lobbi {lobbi.Key} - {lobbi.Value.Data} - {lobbi.Value.Id} - {lobbi.Value.Owner}");
        //     }
        // });
    }
    void UpdateList()
    {
        Dropdown.ClearOptions();

        friendsList = SteamFriends.GetFriends().ToArray();

        Dropdown.AddOptions(
            friendsList.Select(f => new Dropdown.OptionData(f.Name))
            .ToList()
            );
    }
 /// <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
     foreach (var friend in SteamFriends.GetFriends())
     {
         if (friend.IsPlayingThisGame)
         {
             GetFriendInfo(friend);
         }
     }
 }
Пример #6
0
        public void Login(string username, string password, string authCode)
        {
            client.Connect();
            var callback = client.WaitForCallback();
            var connect  = callback as ConnectCallback;

            if (connect == null || connect.Result != EResult.OK)
            {
                Fatal("Connection failed");
                return;
            }

            var credentials = new SteamUser.LogOnDetails {
                Username = username,
                Password = password,
                AuthCode = authCode,
            };

            user.LogOn(credentials);
            callback = client.WaitForCallback();
            LogOnCallback login = callback as LogOnCallback;

            if (login == null)
            {
                Fatal("Login failed");
                return;
            }
            else
            {
                switch (login.Result)
                {
                case EResult.OK: break;

                case EResult.AccountLogonDenied:
                case EResult.AccountLogonDeniedNoMailSent:
                    Fatal("Steam guard authentication needed");
                    return;

                default:
                    Fatal("Login failed");
                    return;
                }
            }

            foreach (var friend in friends.GetFriends())
            {
                NotifyAddedBuddy(friend);
            }
        }
Пример #7
0
        private void SessionRequest(SteamId steamID)
        {
            var accountID = steamID.AccountId;
            var name      = string.Empty;

            foreach (var friend in SteamFriends.GetFriends())
            {
                if (friend.Id == steamID)
                {
                    name = friend.Name;
                }
            }

            OnSessionRequest.Invoke(name, AcceptSessionRequest, DeclineSessionRequest);
        }
Пример #8
0
    public async Task FriendTests()
    {
        foreach (Friend friend in SteamFriends.GetFriends())
        {
            Print($"Friend: {friend.Name}\n{string.Join( ", ", friend.NameHistory )}");
            Print($"{friend.Relationship} / {friend.SteamLevel} / {friend.IsPlayingThisGame} / {friend.IsOnline} / {friend.Id} ");

            Image?avatar = await friend.GetSmallAvatarAsync();

            DrawImage(await friend.GetSmallAvatarAsync());
            DrawImage(await friend.GetMediumAvatarAsync());
            DrawImage(await friend.GetLargeAvatarAsync());

            Print();

            await Task.Delay(1);
        }
    }
Пример #9
0
    public static SteamId GetFriend(ulong steamId)
    {
        var friend = default(SteamId);

        if (!allFriends.TryGetValue(steamId, out friend))
        {
            if (steamId == SteamClient.SteamId.Value)
            {
                friend = SteamClient.SteamId;
                allFriends.Add(steamId, friend);
            }

            foreach (var steamFriend in SteamFriends.GetFriends())
            {
                var temp2 = default(SteamId);
                if (!allFriends.TryGetValue(steamFriend.Id.Value, out temp2))
                {
                    allFriends.Add(steamFriend.Id.Value, steamFriend.Id);
                }
                if (steamFriend.Id.Value == steamId)
                {
                    return(steamFriend.Id);
                }
            }
            if (networker != null)
            {
                var lobby = networker.Lobby;
                foreach (var person in lobby.Members)
                {
                    var temp = default(SteamId);
                    if (!allFriends.TryGetValue(person.Id.Value, out temp))
                    {
                        allFriends.Add(person.Id.Value, person.Id);
                    }
                    if (person.Id.Value == steamId)
                    {
                        return(person.Id);
                    }
                }
            }
        }
        return(friend);
    }
Пример #10
0
        public static void GetSteamFriends()
        {
            try
            {
                IEnumerable <Friend> friends = SteamFriends.GetFriends();

                foreach (Friend friend in friends)
                {
#if DEBUG
                    MelonLoader.MelonModLogger.Log($"DEBUG - Friend: {friend.Name}");
#endif

                    friendUsers.Add(friend.Name);
                }
            }
            catch (Exception e)
            {
                MelonLoader.MelonModLogger.LogError(e.Message);
            }
        }
Пример #11
0
 public static SteamID GetFriendID(this SteamFriends friends, string name)
 {
     return(friends
            .GetFriends()
            .FirstOrDefault(id => friends.GetFriendPersonaName(id) == name));
 }