Esempio n. 1
0
 private void UpdateLobby()
 {
     if (!CoopLobby.IsInLobby)
     {
         this.OnBack();
         return;
     }
     if (CoopLobby.Instance == null || CoopLobby.Instance.Info == null || CoopLobby.Instance.Info.Destroyed)
     {
         this.SetErrorText(UiTranslationDatabase.TranslateKey("LOBBY_DESTROYED", "Lobby Destroyed", this._allCapsTexts));
         this.OnBack();
         CoopLobby.LeaveActive();
         return;
     }
     if (!CoopLobby.Instance.Info.IsOwner && CoopLobby.Instance.Info.ServerId.IsValid())
     {
         if (!BoltNetwork.isClient && !base.gameObject.GetComponent <CoopSteamClientStarter>())
         {
             base.gameObject.AddComponent <CoopSteamClientStarter>().gui = this;
             if (GameSetup.IsNewGame)
             {
                 PlaneCrashAudioState.Spawn();
             }
             this.SetLoadingText(UiTranslationDatabase.TranslateKey("STARTING_CLIENT___", "Starting Client...", this._allCapsTexts));
         }
     }
     else
     {
         bool  foundHost = false;
         ulong ownerId   = SteamMatchmaking.GetLobbyOwner(CoopLobby.Instance.Info.LobbyId).m_SteamID;
         this._lobbyScreen._playerCountLabel.text = StringEx.TryFormat(UiTranslationDatabase.TranslateKey("PLAYER_CURRENT_OVER_MAX", "PLAYERS: {0} / {1}", this._allCapsTexts), new object[]
         {
             CoopLobby.Instance.MemberCount,
             CoopLobby.Instance.Info.MemberLimit
         });
         this._lobbyScreen._playerListLabel.text = CoopLobby.Instance.AllMembers.Select(delegate(CSteamID x)
         {
             string text = SteamFriends.GetFriendPersonaName(x);
             bool flag   = x.m_SteamID == ownerId;
             if (flag)
             {
                 text     += " (Host)";
                 foundHost = true;
             }
             return(text);
         }).Aggregate((string a, string b) => a + "\n" + b);
         if (!foundHost)
         {
             this.OnBack();
         }
     }
 }
Esempio n. 2
0
        public static string[] GetLobbyUsers()
        {
            var client = ServiceLocator.Get <IClient>();
            var names  = new string[client.RemoteUsers.Count];

            for (var i = 0; i < names.Length; i++)
            {
                names[i] = SteamFriends.GetFriendPersonaName(client.RemoteUsers[i]);
                Console.WriteLine(names[i]);
            }

            return(names);
        }
Esempio n. 3
0
    /// <summary>
    /// Gets the steam friendslist
    /// </summary>
    /// <returns>a list of friends list names</returns>
    public string[] getfriendslist()
    {
        friendslisttemp.Clear();
        int friendscount = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagAll);

        string[] output = new string[friendscount];
        for (int i = 0; i < friendscount; i++)
        {
            output[i] = SteamFriends.GetFriendPersonaName(SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagAll));
            friendslisttemp.Add(output[i]);
        }
        return(output);
    }
Esempio n. 4
0
    IEnumerator SetNameWhenReady()
    {
        // Wait for client to get authority, then retrieve the player's Steam ID
        var id = GetComponent <NetworkIdentity>();

        while (id.clientAuthorityOwner == null)
        {
            yield return(null);
        }

        steamId  = SteamNetworkManager.Instance.GetSteamIDForConnection(id.clientAuthorityOwner).m_SteamID;
        username = SteamFriends.GetFriendPersonaName(new CSteamID(steamId));
    }
Esempio n. 5
0
        public static String GetMemberName(int Index)
        {
            if (SteamCore.InOfflineMode())
            {
                return("Local player");
            }

            //REMOVE//if ( s_CurrentLobby.m_handle == null ) return "";

            CSteamID steamIDLobbyMember = (CSteamID)SteamMatchmaking.GetLobbyMemberByIndex(s_CurrentLobby.m_handle, Index);

            return(SteamFriends.GetFriendPersonaName(steamIDLobbyMember));
        }
