This site is a testing version, but all data is shared with the live forum.


Raised This Month: $ Target: $400
 0% 

admicmd


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
giumbalau
Member
Join Date: Jan 2021
Old 02-06-2021 , 16:15   admicmd
Reply With Quote #1

Any version of admincmd amxmod 1.9 color?
I don't know how to do it

PHP Code:
// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright (C) The AMX Mod X Development Team.
//
// This software is licensed under the GNU General Public License, version 3 or higher.
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
//     https://alliedmods.net/amxmodx-license

//
// Admin Commands Plugin
//

#include <amxmodx>
#include <amxmisc>

// This is not a dynamic array because it would be bad for 24/7 map servers.
#define OLD_CONNECTION_QUEUE 10

new g_pauseCon
new Float:g_pausAble
new bool:g_Paused
new bool:g_PauseAllowed false

new pausable;
new 
rcon_password;
new 
timelimit;

// Old connection queue
new g_Names[OLD_CONNECTION_QUEUE][MAX_NAME_LENGTH];
new 
g_SteamIDs[OLD_CONNECTION_QUEUE][32];
new 
g_IPs[OLD_CONNECTION_QUEUE][32];
new 
g_Access[OLD_CONNECTION_QUEUE];
new 
g_Tracker;
new 
g_Size;

new 
Trie:g_tXvarsFlags;

stock InsertInfo(id)
{
    
    
// Scan to see if this entry is the last entry in the list
    // If it is, then update the name and access
    // If it is not, then insert it again.

    
if (g_Size 0)
    {
        new 
ip[32]
        new 
auth[32];

        
get_user_authid(idauthcharsmax(auth));
        
get_user_ip(idipcharsmax(ip), 1/*no port*/);

        new 
last 0;
        
        if (
g_Size sizeof(g_SteamIDs))
        {
            
last g_Size 1;
        }
        else
        {
            
last g_Tracker 1;
            
            if (
last 0)
            {
                
last g_Size 1;
            }
        }
        
        if (
equal(authg_SteamIDs[last]) &&
            
equal(ipg_IPs[last])) // need to check ip too, or all the nosteams will while it doesn't work with their illegitimate server
        
{
            
get_user_name(idg_Names[last], charsmax(g_Names[]));
            
g_Access[last] = get_user_flags(id);
            
            return;
        }
    }
    
    
// Need to insert the entry
    
    
new target 0;  // the slot to save the info at

    // Queue is not yet full
    
if (g_Size sizeof(g_SteamIDs))
    {
        
target g_Size;
        
        ++
g_Size;
        
    }
    else
    {
        
target g_Tracker;
        
        ++
g_Tracker;
        
// If we reached the end of the array, then move to the front
        
if (g_Tracker == sizeof(g_SteamIDs))
        {
            
g_Tracker 0;
        }
    }
    
    
get_user_authid(idg_SteamIDs[target], charsmax(g_SteamIDs[]));
    
get_user_name(idg_Names[target], charsmax(g_Names[]));
    
get_user_ip(idg_IPs[target], charsmax(g_IPs[]), 1/*no port*/);
    
    
g_Access[target] = get_user_flags(id);

}
stock GetInfo(iname[], namesizeauth[], authsizeip[], ipsize, &access)
{
    if (
>= g_Size)
    {
        
abort(AMX_ERR_NATIVE"GetInfo: Out of bounds (%d:%d)"ig_Size);
    }
    
    new 
target = (g_Tracker i) % sizeof(g_SteamIDs);
    
    
copy(namenamesizeg_Names[target]);
    
copy(authauthsizeg_SteamIDs[target]);
    
copy(ip,   ipsize,   g_IPs[target]);
    
access g_Access[target];
    
}
public 
client_disconnected(id)
{
    if (!
is_user_bot(id))
    {
        
InsertInfo(id);
    }
}

