Allied Modders en español

Versión completa: Que aparezcan los rangos en consola (SOLUCIONADO)
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas! Bueno paso por aquí para ver si alguien me ayuda a que aparezcan los rangos en consola *ME EXPLICO* que al poner /rangos aparezcan todos los rangos en consola si alguien me ayuda se lo agradezco mucho
Código PHP:
#include <amxmisc>
#include <fakemeta>
#include <nfvault>
#include <cstrike>
#include <csx>
#include <fun>
#include <jctf>
#include <colorchat>

new const PLUGIN[] = "Nivel+Rangos"
#define VERSION "1.0"
new const AUTHOR[] = "kikizon"

/* =============================================
|= [EMPIEZA SECCION MODIFICABLE] =|
==============================================*/
/* ====================================
*[CONSTANTES]*
=====================================*/ 
new const WEB[] = "facebook.com/groups/Noobing.VE/"

#define SONIDO    "misc/killChicken.wav"
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA NOMBRE[30], FRAGS }

new const 
Rangos[][DATA] = {
    {
"Sin Rango"1},                          
    {
"0.Recien llegado"25},                 
    {
"1.Novato"50},                               
    {
"2.Aventurero"100},                                      
    {
"3.Principiante"150},                               
    {
"4.Experimentado"200},                             
    {
"5.Civil I"300},                                  
    {
"6.Civil II"600},                                 
    {
"7.Recluta"1200},                                    
    {
"8.Alistado"1600},                              
    {
"9.Soldado"2000},                                   
    {
"10.Distinguido"2500},                                                      
    {
"11.Cabo I"3500},                          
    {
"12.Cabo II"4500},                            
    {
"13.Sargento I"5000},                       
    {
"14.Sargento II"5500},                             
    {
"15.Sargento Mayor I"6000} ,                     
    {
"16.Sargento Mayor II"6500},                       
    {
"17.Sargento Ayudante"7000},                               
    {
"18.Sargento Supervisor"7500},                      
    {
"19.Sargento Tecnico I"8000},        
    {
"20.Sargento Tecnico II"8500},    
    {
"21.Maestro Tecnico I"9000},    
    {
"22.Maestro Tecnico II"9500},        
    {
"23.Maestro Tecnico Mayor"10000},
    {
"24.Maestro Tec. Supervisor"11000},        
    {
"25.Cadete"12000},            
    {
"26.Sub-Brigadier"13000},    
    {
"27.Brigadier"14000},    
    {
"28.Primer Brigadier"15000},            
    {
"29.Brigadier Mayor"16000},                    
    {
"30.Alferez"17000},        
    {
"31.Teniente"18000},
    {
"32.Primer Teniente"19000},        
    {
"33.Capitan"20000},                
    {
"34.Mayor"22000},    
    {
"35.Teniente Coronel"24000},                
    {
"36.Comandante"26000},    
    {
"37.Coronel"28000},
    {
"38.General de Brigada"30000},            
    {
"39.General de Division"33000},    
    {
"40.Mayor General"36000},                    
    {
"41.General en Jefe"39000},                
    {
"42.Guardia de Honor"43000},        
    {
"43.Fuerzas Especiales"47000},            
    {
"44.Asesino Profesional"52000},                
    {
"45.Selvatico Camuflado"57000},                
    {
"46.Desertico Experto"63000},                
    {
"47.Genocida"69000},                    
    {
"48.Infanteria Profesional"76000},                
    {
"49.Artillero"84000},            
    {
"50.Artillero de Torreta"92000},        
    {
"51.Tanquista"100000},                
    {
"52.Tanquista Anfibio"11000},        
    {
"53.Bombardero Terrorista"120000},            
    {
"54.Blindado"130000},                
    {
"55.Blindado Explosivo"140000},                
    {
"56.Cazador I"150000},    
    {
"57.Cazador II"160000},
    {
"58.Francotirador I"170000},                
    {
"59.Francotirador II"180000},    
    {
"60.Guardia de honor"190000},
    {
"61.Fuerzas Especiales"200000},
    {
"62.Destructor 1"210000}, 
    {
"63.Destructor 2"220000}, 
    {
"64.Masacrador 1"230000}, 
    {
"65.Masacrador 2"240000},
    {
"66.Exterminador 1"250000}, 
    {
"67.Exterminador 2"260000}, 
    {
"68.Nazi"270000}, 
    {
"69.Destripador"280000}, 
    {
"70.Berserker 1"290000}, 
    {
"71.Berserker 2"300000},
    {
"72.Grand Headshot"320000}, 
    {
"73.Headshot Supremo"340000}, 
    {
"74.Headshot Sagrado"360000}, 
    {
"75.Headshot Dios"380000}, 
    {
"76.Master Headshots 1"400000}, 
    {
"77.Master Headshots 2"420000},
    {
"78.Master Pro Kill 1"440000}, 
    {
"79.Master Pro Kill 2"460000}, 
    {
"80.Silver 1"480000}, 
    {
"81.Silver 2"500000}, 
    {
"82.Silver 3"520000}, 
    {
"83.Silver 4"540000},
    {
"84.Silver Elite"560000}, 
    {
"85.Silver Elite Master"580000}, 
    {
"86.Gold Nova 1"600000}, 
    {
"87.Gold Nova 2"620000}, 
    {
"88.Gold Nova 3"640000}, 
    {
"89.Gold Nova Master"660000},
    {
"90.Master Guardian 1"680000}, 
    {
"91.Master Guardian 2"700000}, 
    {
"92.Master Guardian Elite"720000}, 
    {
"93.Disting. Master Guardian"740000}, 
    {
"94.Legendary Eagle"760000}, 
    {
"95.Legendary Eagle Master"780000},
    {
"96.Supreme Master First Class"800000}, 
    {
"98.The Global Elite"820000}, 
    {
"98.Pro Gamers Finish 1"840000}, 
    {
"99.Pro Gamers Finish 2"900000},
    {
"100.NoobingGamer"900000},
    {
"NoobingGamer`s"9999999}
};


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

/* ====================================
*[VARIABLES]*
=====================================*/
new g_rango[33], g_frags[33]
new 
SyncHUDg_maxplayersg_msgTeamInfog_msgSayTextg_playername[33][32];
#define TASK_HUD 2100
#define ID_HUD (taskid - TASK_HUD)
#define XD is_user_connected(id) || !is_user_bot(id) || !is_user_hltv(id)
new VaultRango[128], szRangos[180], szKey[30]

new 
g_iCreateHudg_iMsgStatusText