Esempio n. 6
0
        // Token: 0x06000005 RID: 5 RVA: 0x0000235C File Offset: 0x0000055C
        private static void GetFriendList()
        {
            int friendCount = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate);

            Console.WriteLine(friendCount);
            for (int i = 0; i < friendCount; i++)
            {
                CSteamID friendByIndex = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate);
                Console.WriteLine(friendByIndex);
                Console.WriteLine(SteamFriends.GetFriendPersonaName(friendByIndex));
            }
            Program.finished = true;
        }
Esempio n. 7
0
        private void OnPlayerChat(ChatEvent e)
        {
            var player = Scene.SceneTracker.allPlayerEntities.FirstOrDefault(ent => ent.networkId == e.Sender);

            if (player == null)
            {
                return;
            }
            var steamId = player.source.RemoteEndPoint.SteamId.Id;
            var name    = SteamFriends.GetFriendPersonaName(new CSteamID(steamId));

            Interface.Oxide.LogInfo($"{name}: {e.Message}");
        }
    private void OnLobbyChatMessage(LobbyChatMsg_t message)
    {
        byte[] messageData = new byte[32];
        SteamMatchmaking.GetLobbyChatEntry(global.global_lobbyID, (int)message.m_iChatID, out CSteamID user, messageData, messageData.Length, out EChatEntryType type);
        string messageString = System.Text.Encoding.UTF8.GetString(messageData);

        chatBox.AddText("\n" + SteamFriends.GetFriendPersonaName((CSteamID)message.m_ulSteamIDUser) + ": " + messageString);

        if (messageString.Contains("CONTINUE_SESSION") && (CSteamID)message.m_ulSteamIDUser == global.player1)
        {
            GetTree().ChangeScene("Scenes/game.tscn");
        }
    }
Esempio n. 9
0
        private static void OnLobbyChatUpdate(LobbyChatUpdate_t result)
        {
            Console.WriteLine("Lobby chat update");
            int lobbyMemberCount = SteamMatchmaking.GetNumLobbyMembers(new CSteamID(LobbyId));

            PlayerList.Clear();
            _playerNames.Clear();
            for (int i = 0; i < lobbyMemberCount; i++)
            {
                PlayerList.Add(SteamMatchmaking.GetLobbyMemberByIndex(new CSteamID(LobbyId), i));
                _playerNames.Add(SteamFriends.GetFriendPersonaName(PlayerList[i]));
            }
        }
Esempio n. 10
0
        private void chatObjDropDownEvent(object sender, EventArgs e)
        {
            SteamFriends         steamFriend = this.core.Steam.SteamFriends;
            BindingList <string> chatObjSrc  = new BindingList <string>();

            this.userList.Clear();
            this.userList.Add(null);
            chatObjSrc.Add("######## Groups #######");
            for (int i = 0; i < steamFriend.GetClanCount(); i++)
            {
                this.userList.Add(steamFriend.GetClanByIndex(i));
                chatObjSrc.Add(steamFriend.GetClanName(steamFriend.GetClanByIndex(i)));
            }
            this.userList.Add(null);
            chatObjSrc.Add("####### online friends #######");
            for (int i = 0; i < this.core.Steam.SteamFriends.GetFriendCount(); i++)
            {
                if (this.core.Steam.SteamFriends.GetFriendPersonaState(steamFriend.GetFriendByIndex(i)) != EPersonaState.Offline)
                {
                    this.userList.Add(steamFriend.GetFriendByIndex(i));
                    chatObjSrc.Add(steamFriend.GetFriendPersonaName(this.core.Steam.SteamFriends.GetFriendByIndex(i)));
                }
            }
            if (this.showOfflineFriendCheck.Checked)
            {
                this.userList.Add(null);
                chatObjSrc.Add("####### offline friends #######");
                for (int i = 0; i < this.core.Steam.SteamFriends.GetFriendCount(); i++)
                {
                    if (this.core.Steam.SteamFriends.GetFriendPersonaState(steamFriend.GetFriendByIndex(i)) == EPersonaState.Offline)
                    {
                        this.userList.Add(steamFriend.GetFriendByIndex(i));
                        chatObjSrc.Add(steamFriend.GetFriendPersonaName(this.core.Steam.SteamFriends.GetFriendByIndex(i)));
                    }
                }
            }
            this.SelectChatObjCombo.DataSource = chatObjSrc;
        }