public 
plugin_init()
{
    
register_plugin("Admin commands"AMXX_VERSION_STR"AMXX Dev Team")

    
register_dictionary("admincmd.txt")
    
register_dictionary("common.txt")
    
register_dictionary("adminhelp.txt")

    
register_concmd("amx_kick""cmdKick"ADMIN_KICK"[name or #userid] [reason]")
    
register_concmd("amx_slay""cmdSlay"ADMIN_SLAY"[name or #userid]")
    
register_concmd("amx_slap""cmdSlap"ADMIN_SLAY"[name or #userid] [power]")
    
register_concmd("amx_leave""cmdLeave"ADMIN_KICK"[tag] [tag] [tag] [tag]")
    
register_concmd("amx_pause""cmdPause"ADMIN_CVAR"- pause or unpause the game")
    
register_concmd("amx_cvar""cmdCvar"ADMIN_CVAR"[cvar] [value]")
    
register_concmd("amx_xvar_float""cmdXvar"ADMIN_CVAR"[xvar] [value]")
    
register_concmd("amx_xvar_int""cmdXvar"ADMIN_CVAR"[xvar] [value]")
    
register_concmd("amx_plugins""cmdPlugins"ADMIN_ADMIN)
    
register_concmd("amx_modules""cmdModules"ADMIN_ADMIN)
    
register_concmd("amx_map""cmdMap"ADMIN_MAP"[mapname]")
    
register_concmd("amx_extendmap""cmdExtendMap"ADMIN_MAP"[number of minutes] - extend map")
    
register_concmd("amx_cfg""cmdCfg"ADMIN_CFG"[filename]")
    
register_concmd("amx_nick""cmdNick"ADMIN_SLAY"[name or #userid] [new nick]")
    
register_concmd("amx_last""cmdLast"ADMIN_BAN"- list the last few disconnected clients info");
    
register_clcmd("amx_rcon""cmdRcon"ADMIN_RCON"[command line]")
    
register_clcmd("amx_showrcon""cmdShowRcon"ADMIN_RCON"[command line]")
    
register_clcmd("pauseAck""cmdLBack")

    
rcon_password=get_cvar_pointer("rcon_password");
    
pausable=get_cvar_pointer("pausable");
    
timelimit=get_cvar_pointer"mp_timelimit" );


    new 
flags get_pcvar_flags(rcon_password);

    if (!(
flags FCVAR_PROTECTED))
    {
        
set_pcvar_flags(rcon_passwordflags FCVAR_PROTECTED);
    }
}

public 
cmdKick(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED

    
new arg[32]
    
read_argv(1argcharsmax(arg))
    new 
player cmd_target(idargCMDTARGET_OBEY_IMMUNITY CMDTARGET_ALLOW_SELF)
    
    if (!
player)
        return 
PLUGIN_HANDLED
    
    
new authid[32], authid2[32], name2[MAX_NAME_LENGTH], name[MAX_NAME_LENGTH], userid2reason[32]
    
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_authid(playerauthid2charsmax(authid2))
    
get_user_name(playername2charsmax(name2))
    
get_user_name(idnamecharsmax(name))
    
userid2 get_user_userid(player)
    
read_argv(2reasoncharsmax(reason))
    
remove_quotes(reason)
    
    
log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^" (reason ^"%s^")"nameget_user_userid(id), authidname2userid2authid2reason)

    
show_activity_key("ADMIN_KICK_1""ADMIN_KICK_2"namename2);

    if (
is_user_bot(player))
        
server_cmd("kick #%d"userid2)
    else
    {
        if (
reason[0])
            
server_cmd("kick #%d ^"%s^""userid2reason)
        else
            
server_cmd("kick #%d"userid2)
    }
    
    
console_print(id"[AMXX] Client ^"%s^" kicked"name2)
    
    return 
PLUGIN_HANDLED
}

isCommandArgSafe(const arg[])
{
    return 
contain(arg";") == -&& contain(arg"^n") == -1;
}

public 
cmdSlay(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new arg[32]
    
    
read_argv(1argcharsmax(arg))
    
    new 
player cmd_target(idargCMDTARGET_OBEY_IMMUNITY CMDTARGET_ALLOW_SELF CMDTARGET_ONLY_ALIVE)
    
    if (!
player)
        return 
PLUGIN_HANDLED
    
    user_kill
(player)
    
    new 
authid[32], name2[MAX_NAME_LENGTH], authid2[32], name[MAX_NAME_LENGTH]
    
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
get_user_authid(playerauthid2charsmax(authid2))
    
get_user_name(playername2charsmax(name2))
    
    
log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^""nameget_user_userid(id), authidname2get_user_userid(player), authid2)

    
show_activity_key("ADMIN_SLAY_1""ADMIN_SLAY_2"namename2);

    
console_print(id"[AMXX] %L"id"CLIENT_SLAYED"name2)
    
    return 