/* ====================================
*[Cvars]*
=====================================*/
new cvar_Hudcvar_knifex2cvar_hsx2cvar_awpx2cvar_scoutx2cvar_hex2
/* ====================================
*[INIT]*
=====================================*/
public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
//register_event("DeathMsg", "Event_DeathMsg", "a")
    
    
register_clcmd("say""message_saytext"
    
register_clcmd("say_team""message_sayteam")
    
    
register_event("StatusValue""HookShowStatus""b""1=2""2>0")
    
register_event("StatusValue""HookHideStatus""b""1=1""2=0")
    
    
/* =============================================
    |= [EMPIEZA SECCION MODIFICABLE] =|
    ==============================================*/
    
cvar_Hud     register_cvar("rangos_hud""1")          // 1 - Saldra El HUD | 0 - Lo Desactivas
    
cvar_knifex2     register_cvar("rangos_knifex2""1")        // 1 - x2 frags con knife | 0 - Lo Desactivas
    
cvar_hsx2     register_cvar("rangos_hsx2""1")        // 1 - x2 frags de HeadShot | 0 - Lo Desactivas
    
cvar_awpx2     register_cvar("rangos_awpx2""0")        // 1 - x2 frags Con awp | 0 - Lo Desactivas
    
cvar_scoutx2    register_cvar("rangos_scoutx2""0")        // 1 - x2 frags Con scout | 0 - Lo Desactivas
    
cvar_hex2    register_cvar("rangos_hex2""1")        // 1 - x2 frags Con HE | 0 - Lo Desactivas        // 1 - x2 frags de HeadShot | 0 - ÑO :v
    /* =============================================
    |= [TERMINA SECCION MODIFICABLE] =|
    ==============================================*/
    
    
SyncHUD CreateHudSyncObj()
    
g_maxplayers get_maxplayers()
    
g_msgTeamInfo get_user_msgid("TeamInfo")
    
g_msgSayText get_user_msgid("SayText")
    
g_iCreateHud CreateHudSyncObj()
    
g_iMsgStatusText get_user_msgid("StatusText")
    
    
nfv_file("Ranguitos"VaultRangocharsmax(VaultRango))
}

public 
plugin_cfg()
    
set_cvar_num("mp_playerid"0);

/* ====================================
*[PRECACHE]*
=====================================*/
public plugin_precache()
    
precache_sound(SONIDO);
/* ===================================
*[HUD]*
=====================================*/
public HUD(taskid)
{
    new 
id ID_HUD
    
new izStats[8], izBody[8]
    new 
iRankPosiRankMax
    
    iRankPos 
get_user_stats(idizStatsizBody)
    
iRankMax get_statsnum()
    
    if(!
is_user_alive(id))
    {
        
id pev(idpev_iuser2)
        
        if(!
is_user_alive(id))
            return;
    }
    
    if(
id != ID_HUD)
    {
        
set_hudmessage(255255255, -1.00.8010.02.0)
        
ShowSyncHudMsg(ID_HUDSyncHUD"Exp: %d | Rango: %s"g_frags[id], Rangos[g_rango[id]][NOMBRE])
    }
    else
    {
        
set_hudmessage(255255255, -1.00.9010.02.0)
        
ShowSyncHudMsg(ID_HUDSyncHUD"Exp: %d / %d | Rango: %s^nRanking: %d de %d | Adrenalina: %d / 100"g_frags[id], Rangos[g_rango[id]][FRAGS], Rangos[g_rango[id]][NOMBRE], iRankPosiRankMaxjctf_get_adrenaline(id), WEB)
    }
}

public 
HookShowStatus(id)
{
    if(
is_user_alive(id))
    {
        static 
pid
        pid 
read_data(2)
        
        if(!
is_user_alive(pid))
            return
        
        static 
team 
        team 
get_user_team(pid)
        
        
message_begin(MSG_ONE_UNRELIABLEg_iMsgStatusText_id)
        
write_byte(0)
        
write_string("")
        
message_end()
        
        if(
team == 1)
        {
            
set_hudmessage(25500, -1.00.4020.013.00.010.01, -1)
            
ShowSyncHudMsg(idg_iCreateHud"[ %s ]^n%s"Rangos[g_rango[pid]][NOMBRE], g_playername[pid])
        }
        else if(
team == 2)
        {
            
set_hudmessage(0255255, -1.00.4020.013.00.010.01, -1)
            
ShowSyncHudMsg(idg_iCreateHud"[ %s ]^n%s"Rangos[g_rango[pid]][NOMBRE], g_playername[pid])
        }
    }
}

public 
HookHideStatus(id)
    
ClearSyncHud(idg_iCreateHud)

