Agregar rango al plugins adminprefix
#1
Buenas estoy intentando implementar el rango a otro plugins de admin prefix para bloquear el hook say del sistema de rango ya que tiene bugs, pero no funciona hice lo siguiente.

al plugins adminprefix le agregue los siguientes código

Código PHP:
new g_rango[33], rangosfile[200]
new 
rangos

enum _
CAMPO_RANGO}

rangos file_size(rangosfile1)

en el formatex del say agregue 

format
(saidcharsmax(said), "%s [%s]^x01 :  %s"prefixRangos[g_rango[index]][NOMBRE], said

no me compila me salta el siguiente error, no se si lo estoy implementado mal, si alguien sabe que estoy haciendo mal me podria explicar para lograr hacerlo bien.

ERROR AL COMPILAR

AMX Mod X Compiler 1.9.0.5241
Copyright © 1997-2006 ITB CompuPhase
Copyright © 2004-2013 AMX Mod X Team

Error: Undefined symbol "Rangos" on line 81
Warning: Expression has no effect on line 81
Error: Expected token: ";", but found "]" on line 81
Error: Invalid expression, assumed zero on line 81
Error: Too many error messages on one line on line 81

CÓDIGO SMA (SISTEMA DE RANGO)
Código PHP:
/* ===============================
Version Con Guardado adv_vault
================================*/

/* ====================================
|=* [INCLUDES] *=|
=====================================*/ 
#include <amxmisc>
#include <csstats>
#include <cstrike>
#include <fakemeta>
#include <adv_vault>
#include <jctf>

/* ====================================
|=* [PLUGIN / VERSION / AUTHOR] *=|
=====================================*/ 
new const PLUGIN[] = "RangoS"
new const VERSION[] = "1.1"
new const AUTHOR[] = "kikizon"

/* =============================================
|=* [EMPIEZA SECCION MODIFICABLE] *=|
==============================================*/

/* ====================================
|=* [CONSTANTES] *=|
=====================================*/ 
new const Prefijo[] = "FOS"          // Prefijo en say
new const Sonido[] = "Rango/up.wav"   // Sonido Rango UP

/* ====================================
|=* [CONST NOMBRES DE RANGOS] *=|
=====================================*/
enum _:DATA {

   
NOMBRE[32],
   
FRAGS,
   
ADRENALINA
}

new const 
Rangos[][DATA] = {
    
"Novato"100 },
"Silver I"200 },
"Silver II"300 },
"Silver III"500 },
"Silver IV"700 },
"Silver Elite"800 },
"Silver Elite Master"900 },
"Gold Nova I"1000 },
"Gold Nova II"1200 },
"Gold Nova III"1300 },
"Gold Nova Master"1400 },
"Master Guardian I",1500 },
"Master Guardian II"1700 },
"Master Guardian Elite"1800 },
"Distinguido Master Guardian"1900 },
"Legendary Eagle"2000 },
"Legendary Eagle Master"2100 },
"Supreme Master"2200 },
"The Global Elite"2500 }
}

/* ====================================
|=* [VARIABLES] *=|
=====================================*/
new g_rango[33], g_frags[33], g_playername[33][32], Data[255], Left[25], Right[50], configsdir[200], rangosfile[200]
new 
SyncHUDg_maxplayersg_msgTeamInfog_msgSayTextrangoscvar_Hudcvar_knifex2cvar_hsx2charnum;
new 
g_vault

/* ====================================
|=* [DEFINE] *=|
=====================================*/
#define TASK_HUD 2100
#define ID_HUD (taskid - TASK_HUD)

enum {
    
   
CAMPO_RANGO,
   
CAMPO_FRAG,
   
CAMPO_MAX
}

new 
g_campos[CAMPO_MAX]

/* ====================================
|=* [INIT] *=|
=====================================*/
public plugin_init() {
   
register_plugin(PLUGINVERSIONAUTHOR)

   
register_event("DeathMsg""Event_DeathMsg""a")
   
register_logevent("logevent_round_end"2"1=Round_End")

   
register_clcmd("say""message_saytext"
   
register_clcmd("say_team""message_sayteam")
   
register_clcmd("say /rangos""RangoSv")
   
register_clcmd("dar_frags""cmd_frags"ADMIN_RCON" ^"Nombre^" ^"Cantidad^"")

/* =============================================
|= [EMPIEZA SECCION MODIFICABLE] =|
==============================================*/
   
cvar_Hud register_cvar("rangos_hud""1")          // 1 - Mostrar HUD | 0 - No Mostrar
   
cvar_knifex2 register_cvar("rangos_knifex2""1")    // 1 - x2 frags con knife | 0 - NO :v
   
cvar_hsx2 register_cvar("rangos_hsx2""1")        // 1 - x2 frags de HeadShot | 0 - NO :v

/* =============================================
|=* [TERMINA SECCION MODIFICABLE] *=|
==============================================*/
   
SyncHUD CreateHudSyncObj()
   
g_maxplayers get_maxplayers()
   
g_msgTeamInfo get_user_msgid("TeamInfo")
   
g_msgSayText get_user_msgid("SayText")

   
g_vault adv_vault_open("data_rangos"false)
   
g_campos[CAMPO_RANGO] = adv_vault_register_field(g_vault"RANGOS")
   
g_campos[CAMPO_FRAG] = adv_vault_register_field(g_vault"FRAGS")
   
adv_vault_init(g_vault)

   
get_configsdir(configsdircharsmax(configsdir))
   
format(rangosfilecharsmax(rangosfile), "%s/rango.cfg"configsdir)
   
rangos file_size(rangosfile1)
 }

/* ====================================
|=* [PRECACHE] *=|
=====================================*/
public plugin_precache() 
   
precache_sound(Sonido)

/* ===================================
|=* [HUD] *=|
=====================================*/
public HUD(taskid
{
   new 
szMap21 ]; get_mapnameszMapcharsmaxszMap ) );
   
   new 
id ID_HUD
   
new name[33]
   
get_user_name(idnamecharsmax(name))
    
   new 
stats[8], body[8];
   new 
rank get_user_stats(idstatsbody
   new 
rank2 get_statsnum()

   if (!
is_user_alive(id)) {
   
id pev(idpev_iuser2)
   if (!
is_user_alive(id)) return;
 }

   if(
id != ID_HUD) {
       
set_hudmessage(242195430.030.1400.01.00.010.1)
ShowSyncHudMsg(ID_HUDSyncHUD"Nombre: %s^nFrags: %d^nRango: %s^n"nameg_frags[id], Rangos[g_rango[id]][NOMBRE])  
     
     } else {

set_hudmessage(242195430.170.000.01.00.010.1)
ShowSyncHudMsg(ID_HUDSyncHUD"Frags: %d / %d^nRango: %s^nSig Rango: %s^nTop-Ranking: %d de %d^nAdrenalina: (%d/100)^nMapa: %s"
g_frags[id], Rangos[g_rango[id]][FRAGS] -  g_frags[id], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], rankrank2jctf_get_adrenaline(id), szMap)
   }
}