PLUGIN_HANDLED
}

public 
cmdSlap(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED

    
new arg[32]
    
    
read_argv(1argcharsmax(arg))
    new 
player cmd_target(idargCMDTARGET_OBEY_IMMUNITY CMDTARGET_ALLOW_SELF CMDTARGET_ONLY_ALIVE)
    
    if (!
player)
        return 
PLUGIN_HANDLED

    
new spower[32], authid[32], name2[MAX_NAME_LENGTH], authid2[32], name[MAX_NAME_LENGTH]
    
    
read_argv(2spowercharsmax(spower))
    
    new 
damage clampstr_to_num(spower), 0)
    
    
user_slap(playerdamage)
    
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
get_user_authid(playerauthid2charsmax(authid2))
    
get_user_name(playername2charsmax(name2))
    
    
log_amx("Cmd: ^"%s<%d><%s><>^" slap with %d damage ^"%s<%d><%s><>^""nameget_user_userid(id), authiddamagename2get_user_userid(player), authid2)

    
show_activity_key("ADMIN_SLAP_1""ADMIN_SLAP_2"namename2damage);

    
console_print(id"[AMXX] %L"id"CLIENT_SLAPED"name2damage)
    
    return 
PLUGIN_HANDLED
}

public 
chMap(map[])
{
    
engine_changelevel(map);
}

public 
cmdMap(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED

    
new arg[32]
    new 
arglen read_argv(1argcharsmax(arg))
    
    if (!
is_map_valid(arg) || contain(arg"..") != -1)
    {
        
console_print(id"[AMXX] %L"id"MAP_NOT_FOUND")
        return 
PLUGIN_HANDLED
    
}

    new 
authid[32], name[MAX_NAME_LENGTH]
    
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
    
show_activity_key("ADMIN_MAP_1""ADMIN_MAP_2"namearg);
    
    
log_amx("Cmd: ^"%s<%d><%s><>^" changelevel ^"%s^""nameget_user_userid(id), authidarg)
    
    new 
_modName[10]
    
get_modname(_modNamecharsmax(_modName))
    
    if (!
equal(_modName"zp"))
    {
        
message_begin(MSG_ALLSVC_INTERMISSION)
        
message_end()
    }
    
    
set_task(2.0"chMap"0argarglen 1)
    
    return 
PLUGIN_HANDLED
}

public 
cmdExtendMap(idlevelcid)
{
    if(!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new arg[32]
    
read_argv(1argcharsmax(arg))
    new 
mns str_to_num(arg)
    
    if(
mns <= 0)
        return 
PLUGIN_HANDLED
    
    
new mapname[32]
    
get_mapname(mapnamecharsmax(mapname))
    
set_pcvar_numtimelimit get_pcvar_numtimelimit ) + mns)
    
    new 
authid[32], name[MAX_NAME_LENGTH]
    
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
    
show_activity_key("ADMIN_EXTEND_1""ADMIN_EXTEND_2"namemns)
    
    
log_amx("ExtendMap: ^"%s<%d><%s><>^" extended map ^"%s^" for %d minutes."nameget_user_userid(id), authidmapnamemns)
    
console_print(id"%L"id"MAP_EXTENDED"mapnamemns)
    
    return 
PLUGIN_HANDLED
}

stock bool:onlyRcon(const name[])
{
    new 
ptr=get_cvar_pointer(name);
    if (
ptr && get_pcvar_flags(ptr) & FCVAR_PROTECTED)
    {
        return 
true;
    }
    return 
false;
}

