#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Who"
#define VERSION "2.1"
#define AUTHOR "p_of_pw"
#pragma tabsize 0
#define CharsMax(%1) sizeof %1 - 1
#define time_shower 0.1
#define GROUPS_NAME 8
#define GROUPS_ACCESS 8
#define motd_msg "Server"
new GroupNames[GROUPS_NAME][] =
{
"Detinator",
"Owner",
"Co-Owner",
"Super-Moderator",
"Moderator",
"Helper",
"V.I.P",
"Slot"
}
new GroupFlags[GROUPS_ACCESS][] = {
"abcdefghijklmnopqrstu",
"abcdefghijkmnopqrstu",
"abcdefgijmnopqrstu",
"bcdefgimnopqrtu",
"bcdefgimnopqru",
"bcdefgimnopq",
"bcdeijmno",
"bi"
}
new GroupFlagsValue[GROUPS_NAME]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
for(new p_of_pw = 0 ; p_of_pw < GROUPS_NAME ; p_of_pw++)
GroupFlagsValue[p_of_pw] = read_flags(GroupFlags[p_of_pw])
register_clcmd("say", "cmdSay")
register_clcmd("say_team", "cmdSay")
}
public cmdSay(id)
{
new say[192]
read_args(say,192)
if(( containi(say, "who") != -1 || containi(say, "admin") != -1 || containi(say, "admins") != -1 || contain(say, "/who") != -1 || contain(say, "/admin") != -1 || contain(say, "/admins") != -1))
set_task(time_shower,"who_motd",id)
return PLUGIN_CONTINUE
}
public who_motd(id)
{
new sPlayers[32], iNum, iPlayer
new sName[32], sBuffer[1024]
new iLen
iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=#7b68ee><pre>")
get_players(sPlayers, iNum, "ch")
for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
{
iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><font color=^"red^">%s^n</font></center>", GroupNames[p_of_pw])
for(new b = 0; b < iNum ; b++)
{
iPlayer = sPlayers[b]
if( get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
{
get_user_name(iPlayer, sName, sizeof sName - 1)
iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center>%s^n</center>", sName)
}
}
}
show_motd(id, sBuffer, motd_msg)
return 0
}