• Хостинг игровых серверов

    Максимальная производительность для ваших игровых серверов!

    Заказать сейчас

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

olol321

Нестандартное звание
6 (78%)
22 Июн 2023
635
3
172
238
24
В общем нужна помощь, имеется ник/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#:
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;
        }
 
Активность
Пока никто не печатает сообщение