public 
RangoSv(id)
{
    for(new 
irangosi++) {
        
   
read_file(rangosfileiDatacharsmax(Data), charnum)
   if(
strlen(Data) < || Data[0] == ';' || equali(Data"//"2))
   continue

   
argbreak(DataLeftcharsmax(Left), Rightcharsmax(Right))
   
remove_quotes(Left)
   
remove_quotes(Right)

   
client_print(idprint_console"%s [%s]"RightLeft)
    }
    
PrintText(id"!g[!y%s!g] !yLa lista de !g/rangos !y se muestra en la !tconsola!g."Prefijo)
}

/* ==================================
|=* [PUTINSERVER] *=|
===================================*/
public client_putinserver(id) {
   
get_user_nameidg_playernameid ], charsmaxg_playername[ ] ) );
   
g_rango[id] = 0
   g_frags
[id] = 0

   Cargar
(id)

   if(
get_pcvar_num(cvar_Hud)) 
   
set_task(1.0"HUD"id+TASK_HUD__"b")
 }

/* ==================================
|=* [DISCONNECT] *=|
===================================*/
public client_disconnected(id) {
   
Guardar(id);

   
remove_task(id+TASK_HUD)
 }

/* ==================================
|=* [ROUND END] *=|
===================================*/
public logevent_round_end() {
   for(new 
id 1id <= g_maxplayersid++)
   
Guardar(id); 
 }
/* ==================================
|=* [DEATHMSG] *=|
===================================*/
public Event_DeathMsg() {
   new 
attacker read_data(1)
   new 
victim read_data(2)
   new 
hs read_data(3)
   new 
weaponid get_user_weapon(attacker)

   if(
victim == attacker) return;

   if(
is_user_alive(attacker)) {
   
g_frags[attacker]++

   if(
get_pcvar_num(cvar_knifex2)) {
   if(
weaponid == CSW_KNIFE
   
g_frags[attacker]++
  }
   if(
get_pcvar_num(cvar_hsx2)) {
   if(
hsg_frags[attacker]++
  }
   
AumentarRango(attacker)
 }
}

/* ================================
|=* [UPDATE RANGO] *=|
=================================*/
AumentarRango(id) {    
   new 
Aumento false

   
while(g_frags[id] >= Rangos[g_rango[id]][FRAGS]) {
   
Aumento true
   g_rango
[id]++
 }
   if(
Aumento) {
   
PrintText(id"!g[!y%s!g] !yFelicidades subiste al rango!t: !g%s"PrefijoRangos[g_rango[id]][NOMBRE])
   
client_cmd(id"spk %s"Sonido)
   
Aumento false
 
}

/*=====================================
|=* [SAY] *=|
=====================================*/
public message_saytext(id) { 
   static 
said[192
   
read_args(saidcharsmax(said)) 
   
remove_quotes(said

   if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '!' || equal (said""))
   return 
PLUGIN_HANDLED;

   if (!
ValidMessage(said1)) return PLUGIN_CONTINUE;

   static 
color[11], name[32], alive[11]
   
get_user_team(id,color,charsmax(color))
   
get_user_name(id,name,charsmax(name))
 
   if (
is_user_alive (id)) {
   
alive ""
     
} else {
   
alive "^1*Muerto*"
}

/*=====================================
*[ACTIVAR ADM]*
ADMIN_LEVEL_B = n DUEÑO
ADMIN_LEVEL_C = o DUEÑA
ADMIN_LEVEL_E = q SUB DUEÑO
ADMIN_LEVEL_D = p ADMIN-VIP
=====================================*/

   
if (is_user_admin(id)) {
if (
get_user_flags(id) & ADMIN_LEVEL_B
format(saidcharsmax(said), "^4[^1%s^4] ^4[^1%s^4] %s ^1(^4DUEÑO^1) ^3%s ^4: %s"PrefijoRangos[g_rango[id]][NOMBRE], alivenamesaid)
if (
get_user_flags(id) & ADMIN_LEVEL_C
format(saidcharsmax(said), "^4[^1%s^4] ^4[^1%s^4] %s ^1(^4DUEÑA^1) ^3%s ^4: %s"PrefijoRangos[g_rango[id]][NOMBRE], alivenamesaid)
if (
get_user_flags(id) & ADMIN_LEVEL_E)
format(saidcharsmax(said), "^4[^1%s^4] ^4[^1%s^4] %s ^1(^4SUB^1-^4DUEÑO^1) ^3%s ^4: %s"PrefijoRangos[g_rango[id]][NOMBRE], alivenamesaid)
if (
get_user_flags(id) & ADMIN_LEVEL_D
format(saidcharsmax(said), "^4[^1%s^4] ^4[^1%s^4] %s ^1(^4ADMIN^1) ^3%s ^4: %s"PrefijoRangos[g_rango[id]][NOMBRE], alivenamesaid)
   } else {
format(saidcharsmax(said), "^4[^1%s^4] %s^3 %s ^1: %s"Rangos[g_rango[id]][NOMBRE], alivenamesaid)
}    
   static 
iteam[11
   for (
1<= g_maxplayersi++) {
   if (!
is_user_connected(i)) continue
   
get_user_name(id,name,charsmax(name))

   if (
is_user_admin(i) || is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) {
   
get_user_team(iteamcharsmax(team))
   
changeTeamInfo(icolor)
   
writeMessage(isaid)
   
changeTeamInfo(iteam)
  }
}
   return 
PLUGIN_HANDLED_MAIN;
}

public 
message_sayteam(id) {    
    
   static 
said[192
   
read_args(saidcharsmax(said)) 
   
remove_quotes(said

   if (
said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said""))
   return 
PLUGIN_HANDLED;

   if (!
ValidMessage(said1)) return PLUGIN_CONTINUE

   static 
playerTeamplayerTeamName[19]
   
playerTeam get_user_team(id)

   switch (
playerTeam) {
   case 
1copy (playerTeamName6"^3[TE]")
   case 
2copy (playerTeamName8"^3[CT]"
   default: 
copy (playerTeamName11"^3[SPEC]"
 }

   static 
color[11], name[32], alive[11]
   
get_user_team(id,color,charsmax(color))
   
get_user_name(id,name,charsmax(name))

   if (
is_user_alive (id)) {
   
alive ""
     
} else {
   
alive "*Muerto* "
 
}

   if (
is_user_admin(id)) {
if (
get_user_flags(id) & ADMIN_LEVEL_B)
format(saidcharsmax(said), "^4[^1%s^4] ^4[^1%s^4] %s%s ^1(^4DUEÑO^1) ^3%s ^4: %s"PrefijoRangos[g_rango[id]], aliveplayerTeamnamesaid)
if (
get_user_flags(id) & ADMIN_LEVEL_C)
format(saidcharsmax(said), "^4[^1%s^4] ^4[^1%s^4] %s%s ^1(^4DUEÑA^1) ^3%s ^4: %s"PrefijoRangos[g_rango[id]], aliveplayerTeamnamesaid)
if (
get_user_flags(id) & ADMIN_LEVEL_E)
format(saidcharsmax(said), "^4[^1%s^4] ^4[^1%s^4] %s%s ^1(^4SUB^1-^4DUEÑO^1) ^3%s ^4: %s"PrefijoRangos[g_rango[id]], aliveplayerTeamnamesaid)
if (
get_user_flags(id) & ADMIN_LEVEL_D)
format(saidcharsmax(said), "^4[^1%s^4] ^4[^1%s^4] %s%s ^1(^4ADMIN^1) ^3%s ^4: %s"PrefijoRangos[g_rango[id]], aliveplayerTeamnamesaid)
   } else {
format(saidcharsmax(said), "^4[^1%s^4] %s%s ^3%s ^4: ^1%s"Rangos[g_rango[id]], aliveplayerTeamnamesaid)
 }

   static 
iteam[11
   for (
1<= g_maxplayersi++) {
   if (!
is_user_connected(i)) continue;
   
get_user_name(id,name,charsmax(name))

   if (
get_user_team(i) == playerTeam || is_user_admin(i)) {
   if (
is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) {
   
get_user_team(iteamcharsmax(team))
   
changeTeamInfo(icolor)
   
writeMessage(isaid)
   
changeTeamInfo(iteam)
  }
 }
}
   return 
PLUGIN_HANDLED_MAIN;
}

public 
changeTeamInfo(playerteam[]) {
   
message_begin(MSG_ONEg_msgTeamInfo_player)
   
write_byte(player)
   
write_string(team)
   
message_end()
 }

public 
writeMessage(playermessage[]) {
   
message_begin(MSG_ONEg_msgSayText, {000}, player)
   
write_byte(player)
   
write_string(message)
   
message_end()
 }

/* ===================================
|=* [GUARDADO] *=|
=====================================*/
Guardar(id) {
   
adv_vault_set_start(g_vault)

   
adv_vault_set_field(g_vaultg_campos[CAMPO_RANGO], g_rango[id])
   
adv_vault_set_field(g_vaultg_campos[CAMPO_FRAG], g_frags[id])

   
adv_vault_set_end(g_vault0g_playername[id])
 }

Cargar(id) {
   if(!
adv_vault_get_prepare(g_vault_g_playername[id])) 
   return

   
g_rango[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_RANGO])
   
g_frags[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FRAG])
 } 
/* ===================================
|=* [STOCKS - CHEMA] *=|
=====================================*/
stock PrintText ( const iIndex, const Text [ ], any:... ) { 
    
    new 
szText 192 ];
    
    
vformat szTextsizeof szText ), Text);
    
    
    
replace_all szTextsizeof szText ), "!y""^1" );
    
replace_all szTextsizeof szText ), "!g""^4" );
    
replace_all szTextsizeof szText ), "!t""^3" );
    
    static 
iLen sizeof szText );
    
    
    
replace_all szTextiLen"á""á" );
    
