Помогите Получить BasePlayer по SteamID64 || по нику

MaltrzD

Нестандартное звание
Автор темы
9 (83%)
22 Июн 2023
784
6
234
260
25
В общем нужна помощь, имеется ник/steamid64 и по нему нужно получить BasePlayer, вопрос как это можно сделать?
Заранее спасибо!
 
Для получения BasePlayer по нику/steamid64 необходимо использовать функцию FindPlayerByDisplayName или FindPlayerById. Вот пример кода на C#:

C#:
string playerName = "nickname"; // замените на нужный ник
ulong steamId = 12345678901234567; // замените на нужный steamid64
BasePlayer playerByDisplayName = BasePlayer.FindPlayerByDisplayName(playerName);
BasePlayer playerById = BasePlayer.FindPlayerById(steamId);

if (playerByDisplayName != null)
{
    // playerByDisplayName найден, делайте что-то с ним
}

if (playerById != null)
{
    // playerById найден, делайте что-то с ним
}

Обратите внимание, что функция FindPlayerByDisplayName не гарантирует, что найденный игрок будет иметь точно такой же ник, как и заданный. Если точное соответствие важно, то лучше использовать FindPlayerById с steamid64.
 
Не юзай это, если бот и написал правильно - метод довольно корявый. Сделай лучше так:
C#:
var player = BasePlayer.activePlayersList.FirstOrDefault(x => x. userID == твой ид)
.
 
нашел немного другой вариант

C#:
foreach (BasePlayer basePlayer in BasePlayer.activePlayerList)
{
    if (basePlayer.userID.ToString().Contains(args[0]) || basePlayer.displayName.Contains(args[0]))
    {
        
    }
}
но не думаю что он оптимальный, попробую ваши варианты
 
нашел немного другой вариант

C#:
foreach (BasePlayer basePlayer in BasePlayer.activePlayerList)
{
    if (basePlayer.userID.ToString().Contains(args[0]) || basePlayer.displayName.Contains(args[0]))
    {
       
    }
}
но не думаю что он оптимальный, попробую ваши варианты
C#:
private List<BasePlayer> FindPlayer(string filter)
        {
            List<BasePlayer> result = new List<BasePlayer>();

            foreach (var x in BasePlayer.activePlayerList)
            {
                if (x.UserIDString == filter && x.displayName.Contains(filter, System.Globalization.CompareOptions.IgnoreCase))
                    result.Add(x);
            }

            return result;
        }
 

Похожие темы