Allied Modders en español

Versión completa: compilar admincmd.sma amxmodx-1.9.0
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
hola buenas intento compilar este sma pero no me deja AMX Mod X Studio

admincmd.sma
amxmodx-1.9.0-git5241

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "MAX_NAME_LENGTH" on line 31
Error: Invalid array size (negative or zero) on line 31
Warning: Indeterminate array size in "sizeof" expression (symbol "") on line 75
Warning: Indeterminate array size in "sizeof" expression (symbol "") on line 107
Error: Undefined symbol "ADMIN_BAN_TEMP" on line 144
Error: Undefined symbol "ADMIN_BAN_TEMP" on line 146
Error: Undefined symbol "MAX_NAME_LENGTH" on line 190
Error: Invalid expression, assumed zero on line 190
Error: Undefined symbol "name" on line 190
Error: Too many error messages on one line on line 190

Compilation aborted.
8 Errors.
Could not locate output file C:\Users\Usuario\Desktop\admincmd.amx (compile failed).


de que otra fomra podria compilarlo ? algun otra forma
Código PHP:
// 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;
new 
p_amx_tempban_maxtime;

// 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;

public 
Trie:g_tempBans
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_banip""cmdBanIP"ADMIN_BAN|ADMIN_BAN_TEMP"<name or #userid> <minutes> [reason]")
    
register_concmd("amx_addban""cmdAddBan"ADMIN_BAN"<^"authid^" or ip> <minutes> [reason]")
    
register_concmd("amx_unban""cmdUnban"ADMIN_BAN|ADMIN_BAN_TEMP"<^"authid^" or ip>")
    
register_concmd("amx_slay""cmdSlay"ADMIN_SLAY"<name or #userid>")
    
register_concmd("amx_slap""cmdSlap"ADMIN_SLAY"<name or #userid> [power]")
    
register_concmd("amx_pause""cmdPause"ADMIN_CVAR"- pause or unpause the game")
    
register_concmd("amx_who""cmdWho"ADMIN_ADMIN"- displays who is on server")
    
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("pauseAck""cmdLBack")

    
rcon_password=get_cvar_pointer("rcon_password");
    
pausable=get_cvar_pointer("pausable");
    
timelimit=get_cvar_pointer"mp_timelimit" );
    
p_amx_tempban_maxtime register_cvar("amx_tempban_maxtime""4320"FCVAR_PROTECTED);

    
g_tempBans TrieCreate();

    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
}

/**
 * ';' and '\n' are command delimiters. If a command arg contains these 2
 * it is not safe to be passed to server_cmd() as it may be trying to execute
 * a command.
 */
isCommandArgSafe(const arg[])
{
    return 
contain(arg";") == -&& contain(arg"\n") == -1;
}

public 
cmdUnban(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new arg[32], authid[32], name[MAX_NAME_LENGTH]
    
    
read_argv(1argcharsmax(arg))

    
get_user_authid(idauthidcharsmax(authid))

    if( !(
get_user_flags(id) & ( ADMIN_BAN ADMIN_RCON )) )
    {
        new 
storedAdminAuth[32]
        if( !
TrieGetString(g_tempBansargstoredAdminAuthcharsmax(storedAdminAuth)) || !equal(storedAdminAuthauthid) )
        {
            
console_print(id"%L"id"ADMIN_MUST_TEMPUNBAN");
            return 
PLUGIN_HANDLED;
        }
    }
    
    if (
contain(arg".") != -1)
    {
        
server_cmd("removeip ^"%s^";writeip"arg)
        
console_print(id"[AMXX] %L"id"IP_REMOVED"arg)
    } else {
        if(!
isCommandArgSafe(arg))
        {
            
console_print(id"%l""CL_NOT_FOUND");
            return 
PLUGIN_HANDLED;
        }

        
server_cmd("removeid %s;writeid"arg)
        
console_print(id"[AMXX] %L"id"AUTHID_REMOVED"arg)
    }

    
get_user_name(idnamecharsmax(name))

    
show_activity_key("ADMIN_UNBAN_1""ADMIN_UNBAN_2"namearg);

    
log_amx("Cmd: ^"%s<%d><%s><>^" unban ^"%s^""nameget_user_userid(id), authidarg)
    
    return 
PLUGIN_HANDLED
}