Esempio n. 11
0
        private void OnFriendList(SteamFriends.FriendsListCallback obj)
        {
            // sometimes the info hasn't been cached yet, so we must wait for that
            while (friends.GetFriendPersonaName(obj.FriendList[0].SteamID) == null)
            {
            }

            Console.BackgroundColor = ConsoleColor.Cyan;
            Console.ForegroundColor = ConsoleColor.Black;
            Debug.WriteLine($"You have {obj.FriendList.Count} friends!");
            Console.ResetColor();
            Debug.WriteLine("Press any key to list them.");
            Console.ReadKey();
            foreach (var friend in obj.FriendList)
            {
                string name = friends.GetFriendPersonaName(friend.SteamID);
                if (name == null)
                {
                    name = friend.SteamID.Render();
                }
                Debug.WriteLine($"{name} ({friends.GetFriendPersonaState(friend.SteamID)})");
            }
        }
Esempio n. 12
0
    public void OnLobbyChatUpdate(LobbyChatUpdate_t pCallback)
    {
        if (C.LOG_INVITE)
        {
            Debug.Log("Premade lobby: OnLobbyChatUpdate");
        }

        UpdateTeammatesPresence();
        CheckLock();

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

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

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

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

        /// If user enters lobby
        else if (pCallback.m_rgfChatMemberStateChange == (uint)EChatMemberStateChange.k_EChatMemberStateChangeEntered &&
                 pCallback.m_ulSteamIDLobby == teambuilderLobbyId.m_SteamID)
        {
            if (C.LOG_INVITE)
            {
                Debug.LogWarning(SteamFriends.GetFriendPersonaName(new CSteamID(pCallback.m_ulSteamIDUserChanged)) + " joined lobby");
            }
        }
    }
Esempio n. 13
0
 public User(CSteamID id)
 {
     AvatarID      = -1;
     SteamID       = id;
     SteamUsername = SteamFriends.GetFriendPersonaName(id);
     if (SteamUsername == "" || SteamUsername == "[unknown]")
     {
         LoadName();
     }
     else
     {
         DownloadAvatar();
     }
 }
        /// <summary>
        ///     Called when the lobby receives a message.
        /// </summary>
        /// <param name="pCallback"></param>
        private void OnLobbyMessaged(LobbyChatMsg_t pCallback)
        {
            if (NetLogFilter.logInfo)
            {
                Debug.Log($"Recieved message from {SteamFriends.GetFriendPersonaName(new CSteamID(pCallback.m_ulSteamIDUser))}. ({Time.time})");
            }

            byte[] msg = new byte[1024];
            SteamMatchmaking.GetLobbyChatEntry(network.LocalConnection.LobbyID, (int)pCallback.m_iChatID, out CSteamID id, msg, msg.Length, out EChatEntryType type);
            var segment = new ArraySegment <byte>(msg);
            var incMsg  = MessageHelper.FromBytes(segment, network.LocalConnection.connectedPeers[id]);

            OnLobbyMessageReceived(incMsg);
        }
Esempio n. 15
0
        private void OnPlayerChat(ChatEvent evt)
        {
            var player = Scene.SceneTracker.allPlayerEntities.FirstOrDefault(ent => ent.networkId == evt.Sender);

            if (player == null)
            {
                return;
            }

            var id   = player.source.RemoteEndPoint.SteamId.Id;
            var name = SteamFriends.GetFriendPersonaName(new CSteamID(id));

            Debug.Log($"[Chat] {name}: {evt.Message}");
        }
    public override void OnStartAuthority()
    {
        CmdSetDisplayName(SteamFriends.GetFriendPersonaName(this.UserSteamID));
        CmdSetSteamID(SteamUser.GetSteamID());

        for (int i = 0; i < playerNames.Length; i++)
        {
            playerNames[i].color = Color.grey;
        }
        if (hasAuthority)
        {
            lobbyUI.SetActive(true);
        }
    }
Esempio n. 17
0
        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;
        }