public 
cmdCvar(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new arg[32], arg2[64]
    
    
read_argv(1argcharsmax(arg))
    
read_argv(2arg2charsmax(arg2))
    
    new 
pointer;
    
    if (
equal(arg"add") && (get_user_flags(id) & ADMIN_RCON))
    {
        if ((
pointer=get_cvar_pointer(arg2))!=0)
        {
            new 
flags=get_pcvar_flags(pointer);
            
            if (!(
flags FCVAR_PROTECTED))
            {
                
set_pcvar_flags(pointer,flags FCVAR_PROTECTED);
            }
        }
        return 
PLUGIN_HANDLED
    
}
    
    
trim(arg);
    
    if ((
pointer=get_cvar_pointer(arg))==0)
    {
        
console_print(id"[AMXX] %L"id"UNKNOWN_CVAR"arg)
        return 
PLUGIN_HANDLED
    
}
    
    if (
onlyRcon(arg) && !(get_user_flags(id) & ADMIN_RCON))
    {
        
// Exception for the new onlyRcon rules:
        //   sv_password is allowed to be modified by ADMIN_PASSWORD
        
if (!(equali(arg,"sv_password") && (get_user_flags(id) & ADMIN_PASSWORD)))
        {
            
console_print(id"[AMXX] %L"id"CVAR_NO_ACC")
            return 
PLUGIN_HANDLED
        
}
    }
    
    if (
read_argc() < 3)
    {
        
get_pcvar_string(pointerarg2charsmax(arg2))
        
console_print(id"[AMXX] %L"id"CVAR_IS"argarg2)
        return 
PLUGIN_HANDLED
    
}

    if (
equali(arg"servercfgfile") || equali(arg"lservercfgfile") || equali(arg"mapchangecfgfile"))
    {
        new 
pos contain(arg2";")
        if (
pos != -1)
        {
            
arg2[pos] = '^0'
        
}
        else if ((
pos contain(arg2"^n")) != -1)
        {
            
arg2[pos] = '^0'
        
}
    }

    new 
authid[32], name[MAX_NAME_LENGTH]
    
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
    
log_amx("Cmd: ^"%s<%d><%s><>^" set cvar (name ^"%s^") (value ^"%s^")"nameget_user_userid(id), authidargarg2)
    
set_pcvar_string(pointerarg2)
    
    
    
// Display the message to all clients

    
new cvar_val[64];
    new 
players[MAX_PLAYERS], pnumplr
    get_players
(playerspnum"ch")
    for (new 
ii<pnumi++)
    {
        
plr players[i]
        if (
get_pcvar_flags(pointer) & FCVAR_PROTECTED || equali(arg"rcon_password"))
        {
            
formatex(cvar_valcharsmax(cvar_val), "*** %L ***"plr"PROTECTED");
        }
        else
        {
            
copy(cvar_valcharsmax(cvar_val), arg2);
        }
        
show_activity_id(plridname"%L"plr"SET_CVAR_TO"""argcvar_val);
    }

    
console_print(id"[AMXX] %L"id"CVAR_CHANGED"argarg2)
    
    return 
PLUGIN_HANDLED
}

public 
cmdXvar(idlevelcid)
{
    if( !
cmd_access(idlevelcid2) )
    {
        return 
PLUGIN_HANDLED;
    }

    new 
cmd[15], arg1[32], arg2[32];
    
    
read_argv(0cmdcharsmax(cmd));
    
read_argv(1arg1charsmax(arg1));
    
trim(arg1);
    if( 
read_argc() > )
    {
        
read_argv(2arg2charsmax(arg2));
        
trim(arg2);

        if( 
equali(arg1"add") )
        {
            if( 
get_user_flags(id) & ADMIN_RCON && xvar_exists(arg2) )
            {
                if( !
g_tXvarsFlags )
                {
                    
g_tXvarsFlags TrieCreate();
                }
                
TrieSetCell(g_tXvarsFlagsarg21);
            }
            return 
PLUGIN_HANDLED;
        }
    }

    new 
bFloat equali(cmd"amx_xvar_float");

    new 
xvar get_xvar_idarg1 );

    if( 
xvar == -)
    {
        
console_print(id"[AMXX] %L"id"UNKNOWN_XVAR"arg1)
        return 
PLUGIN_HANDLED
    
}

    new 
any:value;

    if( !
arg2[0] ) // get value
    
{
        
value get_xvar_num(xvar);
        if( 
bFloat )
        {
            
float_to_str(valuearg2charsmax(arg2));
        }
        else
        {
            
num_to_str(valuearg2charsmax(arg2));
        }
        
console_print(id"[AMXX] %L"id"XVAR_IS"arg1arg2);
        return 
PLUGIN_HANDLED;
    }

    