replace_all szTextiLen"Á""Ã" );
    
replace_all szTextiLen"é""é" );
    
replace_all szTextiLen"É""É" );
    
replace_all szTextiLen"í""Ã*" );
    
replace_all szTextiLen"Í""Ã" );
    
replace_all szTextiLen"ó""ó" );
    
replace_all szTextiLen"Ó""Ó" );
    
replace_all szTextiLen"ú""ú" );
    
replace_all szTextiLen"Ú""Ú" );
    
replace_all szTextiLen"ñ""ñ" );
    
replace_all szTextiLen"Ñ""Ñ" );
    
    
    
message_begin iIndex MSG_ONE_UNRELIABLE MSG_BROADCASTget_user_msgid "SayText" ), .player iIndex );
    
write_byte iIndex iIndex 33 );
    
write_string szText );
    
message_end (  );
}

/* =====================================================
|=* [Stock para Saber Si el mensaje es valido] *=|
======================================================*/
stock ValidMessage(text[], maxcount) {
   static 
lenicount
   len 
strlen(text)
   
count 0

   
if (!len)
   return 
false;

   for (
0leni++) {
   if (
text[i] != ' ') {
   
count++
   if (
count >= maxcount)
   return 
true;
  }
 }
   return 
false;

public 
cmd_frags(idnivelcid) {
    if (!
cmd_access(idnivelcid3))
        return 
PLUGIN_HANDLED;
    
    new 
arg[33], arg2[10]
    new 
name[32]; get_user_name(idnamecharsmax(name))
    
read_argv(1argcharsmax(arg))
    
read_argv(2arg2charsmax(arg2))
    
    new 
Player cmd_target(idarg,CMDTARGET_ONLY_ALIVE)
    
    new 
target[32]; get_user_name(Playertargetcharsmax(target))
    
    if (!
Player)
    {
        
client_print(idprint_console"No se encuentra disponible el jugador")
        return 
PLUGIN_HANDLED;
    }
    
    new 
amount str_to_num(arg2)
    
    
g_frags[Player] += amount
    
// aca sumamos los frags 
    
    
AumentarRango(Player// aca tenes que poner tu checklevel asi cuando le de , checkea si puede subir de level
    
    
PrintText(id"!g[!yAMXX!g] !yEl Admin !g%s !yte dio !g%d !t%s"nameamount, (amount "niveles" "nivel"))
    
PrintText(id"!g[!yAMXX!g] !yLe diste !g%d !t%s !yal jugador !g%s"amount, (amount "niveles" "nivel"), target)
    
    return 
PLUGIN_HANDLED;


CÓDIGO SMA DE ADMIN PREFIX

Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

new g_rango[33], rangosfile[200]
new 
rangos

enum _
:ADM_DATA ADMIN_TYPE30 ], ADMIN_FLAGSCAMPO_RANGO }

new const 
Admins[][ADM_DATA] =
{
    { 
"[OFF]~[Dueño]"ADMIN_RCON },
    { 
"[OFF]~[Sub-Dueño]"ADMIN_CFG },
    { 
"[OFF]~[STAFF]"ADMIN_PASSWORD },
    { 
"[OFF]~[SOCIO-PREMIUN]"ADMIN_LEVEL_B},
        { 
"[OFF]~[VIP-PREMIUN]"ADMIN_LEVEL_D },
        { 
"[OFF]~[ADMIN-FULL]"ADMIN_LEVEL_C },
    { 
"[OFF]~[ADMIN-BASICO]"ADMIN_LEVEL_E }    
     
};

new 
kAdminType33 ][ 30 ], kMPkPN33 ][ 32 ], cvar_adminlistenadmlisten;