/* amx_addban is a special command now.
 * If a user with rcon uses it, it bans the user.  No questions asked.
 * If a user without rcon but with ADMIN_BAN uses it, it will scan the old
 * connection queue, and if it finds the info for a player in it, it will
 * check their old access.  If they have immunity, it will not ban.
 * If they do not have immunity, it will ban.  If the user is not found,
 * it will refuse to ban the target.
 */
 
public cmdAddBan(idlevelcid)
{
    if (!
cmd_access(idlevelcid3true)) // check for ADMIN_BAN access
    
{
        if (
get_user_flags(id) & level// Getting here means they didn't input enough args
        
{
            return 
PLUGIN_HANDLED;
        }
        if (!
cmd_access(idADMIN_RCONcid3)) // If somehow they have ADMIN_RCON without ADMIN_BAN, continue
        
{
            return 
PLUGIN_HANDLED;
        }
    }

    new 
arg[32], authid[32], name[MAX_NAME_LENGTH], minutes[32], reason[32]
    
    
read_argv(1argcharsmax(arg))
    
read_argv(2minutescharsmax(minutes))
    
read_argv(3reasoncharsmax(reason))
    
    
trim(arg);
    
    if (!(
get_user_flags(id) & ADMIN_RCON))
    {
        new 
bool:canban false;
        new 
bool:isip false;
        
// Limited access to this command
        
if (equali(arg"STEAM_ID_PENDING") ||
            
equali(arg"STEAM_ID_LAN") ||
            
equali(arg"HLTV") ||
            
equali(arg"4294967295") ||
            
equali(arg"VALVE_ID_LAN") ||
            
equali(arg"VALVE_ID_PENDING"))
        {
            
// Hopefully we never get here, so ML shouldn't be needed
            
console_print(id"Cannot ban %s"arg);
            return 
PLUGIN_HANDLED;
        }
        
        if (
contain(arg".") != -1)
        {
            
isip true;
        }
        
        
// Scan the disconnection queue
        
if (isip)
        {
            new 
IP[32];
            new 
Name[MAX_NAME_LENGTH];
            new 
dummy[1];
            new 
Access;
            for (new 
0g_Sizei++)
            {
                
GetInfo(iNamecharsmax(Name), dummy0IPcharsmax(IP), Access);
                
                if (
equal(IParg))
                {
                    if (
Access ADMIN_IMMUNITY)
                    {
                        
console_print(id"[AMXX] %s : %L"IPid"CLIENT_IMM"Name);
                        
                        return 
PLUGIN_HANDLED;
                    }
                    
// User did not have immunity
                    
canban true;
                }
            }
        }
        else
        {
            new 
Auth[32];
            new 
Name[MAX_NAME_LENGTH];
            new 
dummy[1];
            new 
Access;
            for (new 
0g_Sizei++)
            {
                
GetInfo(iNamecharsmax(Name), Authcharsmax(Auth), dummy0Access);
                
                if (
equal(Autharg))
                {
                    if (
Access ADMIN_IMMUNITY)
                    {
                        
console_print(id"[AMXX] %s : %L"Authid"CLIENT_IMM"Name);
                        
                        return 
PLUGIN_HANDLED;
                    }
                    
// User did not have immunity
                    
canban true;
                }
            }
        }
        
        if (!
canban)
        {
            
console_print(id"[AMXX] You may only ban recently disconnected clients.  Use ^"amx_last^" to view.");
            
            return 
PLUGIN_HANDLED;
        }
        
    }
    
    
// User has access to ban their target
    
if (contain(arg".") != -1)
    {
        
server_cmd("addip ^"%s^" ^"%s^";wait;writeip"minutesarg)
        
console_print(id"[AMXX] Ip ^"%s^" added to ban list"arg)
    } else {
        if(!
isCommandArgSafe(arg))
        {
            
console_print(id"%l""CL_NOT_FOUND");
            return 
PLUGIN_HANDLED;
        }

        
server_cmd("banid ^"%s^" %s;wait;writeid"minutesarg)
        
console_print(id"[AMXX] Authid ^"%s^" added to ban list"arg)
    }

    
get_user_name(idnamecharsmax(name))

    
show_activity_key("ADMIN_ADDBAN_1""ADMIN_ADDBAN_2"namearg);

    
get_user_authid(idauthidcharsmax(authid))
    
TrieSetString(g_tempBansargauthid)
    
log_amx("Cmd: ^"%s<%d><%s><>^" ban ^"%s^" (minutes ^"%s^") (reason ^"%s^")"nameget_user_userid(id), authidargminutesreason)

    return 
PLUGIN_HANDLED
}

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

    
new target[32], minutes[8], reason[64]
    
    
read_argv(1targetcharsmax(target))
    
read_argv(2minutescharsmax(minutes))
    
read_argv(3reasoncharsmax(reason))
    
    new 
player cmd_target(idtargetCMDTARGET_OBEY_IMMUNITY CMDTARGET_NO_BOTS CMDTARGET_ALLOW_SELF)
    
    if (!
player)
        return 
PLUGIN_HANDLED

    
new nNum str_to_num(minutes)
    new const 
tempBanMaxTime get_pcvar_num(p_amx_tempban_maxtime);
    if( 
nNum // since negative values result in permanent bans
    
{
        
nNum 0;
        
minutes "0";
    }
    if( !(
get_user_flags(id) & ( ADMIN_BAN ADMIN_RCON )) && (nNum <= || nNum tempBanMaxTime) )
    {
        
console_print(id"%L"id"ADMIN_MUST_TEMPBAN"tempBanMaxTime);
        return 
PLUGIN_HANDLED
    
}

    new 
authid[32], name2[MAX_NAME_LENGTH], authid2[32], name[MAX_NAME_LENGTH]
    new 
userid2 get_user_userid(player)

    
get_user_authid(playerauthid2charsmax(authid2))
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(playername2charsmax(name2))
    
get_user_name(idnamecharsmax(name))
    
    
log_amx("Ban: ^"%s<%d><%s><>^" Baneado ^"%s<%d><%s><>^" (minutes ^"%s^") (reason ^"%s^")"nameget_user_userid(id), authidname2userid2authid2minutesreason)

    
TrieSetString(g_tempBansauthid2authid); // store all bans in case a permanent ban would override a temporary one.
    
    
new temp[64], banned[16]
    if (
nNum)
        
formatex(tempcharsmax(temp), "%L"player"FOR_MIN"minutes)
    else
        
formatex(tempcharsmax(temp), "%L"player"PERM")

    
formatex(bannedcharsmax(banned), "%L"player"BANNED")

    if (
reason[0])
        
server_cmd("kick #%d ^"%(%%s)^";wait;banid %s %s;wait;writeid"userid2reasonbannedtempminutesauthid2)
    else
        
server_cmd("kick #%d ^"%%s^";wait;banid %s %s;wait;writeid"userid2bannedtempminutesauthid2)

    
    
// Display the message to all clients

    
new msg[256];
    new 
len;
    new 
players[MAX_PLAYERS], pnumplr
    get_players
(playerspnum"ch")
    for (new 
ii<pnumi++)
    {
        
plr players[i]

        
len formatex(msgcharsmax(msg), "%L"plr"BAN");
        
len += formatex(msg[len], charsmax(msg) - len" %s "name2);
        if (
nNum)
        {
            
len += formatex(msg[len], charsmax(msg) - len"%L"plr"FOR_MIN"minutes);
        }
        else
        {
            
len += formatex(msg[len], charsmax(msg) - len"%L"plr"PERM");
        }
        if (
strlen(reason) > 0)
        {
            
formatex(msg[len], charsmax(msg) - len" (%L: %s)"plr"REASON"reason);
        }
        
show_activity_id(plridnamemsg);
    }
    
    
console_print(id"[AMXX] %L"id"CLIENT_BANNED"name2)
    
    return 
PLUGIN_HANDLED
}

public 
cmdBanIP(idlevelcid)
{
    if (!
cmd_access(idlevelcid3))
        return 
PLUGIN_HANDLED
    
    
new target[32], minutes[8], reason[64]
    
    
read_argv(1targetcharsmax(target))
    
read_argv(2minutescharsmax(minutes))
    
read_argv(3reasoncharsmax(reason))
    
    new 
player cmd_target(idtargetCMDTARGET_OBEY_IMMUNITY CMDTARGET_NO_BOTS CMDTARGET_ALLOW_SELF)
    
    if (!
player)
        return 
PLUGIN_HANDLED

    
new nNum str_to_num(minutes)
    new const 
tempBanMaxTime get_pcvar_num(p_amx_tempban_maxtime);
    if( 
nNum // since negative values result in permanent bans
    
{
        
nNum 0;
        
minutes "0";
    }
    if( !(
get_user_flags(id) & ( ADMIN_BAN ADMIN_RCON )) && (nNum <= || nNum tempBanMaxTime) )
    {
        
console_print(id"%L"id"ADMIN_MUST_TEMPBAN"tempBanMaxTime);
        return 
PLUGIN_HANDLED
    
}
    
    new 
authid[32], name2[MAX_NAME_LENGTH], authid2[32], name[MAX_NAME_LENGTH]
    new 
userid2 get_user_userid(player)
    
    
get_user_authid(playerauthid2charsmax(authid2))
    
get_user_authid(idauthidcharsmax(authid))
    
get_user_name(playername2charsmax(name2))
    
get_user_name(idnamecharsmax(name))
    
    
log_amx("Ban: ^"%s<%d><%s><>^" Baneoda ^"%s<%d><%s><>^" (minutes ^"%s^") (reason ^"%s^")"nameget_user_userid(id), authidname2userid2authid2minutesreason)

    
TrieSetString(g_tempBansauthid2authid);

    new 
temp[64], banned[16]
    if (
nNum)
        
formatex(tempcharsmax(temp), "%L"player"FOR_MIN"minutes)
    else
        
formatex(tempcharsmax(temp), "%L"player"PERM")
    
format(banned15"%L"player"BANNED")

    new 
address[32]
    
get_user_ip(playeraddresscharsmax(address), 1)

    if (
reason[0])
        
server_cmd("kick #%d ^"%(%%s)^";wait;addip ^"%s^" ^"%s^";wait;writeip"userid2reasonbannedtempminutesaddress)
    else
        
server_cmd("kick #%d ^"%%s^";wait;addip ^"%s^" ^"%s^";wait;writeip"userid2bannedtempminutesaddress)

    
// Display the message to all clients

    
new msg[256];
    new 
len;
    new 
players[MAX_PLAYERS], pnumplr
    get_players
(playerspnum"ch")
    for (new 
ii<pnumi++)
    {
        
plr players[i]

        
len formatex(msgcharsmax(msg), "%L"plr"BAN");
        
len += formatex(msg[len], charsmax(msg) - len" %s "name2);
        if (
nNum)
        {
            
formatex(msg[len], charsmax(msg) - len"%L"plr"FOR_MIN"minutes);
        }
        else
        {
            
formatex(msg[len], charsmax(msg) - len"%L"plr"PERM");
        }
        if (
strlen(reason) > 0)
        {
            
formatex(msg[len], charsmax(msg) - len" (%L: %s)"plr"REASON"reason);
        }
        
show_activity_id(plridnamemsg);
    }

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

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))
    {
        
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"))
    {
        new 
pos contain(arg2";")
        if (
pos != -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_tempBans);
    
TrieDestroy(g_tXvarsFlags);

solo puedes compilarlo con versiones superiores a 1.8.3
Tienes que compilar con la misma versión que el AMXX de tu servidor.
AMX Mod X Studio 1.8.3 ?

donde puedo pillar esta version ?

gracias chicos , de verdad les agradesco mucho a ustedes y este foro la ayuda que los da a la gente nueva muchas graciasas

una consulta , es posible eliminar la rcon de la rais?
rcon_password "" ya conosco este metodo pero eliminarla ? se podra

amx_xvar_float", "cmdXvar", ADMIN_CVAR, "<xvar> [value]")
amx_xvar_int", "cmdXvar", ADMIN_CVAR, "<xvar> [value]")

que funcion cumplen ?

si ya esta el
amx_cvar