// set value
    
if( g_tXvarsFlags && TrieKeyExists(g_tXvarsFlagsarg1) && ~get_user_flags(id) & ADMIN_RCON )
    {
        
console_print(id"[AMXX] %L"id"XVAR_NO_ACC");
        return 
PLUGIN_HANDLED;
    }

    new 
endPos;
    if( 
bFloat )
    {
        
value strtof(arg2endPos);
        if( !
endPos )
        {
            return 
PLUGIN_HANDLED;
        }
    }
    else
    {
        
value strtol(arg2endPos);
        if( !
endPos )
        {
            return 
PLUGIN_HANDLED;
        }
    }

    
set_xvar_num(xvarvalue);

    
// convert back value to string so admin can know value has been set correctly
    
if( bFloat )
    {
        
float_to_str(valuearg2charsmax(arg2));
    }
    else
    {
        
num_to_str(valuearg2charsmax(arg2));
    }

    new 
authid[32], name[MAX_NAME_LENGTH];
    
    
get_user_authid(idauthidcharsmax(authid));
    
get_user_name(idnamecharsmax(name));
    
    
log_amx("Cmd: ^"%s<%d><%s><>^" set xvar (name ^"%s^") (value ^"%s^")"nameget_user_userid(id), authidarg1arg2);
    
    
// Display the message to all clients
    
new players[MAX_PLAYERS], pnumplr;
    
get_players(playerspnum"ch");
    for (new 
ii<pnumi++)
    {
        
plr players[i];
        
show_activity_id(plridname"%L"plr"SET_XVAR_TO"""arg1arg2);
    }
    
    
console_print(id"[AMXX] %L"id"XVAR_CHANGED"arg1arg2);

    return 
PLUGIN_HANDLED;
}