Esempio n. 18
0
        private void OnFriendMsg(SteamFriends.FriendMsgCallback callback)
        {
            if (callback.EntryType == EChatEntryType.ChatMsg)
            {
                var sender = callback.Sender;

                Friend currentChatter = Chatters.FirstOrDefault(chatter => chatter.SteamID.AccountID == sender.AccountID);

                if (currentChatter == null)
                {
                    currentChatter = new Friend()
                    {
                        WelcomedDate       = DateTime.Now,
                        ChatState          = ChatState.NoInteraction,
                        SteamID            = sender,
                        IsReceivingAdvInfo = false
                    };

                    Chatters.Add(currentChatter);
                }

                TimeSpan timeSpan = DateTime.Now - currentChatter.WelcomedDate;
                if (timeSpan.Minutes >= 5)
                {
                    currentChatter.ChatState = ChatState.NoInteraction;
                }

                string responseMessage = String.Empty;
                if (BasicCommands.ContainsKey(callback.Message))
                {
                    responseMessage          = BasicCommands[callback.Message];
                    currentChatter.ChatState = ChatState.Welcomed;
                }
                else if (currentChatter.ChatState == ChatState.NoInteraction)
                {
                    currentChatter.ChatState = ChatState.Welcomed;
                    responseMessage          = WelcomeMessage;
                }
                else if (currentChatter.ChatState == ChatState.Welcomed)
                {
                    responseMessage = CommandNotFoundMessage;
                }

                SteamFriends.SendChatMessage(sender, EChatEntryType.ChatMsg, responseMessage);

                Console.WriteLine($"{SteamFriends.GetFriendPersonaName(sender)}: {callback.Message}");
                Console.WriteLine($"BOT: {responseMessage}");
            }
        }
Esempio n. 19
0
    // LOGIC

    public void Refresh()
    {
        if (!SteamManager.initializedMain)
        {
            return;
        }

        string        personaName = SteamFriends.GetFriendPersonaName(m_SteamId);
        Sprite        icon        = SteamUtilities.GetMediumAvatar(m_SteamId);
        EPersonaState state       = SteamFriends.GetFriendPersonaState(m_SteamId);

        m_Name  = personaName;
        m_Icon  = icon;
        m_State = state;
    }
Esempio n. 20
0
        private void HandleSteamIdUpdated(ulong oldSteamId, ulong newSteamId)
        {
            var cSteamId = new CSteamID(newSteamId);

            displayNameText.text = SteamFriends.GetFriendPersonaName(cSteamId);

            int imageId = SteamFriends.GetLargeFriendAvatar(cSteamId);

            if (imageId == -1)
            {
                return;
            }

            profileImage.texture = GetSteamImageAsTexture(imageId);
        }
Esempio n. 21
0
        private void OnPlayerDisconnected(BoltConnection connection)
        {
            if (connection == null)
            {
                return;
            }

            var userId = connection.RemoteEndPoint.SteamId.Id;
            var name   = SteamFriends.GetFriendPersonaName(new CSteamID(userId));

            // Let covalence know
            //Libraries.Covalence.TheForestCovalenceProvider.Instance.PlayerManager.NotifyPlayerDisconnect(connection);

            Debug.Log($"{userId}/{name} quit");
        }
Esempio n. 22
0
 public void OnGetUserStats(UserStatsReceived_t pCallback)
 {
     if (pCallback.m_steamIDUser == SteamUser.GetSteamID())
     {
         int score = 0;
         SteamUserStats.GetStat("GAMESCORE", out score);
         player1Rank.text = SteamFriends.GetPersonaName() + " (" + score + ")";
     }
     else if (pCallback.m_steamIDUser == otherUsr)
     {
         int score = 0;
         SteamUserStats.GetUserStat(otherUsr, "GAMESCORE", out score);
         player2Rank.text = SteamFriends.GetFriendPersonaName(otherUsr) + " (" + score + ")";
     }
 }
