Иконки у ботов в TAB как steam Игрок

kerjuxa85

Участник
Сообщения
14
Реакции
0
Операционная система
Linux
нашел сервер где каким то оброзом добавили в TABe y ботов иконки как будто это STEAM игрок. может кто подскажет как это сделать?
вот сервер зайдите сами убидитесь 62.141.42.81:27030
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #2
Скрин приложите. Не совсем понятно, какие иконки могут быть в таблице в CSS.

Возможности ходить по серверам не у всех есть, да.
 

kerjuxa85

Участник
Сообщения
14
Реакции
0
Скрин приложите. Не совсем понятно, какие иконки могут быть в таблице в CSS.

Возможности ходить по серверам не у всех есть, да.
Сообщения автоматически склеены:

вот как выглядит это типо не боты играют
 

Вложения

  • CSS.jpg
    CSS.jpg
    323.2 КБ · Просмотры: 505

kilroy

:clown:
Сообщения
1,065
Реакции
606
  • Команда форума
  • #5
Прям один приват на сервере
] sm plugins
"Anticheat" (1.0) by Andreas Grimm
"Anticheat" (1.0) by Andreas Grimm
"Anticheat" (1.0) by Andreas Grimm
"Saigns Admin-Plugin" (1.0) by Andreas Grimm
"Best Leader TF2/CSS/CSGO" (0.0.1) by Andreas Grimm
"Saigns Admin-Menus" (1.0) by Andreas Grimm
"Bomb Manager" (1.0) by Andreas Grimm
"Admin API" (1.0) by Andreas Grimm
To see more, type "sm plugins 11"
"CSS Helper" (1.0.1) by Andreas Grimm
"Ads" (1.0) by Andreas Grimm
] sm plugins 11
"Bonus" (1.0.0) by tF
"Bot" (1.0.0) by Andreas Grimm
"Bot Control" (1.0) by Andreas Grimm
"CSS Helper" (1.0.1) by Andreas Grimm
"Chicken & Zombie" (1.0) by Andreas Grimm
"CSSDM Ragdoll Fix" (1.0) by Andreas Grimm
"core_ping.smx" core_ping.smx
"CSS/CSGO/HL2MP Bots" (2.1) by Andreas Grimm
"CSS/CSGO Ranking" (0.0.1) by Andreas Grimm
"csranking_bonus.smx" csranking_bonus.smx
"AreaRestrict fuer CSS" (1.0.0) by Andreas Grimm
To see more, type "sm plugins 22"
] sm plugins 22
"CSS Quota" (1.0) by Andreas Grimm
"Balance" (1.0) by Andreas Grimm
"dbi" (1.0) by Andreas Grimm
"Dmg" (1.0) by Andreas Grimm
"Premium Effekte" (1.0) by Andreas Grimm
"Eventkiller" (1.0) by Andreas Grimm
"Global Ranking" (1.0) by Andreas Grimm
"Fun" (1.0) by Andreas Grimm
"gamedesc.smx" gamedesc.smx
"CSS Hats" (1.0) by Andreas Grimm
"Browser Helper" (0.0.1) by Andreas Grimm
To see more, type "sm plugins 33"
] sm plugins 33
"Help" (0.0.1) by Andreas Grimm
"Idle Manager" (1.0) by Andreas Grimm
"introduction.smx" introduction.smx
"IP Post" (0.0.1) by Andreas Grimm
"Item Restrict" (1.0.0) by Andreas Grimm
"MapVoting" (1.0) by Andreas Grimm
"Name Change Punisher" (1.1) by Andreas Grimm
"No Block" (1.0) by Andreas grimm
"No Fire in the Hole" (1.0) by Andreas Grimm
"Anti Team Flash" (1.0) by Andreas Grimm
"Observer Manager" (1.0.1) by Andreas Grimm
To see more, type "sm plugins 44"
] sm plugins 44
"Authentification" (1.0) by Andreas Grimm
"Premium Gamer CSS" (0.0.1) by Andreas Grimm
"Idle Bonus" (1.0) by Andreas Grimm
"Premium Gamer CSS" (0.0.1) by Andreas Grimm
"Ragdoll Remover" (1.0) by Andreas Grimm
"Quake Sounds TF2/CSS/HL2MP/CS:GO" (0.0.1) by Andreas Grimm
"ragdoll_css.smx" ragdoll_css.smx
"QuickDefuse" (0.3) by pRED*
"Redirection" (1.0) by Andreas Grimm
"Replaycleaner" (1.0) by Andreas Grimm
"Restart" (1.0) by Andreas Grimm
To see more, type "sm plugins 55"
] sm plugins 55
"Say" (1.0) by Andreas Grimm
"ServerList" (1.0) by Andreas Grimm
"Server Start Notifier" (1.0) by Andreas Grimm
"Database Settings" (0.0.1) by Andreas Grimm
"Global Ranking" (1.0) by Andreas Grimm
"SgN Tools" (0.0.1) by Andreas Grimm
"Update Force" (1.0) by Andreas Grimm
"Spray Shit" (1.0) by Andreas Grimm
"steamid" (1.0) by Andreas Grimm
"takedamage.smx" takedamage.smx
"TF2 cvar notify remover" (1.0) by Andreas Grimm
To see more, type "sm plugins 66"
] sm plugins 66
"Update Force" (1.0) by Andreas Grimm
"Saigns.de WordFilter" (1.0.0) by Andreas Grimm
"Anti Team Flash" (1.0) by Andreas Grimm
"Update Force" (1.0) by Andreas Grimm
Зашёл на сервер - и вправду большинство боты (На скрине реаьные люди, которые были на сервере)
screen.png
 