public 
plugin_init() 
{
    
register_plugin"Admin Say n Types" "1.0" "RAMBO" );
    
    
register_clcmd("say""BlockSay")
    
register_clcmd("say_team""BlockTeamSay")

    
// Cvar Definicion
    // 0 = Los vivos no pueden leer a los muertos
    // 1 = Los vivos no pueden leer a los muertos, Excepto los admins
    // 2 = Todos se pueden leer
    
cvar_adminlisten register_cvar"amx_adminlisten""2" );
    
admlisten get_pcvar_numcvar_adminlisten );
    
    
kMP get_maxplayers();
    
    
rangos file_size(rangosfile1)
}

public 
client_putinserverindex )
{
    
get_user_nameindexkPNindex ], 31 );
    
kAdminTypeindex ] = "^0";
    
    if(
is_user_adminindex ))
    {
        static 
iflagsflags get_user_flagsindex );
        
        for(
sizeof Admins i++ ) 
        {
            if(
flags Admins[i][ADMIN_FLAGS])
            {                     
                
formatex(kAdminType[index], charsmax(kAdminType), "%s"Admins[i][ADMIN_TYPE]);
                break;
            }
        }
    }    
}

public 
BlockSayindex )
{
    static 
said[191];
    
read_args(saidcharsmax(said));
    
remove_quotes(said);
    
replace_all(saidcharsmax(said), "%"" "); replace_all(saidcharsmax(said), "#"" ");
        
    if (!
ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
color[11], prefix[91]
    
get_user_team(indexcolorcharsmax(color))
    
    
formatex(prefixcharsmax(prefix), "%s^x04%s^x03 %s"
    
is_user_aliveindex ) ? "^x01" "^x01*MUERTO* ",  kAdminTypeindex ], kPNindex ])
    
    if (
is_user_admin(index)) format(saidcharsmax(said), "^x04%s"said)    
    
    
format(saidcharsmax(said), "%s^x01 :  %s"prefixRangos[g_rango[index]][NOMBRE], said)
    
    static 
iteam[11];
    for (
1<= kMPi++)
    {
        if (!
is_user_connected(i)) continue;

        if( 
admlisten == && ( is_user_aliveindex ) && is_user_alive) || !is_user_aliveindex ) && !is_user_alive(i))
        || 
admlisten == && (is_user_admin(i) || is_user_aliveindex ) && is_user_alive) || !is_user_aliveindex ) && !is_user_alive(i)) 
        || 
admlisten == )
        {        
            
get_user_team(iteamcharsmax(team))            
            
changeTeamInfo(icolor)            
            
writeMessage(isaid)
            
changeTeamInfo(iteam)
        }
    }
        
    return 
PLUGIN_HANDLED_MAIN;
}

public 
BlockTeamSayindex )
{
    static 
said[191];
    
read_args(saidcharsmax(said));
    
remove_quotes(said);
    
replace_all(saidcharsmax(said), "%"" "); replace_all(saidcharsmax(said), "#"" ");
        
    if (!
ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
playerTeamteamname[19];
    
playerTeam get_user_team(index);
    
    switch (
playerTeam)
    {
        case 
1formatexteamname18" ^x01[^x03 TT^x01 ] ");
        case 
2formatexteamname18" ^x01[^x03 CT^x01 ] ");
        default: 
formatexteamname18" ^x01[^x03 SPEC^x01 ] ");
    }
    
    static 
color[11], prefix[91]
    
get_user_team(indexcolorcharsmax(color))
    
    
formatex(prefixcharsmax(prefix), "%s%s^x04%s^x03 %s"
    
is_user_aliveindex ) ? "^x01" "^x01*MUERTO* ",  teamnamekAdminTypeindex ], kPNindex ])
    
    if (
is_user_admin(index)) format(saidcharsmax(said), "^x04%s"said)    
    
    
format(saidcharsmax(said), "%s^x01 :  %s"prefixsaid)
    
    static 
iteam[11];
    for (
1<= kMPi++)
    {
        if (!
is_user_connected(i)) continue;
        
        if (
get_user_team(i) == playerTeam)
        {
            if( 
admlisten == && ( is_user_aliveindex ) && is_user_alive) || !is_user_aliveindex ) && !is_user_alive(i))
            || 
admlisten == && (is_user_admin(i) || is_user_aliveindex ) && is_user_alive) || !is_user_aliveindex ) && !is_user_alive(i)) 
            || 
admlisten == )
            {        
                
get_user_team(iteamcharsmax(team))            
                
changeTeamInfo(icolor)            
                
writeMessage(isaid)
                
changeTeamInfo(iteam)
            }
        }
    }
    
    return 
PLUGIN_HANDLED_MAIN;
}

public 
changeTeamInfo(playerteam[])
{
    
message_begin(MSG_ONEget_user_msgid"TeamInfo" ), _player)
    
write_byte(player)
    
write_string(team)
    
message_end()
}

public 
writeMessage(playermessage[])
{
    
message_begin(MSG_ONEget_user_msgid"SayText" ), {000}, player)
    
write_byte(player)
    
write_string(message)
    
message_end()
}