/* ==================================
    [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.5"HUD"id+TASK_HUD__"b")
}
/* ==================================
    [DISCONNECT]
===================================*/
public client_disconnect(id) {
    if(
XDGuardar(id);
        
    
remove_task(id+TASK_HUD)
}

/* ==================================
    [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] += ( is_user_admin( attacker ) ) ? 2:1;
        Guardar(attacker)
        if(get_pcvar_num(cvar_knifex2)) {
            if(weaponid == CSW_KNIFE) 
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2:1;
        }
        if(get_pcvar_num(cvar_hsx2)) {
            if(hs) g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2:1;
        }
        if(get_pcvar_num(cvar_awpx2)) {
            if(weaponid == CSW_AWP)
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2: 1;
        }
        if(get_pcvar_num(cvar_scoutx2)) {
            if(weaponid == CSW_SCOUT)
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2: 1;
        }
        if(get_pcvar_num(cvar_hex2)) {
            if(weaponid == CSW_HEGRENADE)
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2: 1;
        }
        AumentarRango(attacker)
    }
}*/

public client_deathattackervictimweaponhitplace )
{
    if(!
is_user_connected(attacker) || victim == attacker) return
    
    
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    
    if( 
weapon == CSW_KNIFE ) {
        if(
get_pcvar_num(cvar_knifex2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
hitplace == HIT_HEAD ) {
        if(
get_pcvar_num(cvar_hsx2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
weapon == CSW_AWP ) {
        if(
get_pcvar_num(cvar_awpx2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
weapon == CSW_SCOUT ) {
        (
get_pcvar_num(cvar_scoutx2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
weapon == CSW_HEGRENADE ) {
        (
get_pcvar_num(cvar_hex2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
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) {
        new 
name[33]; get_user_name(idname32)
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(0GREY"^1[^4NoobingGamer`s^1] !En Hora Buena! El Nuevo Rango de ^3%s ^1es: [^4%s^1]"nameRangos[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] == '!' || equal (said""))
        return 
PLUGIN_HANDLED
    
    
if(!ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
color[11], name[32]
    
get_user_team(id,color,charsmax(color))
    
get_user_name(id,name,charsmax(name))
    
    new 
alive is_user_alive(id)
    new 
is_adm is_user_admin(id)
    new 
tipo[32], flags get_user_flags(id)
    
    if (
flags ADMIN_LEVEL_Cformatex(tipocharsmax(tipo), "DUEÑO")
    else if (
flags ADMIN_LEVEL_Dformatex(tipocharsmax(tipo), "Socio")
    else if (
flags ADMIN_LEVEL_Bformatex(tipocharsmax(tipo), "VIP")
    else if (
flags ADMIN_LEVEL_Fformatex(tipocharsmax(tipo), "Baby Girl")
    else if (
flags ADMIN_LEVEL_Eformatex(tipocharsmax(tipo), "Spammer")
    
    if(
cs_get_user_team(id) == CS_TEAM_SPECTATOR)
    {
        if(
is_adm)
            
format(saidcharsmax(said), "^1*SPEC* [^3*^4%s^3*^1] ^3||^4%s^3|| ^4NoobingGamer`s ^3~> ^4%s ^1: %s"Rangos[g_rango[id]][NOMBRE], tiponamesaid)
        else
            
format(saidcharsmax(said), "^1*SPEC* [^3*^4%s^3*^1] %s : %s"Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    else
    {
        if(
is_adm)
            
format(saidcharsmax(said), "^1%s [^3*^4%s^3*^1] ^3||^4%s^3|| ^4NoobingGamer`s ^3~> ^4%s ^1: %s"alive "^1" "^1*Muerto*"Rangos[g_rango[id]][NOMBRE], tiponamesaid)
        else
            
format(saidcharsmax(said), "^1%s [^3*^4%s^3*^1] ^3%s ^1: %s"alive "^1" "^1*Muerto*"Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11]
    for(
1<= g_maxplayersi++)
    {
        if(!
is_user_connected(i))
            continue
        
        
get_user_name(id,name,charsmax(name))
        
        
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] == '!' || equal (said""))
        return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) return PLUGIN_CONTINUE
    
    static 
playerTeamplayerTeamName[19]
    
playerTeam get_user_team(id)
    
    switch(
playerTeam)
    {
        case 
1copy (playerTeamName6"TE")
        case 
2copy (playerTeamName8"CT"
        default: 
copy (playerTeamName11"SPEC"
    }

    static 
color[11], name[32], alive[11]
    
get_user_team(id,color,charsmax(color))
    
get_user_name(id,name,charsmax(name))
    new 
is_adm is_user_admin(id)
    new 
tipo[32], flags get_user_flags(id)
    
    if (
flags ADMIN_LEVEL_Cformatex(tipocharsmax(tipo), "DUEÑO")
    else if (
flags ADMIN_LEVEL_Dformatex(tipocharsmax(tipo), "Socio")
    else if (
flags ADMIN_LEVEL_Bformatex(tipocharsmax(tipo), "VIP")
    else if (
flags ADMIN_LEVEL_Fformatex(tipocharsmax(tipo), "Baby Girl")
    else if (
flags ADMIN_LEVEL_Eformatex(tipocharsmax(tipo), "Spammer")
    
    if (
is_user_alive (id)) {
        
alive ""
    
} else {
        
alive "*Muerto*"
    
}

    if(
is_adm) {
        
format(saidcharsmax(said), "^1%s [%s][^3*^4%s^3*^1] ^3||^4%s^3|| ^4NoobingGamer`s ^3~> ^4%s ^1: %s"aliveplayerTeamRangos[g_rango[id]], tiponamesaid)
    } else {
        
format(saidcharsmax(said), "^1%s [%s][^3*^4%s^3*^1] ^3%s ^1: %s"aliveplayerTeamRangos[g_rango[id]], namesaid)
    }

    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) {
    
formatex(szKeycharsmax(szKey), "data_rangos"
    
formatex(szRangoscharsmax(szRangos), "%d %d"g_frags[id], g_rango[id])
    
    
nfv_set_data(VaultRangoszKeyg_playername[id], szRangos)
}

Cargar(id) {
    new 
g_load_c1[25], g_load_c2[25]
    
formatex(szKeycharsmax(szKey), "data_rangos"
    
    if(!
nfv_get_data(VaultRangoszKeyg_playername[id], szRangossizeof(szRangos) - 1)) return; 
   
    
parse(szRangosg_load_c1charsmax(g_load_c1), g_load_c2charsmax(g_load_c2))
    
    
g_frags[id] = str_to_num(g_load_c1)
    
g_rango[id] = str_to_num(g_load_c2)

/* ===================================
*[STOCKS]*
=====================================*/
// stock de chatcolor
stock chatcolor(id, const input[], any:...) {
    new 
count 1players[32]; 
    static 
msg[191]; 
    
vformat(msg190input3); 
     
    
replace_all(msg190"!g""^4"); // Verde
    
replace_all(msg190"!y""^1"); // Default
    
replace_all(msg190"!t""^3"); // Color del Equipo 
     
    
if (idplayers[0] = id; else get_players(playerscount"ch"); { 
        for (new 
0counti++)  { 
            if (
is_user_connected(players[i])) { 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]); 
                
write_byte(players[i]); 
                
write_string(msg); 
                
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;

for( new i = 0; i < sizeof( Rangos ); ++i )
console.print("rango %s", rango[i][name_rango]);
(23/12/2019, 01:58 PM)Hypnotize escribió: [ -> ]for( new i = 0; i < sizeof( Rangos ); ++i )
console.print("rango %s", rango[i][name_rango]);

En que linea la coloco?
Crea un register cmd que llame a una función ( que debes crear ) y lo metes ahí we
(23/12/2019, 02:28 PM)Hypnotize escribió: [ -> ]Crea un register cmd que llame a una función ( que debes crear ) y lo metes ahí we

Esto fue lo que me puse a ver en un plugin, me puedes decir si sirve?

Código PHP:
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 !yse muestra en la consola."Prefijo)

Código PHP:
#include <amxmisc>
#include <fakemeta>
#include <nfvault>
#include <cstrike>
#include <csx>
#include <fun>
#include <jctf>
#include <colorchat>

new const PLUGIN[] = "Nivel+Rangos"
#define VERSION "1.0"
new const AUTHOR[] = "kikizon"

/* =============================================
|= [EMPIEZA SECCION MODIFICABLE] =|
==============================================*/
/* ====================================
*[CONSTANTES]*
=====================================*/ 
new const WEB[] = "facebook.com/groups/Noobing.VE/"

#define SONIDO    "misc/killChicken.wav"
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA NOMBRE[30], FRAGS }

new const 
Rangos[][DATA] = {
    {
"Sin Rango"1},                          
    {
"0.Recien llegado"25},                 
    {
"1.Novato"50},                               
    {
"2.Aventurero"100},                                      
    {
"3.Principiante"150},                               
    {
"4.Experimentado"200},                             
    {
"5.Civil I"300},                                  
    {
"6.Civil II"600},                                 
    {
"7.Recluta"1200},                                    
    {
"8.Alistado"1600},                              
    {
"9.Soldado"2000},                                   
    {
"10.Distinguido"2500},                                                      
    {
"11.Cabo I"3500},                          
    {
"12.Cabo II"4500},                            
    {
"13.Sargento I"5000},                       
    {
"14.Sargento II"5500},                             
    {
"15.Sargento Mayor I"6000} ,                     
    {
"16.Sargento Mayor II"6500},                       
    {
"17.Sargento Ayudante"7000},                               
    {
"18.Sargento Supervisor"7500},                      
    {
"19.Sargento Tecnico I"8000},        
    {
"20.Sargento Tecnico II"8500},    
    {
"21.Maestro Tecnico I"9000},    
    {
"22.Maestro Tecnico II"9500},        
    {
"23.Maestro Tecnico Mayor"10000},
    {
"24.Maestro Tec. Supervisor"11000},        
    {
"25.Cadete"12000},            
    {
"26.Sub-Brigadier"13000},    
    {
"27.Brigadier"14000},    
    {
"28.Primer Brigadier"15000},            
    {
"29.Brigadier Mayor"16000},                    
    {
"30.Alferez"17000},        
    {
"31.Teniente"18000},
    {
"32.Primer Teniente"19000},        
    {
"33.Capitan"20000},                
    {
"34.Mayor"22000},    
    {
"35.Teniente Coronel"24000},                
    {
"36.Comandante"26000},    
    {
"37.Coronel"28000},
    {
"38.General de Brigada"30000},            
    {
"39.General de Division"33000},    
    {
"40.Mayor General"36000},                    
    {
"41.General en Jefe"39000},                
    {
"42.Guardia de Honor"43000},        
    {
"43.Fuerzas Especiales"47000},            
    {
"44.Asesino Profesional"52000},                
    {
"45.Selvatico Camuflado"57000},                
    {
"46.Desertico Experto"63000},                
    {
"47.Genocida"69000},                    
    {
"48.Infanteria Profesional"76000},                
    {
"49.Artillero"84000},            
    {
"50.Artillero de Torreta"92000},        
    {
"51.Tanquista"100000},                
    {
"52.Tanquista Anfibio"11000},        
    {
"53.Bombardero Terrorista"120000},            
    {
"54.Blindado"130000},                
    {
"55.Blindado Explosivo"140000},                
    {
"56.Cazador I"150000},    
    {
"57.Cazador II"160000},
    {
"58.Francotirador I"170000},                
    {
"59.Francotirador II"180000},    
    {
"60.Guardia de honor"190000},
    {
"61.Fuerzas Especiales"200000},
    {
"62.Destructor 1"210000}, 
    {
"63.Destructor 2"220000}, 
    {
"64.Masacrador 1"230000}, 
    {
"65.Masacrador 2"240000},
    {
"66.Exterminador 1"250000}, 
    {
"67.Exterminador 2"260000}, 
    {
"68.Nazi"270000}, 
    {
"69.Destripador"280000}, 
    {
"70.Berserker 1"290000}, 
    {
"71.Berserker 2"300000},
    {
"72.Grand Headshot"320000}, 
    {
"73.Headshot Supremo"340000}, 
    {
"74.Headshot Sagrado"360000}, 
    {
"75.Headshot Dios"380000}, 
    {
"76.Master Headshots 1"400000}, 
    {
"77.Master Headshots 2"420000},
    {
"78.Master Pro Kill 1"440000}, 
    {
"79.Master Pro Kill 2"460000}, 
    {
"80.Silver 1"480000}, 
    {
"81.Silver 2"500000}, 
    {
"82.Silver 3"520000}, 
    {
"83.Silver 4"540000},
    {
"84.Silver Elite"560000}, 
    {
"85.Silver Elite Master"580000}, 
    {
"86.Gold Nova 1"600000}, 
    {
"87.Gold Nova 2"620000}, 
    {
"88.Gold Nova 3"640000}, 
    {
"89.Gold Nova Master"660000},
    {
"90.Master Guardian 1"680000}, 
    {
"91.Master Guardian 2"700000}, 
    {
"92.Master Guardian Elite"720000}, 
    {
"93.Disting. Master Guardian"740000}, 
    {
"94.Legendary Eagle"760000}, 
    {
"95.Legendary Eagle Master"780000},
    {
"96.Supreme Master First Class"800000}, 
    {
"98.The Global Elite"820000}, 
    {
"98.Pro Gamers Finish 1"840000}, 
    {
"99.Pro Gamers Finish 2"900000},
    {
"100.NoobingGamer"900000},
    {
"NoobingGamer`s"9999999}
};


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

/* ====================================
*[VARIABLES]*
=====================================*/
new g_rango[33], g_frags[33]
new 
SyncHUDg_maxplayersg_msgTeamInfog_msgSayTextg_playername[33][32];
#define TASK_HUD 2100
#define ID_HUD (taskid - TASK_HUD)
#define XD is_user_connected(id) || !is_user_bot(id) || !is_user_hltv(id)
new VaultRango[128], szRangos[180], szKey[30]

new 
g_iCreateHudg_iMsgStatusText

/* ====================================
*[Cvars]*
=====================================*/
new cvar_Hudcvar_knifex2cvar_hsx2cvar_awpx2cvar_scoutx2cvar_hex2
/* ====================================
*[INIT]*
=====================================*/
public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
//register_event("DeathMsg", "Event_DeathMsg", "a")
    
    
register_clcmd"say /ranks""OnPlayerPrint_Ranks" );

    
register_clcmd("say""message_saytext"
    
register_clcmd("say_team""message_sayteam")
    
    
register_event("StatusValue""HookShowStatus""b""1=2""2>0")
    
register_event("StatusValue""HookHideStatus""b""1=1""2=0")
    
    
/* =============================================
    |= [EMPIEZA SECCION MODIFICABLE] =|
    ==============================================*/
    
cvar_Hud     register_cvar("rangos_hud""1")          // 1 - Saldra El HUD | 0 - Lo Desactivas
    
cvar_knifex2     register_cvar("rangos_knifex2""1")        // 1 - x2 frags con knife | 0 - Lo Desactivas
    
cvar_hsx2     register_cvar("rangos_hsx2""1")        // 1 - x2 frags de HeadShot | 0 - Lo Desactivas
    
cvar_awpx2     register_cvar("rangos_awpx2""0")        // 1 - x2 frags Con awp | 0 - Lo Desactivas
    
cvar_scoutx2    register_cvar("rangos_scoutx2""0")        // 1 - x2 frags Con scout | 0 - Lo Desactivas
    
cvar_hex2    register_cvar("rangos_hex2""1")        // 1 - x2 frags Con HE | 0 - Lo Desactivas        // 1 - x2 frags de HeadShot | 0 - ÑO :v
    /* =============================================
    |= [TERMINA SECCION MODIFICABLE] =|
    ==============================================*/
    
    
SyncHUD CreateHudSyncObj()
    
g_maxplayers get_maxplayers()
    
g_msgTeamInfo get_user_msgid("TeamInfo")
    
g_msgSayText get_user_msgid("SayText")
    
g_iCreateHud CreateHudSyncObj()
    
g_iMsgStatusText get_user_msgid("StatusText")
    
    
nfv_file("Ranguitos"VaultRangocharsmax(VaultRango))
}

public 
plugin_cfg()
    
set_cvar_num("mp_playerid"0);

/* ====================================
*[PRECACHE]*
=====================================*/
public plugin_precache()
    
precache_sound(SONIDO);
/* ===================================
*[HUD]*
=====================================*/

public OnPlayerPrint_Ranks( const iPlayerID ) {

    if( !
is_user_connectediPlayerID ) )
        return 
PLUGIN_CONTINUE;

    for( new 
iNum 0iNum sizeofRangos ); ++iNum )
        
console_printiPlayerID"Rango #%i: %s"iNumRangosiNum ][ NOMBRE ] );

    
client_cmdiPlayerID"toggleconsole" );

    return 
PLUGIN_HANDLED;    
}

public 
HUD(taskid)
{
    new 
id ID_HUD
    
new izStats[8], izBody[8]
    new 
iRankPosiRankMax
    
    iRankPos 
get_user_stats(idizStatsizBody)
    
iRankMax get_statsnum()
    
    if(!
is_user_alive(id))
    {
        
id pev(idpev_iuser2)
        
        if(!
is_user_alive(id))
            return;
    }
    
    if(
id != ID_HUD)
    {
        
set_hudmessage(255255255, -1.00.8010.02.0)
        
ShowSyncHudMsg(ID_HUDSyncHUD"Exp: %d | Rango: %s"g_frags[id], Rangos[g_rango[id]][NOMBRE])
    }
    else
    {
        
set_hudmessage(255255255, -1.00.9010.02.0)
        
ShowSyncHudMsg(ID_HUDSyncHUD"Exp: %d / %d | Rango: %s^nRanking: %d de %d | Adrenalina: %d / 100"g_frags[id], Rangos[g_rango[id]][FRAGS], Rangos[g_rango[id]][NOMBRE], iRankPosiRankMaxjctf_get_adrenaline(id), WEB)
    }
}

public 
HookShowStatus(id)
{
    if(
is_user_alive(id))
    {
        static 
pid
        pid 
read_data(2)
        
        if(!
is_user_alive(pid))
            return
        
        static 
team 
        team 
get_user_team(pid)
        
        
message_begin(MSG_ONE_UNRELIABLEg_iMsgStatusText_id)
        
write_byte(0)
        
write_string("")
        
message_end()
        
        if(
team == 1)
        {
            
set_hudmessage(25500, -1.00.4020.013.00.010.01, -1)
            
ShowSyncHudMsg(idg_iCreateHud"[ %s ]^n%s"Rangos[g_rango[pid]][NOMBRE], g_playername[pid])
        }
        else if(
team == 2)
        {
            
set_hudmessage(0255255, -1.00.4020.013.00.010.01, -1)
            
ShowSyncHudMsg(idg_iCreateHud"[ %s ]^n%s"Rangos[g_rango[pid]][NOMBRE], g_playername[pid])
        }
    }
}

public 
HookHideStatus(id)
    
ClearSyncHud(idg_iCreateHud)

/* ==================================
    [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.5"HUD"id+TASK_HUD__"b")
}
/* ==================================
    [DISCONNECT]
===================================*/
public client_disconnected(id) {
    if(
XDGuardar(id);
        
    
remove_task(id+TASK_HUD)
}

/* ==================================
    [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] += ( is_user_admin( attacker ) ) ? 2:1;
        Guardar(attacker)
        if(get_pcvar_num(cvar_knifex2)) {
            if(weaponid == CSW_KNIFE) 
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2:1;
        }
        if(get_pcvar_num(cvar_hsx2)) {
            if(hs) g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2:1;
        }
        if(get_pcvar_num(cvar_awpx2)) {
            if(weaponid == CSW_AWP)
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2: 1;
        }
        if(get_pcvar_num(cvar_scoutx2)) {
            if(weaponid == CSW_SCOUT)
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2: 1;
        }
        if(get_pcvar_num(cvar_hex2)) {
            if(weaponid == CSW_HEGRENADE)
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2: 1;
        }
        AumentarRango(attacker)
    }
}*/

public client_deathattackervictimweaponhitplace )
{
    if(!
is_user_connected(attacker) || victim == attacker) return
    
    
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    
    if( 
weapon == CSW_KNIFE ) {
        if(
get_pcvar_num(cvar_knifex2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
hitplace == HIT_HEAD ) {
        if(
get_pcvar_num(cvar_hsx2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
weapon == CSW_AWP ) {
        if(
get_pcvar_num(cvar_awpx2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
weapon == CSW_SCOUT ) {
        (
get_pcvar_num(cvar_scoutx2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
weapon == CSW_HEGRENADE ) {
        (
get_pcvar_num(cvar_hex2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
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) {
        new 
name[33]; get_user_name(idname32)
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(0GREY"^1[^4NoobingGamer`s^1] !En Hora Buena! El Nuevo Rango de ^3%s ^1es: [^4%s^1]"nameRangos[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] == '!' || equal (said""))
        return 
PLUGIN_HANDLED
    
    
if(!ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
color[11], name[32]
    
get_user_team(id,color,charsmax(color))
    
get_user_name(id,name,charsmax(name))
    
    new 
alive is_user_alive(id)
    new 
is_adm is_user_admin(id)
    new 
tipo[32], flags get_user_flags(id)
    
    if (
flags ADMIN_LEVEL_Cformatex(tipocharsmax(tipo), "DUEÑO")
    else if (
flags ADMIN_LEVEL_Dformatex(tipocharsmax(tipo), "Socio")
    else if (
flags ADMIN_LEVEL_Bformatex(tipocharsmax(tipo), "VIP")
    else if (
flags ADMIN_LEVEL_Fformatex(tipocharsmax(tipo), "Baby Girl")
    else if (
flags ADMIN_LEVEL_Eformatex(tipocharsmax(tipo), "Spammer")
    
    if(
cs_get_user_team(id) == CS_TEAM_SPECTATOR)
    {
        if(
is_adm)
            
format(saidcharsmax(said), "^1*SPEC* [^3*^4%s^3*^1] ^3||^4%s^3|| ^4NoobingGamer`s ^3~> ^4%s ^1: %s"Rangos[g_rango[id]][NOMBRE], tiponamesaid)
        else
            
format(saidcharsmax(said), "^1*SPEC* [^3*^4%s^3*^1] %s : %s"Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    else
    {
        if(
is_adm)
            
format(saidcharsmax(said), "^1%s [^3*^4%s^3*^1] ^3||^4%s^3|| ^4NoobingGamer`s ^3~> ^4%s ^1: %s"alive "^1" "^1*Muerto*"Rangos[g_rango[id]][NOMBRE], tiponamesaid)
        else
            
format(saidcharsmax(said), "^1%s [^3*^4%s^3*^1] ^3%s ^1: %s"alive "^1" "^1*Muerto*"Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11]
    for(
1<= g_maxplayersi++)
    {
        if(!
is_user_connected(i))
            continue
        
        
get_user_name(id,name,charsmax(name))
        
        
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] == '!' || equal (said""))
        return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) return PLUGIN_CONTINUE
    
    static 
playerTeamplayerTeamName[19]
    
playerTeam get_user_team(id)
    
    switch(
playerTeam)
    {
        case 
1copy (playerTeamName6"TE")
        case 
2copy (playerTeamName8"CT"
        default: 
copy (playerTeamName11"SPEC"
    }

    static 
color[11], name[32], alive[11]
    
get_user_team(id,color,charsmax(color))
    
get_user_name(id,name,charsmax(name))
    new 
is_adm is_user_admin(id)
    new 
tipo[32], flags get_user_flags(id)
    
    if (
flags ADMIN_LEVEL_Cformatex(tipocharsmax(tipo), "DUEÑO")
    else if (
flags ADMIN_LEVEL_Dformatex(tipocharsmax(tipo), "Socio")
    else if (
flags ADMIN_LEVEL_Bformatex(tipocharsmax(tipo), "VIP")
    else if (
flags ADMIN_LEVEL_Fformatex(tipocharsmax(tipo), "Baby Girl")
    else if (
flags ADMIN_LEVEL_Eformatex(tipocharsmax(tipo), "Spammer")
    
    if (
is_user_alive (id)) {
        
alive ""
    
} else {
        
alive "*Muerto*"
    
}

    if(
is_adm) {
        
format(saidcharsmax(said), "^1%s [%s][^3*^4%s^3*^1] ^3||^4%s^3|| ^4NoobingGamer`s ^3~> ^4%s ^1: %s"aliveplayerTeamRangos[g_rango[id]], tiponamesaid)
    } else {
        
format(saidcharsmax(said), "^1%s [%s][^3*^4%s^3*^1] ^3%s ^1: %s"aliveplayerTeamRangos[g_rango[id]], namesaid)
    }

    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) {
    
formatex(szKeycharsmax(szKey), "data_rangos"
    
formatex(szRangoscharsmax(szRangos), "%d %d"g_frags[id], g_rango[id])
    
    
nfv_set_data(VaultRangoszKeyg_playername[id], szRangos)
}

Cargar(id) {
    new 
g_load_c1[25], g_load_c2[25]
    
formatex(szKeycharsmax(szKey), "data_rangos"
    
    if(!
nfv_get_data(VaultRangoszKeyg_playername[id], szRangossizeof(szRangos) - 1)) return; 
   
    
parse(szRangosg_load_c1charsmax(g_load_c1), g_load_c2charsmax(g_load_c2))
    
    
g_frags[id] = str_to_num(g_load_c1)
    
g_rango[id] = str_to_num(g_load_c2)

/* ===================================
*[STOCKS]*
=====================================*/
// stock de chatcolor
stock chatcolor(id, const input[], any:...) {
    new 
count 1players[32]; 
    static 
msg[191]; 
    
vformat(msg190input3); 
     
    
replace_all(msg190"!g""^4"); // Verde
    
replace_all(msg190"!y""^1"); // Default
    
replace_all(msg190"!t""^3"); // Color del Equipo 
     
    
if (idplayers[0] = id; else get_players(playerscount"ch"); { 
        for (new 
0counti++)  { 
            if (
is_user_connected(players[i])) { 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]); 
                
write_byte(players[i]); 
                
write_string(msg); 
                
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;

(23/12/2019, 04:05 PM)Chema escribió: [ -> ]
Código PHP:
#include <amxmisc>
#include <fakemeta>
#include <nfvault>
#include <cstrike>
#include <csx>
#include <fun>
#include <jctf>
#include <colorchat>

new const PLUGIN[] = "Nivel+Rangos"
#define VERSION "1.0"
new const AUTHOR[] = "kikizon"

/* =============================================
|= [EMPIEZA SECCION MODIFICABLE] =|
==============================================*/
/* ====================================
*[CONSTANTES]*
=====================================*/ 
new const WEB[] = "facebook.com/groups/Noobing.VE/"

#define SONIDO    "misc/killChicken.wav"
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA NOMBRE[30], FRAGS }

new const 
Rangos[][DATA] = {
    {
"Sin Rango"1},                          
    {
"0.Recien llegado"25},                 
    {
"1.Novato"50},                               
    {
"2.Aventurero"100},                                      
    {
"3.Principiante"150},                               
    {
"4.Experimentado"200},                             
    {
"5.Civil I"300},                                  
    {
"6.Civil II"600},                                 
    {
"7.Recluta"1200},                                    
    {
"8.Alistado"1600},                              
    {
"9.Soldado"2000},                                   
    {
"10.Distinguido"2500},                                                      
    {
"11.Cabo I"3500},                          
    {
"12.Cabo II"4500},                            
    {
"13.Sargento I"5000},                       
    {
"14.Sargento II"5500},                             
    {
"15.Sargento Mayor I"6000} ,                     
    {
"16.Sargento Mayor II"6500},                       
    {
"17.Sargento Ayudante"7000},                               
    {
"18.Sargento Supervisor"7500},                      
    {
"19.Sargento Tecnico I"8000},        
    {
"20.Sargento Tecnico II"8500},    
    {
"21.Maestro Tecnico I"9000},    
    {
"22.Maestro Tecnico II"9500},        
    {
"23.Maestro Tecnico Mayor"10000},
    {
"24.Maestro Tec. Supervisor"11000},        
    {
"25.Cadete"12000},            
    {
"26.Sub-Brigadier"13000},    
    {
"27.Brigadier"14000},    
    {
"28.Primer Brigadier"15000},            
    {
"29.Brigadier Mayor"16000},                    
    {
"30.Alferez"17000},        
    {
"31.Teniente"18000},
    {
"32.Primer Teniente"19000},        
    {
"33.Capitan"20000},                
    {
"34.Mayor"22000},    
    {
"35.Teniente Coronel"24000},                
    {
"36.Comandante"26000},    
    {
"37.Coronel"28000},
    {
"38.General de Brigada"30000},            
    {
"39.General de Division"33000},    
    {
"40.Mayor General"36000},                    
    {
"41.General en Jefe"39000},                
    {
"42.Guardia de Honor"43000},        
    {
"43.Fuerzas Especiales"47000},            
    {
"44.Asesino Profesional"52000},                
    {
"45.Selvatico Camuflado"57000},                
    {
"46.Desertico Experto"63000},                
    {
"47.Genocida"69000},                    
    {
"48.Infanteria Profesional"76000},                
    {
"49.Artillero"84000},            
    {
"50.Artillero de Torreta"92000},        
    {
"51.Tanquista"100000},                
    {
"52.Tanquista Anfibio"11000},        
    {
"53.Bombardero Terrorista"120000},            
    {
"54.Blindado"130000},                
    {
"55.Blindado Explosivo"140000},                
    {
"56.Cazador I"150000},    
    {
"57.Cazador II"160000},
    {
"58.Francotirador I"170000},                
    {
"59.Francotirador II"180000},    
    {
"60.Guardia de honor"190000},
    {
"61.Fuerzas Especiales"200000},
    {
"62.Destructor 1"210000}, 
    {
"63.Destructor 2"220000}, 
    {
"64.Masacrador 1"230000}, 
    {
"65.Masacrador 2"240000},
    {
"66.Exterminador 1"250000}, 
    {
"67.Exterminador 2"260000}, 
    {
"68.Nazi"270000}, 
    {
"69.Destripador"280000}, 
    {
"70.Berserker 1"290000}, 
    {
"71.Berserker 2"300000},
    {
"72.Grand Headshot"320000}, 
    {
"73.Headshot Supremo"340000}, 
    {
"74.Headshot Sagrado"360000}, 
    {
"75.Headshot Dios"380000}, 
    {
"76.Master Headshots 1"400000}, 
    {
"77.Master Headshots 2"420000},
    {
"78.Master Pro Kill 1"440000}, 
    {
"79.Master Pro Kill 2"460000}, 
    {
"80.Silver 1"480000}, 
    {
"81.Silver 2"500000}, 
    {
"82.Silver 3"520000}, 
    {
"83.Silver 4"540000},
    {
"84.Silver Elite"560000}, 
    {
"85.Silver Elite Master"580000}, 
    {
"86.Gold Nova 1"600000}, 
    {
"87.Gold Nova 2"620000}, 
    {
"88.Gold Nova 3"640000}, 
    {
"89.Gold Nova Master"660000},
    {
"90.Master Guardian 1"680000}, 
    {
"91.Master Guardian 2"700000}, 
    {
"92.Master Guardian Elite"720000}, 
    {
"93.Disting. Master Guardian"740000}, 
    {
"94.Legendary Eagle"760000}, 
    {
"95.Legendary Eagle Master"780000},
    {
"96.Supreme Master First Class"800000}, 
    {
"98.The Global Elite"820000}, 
    {
"98.Pro Gamers Finish 1"840000}, 
    {
"99.Pro Gamers Finish 2"900000},
    {
"100.NoobingGamer"900000},
    {
"NoobingGamer`s"9999999}
};


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

/* ====================================
*[VARIABLES]*
=====================================*/
new g_rango[33], g_frags[33]
new 
SyncHUDg_maxplayersg_msgTeamInfog_msgSayTextg_playername[33][32];
#define TASK_HUD 2100
#define ID_HUD (taskid - TASK_HUD)
#define XD is_user_connected(id) || !is_user_bot(id) || !is_user_hltv(id)
new VaultRango[128], szRangos[180], szKey[30]

new 
g_iCreateHudg_iMsgStatusText

/* ====================================
*[Cvars]*
=====================================*/
new cvar_Hudcvar_knifex2cvar_hsx2cvar_awpx2cvar_scoutx2cvar_hex2
/* ====================================
*[INIT]*
=====================================*/
public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
//register_event("DeathMsg", "Event_DeathMsg", "a")
    
    
register_clcmd"say /ranks""OnPlayerPrint_Ranks" );

    
register_clcmd("say""message_saytext"
    
register_clcmd("say_team""message_sayteam")
    
    
register_event("StatusValue""HookShowStatus""b""1=2""2>0")
    
register_event("StatusValue""HookHideStatus""b""1=1""2=0")
    
    
/* =============================================
    |= [EMPIEZA SECCION MODIFICABLE] =|
    ==============================================*/
    
cvar_Hud     register_cvar("rangos_hud""1")          // 1 - Saldra El HUD | 0 - Lo Desactivas
    
cvar_knifex2     register_cvar("rangos_knifex2""1")        // 1 - x2 frags con knife | 0 - Lo Desactivas
    
cvar_hsx2     register_cvar("rangos_hsx2""1")        // 1 - x2 frags de HeadShot | 0 - Lo Desactivas
    
cvar_awpx2     register_cvar("rangos_awpx2""0")        // 1 - x2 frags Con awp | 0 - Lo Desactivas
    
cvar_scoutx2    register_cvar("rangos_scoutx2""0")        // 1 - x2 frags Con scout | 0 - Lo Desactivas
    
cvar_hex2    register_cvar("rangos_hex2""1")        // 1 - x2 frags Con HE | 0 - Lo Desactivas        // 1 - x2 frags de HeadShot | 0 - ÑO :v
    /* =============================================
    |= [TERMINA SECCION MODIFICABLE] =|
    ==============================================*/
    
    
SyncHUD CreateHudSyncObj()
    
g_maxplayers get_maxplayers()
    
g_msgTeamInfo get_user_msgid("TeamInfo")
    
g_msgSayText get_user_msgid("SayText")
    
g_iCreateHud CreateHudSyncObj()
    
g_iMsgStatusText get_user_msgid("StatusText")
    
    
nfv_file("Ranguitos"VaultRangocharsmax(VaultRango))
}

public 
plugin_cfg()
    
set_cvar_num("mp_playerid"0);

/* ====================================
*[PRECACHE]*
=====================================*/
public plugin_precache()
    
precache_sound(SONIDO);
/* ===================================
*[HUD]*
=====================================*/

public OnPlayerPrint_Ranks( const iPlayerID ) {

    if( !
is_user_connectediPlayerID ) )
        return 
PLUGIN_CONTINUE;

    for( new 
iNum 0iNum sizeofRangos ); ++iNum )
        
console_printiPlayerID"Rango #%i: %s"iNumRangosiNum ][ NOMBRE ] );

    
client_cmdiPlayerID"toggleconsole" );

    return 
PLUGIN_HANDLED;    
}

public 
HUD(taskid)
{
    new 
id ID_HUD
    
new izStats[8], izBody[8]
    new 
iRankPosiRankMax
    
    iRankPos 
get_user_stats(idizStatsizBody)
    
iRankMax get_statsnum()
    
    if(!
is_user_alive(id))
    {
        
id pev(idpev_iuser2)
        
        if(!
is_user_alive(id))
            return;
    }
    
    if(
id != ID_HUD)
    {
        
set_hudmessage(255255255, -1.00.8010.02.0)
        
ShowSyncHudMsg(ID_HUDSyncHUD"Exp: %d | Rango: %s"g_frags[id], Rangos[g_rango[id]][NOMBRE])
    }
    else
    {
        
set_hudmessage(255255255, -1.00.9010.02.0)
        
ShowSyncHudMsg(ID_HUDSyncHUD"Exp: %d / %d | Rango: %s^nRanking: %d de %d | Adrenalina: %d / 100"g_frags[id], Rangos[g_rango[id]][FRAGS], Rangos[g_rango[id]][NOMBRE], iRankPosiRankMaxjctf_get_adrenaline(id), WEB)
    }
}

public 
HookShowStatus(id)
{
    if(
is_user_alive(id))
    {
        static 
pid
        pid 
read_data(2)
        
        if(!
is_user_alive(pid))
            return
        
        static 
team 
        team 
get_user_team(pid)
        
        
message_begin(MSG_ONE_UNRELIABLEg_iMsgStatusText_id)
        
write_byte(0)
        
write_string("")
        
message_end()
        
        if(
team == 1)
        {
            
set_hudmessage(25500, -1.00.4020.013.00.010.01, -1)
            
ShowSyncHudMsg(idg_iCreateHud"[ %s ]^n%s"Rangos[g_rango[pid]][NOMBRE], g_playername[pid])
        }
        else if(
team == 2)
        {
            
set_hudmessage(0255255, -1.00.4020.013.00.010.01, -1)
            
ShowSyncHudMsg(idg_iCreateHud"[ %s ]^n%s"Rangos[g_rango[pid]][NOMBRE], g_playername[pid])
        }
    }
}

public 
HookHideStatus(id)
    
ClearSyncHud(idg_iCreateHud)

/* ==================================
    [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.5"HUD"id+TASK_HUD__"b")
}
/* ==================================
    [DISCONNECT]
===================================*/
public client_disconnected(id) {
    if(
XDGuardar(id);
        
    
remove_task(id+TASK_HUD)
}

/* ==================================
    [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] += ( is_user_admin( attacker ) ) ? 2:1;
        Guardar(attacker)
        if(get_pcvar_num(cvar_knifex2)) {
            if(weaponid == CSW_KNIFE) 
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2:1;
        }
        if(get_pcvar_num(cvar_hsx2)) {
            if(hs) g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2:1;
        }
        if(get_pcvar_num(cvar_awpx2)) {
            if(weaponid == CSW_AWP)
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2: 1;
        }
        if(get_pcvar_num(cvar_scoutx2)) {
            if(weaponid == CSW_SCOUT)
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2: 1;
        }
        if(get_pcvar_num(cvar_hex2)) {
            if(weaponid == CSW_HEGRENADE)
                g_frags[attacker] += ( is_user_admin( attacker ) ) ? 2: 1;
        }
        AumentarRango(attacker)
    }
}*/

public client_deathattackervictimweaponhitplace )
{
    if(!
is_user_connected(attacker) || victim == attacker) return
    
    
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    
    if( 
weapon == CSW_KNIFE ) {
        if(
get_pcvar_num(cvar_knifex2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
hitplace == HIT_HEAD ) {
        if(
get_pcvar_num(cvar_hsx2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
weapon == CSW_AWP ) {
        if(
get_pcvar_num(cvar_awpx2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
weapon == CSW_SCOUT ) {
        (
get_pcvar_num(cvar_scoutx2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
    if( 
weapon == CSW_HEGRENADE ) {
        (
get_pcvar_num(cvar_hex2))
        
g_frags[attacker] += ( is_user_adminattacker ) ) ? 21;
    }
    
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) {
        new 
name[33]; get_user_name(idname32)
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(idGREY"^1[^4NoobingGamer`s^1] !Felicidades! Tu Nuevo ^3Rango ^1es: [^4%s^1]"Rangos[g_rango[id]][NOMBRE])
        
ColorChat(0GREY"^1[^4NoobingGamer`s^1] !En Hora Buena! El Nuevo Rango de ^3%s ^1es: [^4%s^1]"nameRangos[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] == '!' || equal (said""))
        return 
PLUGIN_HANDLED
    
    
if(!ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
color[11], name[32]
    
get_user_team(id,color,charsmax(color))
    
get_user_name(id,name,charsmax(name))
    
    new 
alive is_user_alive(id)
    new 
is_adm is_user_admin(id)
    new 
tipo[32], flags get_user_flags(id)
    
    if (
flags ADMIN_LEVEL_Cformatex(tipocharsmax(tipo), "DUEÑO")
    else if (
flags ADMIN_LEVEL_Dformatex(tipocharsmax(tipo), "Socio")
    else if (
flags ADMIN_LEVEL_Bformatex(tipocharsmax(tipo), "VIP")
    else if (
flags ADMIN_LEVEL_Fformatex(tipocharsmax(tipo), "Baby Girl")
    else if (
flags ADMIN_LEVEL_Eformatex(tipocharsmax(tipo), "Spammer")
    
    if(
cs_get_user_team(id) == CS_TEAM_SPECTATOR)
    {
        if(
is_adm)
            
format(saidcharsmax(said), "^1*SPEC* [^3*^4%s^3*^1] ^3||^4%s^3|| ^4NoobingGamer`s ^3~> ^4%s ^1: %s"Rangos[g_rango[id]][NOMBRE], tiponamesaid)
        else
            
format(saidcharsmax(said), "^1*SPEC* [^3*^4%s^3*^1] %s : %s"Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    else
    {
        if(
is_adm)
            
format(saidcharsmax(said), "^1%s [^3*^4%s^3*^1] ^3||^4%s^3|| ^4NoobingGamer`s ^3~> ^4%s ^1: %s"alive "^1" "^1*Muerto*"Rangos[g_rango[id]][NOMBRE], tiponamesaid)
        else
            
format(saidcharsmax(said), "^1%s [^3*^4%s^3*^1] ^3%s ^1: %s"alive "^1" "^1*Muerto*"Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11]
    for(
1<= g_maxplayersi++)
    {
        if(!
is_user_connected(i))
            continue
        
        
get_user_name(id,name,charsmax(name))
        
        
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] == '!' || equal (said""))
        return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) return PLUGIN_CONTINUE
    
    static 
playerTeamplayerTeamName[19]
    
playerTeam get_user_team(id)
    
    switch(
playerTeam)
    {
        case 
1copy (playerTeamName6"TE")
        case 
2copy (playerTeamName8"CT"
        default: 
copy (playerTeamName11"SPEC"
    }

    static 
color[11], name[32], alive[11]
    
get_user_team(id,color,charsmax(color))
    
get_user_name(id,name,charsmax(name))
    new 
is_adm is_user_admin(id)
    new 
tipo[32], flags get_user_flags(id)
    
    if (
flags ADMIN_LEVEL_Cformatex(tipocharsmax(tipo), "DUEÑO")
    else if (
flags ADMIN_LEVEL_Dformatex(tipocharsmax(tipo), "Socio")
    else if (
flags ADMIN_LEVEL_Bformatex(tipocharsmax(tipo), "VIP")
    else if (
flags ADMIN_LEVEL_Fformatex(tipocharsmax(tipo), "Baby Girl")
    else if (
flags ADMIN_LEVEL_Eformatex(tipocharsmax(tipo), "Spammer")
    
    if (
is_user_alive (id)) {
        
alive ""
    
} else {
        
alive "*Muerto*"
    
}

    if(
is_adm) {
        
format(saidcharsmax(said), "^1%s [%s][^3*^4%s^3*^1] ^3||^4%s^3|| ^4NoobingGamer`s ^3~> ^4%s ^1: %s"aliveplayerTeamRangos[g_rango[id]], tiponamesaid)
    } else {
        
format(saidcharsmax(said), "^1%s [%s][^3*^4%s^3*^1] ^3%s ^1: %s"aliveplayerTeamRangos[g_rango[id]], namesaid)
    }

    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) {
    
formatex(szKeycharsmax(szKey), "data_rangos"
    
formatex(szRangoscharsmax(szRangos), "%d %d"g_frags[id], g_rango[id])
    
    
nfv_set_data(VaultRangoszKeyg_playername[id], szRangos)
}

Cargar(id) {
    new 
g_load_c1[25], g_load_c2[25]
    
formatex(szKeycharsmax(szKey), "data_rangos"
    
    if(!
nfv_get_data(VaultRangoszKeyg_playername[id], szRangossizeof(szRangos) - 1)) return; 
   
    
parse(szRangosg_load_c1charsmax(g_load_c1), g_load_c2charsmax(g_load_c2))
    
    
g_frags[id] = str_to_num(g_load_c1)
    
g_rango[id] = str_to_num(g_load_c2)

/* ===================================
*[STOCKS]*
=====================================*/
// stock de chatcolor
stock chatcolor(id, const input[], any:...) {
    new 
count 1players[32]; 
    static 
msg[191]; 
    
vformat(msg190input3); 
     
    
replace_all(msg190"!g""^4"); // Verde
    
replace_all(msg190"!y""^1"); // Default
    
replace_all(msg190"!t""^3"); // Color del Equipo 
     
    
if (idplayers[0] = id; else get_players(playerscount"ch"); { 
        for (new 
0counti++)  { 
            if (
is_user_connected(players[i])) { 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]); 
                
write_byte(players[i]); 
                
write_string(msg); 
                
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;


Gracias lo pruebo y te aviso..