Natasha Heide

Добрая душа
Сообщения
88
Реакции
102
Там ещё и спам в чат идет рандомный, типа "от игроков", по факту просто рандом, таких в таблице нет 🙈
20200725110300_1.jpg

20200725110309_1.jpg
 

kerjuxa85

Участник
Сообщения
14
Реакции
0
Да, можно как то сделать такие аватарки у ботов, яб и денюшку дал
Сообщения автоматически склеены:

Там ещё и спам в чат идет рандомный, типа "от игроков", по факту просто рандом, таких в таблице нет 🙈
да да будто общаются сделано интересно так
 

vanz666

Участник
Сообщения
45
Реакции
157
Клиент определяет аватарки игроков по их steamid, поэтому произвольно их устанавливать не получится.
Вот примерно как это должно работать (для работы нужен SM не ниже версии 1.11).
C-подобный:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

#define PLAYER_INFO_LEN 132

enum
{
    PlayerInfo_Name = 0,                 // char[32]
    PlayerInfo_UserID = 32,             // int
    PlayerInfo_SteamID = 36,             // char[33]
    PlayerInfo_AccountID = 72,             // int
    PlayerInfo_FriendsName = 76,         // char[32]
    PlayerInfo_IsFakePlayer = 108,         // bool
    PlayerInfo_IsHLTV = 109,             // bool
    PlayerInfo_IsReplay = 110,             // bool
    PlayerInfo_CustomFile1 = 112,         // int
    PlayerInfo_CustomFile2 = 116,         // int
    PlayerInfo_CustomFile3 = 120,         // int
    PlayerInfo_CustomFile4 = 124,         // int
    PlayerInfo_FilesDownloaded = 128    // char
};

int g_accountIDs[MAXPLAYERS+1] =
{
    0,
    25341944, // [U:1:25341944]
    33063657, // [U:1:33063657]
    86114025, // ...
    33139149,
    10019795,
    64136527,
    10014490,
    112064860,
    3312,
    3,
    136555,
    49797024,
    53988387,
    168894,
    29462734,
    20599720
};