stock ValidMessage(text[], maxcount
{
    static 
lenicount;
    
len strlen(text);
    
count 0;
    
    if (!
len) return false;
    
    for (
0leni++) 
    {
        if (
text[i] != ' '
        {
            
count++
            if (
count >= maxcount)
                return 
true;
        }
    }
    
    return 
false;

»» RENTA TU SERVIDOR EN EVOLUTIÓN-HOST ««

Si deseas contactarme para comprar tu servidor de counter-strike puedes enviar un M.P
Responder
#2
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <celltrie>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#include <adv_vault>

#define VERSION "4.0"
#define FLAG_LOAD ADMIN_CFG
#define MAX_PREFIXES 33
#define MAX_BAD_PREFIXES 100

new g_bad_prefixg_listeng_listen_flagg_customg_custom_flagg_say_charactersg_prefix_characters;
new 
pre_ips_count 0pre_names_count 0pre_steamids_countpre_flags_count 0bad_prefix_count 0itemp_cvar[2];
new 
configs_dir[64], file_prefixes[128], file_bad_prefixes[128], text[128], prefix[32], type[2], key[32], lengthline 0error[256];
new 
g_saytxtg_maxplayersCsTeams:g_team;
new 
g_typed[192], g_message[192], g_name[32];
new 
Trie:pre_ips_collectTrie:pre_names_collectTrie:pre_steamids_collectTrie:pre_flags_collectTrie:bad_prefixes_collectTrie:client_prefix;
new 
str_id[16], temp_key[35], temp_prefix[32], temp_value;
new 
bool:g_toggle[33];

new const 
say_team_info[2][CsTeams][] =
{
    {
"^4[^1SPEC^4] ""^4[^1MUERTO^4] ""^4[^1MUERTO^4] ""^4[^1SPEC^4] "},
    {
""""""""}
}

new const 
sayteam_team_info[2][CsTeams][] =
{
    {
"SPEC""MUERTO TT""MUERTO CT""SPEC"},
    {
"SPEC""TT""CT""SPEC"}
}

new const 
forbidden_say_symbols[] = {
    
"/",
    
"!",
    
"%",
    
"$"
}

new const 
forbidden_prefixes_symbols[] = {
    
"/",
    
"\",
    "
%",
    "
$",
    "
.",
    "
:",
    "
?",
    "
!",
    "
@",
    "
#",
    
"%"
}

#if AMXX_VERSION_NUM < 183
#define client_disconnected client_disconnect

#define print_team_default 0

stock client_print_color(indexfakevar, const input[], any:...)
{
    
#pragma unused fakevar
    
static szMsg[191], g_iMsgSayText;
    if(!
g_iMsgSayTextg_iMsgSayText get_user_msgid("SayText");

    
vformat(szMsg190input3);

    
message_begin(index MSG_ONE_UNRELIABLE MSG_BROADCASTg_iMsgSayText, .player index);
    
write_byte(index index 33);
    
write_string(szMsg);
    
message_end();
}
#endif

new const Prefijo[] = "^4[^1SG^4] ^1";     // Prefijo en say
new const DataBase[] = "csgoranks";        // Nombre de la base de datos

enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
}

new const 
Rangos[][DATA] =
{
"Novato"100 },
"Silver I"200 },
"Silver II"300 },
"Silver III"500 },
"Silver IV"700 },
"Silver Elite"800 },
"Silver Elite Master"900 },
"Gold Nova I"1000 },
"Gold Nova II"1200 },
"Gold Nova III"1300 },
"Gold Nova Master"1400 },
"Master Guardian I",1500 },
"Master Guardian II"1700 },
"Master Guardian Elite"1800 },
"Distinguido Master Guardian"1900 },
"Legendary Eagle"2000 },
"Legendary Eagle Master"2100 },
"Supreme Master"2200 },
"The Global Elite"2500 }
}

new 
g_rango[33], g_frags[33];
new 
SyncHUDg_playername[33][32];

#define TASK_HUD 67521
#define ID_HUD (taskid - TASK_HUD)
#define is_valid_player(%0) is_user_connected(%0) || !is_user_bot(%0) || !is_user_hltv(%0)

new g_vaultg_iField_Rankg_iField_Frags;
new 
cvar_Hudcvar_knifex2cvar_hsx2;

new const 
separator[] = "************************************************"
new const in_prefix[] = "[AdminPrefixes]"

public plugin_init()
{
    
register_plugin("Admin Prefixes + Rangos"VERSION"m0skVi4a & kikizon")

    
g_bad_prefix register_cvar("ap_bad_prefixes""1")
    
g_listen register_cvar("ap_listen""1")
    
g_listen_flag register_cvar("ap_listen_flag""a")
    
g_custom register_cvar("ap_custom_current""1")
    
g_custom_flag register_cvar("ap_custom_current_flag""b")
    
g_say_characters register_cvar("ap_say_characters""1")
    
g_prefix_characters register_cvar("ap_prefix_characters""1")

    
g_saytxt get_user_msgid ("SayText")
    
g_maxplayers get_maxplayers()

    
register_concmd("ap_reload_prefixes""LoadPrefixes")
    
register_concmd("ap_reload_badprefixes""LoadBadPrefixes")
    
register_concmd("ap_put""SetPlayerPrefix")
    
register_clcmd("say""HookSay")
    
register_clcmd("say_team""HookSayTeam")

    
RegisterHam(Ham_Killed"player""ham_PlayerKilledPost"true);
    
register_logevent("logevent_round_end"2"1=Round_End");

    
cvar_Hud register_cvar("rangos_hud""1");             // 1 - Mostrar HUD | 0 - No Mostrar
    
cvar_knifex2 register_cvar("rangos_knifex2""1");    // 1 - x2 frags con knife | 0 - ÑO :v
    
cvar_hsx2 register_cvar("rangos_hsx2""1");            // 1 - x2 frags de HeadShot | 0 - ÑO :v

    
SyncHUD CreateHudSyncObj();

    
g_vault adv_vault_open(DataBasefalse);
    
g_iField_Rank adv_vault_register_field(g_vault"RANGOS");
    
g_iField_Frags adv_vault_register_field(g_vault"FRAGS");
    
adv_vault_init(g_vault);

    
pre_ips_collect TrieCreate()
    
pre_names_collect TrieCreate()
    
pre_steamids_collect TrieCreate()
    
pre_flags_collect TrieCreate()
    
bad_prefixes_collect TrieCreate()
    
client_prefix TrieCreate()

    
register_dictionary("admin_prefixes.txt")

    
get_configsdir(configs_dircharsmax(configs_dir))
    
formatex(file_prefixescharsmax(file_prefixes), "%s/ap_prefixes.ini"configs_dir)
    
formatex(file_bad_prefixescharsmax(file_bad_prefixes), "%s/ap_bad_prefixes.ini"configs_dir)

    
LoadPrefixes(0)
    
LoadBadPrefixes(0)
}

public 
HUD(taskid)
{
    new 
id ID_HUD;

    if (!
is_user_alive(id))    
    
id pev(idpev_iuser2);

    
set_hudmessage(random_num(1255), random_num(1255), random_num(1255), 0.670.016.01.0);

    if(
g_rango[id] == charsmax(Rangos))
    {
        
ShowSyncHudMsg(
            
ID_HUD,
            
SyncHUD,
            
"\
            Frags: [%d] - \
            Rango: [%s]\
            "
,
            
g_frags[id],
            
Rangos[g_rango[id]][NOMBRE]            
            );
    }
    else 
    {
        
ShowSyncHudMsg(
            
ID_HUD,
            
SyncHUD,
            
"\
            Frags: [%d] - \
            Rango: [%s]^n\
            \
            Sig. Rango: [%s] - \
            Frags Restantes: [%d]\
            "

            
g_frags[id],
            
Rangos[g_rango[id]][NOMBRE],
            
Rangos[g_rango[id]+1][NOMBRE],
            
Rangos[g_rango[id]][FRAGS] - g_frags[id]
            );
    }
}

public 
client_disconnected(id)
{
    if(
is_valid_player(id))
    
Guardar(id);

    
remove_task(id+TASK_HUD)
}

public 
logevent_round_end()
{
    static 
id;
    for(
id 1id <= g_maxplayers; ++id)
    {
        if(
is_valid_player(id))
        
Guardar(id);
    }
}

public 
ham_PlayerKilledPost(victimattackersg)
{
    if(!
is_user_connected(victim) || !is_user_connected(attacker) || !attacker || attacker == victim)
    return 
HAM_IGNORED;

    
SetFrags(attacker1);

    if(
get_pcvar_num(cvar_knifex2) == && get_user_weapon(attacker) == CSW_KNIFE)
    
SetFrags(attacker1);

    if(
get_pcvar_num(cvar_hsx2) == && get_pdata_int(victim755) == HIT_HEAD)
    
SetFrags(attacker1);

    return 
HAM_IGNORED;
}

SetFrags(indexfrags)
{
    
g_frags[index] += frags;

    static 
iRankiRank g_rango[index];
    while( 
g_frags[index] >= Rangos[g_rango[index]][FRAGS] && g_rango[index] < charsmax(Rangos))
    ++
g_rango[index];

    if(
iRank g_rango[index])
    {
        
client_print_color(indexprint_team_default"%s Felicidades subiste al rango: ^4%s"PrefijoRangos[g_rango[index]][NOMBRE]);
    }
}

public 
LoadPrefixes(id)
{
    if(!(
get_user_flags(id) & FLAG_LOAD))
    {
        
console_print(id"%L"LANG_SERVER"PREFIX_PERMISSION"in_prefix)
        return 
PLUGIN_HANDLED
    
}

    
TrieClear(pre_ips_collect)
    
TrieClear(pre_names_collect)
    
TrieClear(pre_steamids_collect)
    
TrieClear(pre_flags_collect)

    
line 0length 0pre_flags_count 0pre_ips_count 0pre_names_count 0;

    if(!
file_exists(file_prefixes)) 
    {
        
formatex(errorcharsmax(error), "%L"LANG_SERVER"PREFIX_NOT_FOUND"in_prefixfile_prefixes)
        
set_fail_state(error)
    }

    
server_print(separator)

    while(
read_file(file_prefixesline++ , textcharsmax(text), length) && (pre_ips_count pre_names_count pre_steamids_count pre_flags_count) <= MAX_PREFIXES)
    {
        if(!
text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
        continue

        
parse(texttypecharsmax(type), keycharsmax(key), prefixcharsmax(prefix))
        
trim(prefix)

        if(!
type[0] || !prefix[0] || !key[0])
        continue

        
replace_all(prefixcharsmax(prefix), "!g""^x04")
        
replace_all(prefixcharsmax(prefix), "!t""^x03")
        
replace_all(prefixcharsmax(prefix), "!n""^x01")

        switch(
type[0])
        {
            case 
'f':
            {
                
pre_flags_count++
                
TrieSetString(pre_flags_collectkeyprefix)
                
server_print("%L"LANG_SERVER"PREFIX_LOAD_FLAG"in_prefixprefixkey[0])
            }
            case 
'i':
            {
                
pre_ips_count++
                
TrieSetString(pre_ips_collectkeyprefix)
                
server_print("%L"LANG_SERVER"PREFIX_LOAD_IP"in_prefixprefixkey)
            }
            case 
's':
            {
                
pre_steamids_count++
                
TrieSetString(pre_steamids_collectkeyprefix)
                
server_print("%L"LANG_SERVER"PREFIX_LOAD_STEAMID"in_prefixprefixkey)
            }
            case 
'n':
            {
                
pre_names_count++
                
TrieSetString(pre_names_collectkeyprefix)
                
server_print("%L"LANG_SERVER"PREFIX_LOAD_NAME"in_prefixprefixkey)
            }
            default:
            {
                continue
            }
        }
    }

    if(
pre_flags_count <= && pre_ips_count <= && pre_steamids_count <= && pre_names_count <= 0)
    {
        
server_print("%L"LANG_SERVER"PREFIX_NO"in_prefix)
    }

    
get_user_name(idg_namecharsmax(g_name))
    
server_print("%L"LANG_SERVER"PREFIX_LOADED_BY"in_prefixg_name)
    
console_print(id"%L"LANG_SERVER"PREFIX_LOADED"in_prefix)

    
server_print(separator)

    for(new 
1<= g_maxplayersi++)
    {
        
num_to_str(istr_idcharsmax(str_id))
        
TrieDeleteKey(client_prefixstr_id)
        
PutPrefix(i)
    }

    return 
PLUGIN_HANDLED
}

public 
LoadBadPrefixes(id)
{
    if(!
get_pcvar_num(g_bad_prefix))
    {
        
console_print(id"%L"LANG_SERVER"BADP_OFF"in_prefix)
        return 
PLUGIN_HANDLED
    
}

    if(!(
get_user_flags(id) & FLAG_LOAD))
    {
        
console_print(id"%L"LANG_SERVER"BADP_PERMISSION"in_prefix)
        return 
PLUGIN_HANDLED
    
}

    
TrieClear(bad_prefixes_collect)

    
line 0length 0bad_prefix_count 0;

    if(!
file_exists(file_bad_prefixes)) 
    {
        
console_print(id"%L"LANG_SERVER"BADP_NOT_FOUND"in_prefixfile_bad_prefixes)
        return 
PLUGIN_HANDLED        
    
}

    
server_print(separator)

    while(
read_file(file_bad_prefixesline++ , textcharsmax(text), length) && bad_prefix_count <= MAX_BAD_PREFIXES)
    {
        if(!
text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
        continue

        
parse(textprefixcharsmax(prefix))

        if(!
prefix[0])
        continue

        
bad_prefix_count++
        
TrieSetCell(bad_prefixes_collectprefix1)
        
server_print("%L"LANG_SERVER"BADP_LOAD"in_prefixprefix)
    }

    if(
bad_prefix_count <= 0)
    {
        
server_print("%L"LANG_SERVER"BADP_NO"in_prefix)
    }

    
get_user_name(idg_namecharsmax(g_name))
    
server_print("%L"LANG_SERVER"BADP_LOADED_BY"in_prefixg_name)
    
console_print(id"%L"LANG_SERVER"BADP_LOADED"in_prefix)

    
server_print(separator)

    return 
PLUGIN_HANDLED
}

public 
client_putinserver(id)
{
    
g_toggle[id] = true
    num_to_str
(idstr_idcharsmax(str_id))
    
TrieSetString(client_prefixstr_id"")
    
PutPrefix(id)

    
get_user_name(idg_playername[id], 31);
    
g_rango[id] = g_frags[id] = 0;
    
    
Cargar(id);
    
    if(
get_pcvar_num(cvar_Hud)) 
    
set_task(1.0"HUD"id+TASK_HUD__"b");
}

public 
HookSay(id)
{
    
read_args(g_typedcharsmax(g_typed))
    
remove_quotes(g_typed)

    
trim(g_typed)

    if(
equal(g_typed"") || !is_user_connected(id))
    return 
PLUGIN_HANDLED_MAIN

    
if(equal(g_typed"/prefix"))
    {
        if(
g_toggle[id])
        {
            
g_toggle[id] = false
            client_print
(idprint_chat"%L"LANG_SERVER"PREFIX_OFF"in_prefix)
        }
        else
        {
            
g_toggle[id] = true
            client_print
(idprint_chat"%L"LANG_SERVER"PREFIX_ON"in_prefix)
        }

        return 
PLUGIN_HANDLED_MAIN
    
}

    if(!
g_toggle[id])
    return 
PLUGIN_CONTINUE

    num_to_str
(idstr_idcharsmax(str_id))

    if((
TrieGetString(client_prefixstr_idtemp_prefixcharsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 1) || (!TrieGetString(client_prefixstr_idtemp_prefixcharsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
    {
        if(
check_say_characters(g_typed))
        return 
PLUGIN_HANDLED_MAIN
    
}

    
get_user_name(idg_namecharsmax(g_name))

    
g_team cs_get_user_team(id)

    if(
temp_prefix[0])
    {
        
formatex(g_messagecharsmax(g_message), "^1%s^4[^1SG^4]^4[^1%s^4]^4[^1%s^4]^3 %s : ^4%s"say_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]][NOMBRE], temp_prefixg_nameg_typed)
    }
    else
    {
        
formatex(g_messagecharsmax(g_message), "^1%s^4[^1SG^4]^4[^1%s^4]^3 %s : ^1%s"say_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]][NOMBRE], g_nameg_typed)
    }

    
get_pcvar_string(g_listen_flagtemp_cvarcharsmax(temp_cvar))

    for(new 
1<= g_maxplayersi++)
    {
        if(!
is_user_connected(i))
        continue

        if(
is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
        {
            
send_message(g_messageidi)
        }
    }

    return 
PLUGIN_HANDLED_MAIN
}

public 
HookSayTeam(id)
{
    
read_args(g_typedcharsmax(g_typed))
    
remove_quotes(g_typed)

    
trim(g_typed)

    if(
equal(g_typed"") || !is_user_connected(id))
    return 
PLUGIN_HANDLED_MAIN

    
if(equal(g_typed"/prefix"))
    {
        if(
g_toggle[id])
        {
            
g_toggle[id] = false
            client_print
(idprint_chat"%L"LANG_SERVER"PREFIX_OFF"in_prefix)
        }
        else
        {
            
g_toggle[id] = true
            client_print
(idprint_chat"%L"LANG_SERVER"PREFIX_ON"in_prefix)
        }

        return 
PLUGIN_HANDLED_MAIN
    
}

    if(!
g_toggle[id])
    return 
PLUGIN_CONTINUE

    num_to_str
(idstr_idcharsmax(str_id))

    if((
TrieGetString(client_prefixstr_idtemp_prefixcharsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 1) || (!TrieGetString(client_prefixstr_idtemp_prefixcharsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
    {
        if(
check_say_characters(g_typed))
        return 
PLUGIN_HANDLED_MAIN
    
}

    
get_user_name(idg_namecharsmax(g_name))

    
g_team cs_get_user_team(id)

    if(
temp_prefix[0])
    {
        
formatex(g_messagecharsmax(g_message), "^4[^1%s^4]^4[^1SG^4]^4[^1%s^4]^4[^1%s^4]^3 %s : ^4%s"sayteam_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]], temp_prefixg_nameg_typed)
    }
    else
    {
        
formatex(g_messagecharsmax(g_message), "^4[^1%s^4]^4[^1SG^4]^4[^1%s^4]^3 %s : ^1%s"sayteam_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]], g_nameg_typed)
    }

    
get_pcvar_string(g_listen_flagtemp_cvarcharsmax(temp_cvar))

    for(new 
1<= g_maxplayersi++)
    {
        if(!
is_user_connected(i))
        continue

        if(
get_user_team(id) == get_user_team(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
        {
            if(
is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
            {
                
send_message(g_messageidi)
            }
        }
    }

    return 
PLUGIN_HANDLED_MAIN
}

public 
SetPlayerPrefix(id)
{
    if(!
get_pcvar_num(g_custom) || !get_pcvar_string(g_custom_flagtemp_cvarcharsmax(temp_cvar)))
    {
        
console_print(id"%L"LANG_SERVER"CUSTOM_OFF"in_prefix)
        return 
PLUGIN_HANDLED
    
}

    if(!(
get_user_flags(id) & read_flags(temp_cvar)))
    {
        
console_print(id"%L"LANG_SERVER"CUSTOM_PERMISSION"in_prefix)
        return 
PLUGIN_HANDLED
    
}

    new 
input[128], target;
    new 
arg_type[2], arg_prefix[32], arg_key[35];
    new 
temp_str[16];

    
read_args(inputcharsmax(input))
    
remove_quotes(input)
    
parse(inputarg_typecharsmax(arg_type), arg_keycharsmax(arg_key), arg_prefixcharsmax(arg_prefix))
    
trim(arg_prefix)

    if(
get_pcvar_num(g_bad_prefix) && is_bad_prefix(arg_prefix) && !equali(arg_prefix""))
    {
        
console_print(id"%L"LANG_SERVER"CUSTOM_FORBIDDEN"in_prefixarg_prefix)
        return 
PLUGIN_HANDLED
    
}

    if(
get_pcvar_num(g_prefix_characters) && check_prefix_characters(arg_prefix))
    {
        
console_print(id"%L"LANG_SERVER"CUSTOM_SYMBOL"in_prefixarg_prefixforbidden_prefixes_symbols[i])
        return 
PLUGIN_HANDLED
    
}

    switch(
arg_type[0])
    {
        case 
'f':
        {
            
target 0
            temp_str 
"Flag"
        
}
        case 
'i':
        {
            
target find_player("d"arg_key)
            
temp_str "IP"
        
}
        case 
's':
        {
            
target find_player("c"arg_key)
            
temp_str "SteamID"
        
}
        case 
'n':
        {
            
target find_player("a"arg_key)
            
temp_str "Name"
        
}
        default:
        {
            
console_print(id"%L"LANG_SERVER"CUSTOM_INVALID"in_prefixarg_type)
            return 
PLUGIN_HANDLED
        
}
    }

    
get_user_name(idg_namecharsmax(g_name))

    if(
equali(arg_prefix""))
    {
        
find_and_delete(arg_typearg_key)

        if(
target)
        {
            
PutPrefix(target)
        }
        
        
console_print(id"%L"LANG_SERVER"CUSTOM_REMOVE"in_prefixtemp_strarg_key)
        
server_print("%L"LANG_SERVER"CUSTOM_REMOVE_INFO"in_prefixg_nametemp_strarg_key)
        return 
PLUGIN_HANDLED
    
}

    
find_and_delete(arg_typearg_key)

    
formatex(textcharsmax(text), "^"%s^" ^"%s^" ^"%s^""arg_typearg_keyarg_prefix)
    
write_file(file_prefixestext, -1)

    switch(
arg_type[0])
    {
        case 
'f':
        {
            
TrieSetString(pre_flags_collectarg_keyarg_prefix)
        }
        case 
'i':
        {
            
TrieSetString(pre_ips_collectarg_keyarg_prefix)
        }
        case 
's':
        {
            
TrieSetString(pre_steamids_collectarg_keyarg_prefix)
        }
        case 
'n':
        {
            
TrieSetString(pre_names_collectarg_keyarg_prefix)
        }
    }

    if(
target)
    {
        
num_to_str(targetstr_idcharsmax(str_id))
        
TrieSetString(client_prefixstr_idarg_prefix)
    }

    
console_print(id"%L"LANG_SERVER"CUSTOM_CHANGE"in_prefixtemp_strarg_keyarg_prefix)
    
server_print("%L"LANG_SERVER"CUSTOM_CHANGE_INFO"in_prefixg_nametemp_strarg_keyarg_prefix

    return 
PLUGIN_HANDLED
}

public 
client_infochanged(id)
{
    if(!
is_user_connected(id))
    return 
PLUGIN_CONTINUE

    
new g_old_name[32];

    
get_user_info(id"name"g_namecharsmax(g_name))
    
get_user_name(idg_old_namecharsmax(g_old_name))

    if(!
equal(g_nameg_old_name))
    {
        
num_to_str(idstr_idcharsmax(str_id))
        
TrieSetString(client_prefixstr_id"")
        
set_task(0.5"PutPrefix"id)
        return 
PLUGIN_HANDLED
    
}

    return 
PLUGIN_CONTINUE
}

public 
PutPrefix(id)
{
    
num_to_str(idstr_idcharsmax(str_id))
    
TrieSetString(client_prefixstr_id"")

    new 
sflags[32], temp_flag[2];
    
get_flags(get_user_flags(id), sflagscharsmax(sflags))

    for(new 
0<= charsmax(sflags); i++)
    {
        
formatex(temp_flagcharsmax(temp_flag), "%c"sflags[i])

        if(
TrieGetString(pre_flags_collecttemp_flagtemp_prefixcharsmax(temp_prefix)))
        {
            
TrieSetString(client_prefixstr_idtemp_prefix)
        }
    }

    
get_user_ip(idtemp_keycharsmax(temp_key), 1)

    if(
TrieGetString(pre_ips_collecttemp_keytemp_prefixcharsmax(temp_prefix)))
    {
        
TrieSetString(client_prefixstr_idtemp_prefix)
    }

    
get_user_authid(idtemp_keycharsmax(temp_key))

    if(
TrieGetString(pre_steamids_collecttemp_keytemp_prefixcharsmax(temp_prefix)))
    {
        
TrieSetString(client_prefixstr_idtemp_prefix)
    }

    
get_user_name(idtemp_keycharsmax(temp_key))

    if(
TrieGetString(pre_names_collecttemp_keytemp_prefixcharsmax(temp_prefix)))
    {
        
TrieSetString(client_prefixstr_idtemp_prefix)
    }

    return 
PLUGIN_HANDLED
}

send_message(const message[], const id, const i)
{
    
message_begin(MSG_ONEg_saytxt, {000}, i)
    
write_byte(id)
    
write_string(message)
    
message_end()
}

bool:check_say_characters(const check_message[])
{
    for(new 
0charsmax(forbidden_say_symbols); i++)
    {
        if(
check_message[0] == forbidden_say_symbols[i])
        {
            return 
true
        
}
    }
    return 
false
}

bool:check_prefix_characters(const check_prefix[])
{
    for(
0charsmax(forbidden_prefixes_symbols); i++)
    {
        if(
containi(check_prefixforbidden_prefixes_symbols[i]) != -1)
        {
            return 
true
        
}
    }
    return 
false
}

bool:is_bad_prefix(const check_prefix[])
{
    if(
TrieGetCell(bad_prefixes_collectcheck_prefixtemp_value))
    {
        return 
true
    
}
    return 
false
}

find_and_delete(const arg_type[], const arg_key[])
{
    
line 0length 0;

    while(
read_file(file_prefixesline++ , textcharsmax(text), length))
    {
        if(!
text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
        continue

        
parse(texttypecharsmax(type), keycharsmax(key), prefixcharsmax(prefix))
        
trim(prefix)

        if(!
type[0] || !prefix[0] || !key[0])
        continue

        if(!
equal(arg_typetype) || !equal(arg_keykey))
        continue

        
write_file(file_prefixes""line 1)
    }
    
    switch(
arg_type[0])
    {
        case 
'f':
        {
            
TrieDeleteKey(pre_flags_collectarg_key)
        }
        case 
'i':
        {
            
TrieDeleteKey(pre_ips_collectarg_key)
        }
        case 
's':
        {
            
TrieDeleteKey(pre_steamids_collectarg_key)
        }
        case 
'n':
        {
            
TrieDeleteKey(pre_names_collectarg_key)
        }
    }
}

public 
changeTeamInfo(playerteam[])
{
    static 
g_msgTeamInfo;
    if(!
g_msgTeamInfog_msgTeamInfo get_user_msgid("TeamInfo");

    
message_begin(MSG_ONEg_msgTeamInfo_player);
    
write_byte(player);
    
write_string(team);
    
message_end();
}

public 
writeMessage(playermessage[])
{
    static 
g_msgSayText;
    if(!
g_msgSayTextg_msgSayText get_user_msgid("SayText");
    
    
message_begin(MSG_ONEg_msgSayText, {000}, player);
    
write_byte(player);
    
write_string(message);
    
message_end();
}

Guardar(id)
{    
    
adv_vault_set_start(g_vault);

    
adv_vault_set_field(g_vaultg_iField_Rankg_rango[id]);
    
adv_vault_set_field(g_vaultg_iField_Fragsg_frags[id]);
    
    
adv_vault_set_end(g_vault0g_playername[id]);
}

Cargar(id)
{
    if(!
adv_vault_get_prepare(g_vault_g_playername[id])) 
    return;
    
    
g_rango[id] = adv_vault_get_field(g_vaultg_iField_Rank);
    
g_frags[id] = adv_vault_get_field(g_vaultg_iField_Frags);


stock ValidMessage(text[], maxcount)
{
    static 
lenicountlen strlen(text);count 0;
    if (!
len) return false;

    for (
0leni++)
    {
        if (
text[i] != ' ')
        {
            
count++;
            if (
count >= maxcount) return true;
        }
    }
    return 
false;

Aprendiendo scripting Excitedeyes || Tratare ayudar en lo que pueda Trolleyes || PD: Soy pobre Cutecry
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)