Code:
#include <amxmodx>
#define PLUGIN "Steam players"
#define VERSION "1.0"
#define AUTHOR "Alka"
new showsteamplayers;
public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR );
register_clcmd( "say /steamppl", "Cmd_Steamppl" );
showsteamplayers = register_cvar( "amx_showsteamplayers", "1" );
}
public Cmd_Steamppl( id )
{
if( !get_pcvar_num( showsteamplayers ) )
return PLUGIN_HANDLED;
new pid, iNum, count;
static iPlayers[32], userName[32], authid[12], lstUserName[192];
get_players( iPlayers, iNum, "a" );
for( new i = 0; i < iNum; i++ )
{
pid = iPlayers[i];
get_user_authid( pid, authid, 11 );
if( authid[8] == '1' || authid[8] == '0' ) // "STEAM_0:1" or "STEAM_0:0"
{
get_user_name( pid, userName, 31 );
// -- 'Myname' become 'Myname, ' or 'Myname.' if end.
format( userName, 31, "%s%s", userName, i < iNum - 1 ? ", " : "." );
// -- Concatenates string. Ie : 'Myname1, Myname2'
strcat( lstUserName, userName, 191 );
count++;
}
}
client_print( id, print_chat, "On server %s %d player%s with STEAM!", count == 1 ? "is" : "are", count, count == 1 ? "" : "s");
client_print( id, print_chat, "Full list: %s", lstUserName );
return PLUGIN_HANDLED;
}
Now as an improvement, it would be safe to check each username length to not be out of chat limits through multiple print_chat() if necessary.