public void OnClientSettingsChanged(int client)
{
    if (!IsFakeClient(client) || !g_accountIDs[client])
        return;

    int tableIdx = FindStringTable("userinfo");

    if (tableIdx == INVALID_STRING_TABLE)
        return;
    
    char userInfo[PLAYER_INFO_LEN];

    if (!GetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN))
        return;

    int accountId = g_accountIDs[client];
    userInfo[PlayerInfo_AccountID] = accountId;
    userInfo[PlayerInfo_AccountID + 1] = accountId >> 8;
    userInfo[PlayerInfo_AccountID + 2] = accountId >> 16;
    userInfo[PlayerInfo_AccountID + 3] = accountId >> 24;

    bool lockTable = LockStringTables(false);
    SetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN);
    LockStringTables(lockTable);
}
20200728042735_1.jpg
 
Последнее редактирование:

kerjuxa85

Участник
Сообщения
14
Реакции
0
Большое количество грамматических ошибок
Клиент определяет аватарки игроков по их steamid, поэтому произвольно их устанавливать не получится.
Вот примерно как это должно работать (для работы нужен SM не ниже версии 1.11).
C-подобный:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

#define PLAYER_INFO_LEN 132

enum
{
    PlayerInfo_Name = 0,                 // char[32]
    PlayerInfo_UserID = 32,             // int
    PlayerInfo_SteamID = 36,             // char[33]
    PlayerInfo_AccountID = 72,             // int
    PlayerInfo_FriendsName = 76,         // char[32]
    PlayerInfo_IsFakePlayer = 108,         // bool
    PlayerInfo_IsHLTV = 109,             // bool
    PlayerInfo_IsReplay = 110,             // bool
    PlayerInfo_CustomFile1 = 112,         // int
    PlayerInfo_CustomFile2 = 116,         // int
    PlayerInfo_CustomFile3 = 120,         // int
    PlayerInfo_CustomFile4 = 124,         // int
    PlayerInfo_FilesDownloaded = 128    // bool
};

int g_accountIDs[MAXPLAYERS+1] =
{
    0,
    25341944, // [U:1:25341944]
    33063657, // [U:1:33063657]
    86114025, // ...
    33139149,
    10019795,
    64136527,
    10014490,
    112064860,
    3312,
    3,
    136555,
    49797024,
    53988387,
    168894,
    29462734,
    20599720
};

public void OnClientSettingsChanged(int client)
{
    if (!IsFakeClient(client) || !g_accountIDs[client])
        return;

    int tableIdx = FindStringTable("userinfo");

    if (tableIdx == INVALID_STRING_TABLE)
        return;
   
    char userInfo[PLAYER_INFO_LEN];

    if (!GetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN))
        return;

    int accountId = g_accountIDs[client];
    userInfo[PlayerInfo_AccountID] = accountId;
    userInfo[PlayerInfo_AccountID + 1] = accountId >> 8;
    userInfo[PlayerInfo_AccountID + 2] = accountId >> 16;
    userInfo[PlayerInfo_AccountID + 3] = accountId >> 24;

    bool lockTable = LockStringTables(false);
    SetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN);
    LockStringTables(lockTable);
}
НУ ВОТ У тебя получились иконки, только плагин не могу скомпелирывать
Сообщения автоматически склеены:

Да работает отлично вот спасибо выручил, а можно сделать так чтоб боты бегали с +use чтоб могли поднимать трупов пробегая мимо
Сообщения автоматически склеены:

Для CS:GO тоже реально токой сделать, хотя там Prefix BOT не убрать, вот беда большая, а так огромное спасибо за плагин для CS:S он отличный
Сообщения автоматически склеены:

Да и чутеа отредактировать чтоб в правом верхнем углу были ники тех кто кого убивает, а то их не видно, просто оружее показывает
 
Последнее редактирование модератором:

Andy_Clashbit

🏅RPG-шник🏅
Сообщения
70
Реакции
13
Клиент определяет аватарки игроков по их steamid, поэтому произвольно их устанавливать не получится.
Вот примерно как это должно работать (для работы нужен SM не ниже версии 1.11).
C-подобный:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

#define PLAYER_INFO_LEN 132

enum
{
    PlayerInfo_Name = 0,                 // char[32]
    PlayerInfo_UserID = 32,             // int
    PlayerInfo_SteamID = 36,             // char[33]
    PlayerInfo_AccountID = 72,             // int
    PlayerInfo_FriendsName = 76,         // char[32]
    PlayerInfo_IsFakePlayer = 108,         // bool
    PlayerInfo_IsHLTV = 109,             // bool
    PlayerInfo_IsReplay = 110,             // bool
    PlayerInfo_CustomFile1 = 112,         // int
    PlayerInfo_CustomFile2 = 116,         // int
    PlayerInfo_CustomFile3 = 120,         // int
    PlayerInfo_CustomFile4 = 124,         // int
    PlayerInfo_FilesDownloaded = 128    // char
};

int g_accountIDs[MAXPLAYERS+1] =
{
    0,
    25341944, // [U:1:25341944]
    33063657, // [U:1:33063657]
    86114025, // ...
    33139149,
    10019795,
    64136527,
    10014490,
    112064860,
    3312,
    3,
    136555,
    49797024,
    53988387,
    168894,
    29462734,
    20599720
};

public void OnClientSettingsChanged(int client)
{
    if (!IsFakeClient(client) || !g_accountIDs[client])
        return;

    int tableIdx = FindStringTable("userinfo");

    if (tableIdx == INVALID_STRING_TABLE)
        return;
   
    char userInfo[PLAYER_INFO_LEN];

    if (!GetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN))
        return;

    int accountId = g_accountIDs[client];
    userInfo[PlayerInfo_AccountID] = accountId;
    userInfo[PlayerInfo_AccountID + 1] = accountId >> 8;
    userInfo[PlayerInfo_AccountID + 2] = accountId >> 16;
    userInfo[PlayerInfo_AccountID + 3] = accountId >> 24;

    bool lockTable = LockStringTables(false);
    SetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN);
    LockStringTables(lockTable);
}
A можно попросить код под sm 1.9?
Спасибо.
 

Sleep

Участник
Сообщения
389
Реакции
143
@vanz666, завелось и на см 1.10,но есть небольшой баг,он исправим?скрин приложу,иногда не видно ник бота в верхнем правом углу.
Или тут без вариантов нужен см 1.11?
Безымянный1.png
 
Последнее редактирование:

vanz666

Участник
Сообщения
45
Реакции
157
@vanz666, завелось и на см 1.10,но есть небольшой баг,он исправим?скрин приложу,иногда не видно ник бота в верхнем правом углу.
Или тут без вариантов нужен см 1.11?
Посмотреть вложение 64983
Именно по этой причине я указал необходимость 1.11

Что нужно поменять в коде чтоб работало в cs go?
Версия для csgo
C-подобный:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

#define PLAYER_INFO_LEN 344

enum
{
    PlayerInfo_Version = 0,             // int64
    PlayerInfo_XUID = 8,                // int64
    PlayerInfo_Name = 16,               // char[128]
    PlayerInfo_UserID = 144,            // int
    PlayerInfo_SteamID = 148,           // char[33]
    PlayerInfo_AccountID = 184,         // int
    PlayerInfo_FriendsName = 188,       // char[128]
    PlayerInfo_IsFakePlayer = 316,      // bool
    PlayerInfo_IsHLTV = 317,            // bool
    PlayerInfo_CustomFile1 = 320,       // int
    PlayerInfo_CustomFile2 = 324,       // int
    PlayerInfo_CustomFile3 = 328,       // int
    PlayerInfo_CustomFile4 = 332,       // int
    PlayerInfo_FilesDownloaded = 336    // char
};

int g_accountIDs[MAXPLAYERS+1] =
{
    0,
    25341944, // [U:1:25341944]
    33063657, // [U:1:33063657]
    86114025, // ...
    33139149,
    10019795,
    64136527,
    10014490,
    112064860,
    3312,
    3,
    136555,
    49797024,
    53988387,
    168894,
    29462734,
    20599720
};

public void OnClientSettingsChanged(int client)
{
    if (!IsFakeClient(client) || !g_accountIDs[client])
        return;

    int tableIdx = FindStringTable("userinfo");

    if (tableIdx == INVALID_STRING_TABLE)
        return;

    char userInfo[PLAYER_INFO_LEN];

    if (!GetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN))
        return;

    int accountId = g_accountIDs[client];
    int steamIdHigh = 16781313;
    
    userInfo[PlayerInfo_XUID] = steamIdHigh;
    userInfo[PlayerInfo_XUID + 1] = steamIdHigh >> 8;
    userInfo[PlayerInfo_XUID + 2] = steamIdHigh >> 16;
    userInfo[PlayerInfo_XUID + 3] = steamIdHigh >> 24;
    
    userInfo[PlayerInfo_XUID + 7] = accountId;
    userInfo[PlayerInfo_XUID + 6] = accountId >> 8;
    userInfo[PlayerInfo_XUID + 5] = accountId >> 16;
    userInfo[PlayerInfo_XUID + 4] = accountId >> 24;
    
    Format(userInfo[PlayerInfo_SteamID], 32, "STEAM_1:%d:%d", accountId & 1, accountId >>> 1);
    
    userInfo[PlayerInfo_AccountID] = accountId;
    userInfo[PlayerInfo_AccountID + 1] = accountId >> 8;
    userInfo[PlayerInfo_AccountID + 2] = accountId >> 16;
    userInfo[PlayerInfo_AccountID + 3] = accountId >> 24;
    
    userInfo[PlayerInfo_IsFakePlayer] = 0;
    
    bool lockTable = LockStringTables(false);
    SetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN);
    LockStringTables(lockTable);
}
 

Limbo

Участник
Сообщения
184
Реакции
34
Именно по этой причине я указал необходимость 1.11


Версия для csgo
C-подобный:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

#define PLAYER_INFO_LEN 344

enum
{
    PlayerInfo_Version = 0,             // int64
    PlayerInfo_XUID = 8,                // int64
    PlayerInfo_Name = 16,               // char[128]
    PlayerInfo_UserID = 144,            // int
    PlayerInfo_SteamID = 148,           // char[33]
    PlayerInfo_AccountID = 184,         // int
    PlayerInfo_FriendsName = 188,       // char[128]
    PlayerInfo_IsFakePlayer = 316,      // bool
    PlayerInfo_IsHLTV = 317,            // bool
    PlayerInfo_CustomFile1 = 320,       // int
    PlayerInfo_CustomFile2 = 324,       // int
    PlayerInfo_CustomFile3 = 328,       // int
    PlayerInfo_CustomFile4 = 332,       // int
    PlayerInfo_FilesDownloaded = 336    // char
};

int g_accountIDs[MAXPLAYERS+1] =
{
    0,
    25341944, // [U:1:25341944]
    33063657, // [U:1:33063657]
    86114025, // ...
    33139149,
    10019795,
    64136527,
    10014490,
    112064860,
    3312,
    3,
    136555,
    49797024,
    53988387,
    168894,
    29462734,
    20599720
};

public void OnClientSettingsChanged(int client)
{
    if (!IsFakeClient(client) || !g_accountIDs[client])
        return;

    int tableIdx = FindStringTable("userinfo");

    if (tableIdx == INVALID_STRING_TABLE)
        return;

    char userInfo[PLAYER_INFO_LEN];

    if (!GetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN))
        return;

    int accountId = g_accountIDs[client];
    int steamIdHigh = 16781313;
   
    userInfo[PlayerInfo_XUID] = steamIdHigh;
    userInfo[PlayerInfo_XUID + 1] = steamIdHigh >> 8;
    userInfo[PlayerInfo_XUID + 2] = steamIdHigh >> 16;
    userInfo[PlayerInfo_XUID + 3] = steamIdHigh >> 24;
   
    userInfo[PlayerInfo_XUID + 7] = accountId;
    userInfo[PlayerInfo_XUID + 6] = accountId >> 8;
    userInfo[PlayerInfo_XUID + 5] = accountId >> 16;
    userInfo[PlayerInfo_XUID + 4] = accountId >> 24;
   
    Format(userInfo[PlayerInfo_SteamID], 32, "STEAM_1:%d:%d", accountId & 1, accountId >>> 1);
   
    userInfo[PlayerInfo_AccountID] = accountId;
    userInfo[PlayerInfo_AccountID + 1] = accountId >> 8;
    userInfo[PlayerInfo_AccountID + 2] = accountId >> 16;
    userInfo[PlayerInfo_AccountID + 3] = accountId >> 24;
   
    userInfo[PlayerInfo_IsFakePlayer] = 0;
   
    bool lockTable = LockStringTables(false);
    SetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN);
    LockStringTables(lockTable);
}

Все хорошо работает на cs go, но можно как то имя сделать чтоб с профиля показывалось или нужно только sm 1.11 ставить?
 

Вложения

  • Безымянный123.jpg
    Безымянный123.jpg
    15.9 КБ · Просмотры: 217

Boywlater

Участник
Сообщения
132
Реакции
32
Версия для csgo
C-подобный:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

#define PLAYER_INFO_LEN 344

enum
{
    PlayerInfo_Version = 0,             // int64
    PlayerInfo_XUID = 8,                // int64
    PlayerInfo_Name = 16,               // char[128]
    PlayerInfo_UserID = 144,            // int
    PlayerInfo_SteamID = 148,           // char[33]
    PlayerInfo_AccountID = 184,         // int
    PlayerInfo_FriendsName = 188,       // char[128]
    PlayerInfo_IsFakePlayer = 316,      // bool
    PlayerInfo_IsHLTV = 317,            // bool
    PlayerInfo_CustomFile1 = 320,       // int
    PlayerInfo_CustomFile2 = 324,       // int
    PlayerInfo_CustomFile3 = 328,       // int
    PlayerInfo_CustomFile4 = 332,       // int
    PlayerInfo_FilesDownloaded = 336    // char
};

int g_accountIDs[MAXPLAYERS+1] =
{
    0,
    25341944, // [U:1:25341944]
    33063657, // [U:1:33063657]
    86114025, // ...
    33139149,
    10019795,
    64136527,
    10014490,
    112064860,
    3312,
    3,
    136555,
    49797024,
    53988387,
    168894,
    29462734,
    20599720
};

public void OnClientSettingsChanged(int client)
{
    if (!IsFakeClient(client) || !g_accountIDs[client])
        return;

    int tableIdx = FindStringTable("userinfo");

    if (tableIdx == INVALID_STRING_TABLE)
        return;

    char userInfo[PLAYER_INFO_LEN];

    if (!GetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN))
        return;

    int accountId = g_accountIDs[client];
    int steamIdHigh = 16781313;
   
    userInfo[PlayerInfo_XUID] = steamIdHigh;
    userInfo[PlayerInfo_XUID + 1] = steamIdHigh >> 8;
    userInfo[PlayerInfo_XUID + 2] = steamIdHigh >> 16;
    userInfo[PlayerInfo_XUID + 3] = steamIdHigh >> 24;
   
    userInfo[PlayerInfo_XUID + 7] = accountId;
    userInfo[PlayerInfo_XUID + 6] = accountId >> 8;
    userInfo[PlayerInfo_XUID + 5] = accountId >> 16;
    userInfo[PlayerInfo_XUID + 4] = accountId >> 24;
   
    Format(userInfo[PlayerInfo_SteamID], 32, "STEAM_1:%d:%d", accountId & 1, accountId >>> 1);
   
    userInfo[PlayerInfo_AccountID] = accountId;
    userInfo[PlayerInfo_AccountID + 1] = accountId >> 8;
    userInfo[PlayerInfo_AccountID + 2] = accountId >> 16;
    userInfo[PlayerInfo_AccountID + 3] = accountId >> 24;
   
    userInfo[PlayerInfo_IsFakePlayer] = 0;
   
    bool lockTable = LockStringTables(false);
    SetStringTableData(tableIdx, client - 1, userInfo, PLAYER_INFO_LEN);
    LockStringTables(lockTable);
}

Спасибо!
а можно чтобы steamid брался рандомно из списка (я добавил еще 50 steamid), а то всегда одни и те же иконки, как сделать чтобы он всегда разные Array брал?
 
Сверху Снизу