Esempio n. 23
0
    //Create a networked player given SteamID information.
    //Pass in SteamUser.GetSteamID() for <id> if you want to
    //construct your own player object.
    public Player ConstructPlayer(CSteamID id)
    {
        Player p    = new Player();
        string name = SteamFriends.GetFriendPersonaName(id);

        if (name.Equals(""))
        {
            Debug.LogError("Name request returned blank, (probably) lobby not ready");
            return(null);
        }
        p.SetName(name);
        p.SetUniqueID(id.m_SteamID);
        p.SetPrivateKey("key");
        return(p);
    }
        async void OnMessageReceivedAsync(SteamFriends.FriendMsgCallback callback)
        {
            var values = new Dictionary <string, string>
            {
                { "sender", _steamFriends.GetFriendPersonaName(callback.Sender).ToString() },
                { "message", callback.Message },
                { "profile_url", "https://steamcommunity.com/profiles/" + callback.Sender.ConvertToUInt64() }
            };

            var content = new FormUrlEncodedContent(values);

            var response = await client.PostAsync("https://pivasbot.appspot.com/api/receiveMessage", content);

            var responseString = await response.Content.ReadAsStringAsync();
        }
Esempio n. 25
0
 /// <summary>
 /// Initialize the steam avatar display.
 /// </summary>
 /// <param name="steamId">The <see cref="CSteamID"/> of the user who's information to get</param>
 /// <param name="size">The <see cref="AvatarSize"/> of the image to get</param>
 public void Initialize(CSteamID steamId, AvatarSize size = AvatarSize.Medium)
 {
     if (SteamManager.Initialized)
     {
         avatarImage.texture = GetAvatar(steamId, size);
         if (steamId != SteamUser.GetSteamID())
         {
             personaName.text = SteamFriends.GetFriendPersonaName(steamId);
         }
         else
         {
             personaName.text = SteamFriends.GetPersonaName();
         }
     }
 }
Esempio n. 26
0
    void ReceiveChatMessage(LobbyChatMsg_t cb)
    {
        CSteamID       user;
        EChatEntryType chatType;
        int            dataLenght = SteamMatchmaking.GetLobbyChatEntry((CSteamID)cb.m_ulSteamIDLobby, (int)cb.m_iChatID, out user, chatData, chatData.Length, out chatType);

        string name = SteamFriends.GetFriendPersonaName(user);

        if (chatType == EChatEntryType.k_EChatEntryTypeChatMsg)
        {
            int    n;
            string message = ByteManipulator.ReadString(chatData, 0, encoder, out n);
            Text.text += "\n" + name + " : " + message;
        }
    }
Esempio n. 27
0
        //Creating this callback handler allows us to respond to a message
        //We can perform specific actions based on this message
        //but for now we will just stick with responding to every message
        //with "hello"
        static void OnChatMessage(SteamFriends.FriendMsgCallback callback)
        {
            //This allows us to send a message, callback.sender is the steam ID
            //of the friend who sent the message, therefore we can use it
            //for the SendChatMessage function which requires a steam ID
            //Then, chat entry type is set to chat message in order to
            //inform steam we are sending a text based message
            //and not a "x user is typing..." or something like that

            //this if statement prevents the bot from saqying something every while you're typing
            //because the "x user is typing..." is interperated as a steam message, so
            //we need to check if it's an actual chat message

            //we're going to create a switch statement to mass-check the arguements.


            //before we start off, go to main() and work with the chat.txt
            //we'll need two string variables, one to hold the trimed version of the message, and another to hold the read line.

            Random rnd  = new Random();
            int    ind  = rnd.Next(rLine.Count);
            string rand = rLine [ind];

            Console.WriteLine(steamFriends.GetFriendPersonaName(callback.Sender));
            if (callback.Message.Length > 0)
            {
                Console.WriteLine(callback.Message);
                Console.WriteLine(rand);
                steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, rand);                  //if so, respond with the response listed in chat.txt
            }
            if (callback.Message.Length > 5)
            {
                rLine.Add(callback.Message);
            }
            return;             //exit method
        }
        public void LobbyEntered(LobbyEnter_t enterLobby)
        {
            connectedPlayers.Clear();
            otherPlayers.Clear();
            ResetManagers();

            lobbyID = (CSteamID)enterLobby.m_ulSteamIDLobby;
            int playerCount = SteamMatchmaking.GetNumLobbyMembers(lobbyID);

            MultiplayerChat.AddChat("Entered Lobby!");


            //Send packets to all players, to establish P2P connections with them
            if (playerCount > 1)
            {
                for (int i = 0; i < playerCount; i++)
                {
                    CSteamID lobbyMember = SteamMatchmaking.GetLobbyMemberByIndex(lobbyID, i);
                    SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 0);
                    SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 1);
                    SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 2);
                    if (!connectedPlayers.Contains(lobbyMember.m_SteamID))
                    {
                        connectedPlayers.Add(lobbyMember.m_SteamID);
                        PlayerJoinedManagers(lobbyMember.m_SteamID);
                    }
                    if (lobbyMember != SteamUser.GetSteamID())
                    {
                        otherPlayers.Add(lobbyMember.m_SteamID);
                    }
                }
            }

            //Set up network data
            NetworkGameManager.managerID = ulong.Parse(SteamMatchmaking.GetLobbyData(lobbyID, MANAGER_ID));
            NetworkGameManager.playerID  = SteamUser.GetSteamID().m_SteamID;

            if (!connectedPlayers.Contains(SteamUser.GetSteamID().m_SteamID))
            {
                connectedPlayers.Add(SteamUser.GetSteamID().m_SteamID);
                PlayerJoinedManagers(SteamUser.GetSteamID().m_SteamID);
            }


            MultiplayerChat.AddChat("This game's manager is " + SteamFriends.GetFriendPersonaName((CSteamID)NetworkGameManager.managerID));
            isInGame = true;
            Log("Entered Lobby! \nThis game's manager is " + SteamFriends.GetFriendPersonaName((CSteamID)NetworkGameManager.managerID));
        }
Esempio n. 29
0
        /// <summary>
        ///     Sends a message to the target.
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="qos"></param>
        public void Send(short opcode, ISerializablePacket packet, SteamNetworkingIdentity target)/* OutgoingMessage msg)*/
        {
            if (!IsConnected)
            {
                return;
            }
            if (!IsLocal)
            {
                return;
            }

            using (PooledNetWriter w = NetWriterPool.GetWriter())
            {
                MessageHelper.CreateAndFinalize(w, opcode, packet);
                var segment = w.ToArray();
                //if (NetLogFilter.messageDiagnostics) { NetDiagnostics.OnSend(opcode, segment.Count, 1); }

                // Initialize unmanaged memory to hold the array.
                int    size = Marshal.SizeOf(segment[0]) * segment.Length;
                IntPtr pnt  = Marshal.AllocHGlobal(size);

                try
                {
                    // Copy the array to unmanaged memory.
                    Marshal.Copy(segment, 0, pnt, segment.Length);
                    EResult result = SteamNetworkingMessages.SendMessageToUser(ref target, pnt, (uint)size, Constants.k_nSteamNetworkingSend_ReliableNoNagle, 0);
                    if (NetLogFilter.logInfo)
                    {
                        Debug.Log($"Packet to {SteamFriends.GetFriendPersonaName(target.GetSteamID())} was sent with resilt: {result}. ({Time.time})");
                    }
                }
                finally
                {
                    // Free the unmanaged memory.
                    Marshal.FreeHGlobal(pnt);
                }


                //if (SteamNetworking.SendP2PPacket(target, segment, (uint)segment.Length, EP2PSend.k_EP2PSendReliable))
                //{
                //    if (NetLogFilter.logInfo) { Debug.Log($"Packet to {SteamFriends.GetFriendPersonaName(target)} was successfully sent. ({Time.time})"); }
                //}
                //else
                //{
                //    if (NetLogFilter.logInfo) { Debug.Log($"Packet to {SteamFriends.GetFriendPersonaName(target)} failed to send. ({Time.time})"); }
                //}
            }
        }
Esempio n. 30
0
    private void Start()
    {
        if (!SteamManager.Initialized)
        {
            return;
        }
        string myName      = SteamFriends.GetPersonaName();
        int    friendCount = SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate);

        for (int i = 0; i < friendCount; i++)
        {
            CSteamID friend     = SteamFriends.GetFriendByIndex(i, EFriendFlags.k_EFriendFlagImmediate);
            string   friendName = SteamFriends.GetFriendPersonaName(friend);
            print(myName + " is friends with " + friendName);
        }
    }