public 
cmdPlugins(idlevelcid)
{
    if (!
cmd_access(idlevelcid1))
        return 
PLUGIN_HANDLED
        
    
if (id==0// If server executes redirect this to "amxx plugins" for more in depth output
    
{
        
server_cmd("amxx plugins");
        
server_exec();
        return 
PLUGIN_HANDLED;
    }

    new 
name[MAX_NAME_LENGTH], version[32], author[32], filename[32], status[32]
    new 
lName[32], lVersion[32], lAuthor[32], lFile[32], lStatus[32]

    
format(lNamecharsmax(lName), "%L"id"NAME")
    
format(lVersioncharsmax(lVersion), "%L"id"VERSION")
    
format(lAuthorcharsmax(lAuthor), "%L"id"AUTHOR")
    
format(lFilecharsmax(lFile), "%L"id"FILE")
    
format(lStatuscharsmax(lStatus), "%L"id"STATUS")

    new 
StartPLID=0;
    new 
EndPLID;

    new 
Temp[96]

    new 
num get_pluginsnum()
    
    if (
read_argc() > 1)
    {
        
read_argv(1,Temp,charsmax(Temp));
        
StartPLID=str_to_num(Temp)-1// zero-based
    
}

    
EndPLID=min(StartPLID 10num);
    
    new 
running 0
    
    console_print
(id"----- %L -----"id"LOADED_PLUGINS")
    
console_print(id"%-18.17s %-11.10s %-17.16s %-16.15s %-9.8s"lNamelVersionlAuthorlFilelStatus)

    new 
i=StartPLID;
    while (
<EndPLID)
    {
        
get_plugin(i++, filenamecharsmax(filename), namecharsmax(name), versioncharsmax(version), authorcharsmax(author), statuscharsmax(status))
        
console_print(id"%-18.17s %-11.10s %-17.16s %-16.15s %-9.8s"nameversionauthorfilenamestatus)
        
        if (
status[0]=='d' || status[0]=='r'// "debug" or "running"
            
running++
    }
    
console_print(id"%L"id"PLUGINS_RUN"EndPLID-StartPLIDrunning)
    
console_print(id"----- %L -----",id,"HELP_ENTRIES",StartPLID 1,EndPLID,num);
    
    if (
EndPLID num)
    {
        
formatex(Temp,charsmax(Temp),"----- %L -----",id,"HELP_USE_MORE""amx_help"EndPLID 1);
        
replace_all(Temp,charsmax(Temp),"amx_help","amx_plugins");
        
console_print(id,"%s",Temp);
    }
    else
    {
        
formatex(Temp,charsmax(Temp),"----- %L -----",id,"HELP_USE_BEGIN""amx_help");
        
replace_all(Temp,charsmax(Temp),"amx_help","amx_plugins");
        
console_print(id,"%s",Temp);
    }

    return 
PLUGIN_HANDLED
}

public 
cmdModules(idlevelcid)
{
    if (!
cmd_access(idlevelcid1))
        return 
PLUGIN_HANDLED

    
new name[32], version[32], author[32], statussStatus[16]
    new 
lName[32], lVersion[32], lAuthor[32], lStatus[32];

    
format(lNamecharsmax(lName), "%L"id"NAME")
    
format(lVersioncharsmax(lVersion), "%L"id"VERSION")
    
format(lAuthorcharsmax(lAuthor), "%L"id"AUTHOR")
    
format(lStatuscharsmax(lStatus), "%L"id"STATUS")

    new 
num get_modulesnum()
    
    
console_print(id"%L:"id"LOADED_MODULES")
    
console_print(id"%-23.22s %-11.10s %-20.19s %-11.10s"lNamelVersionlAuthorlStatus)
    
    for (new 
0numi++)
    {
        
get_module(inamecharsmax(name), authorcharsmax(author), versioncharsmax(version), status)
        
        switch (
status)
        {
            case 
module_loadedcopy(sStatuscharsmax(sStatus), "running")
            default: 
            {
                
copy(sStatuscharsmax(sStatus), "bad load");
                
copy(namecharsmax(name), "unknown");
                
copy(authorcharsmax(author), "unknown");
                
copy(versioncharsmax(version), "unknown");
            }
        }
        
        
console_print(id"%-23.22s %-11.10s %-20.19s %-11.10s"nameversionauthorsStatus)
    }
    
console_print(id"%L"id"NUM_MODULES"num)

    return 
PLUGIN_HANDLED
}

public 
cmdCfg(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new arg[128]
    
read_argv(1argcharsmax(arg))
    
    if (!
file_exists(arg))
    {
        
console_print(id"[AMXX] %L"id"FILE_NOT_FOUND"arg)
        return 
PLUGIN_HANDLED
    
}
    
    new 
authid[32], name[MAX_NAME_LENGTH]
    
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
    
log_amx("Cmd: ^"%s<%d><%s><>^" execute cfg (file ^"%s^")"nameget_user_userid(id), authidarg)
    
    
console_print(id"[AMXX] Executing file ^"%s^""arg)
    
server_cmd("exec ^"%s^""arg)

    
show_activity_key("ADMIN_CONF_1""ADMIN_CONF_2"namearg);

    return 
PLUGIN_HANDLED
}

public 
cmdLBack()
{
    if (!
g_PauseAllowed)
        return 
PLUGIN_CONTINUE    

    
new paused[25]
    
    
format(paused24"%L"g_pauseCong_Paused "UNPAUSED" "PAUSED")
    
set_pcvar_float(pausableg_pausAble)
    
console_print(g_pauseCon"[AMXX] Server %s"paused)
    
g_PauseAllowed false
    
    
if (g_Paused)
        
g_Paused false
    
else 
        
g_Paused true
    
    
return PLUGIN_HANDLED
}

public 
cmdPause(idlevelcid)
{
    if (!
cmd_access(idlevelcid1))
        return 
PLUGIN_HANDLED 
    
    
new authid[32], name[MAX_NAME_LENGTH], slayer id
    
    get_user_authid
(idauthidcharsmax(authid)) 
    
get_user_name(idnamecharsmax(name)) 
    if (
pausable!=0)
    {
        
g_pausAble get_pcvar_float(pausable)
    }
    
    if (!
slayer)
        
slayer find_player("h"
    
    if (!
slayer)
    { 
        
console_print(id"[AMXX] %L"id"UNABLE_PAUSE"
        return 
PLUGIN_HANDLED
    
}

    
set_pcvar_float(pausable1.0)
    
g_PauseAllowed true
    client_cmd
(slayer"pause;pauseAck")
    
    
log_amx("Cmd: ^"%s<%d><%s><>^" %s server"nameget_user_userid(id), authidg_Paused "unpause" "pause")
    
    
console_print(id"[AMXX] %L"idg_Paused "UNPAUSING" "PAUSING")

    
// Display the message to all clients

    
new players[MAX_PLAYERS], pnum
    get_players
(playerspnum"ch")
    for (new 
ii<pnumi++)
    {
        
show_activity_id(players[i], idname"%L server"ig_Paused "UNPAUSE" "PAUSE");
    }

    
g_pauseCon id
    
    
return PLUGIN_HANDLED


public 
cmdShowRcon(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
        
    
new password[64]
    
    
get_pcvar_string(rcon_passwordpasswordcharsmax(password))
    
    if (!
password[0])
    {
        
cmdRcon(idlevelcid)
    } 
    else 
    {
        new 
args[128]
        
        
read_args(argscharsmax(args))
        
client_cmd(id"rcon_password %s"password)
        
client_cmd(id"rcon %s"args)
    }
    
    return 
PLUGIN_HANDLED
}

public 
cmdRcon(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new arg[128], authid[32], name[MAX_NAME_LENGTH]
    
    
read_args(argcharsmax(arg))
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
    
log_amx("Cmd: ^"%s<%d><%s><>^" server console (cmdline ^"%s^")"nameget_user_userid(id), authidarg)
    
    
console_print(id"[AMXX] %L"id"COM_SENT_SERVER"arg)
    
server_cmd("%s"arg)
    
    return 
PLUGIN_HANDLED
}

public 
cmdWho(idlevelcid)
{
    if (!
cmd_access(idlevelcid1))
        return 
PLUGIN_HANDLED

    
new players[MAX_PLAYERS], inumcl_on_server[64], authid[32], name[MAX_NAME_LENGTH], flagssflags[32], plr
    
new lImm[16], lRes[16], lAccess[16], lYes[16], lNo[16]
    
    
formatex(lImmcharsmax(lImm), "%L"id"IMMU")
    
formatex(lRescharsmax(lRes), "%L"id"RESERV")
    
formatex(lAccesscharsmax(lAccess), "%L"id"ACCESS")
    
formatex(lYescharsmax(lYes), "%L"id"YES")
    
formatex(lNocharsmax(lNo), "%L"id"NO")
    
    
get_players(playersinum)
    
format(cl_on_servercharsmax(cl_on_server), "%L"id"CLIENTS_ON_SERVER")
    
console_print(id"^n%s:^n #  %-16.15s %-20s %-8s %-4.3s %-4.3s %s"cl_on_server"nick""authid""userid"lImmlReslAccess)
    
    for (new 
0inum; ++a)
    {
        
plr players[a]
        
get_user_authid(plrauthidcharsmax(authid))
        
get_user_name(plrnamecharsmax(name))
        
flags get_user_flags(plr)
        
get_flags(flagssflagscharsmax(sflags))
        
console_print(id"%2d  %-16.15s %-20s %-8d %-6.5s %-6.5s %s"plrnameauthid
        
get_user_userid(plr), (flags&ADMIN_IMMUNITY) ? lYes lNo, (flags&ADMIN_RESERVATION) ? lYes lNosflags)
    }
    
    
console_print(id"%L"id"TOTAL_NUM"inum)
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
log_amx("Cmd: ^"%s<%d><%s><>^" ask for players list"nameget_user_userid(id), authid
    
    return 
PLUGIN_HANDLED
}

hasTag(name[], tags[4][32], tagsNum)
{
    for (new 
0tagsNum; ++a)
        if (
contain(nametags[a]) != -1)
            return 
a
    
return -1
}

public 
cmdLeave(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new argnum read_argc()
    new 
ltags[4][32]
    new 
ltagsnum 0
    
    
for (new 15; ++a)
    {
        if (
argnum)
            
read_argv(altags[ltagsnum++], charsmax(ltags[]))
        else
            
ltags[ltagsnum++][0] = 0
    
}
    
    new 
nick[MAX_NAME_LENGTH], irespnum MaxClientscount 0lReason[128]
    
    for (new 
1<= pnum; ++b)
    {
        if (!
is_user_connected(b) && !is_user_connecting(b)) continue

        
get_user_name(bnickcharsmax(nick))
        
ires hasTag(nickltagsltagsnum)
        
        if (
ires != -1)
        {
            
console_print(id"[AMXX] %L"id"SKIP_MATCH"nickltags[ires])
            continue
        }
        
        if (
get_user_flags(b) & ADMIN_IMMUNITY)
        {
            
console_print(id"[AMXX] %L"id"SKIP_IMM"nick)
            continue
        }
        
        
console_print(id"[AMXX] %L"id"KICK_PL"nick)
        
        if (
is_user_bot(b))
            
server_cmd("kick #%d"get_user_userid(b))
        else
        {
            
formatex(lReasoncharsmax(lReason), "%L"b"YOU_DROPPED")
            
server_cmd("kick #%d ^"%s^""get_user_userid(b), lReason)
        }
        
count++
    }
    
    
console_print(id"[AMXX] %L"id"KICKED_CLIENTS"count)
    
    new 
authid[32], name[MAX_NAME_LENGTH]

    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
log_amx("Kick: ^"%s<%d><%s><>^" leave some group (tag1 ^"%s^") (tag2 ^"%s^") (tag3 ^"%s^") (tag4 ^"%s^")"nameget_user_userid(id), authidltags[0], ltags[1], ltags[2], ltags[3])

    
show_activity_key("ADMIN_LEAVE_1""ADMIN_LEAVE_2"nameltags[0], ltags[1], ltags[2], ltags[3]);

    return 
PLUGIN_HANDLED
}

public 
cmdNick(idlevelcid)
{
    if (!
cmd_access(idlevelcid3))
        return 
PLUGIN_HANDLED

    
new arg1[32], arg2[32], authid[32], name[32], authid2[32], name2[32]

    
read_argv(1arg1charsmax(arg1))
    
read_argv(2arg2charsmax(arg2))

    new 
player cmd_target(idarg1CMDTARGET_OBEY_IMMUNITY CMDTARGET_ALLOW_SELF)
    
    if (!
player)
        return 
PLUGIN_HANDLED

    get_user_authid
(idauthidcharsmax(authid))
    
get_user_name(idnamecharsmax(name))
    
get_user_authid(playerauthid2charsmax(authid2))
    
get_user_name(playername2charsmax(name2))

    
set_user_info(player"name"arg2)

    
log_amx("Cmd: ^"%s<%d><%s><>^" change nick to ^"%s^" ^"%s<%d><%s><>^""nameget_user_userid(id), authidarg2name2get_user_userid(player), authid2)

    
show_activity_key("ADMIN_NICK_1""ADMIN_NICK_2"namename2arg2);

    
console_print(id"[AMXX] %L"id"CHANGED_NICK"name2arg2)

    return 
PLUGIN_HANDLED
}

public 
cmdLast(idlevelcid)
{
    if (!
cmd_access(idlevelcid1))
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
name[MAX_NAME_LENGTH];
    new 
authid[32];
    new 
ip[32];
    new 
flags[32];
    new 
access;
    
    
    
// This alignment is a bit weird (it should grow if the name is larger)
    // but otherwise for the more common shorter name, it'll wrap in server console
    // Steam client display is all skewed anyway because of the non fixed font.
    
console_print(id"%19s %20s %15s %s""name""authid""ip""access");
    
    for (new 
0g_Sizei++)
    {
        
GetInfo(inamecharsmax(name), authidcharsmax(authid), ipcharsmax(ip), access);
        
        
get_flags(accessflagscharsmax(flags));
        
        
console_print(id"%19s %20s %15s %s"nameauthidipflags);
    }
    
    
console_print(id"%d old connections saved."g_Size);
    
    return 
PLUGIN_HANDLED;
}

public 
plugin_end()
{
    
TrieDestroy(g_tXvarsFlags);

giumbalau is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 02-06-2021 , 17:43   Re: admicmd
Reply With Quote #2

Add #include <cromchat> and colors in the .txt files.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
giumbalau
Member
Join Date: Jan 2021
Old 02-07-2021 , 18:41   Re: admicmd
Reply With Quote #3

Quote:
Originally Posted by OciXCrom View Post
Add #include <cromchat> and colors in the .txt files.
Thanks
giumbalau is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 13:43.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode