Enviar respuesta 
Admin Prefixes + Rangos.
Autor Mensaje
andres_1041 Sin conexión
Miembro Sr.


Mensajes: 326
Registro en: Jun 2019
Reputación: 0
Mensaje: #1
Admin Prefixes + Rangos.
Buenas! Bueno paso por aquí para ver si alguien sería tan amable de pasarme unos Admin Prefixes + Rangos, Si alguien tiene la amabilidad de pasarmelos se lo agradecería muchisimo.

Image
09/02/2020 10:34 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
arsenio Sin conexión
Miembro


Mensajes: 53
Registro en: Jul 2016
Reputación: 0
Mensaje: #2
RE: Admin Prefixes + Rangos.
no sé si te sirva este xD

https://amxmodx-es.com/Thread-Rangos-Adm...#pid191634

servidor Lml
Image

Image
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
09/02/2020 11:48 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
andres_1041 Sin conexión
Miembro Sr.


Mensajes: 326
Registro en: Jun 2019
Reputación: 0
Mensaje: #3
RE: Admin Prefixes + Rangos.
(09/02/2020 11:48 AM)arsenio escribió:  no sé si te sirva este xD

https://amxmodx-es.com/Thread-Rangos-Adm...#pid191634

Si funcionan pero no me gustan en sentido del Admin Prefixes, Tengo estos rangos pero me da logs y tira 9 Warning, y me apaga el servidor lo pongo en debug y igual me lo apaga, aquí el code.

Código PHP:
/*    -----------------------------------------
Creditos: Solo para Raulitop, por el hook say :3

Version Con Guardado NFVAULT
-------------------------------            */

#include <amxmisc>
#include <fakemeta>
#include <nfvault>

new const PLUGIN[] = "Rangos CS:GO"
#define VERSION "1.0"
new const AUTHOR[] = "kikizon"


/* =============================================
|= [EMPIEZA SECCION MODIFICABLE] =|
==============================================*/
/* ====================================
*[CONSTANTES]*
=====================================*/ 
//new const Web[] = "AMXMODX-ES.COM"  // Se Muestra en HUD
new const Prefijo[] = "!g[!yNOOB!g]!y" // Prefijo en say
new const Sonido[] = "events/task_complete.wav" // Sonido Rango UP

new Flags;
new 
g_AdminTag[33][10]

enum _:Data2 {
    
TAG[10],
    
FLAG
}

new const 
AdminsTags[][Data2] = {
    { 
"DUEÑ@"ADMIN_LEVEL_B },
    { 
"SOCIO"ADMIN_LEVEL_E },
    { 
"VIP"ADMIN_LEVEL_C },
    { 
"BASICO"ADMIN_LEVEL_D },
    { 
"Baby GirL"ADMIN_LEVEL_H },
    { 
"Spammer"ADMIN_MAP },
}
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
}
new const 
Rangos[][DATA] = {
    { 
"Sin Rango"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 },
    { 
"Legendary Eagle"2000 },
    { 
"Legendary Eagle Master"2100 },
    { 
"Supreme Master"2200 },
    { 
"Supreme Master Guardian I"2300 },
    { 
"Supreme Master Guardian II"2400 },
    { 
"Supreme Master Guardian III"2500 },
    { 
"The Global Elite I"3600 },
    { 
"The Global Elite II"3700 },
    { 
"The Global Elite III"3800 },
    { 
"Aguila Elite Supreme I"3900 },
    { 
"Aguila Elite Supreme II"4000 },
    { 
"Aguila Elite Supreme III"4100 },
    { 
"Veterano I"4200 },
    { 
"Veterano II"4300 },
    { 
"Veterano III"4400 },
    { 
"Legendario I"4500 },
    { 
"Legendario II"4600 },
    { 
"Legendario III"4700 },
    { 
"Gold Magic Supreme I"4800 },
    { 
"Gold Magic Supreme II"4900 },
    { 
"Gold Magic Supreme III"5000 },
    { 
"Legendario I"5100 },
    { 
"Legendario II"5200 },
    { 
"Legendario III"5300 },
    { 
"Legendario Maximus I"5400 },
    { 
"Legendario Maximus II"5500 },
    { 
"Legendario Maximus III"5600 },
    { 
"Legendario Master I"5700 },
    { 
"Legendario Master II"5800 },
    { 
"Legendario Master III"5900 },
    { 
"Maximus Legendario I"6000 },
    { 
"Maximus Legendario II"6100 },
    { 
"Maximus Legendario III"6200 },
    { 
"Legendario Supreme I"6300 },
    { 
"Legendario Supreme II"6400 },
    { 
"Legendario Supreme III"6500 },
    { 
"Legendario Elite I"6500 },
    { 
"Legendario Elite II"6600 },
    { 
"Legendario Elite III"6700 },
    { 
"Legendario Elite IV"6800 },
    { 
"Sargento Supervisor"7500 },                      
    { 
"Sargento Tecnico I"8000 },        
    { 
"Sargento Tecnico II"8500 },    
    { 
"Maestro Tecnico I"9000 },    
    { 
"Maestro Tecnico II"9500 },        
    { 
"Maestro Tecnico Mayor"10000 },
    { 
"Maestro Tec. Supervisor"11000 },        
    { 
"Cadete"12000 },            
    { 
"Sub-Brigadier"13000 },    
    { 
"Brigadier"14000 },    
    { 
"Primer Brigadier"15000 },            
    { 
"Brigadier Mayor"16000 },                    
    { 
"Alferez"17000 },        
    { 
"Teniente"18000 },
    { 
"Primer Teniente"19000 },        
    { 
"Capitan"20000 },                
    { 
"Mayor"22000 },    
    { 
"Teniente Coronel"24000 },                
    { 
"Comandante"26000 },    
    { 
"Coronel"28000 },
    { 
"General de Brigada"30000 },            
    { 
"General de Division"33000 },    
    { 
"Mayor General"36000 },                    
    { 
"General en Jefe"39000 },                
    { 
"Guardia de Honor"43000 },        
    { 
"Fuerzas Especiales"47000 },            
    { 
"Asesino Profesional"52000 },                
    { 
"Selvatico Camuflado"57000 },                
    { 
"Desertico Experto"63000 },                
    { 
"Genocida"69000 },                    
    { 
"Infanteria Profesional"76000 },                
    { 
"Artillero"84000 },            
    { 
"Artillero de Torreta"92000 },        
    { 
"Tanquista"100000 },                
    { 
"Tanquista Anfibio"11000 },        
    { 
"Bombardero Terrorista"120000 },            
    { 
"Blindado"130000 },                
    { 
"Blindado Explosivo"140000 },                
    { 
"Cazador I"150000 },    
    { 
"Cazador II"160000 },
    { 
"Francotirador I"170000 },                
    { 
"Francotirador II"180000 },    
    { 
"Guardia de honor"190000 },
    { 
"Fuerzas Especiales"200000 },
    { 
"Destructor 1"210000 }, 
    { 
"Destructor 2"220000 }, 
    { 
"Masacrador 1"230000 }, 
    { 
"Masacrador 2"240000 },
    { 
"Exterminador 1"250000 }, 
    { 
"Exterminador 2"260000 }, 
    { 
"Nazi"270000 }, 
    { 
"Destripador"280000 }, 
    { 
"Berserker 1"290000 }, 
    { 
"Berserker 2"300000 },
    { 
"Grand Headshot"320000 }, 
    { 
"Headshot Supremo"340000 }, 
    { 
"Headshot Sagrado"360000 }, 
    { 
"Headshot Dios"380000 }, 
    { 
"Master Headshots 1"400000 }, 
    { 
"Master Headshots 2"420000 },
    { 
"Master Pro Kill 1"440000 }, 
    { 
"Master Pro Kill 2"460000 }, 
    { 
"Silver 1"480000 }, 
    { 
"Silver 2"500000 }, 
    { 
"Silver 3"520000 }, 
    { 
"Silver 4"540000 },
    { 
"Silver Elite"560000 }, 
    { 
"Silver Elite Master"580000 }, 
    { 
"Gold Nova 1"600000 }, 
    { 
"Gold Nova 2"620000 }, 
    { 
"Gold Nova 3"640000 }, 
    { 
"Gold Nova Master"660000 },
    { 
"Master Guardian 1"680000 }, 
    { 
"Master Guardian 2"700000 }, 
    { 
"Master Guardian Elite"720000 }, 
    { 
"Disting. Master Guardian"740000 }, 
    { 
"Legendary Eagle"760000 }, 
    { 
"Legendary Eagle Master"780000 },
    { 
"Supreme Master First Class"800000 }, 
    { 
"The Global Elite"820000 }, 
    { 
"Pro Gamers Finish 1"840000 }, 
    { 
"Pro Gamers Finish 2"900000 },
    { 
"Legendario Elite Master"940000 },
    { 
"Noobero"999999 }
}


/* =============================================
|= [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]

/* ====================================
*[Cvars]*
=====================================*/
new cvar_Hudcvar_knifex2cvar_hsx2
/* ====================================
*[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 /rangos""OnPlayerPrint_Ranks")
    
register_clcmd("say_team /rangos""OnPlayerPrint_Ranks")
    
    
register_clcmd("say""message_saytext"
    
register_clcmd("say_team""message_sayteam")
    
register_clcmd("say""HookSay")
    
register_clcmd("say_team""HookSayTeam")
    
    
    
/* =============================================
    |= [EMPIEZA SECCION MODIFICABLE] =|
    ==============================================*/
    
cvar_Hud register_cvar("rangos_hud""1")          // 1 - Mostrar HUD | 0 - No Mostrar
    
cvar_knifex2 register_cvar("rangos_knifex2""0")    // 1 - x2 frags con knife | 0 - ÑO :v
    
cvar_hsx2 register_cvar("rangos_hsx2""0")        // 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")
    
    
nfv_file("Ranguitos"VaultRangocharsmax(VaultRango))
}
/* ====================================
*[PRECACHE]*
=====================================*/
public plugin_precache() 
    
precache_sound(Sonido)

public 
OnPlayerPrint_Ranks( const iPlayerID ) {

    if( !
is_user_connectediPlayerID ) )
        return 
PLUGIN_CONTINUE;

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

    
client_cmdiPlayerID"toggleconsole" );

    return 
PLUGIN_HANDLED;    
}

/*
*[HUD]*
=====================================*/
public HUD(taskid) {
    new 
id ID_HUD
    
    
if (!is_user_alive(id)) {
        
id pev(idpev_iuser2)
        if (!
is_user_alive(id)) return;
    }
   
    if(
id != ID_HUD) {
        
set_hudmessage(02552555.04.010.512.0)
        
ShowSyncHudMsg(ID_HUDSyncHUD"Frags: %d  ||  Rango: [%s]"g_frags[id], Rangos[g_rango[id]][NOMBRE])
    } else {
        
set_hudmessage (02552555.010.013.012.0)
        
ShowSyncHudMsg(ID_HUDSyncHUD"Frags: [%d] || Rango: [%s]^nSig. 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])
    }
    

/* ==================================
    [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")
    if(!
is_user_admin(id)) {
        
copy(g_AdminTag[id], charsmax(g_AdminTag[]), "")
        return
    }
        
    
Flags get_user_flagsid );
    
    for(new 
isizeof AdminsTagsi++) {
        if(
Flags AdminsTags[i][FLAG]) {
            
copy(g_AdminTag[id], charsmax(g_AdminTag[]), AdminsTags[i][TAG])
            break;
        }
    }
}
/* ==================================
    [DISCONNECT]
===================================*/
public client_disconnect(id)
{
    if(
XDGuardar(id);
        
    
remove_task(id+TASK_HUD)
}

/* ==================================
    [ROUND END]
===================================*/
public logevent_round_end() {
    for(new 
id 1id <= g_maxplayersid++) {
        if(
XD
            
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) {
        
chatcolor(id"%s Felicidades subiste al rango: [!g%s !n]"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] == '/' || 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 "*Muerto*"
    
}

    if (
is_user_admin(id)) {
        if (
get_user_flags(id)) 
            
format(saidcharsmax(said), "^3(^1%s^3)^1 ^4[^1%s^4]^1 ^3NOOB. ^4%s ^1~> ^3%s ^1:^4 %s"aliveRangos[g_rango[id]][NOMBRE], g_AdminTag[id], namesaid)
    } else 
    {
        
format(saidcharsmax(said), "^3(^1%s^3)^1 ^4[^1%s^4]^1 ^x03%s ^x01: %s"aliveRangos[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))
        
        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] == '/' || 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))

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

    if (
is_user_admin(id)) {
        if (
get_user_flags(id))
            
format(saidcharsmax(said), "^3(^1%s^3)^1 ^4[^1%s^4]^1 ^3NOOB. ^4%s ^1~> ^3%s ^1:^4 %s"aliveplayerTeamRangos[g_rango[id]], g_AdminTag[id], namesaid)
    } else {
        
format(saidcharsmax(said), "^3(^1%s^3)^1 ^4[^1%s^4]^1 ^x03%s ^x01: %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 chatcolorid, const input[], any:... )
{
    static 
szMsg191 ], msgSayText;
    
    if( !
msgSayText )
        
msgSayText get_user_msgid"SayText" );
    
    
vformatszMsg190input);

    
replace_allszMsg190"!g""^4" );
    
replace_allszMsg190"!y""^1" );
    
replace_allszMsg190"!t""^3" );
    
    
message_beginid MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id );
    
write_byteid id 33 );
    
write_stringszMsg );
    
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;


Image
09/02/2020 12:03 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
arsenio Sin conexión
Miembro


Mensajes: 53
Registro en: Jul 2016
Reputación: 0
Mensaje: #4
RE: Admin Prefixes + Rangos.
intenta adaptarle este:
Código PHP:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "TagSay"
#define VERSION "1.0"
#define AUTHOR "[R]ak"

new g_MsgSayTextg_MaxPlayersg_AdminTag[33][10]

enum _:Data {
    
TAG[10],
    
FLAG
}

new const 
AdminsTags[][Data] = {
    { 
"[STAFF]"ADMIN_IMMUNITY },
    { 
"[ADMIN]"ADMIN_KICK }
}

const 
SPECT 3

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say""cmdSay")
    
    
g_MaxPlayers get_maxplayers()
    
    
g_MsgSayText get_user_msgid("SayText")
}

public 
client_authorized(id) {
    
    if(!
is_user_admin(id)) {
        
copy(g_AdminTag[id], charsmax(g_AdminTag[]), "")
        return
    }
        
    new 
Flags get_user_flags(id)
    
    for(new 
isizeof AdminsTagsi++) {
        if(
Flags AdminsTags[i][FLAG]) {
            
copy(g_AdminTag[id], charsmax(g_AdminTag[]), AdminsTags[i][TAG])
            break;
        }
    }
    
}

public 
cmdSay(id)
{
    static 
Text[192]
    
read_args(Textcharsmax(Text))
    
remove_quotes(Text)
    
    
replace_all(Textcharsmax(Text), "%""")
    
    if(!
ValidMessage(Text))
        return 
PLUGIN_HANDLED
    
    
static Name[32], AliveMessage[192]
    
get_user_name(idNamecharsmax(Name))
    
    
Alive is_user_alive(id)
    
    
formatex(Messagecharsmax(Message), "^x04%s %s^x03%s^x01 : %s"g_AdminTag[id], get_user_team(id) == SPECT "^x01*SPEC* " : !Alive "^x01*DEAD* " ""NameText)
    
    for( new 
1<= g_MaxPlayersi++ ) {
        if(!
is_user_connected(i) || is_user_alive(i) != Alive)
            continue;
        
        
message_begin(MSG_ONE_UNRELIABLEg_MsgSayText_i)
        
write_byte(id)
        
write_string(Message)
        
message_end()
    }
    
    return 
PLUGIN_HANDLED;
}

ValidMessage(text[]) {
    static 
leni
    len 
strlen(text)
    
    if(!
len)
        return 
false
    
    
for(0leni++) {
        if( 
text[i] != ' ' ) {
            return 
true
        
}
    }

    return 
false


servidor Lml
Image

Image
*Aprendiendo mas y mas* Excitedeyes *poco a poco* Whatever
09/02/2020 12:52 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
andres_1041 Sin conexión
Miembro Sr.


Mensajes: 326
Registro en: Jun 2019
Reputación: 0
Mensaje: #5
RE: Admin Prefixes + Rangos.
(09/02/2020 12:52 PM)arsenio escribió:  intenta adaptarle este:
Código PHP:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "TagSay"
#define VERSION "1.0"
#define AUTHOR "[R]ak"

new g_MsgSayTextg_MaxPlayersg_AdminTag[33][10]

enum _:Data {
    
TAG[10],
    
FLAG
}

new const 
AdminsTags[][Data] = {
    { 
"[STAFF]"ADMIN_IMMUNITY },
    { 
"[ADMIN]"ADMIN_KICK }
}

const 
SPECT 3

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say""cmdSay")
    
    
g_MaxPlayers get_maxplayers()
    
    
g_MsgSayText get_user_msgid("SayText")
}

public 
client_authorized(id) {
    
    if(!
is_user_admin(id)) {
        
copy(g_AdminTag[id], charsmax(g_AdminTag[]), "")
        return
    }
        
    new 
Flags get_user_flags(id)
    
    for(new 
isizeof AdminsTagsi++) {
        if(
Flags AdminsTags[i][FLAG]) {
            
copy(g_AdminTag[id], charsmax(g_AdminTag[]), AdminsTags[i][TAG])
            break;
        }
    }
    
}

public 
cmdSay(id)
{
    static 
Text[192]
    
read_args(Textcharsmax(Text))
    
remove_quotes(Text)
    
    
replace_all(Textcharsmax(Text), "%""")
    
    if(!
ValidMessage(Text))
        return 
PLUGIN_HANDLED
    
    
static Name[32], AliveMessage[192]
    
get_user_name(idNamecharsmax(Name))
    
    
Alive is_user_alive(id)
    
    
formatex(Messagecharsmax(Message), "^x04%s %s^x03%s^x01 : %s"g_AdminTag[id], get_user_team(id) == SPECT "^x01*SPEC* " : !Alive "^x01*DEAD* " ""NameText)
    
    for( new 
1<= g_MaxPlayersi++ ) {
        if(!
is_user_connected(i) || is_user_alive(i) != Alive)
            continue;
        
        
message_begin(MSG_ONE_UNRELIABLEg_MsgSayText_i)
        
write_byte(id)
        
write_string(Message)
        
message_end()
    }
    
    return 
PLUGIN_HANDLED;
}

ValidMessage(text[]) {
    static 
leni
    len 
strlen(text)
    
    if(!
len)
        return 
false
    
    
for(0leni++) {
        if( 
text[i] != ' ' ) {
            return 
true
        
}
    }

    return 
false


No sé como juntar plugin, de broma sé crear un menú para ctf pacman

Image
09/02/2020 01:40 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
andres_1041 Sin conexión
Miembro Sr.


Mensajes: 326
Registro en: Jun 2019
Reputación: 0
Mensaje: #6
RE: Admin Prefixes + Rangos.
(09/02/2020 12:52 PM)arsenio escribió:  intenta adaptarle este:
Código PHP:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "TagSay"
#define VERSION "1.0"
#define AUTHOR "[R]ak"

new g_MsgSayTextg_MaxPlayersg_AdminTag[33][10]

enum _:Data {
    
TAG[10],
    
FLAG
}

new const 
AdminsTags[][Data] = {
    { 
"[STAFF]"ADMIN_IMMUNITY },
    { 
"[ADMIN]"ADMIN_KICK }
}

const 
SPECT 3

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say""cmdSay")
    
    
g_MaxPlayers get_maxplayers()
    
    
g_MsgSayText get_user_msgid("SayText")
}

public 
client_authorized(id) {
    
    if(!
is_user_admin(id)) {
        
copy(g_AdminTag[id], charsmax(g_AdminTag[]), "")
        return
    }
        
    new 
Flags get_user_flags(id)
    
    for(new 
isizeof AdminsTagsi++) {
        if(
Flags AdminsTags[i][FLAG]) {
            
copy(g_AdminTag[id], charsmax(g_AdminTag[]), AdminsTags[i][TAG])
            break;
        }
    }
    
}

public 
cmdSay(id)
{
    static 
Text[192]
    
read_args(Textcharsmax(Text))
    
remove_quotes(Text)
    
    
replace_all(Textcharsmax(Text), "%""")
    
    if(!
ValidMessage(Text))
        return 
PLUGIN_HANDLED
    
    
static Name[32], AliveMessage[192]
    
get_user_name(idNamecharsmax(Name))
    
    
Alive is_user_alive(id)
    
    
formatex(Messagecharsmax(Message), "^x04%s %s^x03%s^x01 : %s"g_AdminTag[id], get_user_team(id) == SPECT "^x01*SPEC* " : !Alive "^x01*DEAD* " ""NameText)
    
    for( new 
1<= g_MaxPlayersi++ ) {
        if(!
is_user_connected(i) || is_user_alive(i) != Alive)
            continue;
        
        
message_begin(MSG_ONE_UNRELIABLEg_MsgSayText_i)
        
write_byte(id)
        
write_string(Message)
        
message_end()
    }
    
    return 
PLUGIN_HANDLED;
}

ValidMessage(text[]) {
    static 
leni
    len 
strlen(text)
    
    if(!
len)
        return 
false
    
    
for(0leni++) {
        if( 
text[i] != ' ' ) {
            return 
true
        
}
    }

    return 
false


Ayúdame a agregarle los rangos de kikizon2 Cutecry

Image
09/02/2020 05:55 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
lol.- Sin conexión
Miembro Junior


Mensajes: 43
Registro en: Sep 2015
Reputación: 0
Mensaje: #7
RE: Admin Prefixes + Rangos.
Prueba no me acuerdo que mas le puse a esto, se que tiene para activar/desactivar hud, menu, hora feliz xd, admin prefix gray Whatever
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <celltrie>
#include <cstrike>
#include <fakemeta>
#include <adv_vault>
#include <jctf>
#include <fun>
#include <colorchats>

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

#define TASK_HUD 2100
#define ID_HUD (taskid - TASK_HUD)

#define MAXRANGOS 18

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_teaminfog_saytxtg_maxplayersCsTeams:g_team;
new 
SyncHUDg_rango[33], g_exp[33], g_flagcaptured[33], g_flagreturned[33], g_hud[33];
new 
cvar_Hudcvar_knifex2cvar_hsx2
new szCvar_MinFlags[] = "amx_min_playersFlags"
new g_vault
new g_typed[192], g_message[192], g_name[32], g_playername33 ][ 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 
bool:is_admin;

new const 
horas[] = { 121314202122 };
new 
bool:g_isHappytime

new const g_isHappycommand[][] = {
    
"say /hh""say /horafeliz""say /feliz""say /happytime""say /hf",
    
"say hh""say horafeliz""say feliz""say happytime""say hf",
    
"say_team hh""say_team horafeliz""say_team feliz""say_team happytime""say_team hf",
    
"say_team /hh""say_team /horafeliz""say_team /feliz""say_team /happytime""say_team /hf"
};

new const 
g_isHUD[][] = {
    
"say /hud",
    
"say hud",
    
"say_team hud",
    
"say_team /hud"
};

enum _:DATA {
    
NOMBRE[32],
    
EXP
};

new const 
Rangos[][DATA] = {
    { 
"Sin Rango"},
    { 
"Soldado"100 },
    { 
"Soldado Imperial"500 },
    { 
"Oficial Imperial"1500 },
    { 
"General Imperial"2500 },
    { 
"Comandante"5000 },
    { 
"Comandante Oficial"7000 },
    { 
"Gran Comandante"10000 },
    { 
"Nova"14500 },
    { 
"Master Nova"18500 },
    { 
"Golden Nova"21000 },
    { 
"Teniente"26000 },
    { 
"Teniente General",32000 },
    { 
"Teniente Oficial"38000 },
    { 
"Guardian Imperial"44000 },
    { 
"Gran Guardian Imperial"52000 },
    { 
"Guardian Supremo Imperial"59000 },
    { 
"Sentinela"65000 },
    { 
"Gran Sentenila "75000 },
    { 
"Setinela Imperial"95000 }
};

enum {
    
CAMPO_RANGO,
    
CAMPO_EXP,
    
CAMPO_FLAGSCAPTURED,
    
CAMPO_FLAGSRETURNED,
    
CAMPO_HUD,
    
CAMPO_MAX
};

new 
g_campos[CAMPO_MAX]

new const 
say_team_info[2][CsTeams][] =
{
    {
"*SPEC* ""*DEAD* ""*DEAD* ""*SPEC* "},
    {
""""""""}
}

new const 
sayteam_team_info[2][CsTeams][] =
{
    {
"(Spectator) ""*DEAD*(Terrorist) ""*DEAD*(Counter-Terrorist) ""(Spectator) "},
    {
"(Spectator) ""(Terrorist) ""(Counter-Terrorist) ""(Spectator) "}
}

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

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

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

new const g_team_names[CsTeams][] = {
    
"",
    
"TERRORIST",
    
"CT",
    
"SPECTATOR"
}

public 
plugin_init()
{
    
register_plugin("Admin Prefixes"VERSION"m0skVi4a ;]")

    
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_teaminfo get_user_msgid("TeamInfo")
    
g_saytxt get_user_msgid ("SayText")
    
g_maxplayers get_maxplayers()
    
    
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
    
    
register_cvar(szCvar_MinFlags"8")
    
register_logevent("logevent_round_end"2"1=Round_End")

    
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")
    
register_clcmd("say menu""menuN");
    
register_clcmd("nightvision""menuN");
    
    
    
register_concmd("amx_exp""expregalados"ADMIN_CVAR"<#amx_exp #nombre #cantidad >");
    
    for(new 
rs 0rs sizeof g_isHappycommandrs++) {
        
register_clcmd(g_isHappycommand[rs], "happytimechat");
    }
    
    for(new 
hd 0hd sizeof g_isHUDhd++) {
        
register_clcmd(g_isHUD[hd], "hud");
    }

    
register_event("HLTV""RoundStart""a""1=0""2=0");
    
    
SyncHUD CreateHudSyncObj()
    
pre_ips_collect TrieCreate()
    
pre_names_collect TrieCreate()
    
pre_steamids_collect TrieCreate()
    
pre_flags_collect TrieCreate()
    
bad_prefixes_collect TrieCreate()
    
client_prefix TrieCreate()
    
    
g_vault adv_vault_open("CaptureTheFlags"false)
    
g_campos[CAMPO_RANGO] = adv_vault_register_field(g_vault"RANGOS")
    
g_campos[CAMPO_EXP] = adv_vault_register_field(g_vault"EXP")
    
g_campos[CAMPO_FLAGSCAPTURED] = adv_vault_register_field(g_vault"FlagsCaptured")
    
g_campos[CAMPO_FLAGSRETURNED] = adv_vault_register_field(g_vault"FlagsReturned")
    
g_campos[CAMPO_HUD] = adv_vault_register_field(g_vault"HUD")
    
adv_vault_init(g_vault)

    
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 
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 
HUD(taskid) {
    new 
id ID_HUD
    
    
if(g_hud[id])
        return;
    
    if(!
is_user_alive(id)) {
        
id pev(idpev_iuser2)
        if (!
is_user_alive(id)) return;
    }
    
    if(
id != ID_HUD) {
        
set_hudmessage(2552552551.00.18,  01.51.50.10.2, -1)
        
ShowSyncHudMsg(ID_HUDSyncHUD"[Espectando a: %s]^n[EXP: %d | %d]^n[Rango: %s]^n[Sig. Rango: %s]^n[Adrenalina: %d | 100]^n[Banderas Cap: %d]^n[Banderas Rec: %d]",
        
g_playername[id], g_exp[id], Rangos[g_rango[id]+1][EXP], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], jctf_get_adrenaline(id), g_flagcaptured[id], g_flagreturned[id])
    } else {
        
set_hudmessage(2552552551.00.18,  01.51.50.10.2, -1)
        
ShowSyncHudMsg(ID_HUDSyncHUD"[Nombre: %s]^n[EXP: %d | %d]^n[Rango: %s]^n[Sig. Rango: %s]^n[Adrenalina: %d | 100]^n[Banderas Cap: %d]^n[Banderas Rec: %d]^n[Hora Feliz: %s]",
        
g_playername[id], g_exp[id], Rangos[g_rango[id]+1][EXP], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], jctf_get_adrenaline(id), g_flagcaptured[id], g_flagreturned[id], g_isHappytime "Activada" "Desactivada")
    }
}

public 
client_putinserver(id)
{
    
get_user_nameidg_playernameid ], charsmaxg_playername[ ] ) );
    
g_rango[id] = 0
    g_exp
[id] = 0
    g_flagcaptured
[id] = 0
    g_flagreturned
[id] = 0
    g_hud
[id] = 0        // lo exprese al revez pero igual funciona :V
    
    
Cargar(id)
    
    if(
get_pcvar_num(cvar_Hud)) 
        
set_task(1.0"HUD"id+TASK_HUD__"b")
    
    
g_toggle[id] = true
    num_to_str
(idstr_idcharsmax(str_id))
    
TrieSetString(client_prefixstr_id"")
    
PutPrefix(id)
}

public 
client_disconnect(id) {
    
Guardar(id);
        
    
remove_task(id+TASK_HUD)
}

public 
logevent_round_end() {
    for(new 
id 1id <= g_maxplayersid++)
        
Guardar(id); 
}

public 
client_death(attackervictimweaponhitplace) {
    if(!
is_user_connected(attacker) || victim == attacker) return
    
    
g_exp[attacker] += g_isHappytime 10 5;
    
client_print(attackerprint_center"+%d De EXP"g_isHappytime 10 5)
    
    if( 
weapon == CSW_KNIFE ) {
        if(
get_pcvar_num(cvar_knifex2))
        
g_exp[attacker] += g_isHappytime 20 10;
        
client_print(attackerprint_center"+%d De EXP"g_isHappytime 20 10)
    }
    
    if( 
hitplace == HIT_HEAD ) {
        if(
get_pcvar_num(cvar_hsx2))
        
g_exp[attacker] += g_isHappytime 20 10;
        
client_print(attackerprint_center"+%d De EXP"g_isHappytime 20 10)
    }
    
AumentarRango(attacker);
}

public 
jctf_flag(iEvent,idiFlagTeambool:bAssist) {
    if(
get_playersnum() < get_cvar_num(szCvar_MinFlags)) {
        
    } else if(
is_user_alive(id)) {
        switch(
iEvent) {
            case 
FLAG_RETURNED: {
                if(!
bAssist) {
                    
g_flagreturned[id] += g_isHappytime 1
                    g_exp
[id] += g_isHappytime  10 5
                    
                
}
            }
            case 
FLAG_CAPTURED: {
                if(!
bAssist) {
                    
g_flagcaptured[id] += g_isHappytime 1
                    g_exp
[id] += g_isHappytime 10 5
                
}
            }
        }
    }
    
AumentarRango(id)
}

AumentarRango(id) { 
    while(
g_rango[id] < MAXRANGOS && g_exp[id] >= Rangos[g_rango[id]+1][EXP]) {
        
g_rango[id]++
        
ColorChat(idNORMAL"^4[^3KLG^4] ^1Subiste al rango: ^4%s "Rangos[g_rango[id]][NOMBRE])
    }
    
    if(
g_rango[id] == MAXRANGOS) {
        
g_exp[id] = Rangos[g_rango[id]][EXP]
        return;
    }
    
}
        

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[^1%s^4]^3%s^4 %s :^3 %s"say_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]][NOMBRE], temp_prefixg_nameg_typed)
        
is_admin true
    
}
    else
    {
        
formatex(g_messagecharsmax(g_message), "^1%s^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)
        
is_admin false
    
}

    
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))
        {
            if(
is_admin)
            {
                
g_team cs_get_user_team(i)
                
change_team_info(ig_team_names[CS_TEAM_SPECTATOR])
                
send_message(g_messageii)
                
change_team_info(ig_team_names[g_team])
            }
            else
            {
                
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), "^1%s^4[^1%s^4]^3%s^4 %s :^3 %s"sayteam_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]][NOMBRE], temp_prefixg_nameg_typed)
        
is_admin true
    
}
    else
    {
        
formatex(g_messagecharsmax(g_message), "^1%s^4[^1%s^4]^3%s :^1 %s"sayteam_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]][NOMBRE], g_nameg_typed)
        
is_admin false
    
}

    
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))
            {
                if(
is_admin)
                {
                    
g_team cs_get_user_team(i)
                    
change_team_info(ig_team_names[CS_TEAM_SPECTATOR])
                    
send_message(g_messageii)
                    
change_team_info(ig_team_names[g_team])
                }
                else
                {
                    
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
}

public 
menuN(id) {
    new 
Menu menu_create("\r[KLG] \wMenu players""menu_ctf")
    
    new 
adrenalineporcentaje[64]
    if(
jctf_get_adrenaline(id) >= 100) {
        
formatex(adrenalineporcentaje63"Usar Adrenalina")
    } else {
        
formatex(adrenalineporcentaje63"\r(\d%d\r|\d100\r) \dAdrenalina "jctf_get_adrenaline(id))
    }
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED
    menu_additem
(Menuadrenalineporcentaje"0")
    
menu_additem(Menu"Comprar Sentry \r(\w$9000\r)""1")
    
menu_additem(Menu"Soltar Bandera""2")
    
menu_additem(Menu"Mutear Players""3")
    
menu_additem(Menu"Menu De Tops""4")
    
menu_additem(Menu"Sistema Rangos""5")
    
menu_addblank(Menu6)
    if(
is_user_admin(id))
        
menu_additem(Menu"\wPanel \rADMIN""6")
        
    
    
menu_setprop(MenuMPROP_EXITNAME,"Salir")
    
menu_setprop(MenuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idMenu0)
    return 
PLUGIN_HANDLED;
}

public 
menu_ctf(idMenuitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(Menu)
        return 
PLUGIN_HANDLED;
    }
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(MenuitemiAccessiData5iName63iCallback)
    switch (
str_to_num(iData)) {
        case 
0: {
            if(
jctf_get_adrenaline(id) >= 100) {
                
client_cmd(id"say /adrenaline")
            } else {
                
ColorChat(idNORMAL"^4[^3KLG^4] ^1Necesitas Tener^4 100 ^1De ^4Adrenalina ^1Para Usarla.")
            }
        }
        case 
1: {
            
client_cmd(id"sentry_build")
        }
        case 
2: {
            
client_cmd(id"say /dropflag")
        }
        case 
3: {
            
client_cmd(id"say /mute")
        }
        case 
4: {
            
MenuTP(id)
        }
        case 
5: {
            
MenuR(id)
        }
        case 
6: {
            if(!
is_user_admin(id)) 
                return 
PLUGIN_HANDLED;
            
client_cmd(id"amxmodmenu")
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
MenuTP(id) {
    new 
MenuT menu_create("\r[KLG] \wMenu De Tops""meNuT")
    
    
menu_additem(MenuT"Top 10""0")
    
menu_additem(MenuT"Top 20""1")
    
menu_additem(MenuT"Top 30""2")
    
menu_additem(MenuT"Rankstats""3")
    
    
menu_setprop(MenuTMPROP_EXITNAME,"Salir")
    
menu_setprop(MenuTMPROP_EXITMEXIT_ALL)
    
    
menu_display(idMenuT0)
    return 
PLUGIN_HANDLED;
}

public 
meNuT(idMenuTitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(MenuT)
        return 
PLUGIN_HANDLED;
    }
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(MenuTitemiAccessiData5iName63iCallback)
    switch (
str_to_num(iData)) {
        case 
0: {
            
client_cmd(id"say top1")
        }
        case 
1: {
            
client_cmd(id"say top2")
        }
        case 
2: {
            
client_cmd(id"say top3")
        }
        case 
3: {
            
client_cmd(id"say rankstats")
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
MenuR(id) {
    new 
MenuRR menu_create("\r[KLG] \wSistema Rangos""meNuR")
    
    
menu_additem(MenuRR"Guardar Datos""0")
    
    
menu_setprop(MenuRRMPROP_EXITNAME,"Salir")
    
menu_setprop(MenuRRMPROP_EXITMEXIT_ALL)
    
    
menu_display(idMenuRR0)
    return 
PLUGIN_HANDLED;
}

public 
meNuR(idMenuRRitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(MenuRR)
        return 
PLUGIN_HANDLED;
    }
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(MenuRRitemiAccessiData5iName63iCallback)
    switch (
str_to_num(iData)) {
        case 
0: {
            
Guardar(id)
            
client_print(idprint_center"Tus Datos Fueron Guardados")
        }
    }
    return 
PLUGIN_HANDLED;
}



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_EXP], g_exp[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_FLAGSCAPTURED], g_flagcaptured[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_FLAGSRETURNED], g_flagreturned[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_HUD], g_hud[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_rango[id], sizeof g_rango[])
    
g_exp[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_EXP], g_exp[id], sizeof g_exp[])
    
g_flagcaptured[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FLAGSCAPTURED], g_flagcaptured[id], sizeof g_flagcaptured[])
    
g_flagreturned[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FLAGSRETURNED], g_flagreturned[id], sizeof g_flagreturned[])
    
g_hud[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_HUD], g_hud[id], sizeof g_hud[])
    


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

change_team_info(const id, const team[])
{
    
message_begin(MSG_ONEg_teaminfo,_id)
    
write_byte(id)
    
write_string(team)
    
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 
hud(id) {
    if(
g_hud[id]) {
        
g_hud[id] = 0
        ColorChat
(idNORMAL"^4[^3KLG^4] ^3Activaste El Hud.")
    } else {
        
g_hud[id] = 1
        ColorChat
(idNORMAL"^4[^3KLG^4] ^3Desactivaste El Hud.")
    }
}

public 
expregalados(idlevelcid) {
    if(!
cmd_access(idlevelcid2)) 
        return 
PLUGIN_HANDLED;
        
    new 
name[32]; read_argv(1namecharsmax(name))
    new 
player cmd_target(idnameCMDTARGET_ALLOW_SELF)
    if(!
player)
        return 
PLUGIN_HANDLED;
    
    new 
num[10]; read_argv(2numcharsmax(num))
    
g_exp[player] += str_to_num(num)
    new 
nameuser[32], nameadmin[32]
    
get_user_name(idnameadmincharsmax(nameadmin))
    
get_user_name(playernameusercharsmax(nameuser))
    
    
ColorChat(0NORMAL"^4[^3KLG^4] ^1Admin ^4%s:^1 Regala ^3%s EXP ^1a ^4%s"nameadminnumnameuser)
    
AumentarRango(player)
    return 
PLUGIN_HANDLED;
}
    
public 
RoundStart() {
    
set_task(0.5,"HappyTime")
}

public 
happytimechat(idColorChat(idNORMAL"^4[^3KLG^4] ^1Hora Feliz: ^4%s"g_isHappytime "Activada":"Desactivada");

public 
HappyTime()
{
    new 
time_data[12], current_date[4]
    
get_time("%H"time_data12)
    
get_time("%A"current_datecharsmax(current_date))

    new 
horas str_to_num(time_data)
 
    
// Time function
    
for(new 0<= sizeof(horas)- 1i++)
    {    
        
// Hour isn't the same?
        
if(Tiempo != horas[i]) continue;
        
        
// Enable happy time
        
g_isHappytime true
        
        
break;
    }
// dia completo 
    
if(equal(current_date"Fri"))
    {
        
g_isHappytime true
    
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang8202\\ f0\\ fs16 \n\\ par }
*/ 

Image
16/02/2020 05:40 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
andres_1041 Sin conexión
Miembro Sr.


Mensajes: 326
Registro en: Jun 2019
Reputación: 0
Mensaje: #8
RE: Admin Prefixes + Rangos.
(16/02/2020 05:40 PM)lol.- escribió:  Prueba no me acuerdo que mas le puse a esto, se que tiene para activar/desactivar hud, menu, hora feliz xd, admin prefix gray Whatever
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <celltrie>
#include <cstrike>
#include <fakemeta>
#include <adv_vault>
#include <jctf>
#include <fun>
#include <colorchats>

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

#define TASK_HUD 2100
#define ID_HUD (taskid - TASK_HUD)

#define MAXRANGOS 18

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_teaminfog_saytxtg_maxplayersCsTeams:g_team;
new 
SyncHUDg_rango[33], g_exp[33], g_flagcaptured[33], g_flagreturned[33], g_hud[33];
new 
cvar_Hudcvar_knifex2cvar_hsx2
new szCvar_MinFlags[] = "amx_min_playersFlags"
new g_vault
new g_typed[192], g_message[192], g_name[32], g_playername33 ][ 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 
bool:is_admin;

new const 
horas[] = { 121314202122 };
new 
bool:g_isHappytime

new const g_isHappycommand[][] = {
    
"say /hh""say /horafeliz""say /feliz""say /happytime""say /hf",
    
"say hh""say horafeliz""say feliz""say happytime""say hf",
    
"say_team hh""say_team horafeliz""say_team feliz""say_team happytime""say_team hf",
    
"say_team /hh""say_team /horafeliz""say_team /feliz""say_team /happytime""say_team /hf"
};

new const 
g_isHUD[][] = {
    
"say /hud",
    
"say hud",
    
"say_team hud",
    
"say_team /hud"
};

enum _:DATA {
    
NOMBRE[32],
    
EXP
};

new const 
Rangos[][DATA] = {
    { 
"Sin Rango"},
    { 
"Soldado"100 },
    { 
"Soldado Imperial"500 },
    { 
"Oficial Imperial"1500 },
    { 
"General Imperial"2500 },
    { 
"Comandante"5000 },
    { 
"Comandante Oficial"7000 },
    { 
"Gran Comandante"10000 },
    { 
"Nova"14500 },
    { 
"Master Nova"18500 },
    { 
"Golden Nova"21000 },
    { 
"Teniente"26000 },
    { 
"Teniente General",32000 },
    { 
"Teniente Oficial"38000 },
    { 
"Guardian Imperial"44000 },
    { 
"Gran Guardian Imperial"52000 },
    { 
"Guardian Supremo Imperial"59000 },
    { 
"Sentinela"65000 },
    { 
"Gran Sentenila "75000 },
    { 
"Setinela Imperial"95000 }
};

enum {
    
CAMPO_RANGO,
    
CAMPO_EXP,
    
CAMPO_FLAGSCAPTURED,
    
CAMPO_FLAGSRETURNED,
    
CAMPO_HUD,
    
CAMPO_MAX
};

new 
g_campos[CAMPO_MAX]

new const 
say_team_info[2][CsTeams][] =
{
    {
"*SPEC* ""*DEAD* ""*DEAD* ""*SPEC* "},
    {
""""""""}
}

new const 
sayteam_team_info[2][CsTeams][] =
{
    {
"(Spectator) ""*DEAD*(Terrorist) ""*DEAD*(Counter-Terrorist) ""(Spectator) "},
    {
"(Spectator) ""(Terrorist) ""(Counter-Terrorist) ""(Spectator) "}
}

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

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

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

new const g_team_names[CsTeams][] = {
    
"",
    
"TERRORIST",
    
"CT",
    
"SPECTATOR"
}

public 
plugin_init()
{
    
register_plugin("Admin Prefixes"VERSION"m0skVi4a ;]")

    
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_teaminfo get_user_msgid("TeamInfo")
    
g_saytxt get_user_msgid ("SayText")
    
g_maxplayers get_maxplayers()
    
    
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
    
    
register_cvar(szCvar_MinFlags"8")
    
register_logevent("logevent_round_end"2"1=Round_End")

    
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")
    
register_clcmd("say menu""menuN");
    
register_clcmd("nightvision""menuN");
    
    
    
register_concmd("amx_exp""expregalados"ADMIN_CVAR"<#amx_exp #nombre #cantidad >");
    
    for(new 
rs 0rs sizeof g_isHappycommandrs++) {
        
register_clcmd(g_isHappycommand[rs], "happytimechat");
    }
    
    for(new 
hd 0hd sizeof g_isHUDhd++) {
        
register_clcmd(g_isHUD[hd], "hud");
    }

    
register_event("HLTV""RoundStart""a""1=0""2=0");
    
    
SyncHUD CreateHudSyncObj()
    
pre_ips_collect TrieCreate()
    
pre_names_collect TrieCreate()
    
pre_steamids_collect TrieCreate()
    
pre_flags_collect TrieCreate()
    
bad_prefixes_collect TrieCreate()
    
client_prefix TrieCreate()
    
    
g_vault adv_vault_open("CaptureTheFlags"false)
    
g_campos[CAMPO_RANGO] = adv_vault_register_field(g_vault"RANGOS")
    
g_campos[CAMPO_EXP] = adv_vault_register_field(g_vault"EXP")
    
g_campos[CAMPO_FLAGSCAPTURED] = adv_vault_register_field(g_vault"FlagsCaptured")
    
g_campos[CAMPO_FLAGSRETURNED] = adv_vault_register_field(g_vault"FlagsReturned")
    
g_campos[CAMPO_HUD] = adv_vault_register_field(g_vault"HUD")
    
adv_vault_init(g_vault)

    
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 
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 
HUD(taskid) {
    new 
id ID_HUD
    
    
if(g_hud[id])
        return;
    
    if(!
is_user_alive(id)) {
        
id pev(idpev_iuser2)
        if (!
is_user_alive(id)) return;
    }
    
    if(
id != ID_HUD) {
        
set_hudmessage(2552552551.00.18,  01.51.50.10.2, -1)
        
ShowSyncHudMsg(ID_HUDSyncHUD"[Espectando a: %s]^n[EXP: %d | %d]^n[Rango: %s]^n[Sig. Rango: %s]^n[Adrenalina: %d | 100]^n[Banderas Cap: %d]^n[Banderas Rec: %d]",
        
g_playername[id], g_exp[id], Rangos[g_rango[id]+1][EXP], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], jctf_get_adrenaline(id), g_flagcaptured[id], g_flagreturned[id])
    } else {
        
set_hudmessage(2552552551.00.18,  01.51.50.10.2, -1)
        
ShowSyncHudMsg(ID_HUDSyncHUD"[Nombre: %s]^n[EXP: %d | %d]^n[Rango: %s]^n[Sig. Rango: %s]^n[Adrenalina: %d | 100]^n[Banderas Cap: %d]^n[Banderas Rec: %d]^n[Hora Feliz: %s]",
        
g_playername[id], g_exp[id], Rangos[g_rango[id]+1][EXP], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], jctf_get_adrenaline(id), g_flagcaptured[id], g_flagreturned[id], g_isHappytime "Activada" "Desactivada")
    }
}

public 
client_putinserver(id)
{
    
get_user_nameidg_playernameid ], charsmaxg_playername[ ] ) );
    
g_rango[id] = 0
    g_exp
[id] = 0
    g_flagcaptured
[id] = 0
    g_flagreturned
[id] = 0
    g_hud
[id] = 0        // lo exprese al revez pero igual funciona :V
    
    
Cargar(id)
    
    if(
get_pcvar_num(cvar_Hud)) 
        
set_task(1.0"HUD"id+TASK_HUD__"b")
    
    
g_toggle[id] = true
    num_to_str
(idstr_idcharsmax(str_id))
    
TrieSetString(client_prefixstr_id"")
    
PutPrefix(id)
}

public 
client_disconnect(id) {
    
Guardar(id);
        
    
remove_task(id+TASK_HUD)
}

public 
logevent_round_end() {
    for(new 
id 1id <= g_maxplayersid++)
        
Guardar(id); 
}

public 
client_death(attackervictimweaponhitplace) {
    if(!
is_user_connected(attacker) || victim == attacker) return
    
    
g_exp[attacker] += g_isHappytime 10 5;
    
client_print(attackerprint_center"+%d De EXP"g_isHappytime 10 5)
    
    if( 
weapon == CSW_KNIFE ) {
        if(
get_pcvar_num(cvar_knifex2))
        
g_exp[attacker] += g_isHappytime 20 10;
        
client_print(attackerprint_center"+%d De EXP"g_isHappytime 20 10)
    }
    
    if( 
hitplace == HIT_HEAD ) {
        if(
get_pcvar_num(cvar_hsx2))
        
g_exp[attacker] += g_isHappytime 20 10;
        
client_print(attackerprint_center"+%d De EXP"g_isHappytime 20 10)
    }
    
AumentarRango(attacker);
}

public 
jctf_flag(iEvent,idiFlagTeambool:bAssist) {
    if(
get_playersnum() < get_cvar_num(szCvar_MinFlags)) {
        
    } else if(
is_user_alive(id)) {
        switch(
iEvent) {
            case 
FLAG_RETURNED: {
                if(!
bAssist) {
                    
g_flagreturned[id] += g_isHappytime 1
                    g_exp
[id] += g_isHappytime  10 5
                    
                
}
            }
            case 
FLAG_CAPTURED: {
                if(!
bAssist) {
                    
g_flagcaptured[id] += g_isHappytime 1
                    g_exp
[id] += g_isHappytime 10 5
                
}
            }
        }
    }
    
AumentarRango(id)
}

AumentarRango(id) { 
    while(
g_rango[id] < MAXRANGOS && g_exp[id] >= Rangos[g_rango[id]+1][EXP]) {
        
g_rango[id]++
        
ColorChat(idNORMAL"^4[^3KLG^4] ^1Subiste al rango: ^4%s "Rangos[g_rango[id]][NOMBRE])
    }
    
    if(
g_rango[id] == MAXRANGOS) {
        
g_exp[id] = Rangos[g_rango[id]][EXP]
        return;
    }
    
}
        

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[^1%s^4]^3%s^4 %s :^3 %s"say_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]][NOMBRE], temp_prefixg_nameg_typed)
        
is_admin true
    
}
    else
    {
        
formatex(g_messagecharsmax(g_message), "^1%s^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)
        
is_admin false
    
}

    
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))
        {
            if(
is_admin)
            {
                
g_team cs_get_user_team(i)
                
change_team_info(ig_team_names[CS_TEAM_SPECTATOR])
                
send_message(g_messageii)
                
change_team_info(ig_team_names[g_team])
            }
            else
            {
                
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), "^1%s^4[^1%s^4]^3%s^4 %s :^3 %s"sayteam_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]][NOMBRE], temp_prefixg_nameg_typed)
        
is_admin true
    
}
    else
    {
        
formatex(g_messagecharsmax(g_message), "^1%s^4[^1%s^4]^3%s :^1 %s"sayteam_team_info[is_user_alive(id)][g_team], Rangos[g_rango[id]][NOMBRE], g_nameg_typed)
        
is_admin false
    
}

    
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))
            {
                if(
is_admin)
                {
                    
g_team cs_get_user_team(i)
                    
change_team_info(ig_team_names[CS_TEAM_SPECTATOR])
                    
send_message(g_messageii)
                    
change_team_info(ig_team_names[g_team])
                }
                else
                {
                    
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
}

public 
menuN(id) {
    new 
Menu menu_create("\r[KLG] \wMenu players""menu_ctf")
    
    new 
adrenalineporcentaje[64]
    if(
jctf_get_adrenaline(id) >= 100) {
        
formatex(adrenalineporcentaje63"Usar Adrenalina")
    } else {
        
formatex(adrenalineporcentaje63"\r(\d%d\r|\d100\r) \dAdrenalina "jctf_get_adrenaline(id))
    }
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED
    menu_additem
(Menuadrenalineporcentaje"0")
    
menu_additem(Menu"Comprar Sentry \r(\w$9000\r)""1")
    
menu_additem(Menu"Soltar Bandera""2")
    
menu_additem(Menu"Mutear Players""3")
    
menu_additem(Menu"Menu De Tops""4")
    
menu_additem(Menu"Sistema Rangos""5")
    
menu_addblank(Menu6)
    if(
is_user_admin(id))
        
menu_additem(Menu"\wPanel \rADMIN""6")
        
    
    
menu_setprop(MenuMPROP_EXITNAME,"Salir")
    
menu_setprop(MenuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idMenu0)
    return 
PLUGIN_HANDLED;
}

public 
menu_ctf(idMenuitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(Menu)
        return 
PLUGIN_HANDLED;
    }
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(MenuitemiAccessiData5iName63iCallback)
    switch (
str_to_num(iData)) {
        case 
0: {
            if(
jctf_get_adrenaline(id) >= 100) {
                
client_cmd(id"say /adrenaline")
            } else {
                
ColorChat(idNORMAL"^4[^3KLG^4] ^1Necesitas Tener^4 100 ^1De ^4Adrenalina ^1Para Usarla.")
            }
        }
        case 
1: {
            
client_cmd(id"sentry_build")
        }
        case 
2: {
            
client_cmd(id"say /dropflag")
        }
        case 
3: {
            
client_cmd(id"say /mute")
        }
        case 
4: {
            
MenuTP(id)
        }
        case 
5: {
            
MenuR(id)
        }
        case 
6: {
            if(!
is_user_admin(id)) 
                return 
PLUGIN_HANDLED;
            
client_cmd(id"amxmodmenu")
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
MenuTP(id) {
    new 
MenuT menu_create("\r[KLG] \wMenu De Tops""meNuT")
    
    
menu_additem(MenuT"Top 10""0")
    
menu_additem(MenuT"Top 20""1")
    
menu_additem(MenuT"Top 30""2")
    
menu_additem(MenuT"Rankstats""3")
    
    
menu_setprop(MenuTMPROP_EXITNAME,"Salir")
    
menu_setprop(MenuTMPROP_EXITMEXIT_ALL)
    
    
menu_display(idMenuT0)
    return 
PLUGIN_HANDLED;
}

public 
meNuT(idMenuTitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(MenuT)
        return 
PLUGIN_HANDLED;
    }
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(MenuTitemiAccessiData5iName63iCallback)
    switch (
str_to_num(iData)) {
        case 
0: {
            
client_cmd(id"say top1")
        }
        case 
1: {
            
client_cmd(id"say top2")
        }
        case 
2: {
            
client_cmd(id"say top3")
        }
        case 
3: {
            
client_cmd(id"say rankstats")
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
MenuR(id) {
    new 
MenuRR menu_create("\r[KLG] \wSistema Rangos""meNuR")
    
    
menu_additem(MenuRR"Guardar Datos""0")
    
    
menu_setprop(MenuRRMPROP_EXITNAME,"Salir")
    
menu_setprop(MenuRRMPROP_EXITMEXIT_ALL)
    
    
menu_display(idMenuRR0)
    return 
PLUGIN_HANDLED;
}

public 
meNuR(idMenuRRitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(MenuRR)
        return 
PLUGIN_HANDLED;
    }
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(MenuRRitemiAccessiData5iName63iCallback)
    switch (
str_to_num(iData)) {
        case 
0: {
            
Guardar(id)
            
client_print(idprint_center"Tus Datos Fueron Guardados")
        }
    }
    return 
PLUGIN_HANDLED;
}



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_EXP], g_exp[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_FLAGSCAPTURED], g_flagcaptured[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_FLAGSRETURNED], g_flagreturned[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_HUD], g_hud[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_rango[id], sizeof g_rango[])
    
g_exp[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_EXP], g_exp[id], sizeof g_exp[])
    
g_flagcaptured[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FLAGSCAPTURED], g_flagcaptured[id], sizeof g_flagcaptured[])
    
g_flagreturned[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FLAGSRETURNED], g_flagreturned[id], sizeof g_flagreturned[])
    
g_hud[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_HUD], g_hud[id], sizeof g_hud[])
    


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

change_team_info(const id, const team[])
{
    
message_begin(MSG_ONEg_teaminfo,_id)
    
write_byte(id)
    
write_string(team)
    
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 
hud(id) {
    if(
g_hud[id]) {
        
g_hud[id] = 0
        ColorChat
(idNORMAL"^4[^3KLG^4] ^3Activaste El Hud.")
    } else {
        
g_hud[id] = 1
        ColorChat
(idNORMAL"^4[^3KLG^4] ^3Desactivaste El Hud.")
    }
}

public 
expregalados(idlevelcid) {
    if(!
cmd_access(idlevelcid2)) 
        return 
PLUGIN_HANDLED;
        
    new 
name[32]; read_argv(1namecharsmax(name))
    new 
player cmd_target(idnameCMDTARGET_ALLOW_SELF)
    if(!
player)
        return 
PLUGIN_HANDLED;
    
    new 
num[10]; read_argv(2numcharsmax(num))
    
g_exp[player] += str_to_num(num)
    new 
nameuser[32], nameadmin[32]
    
get_user_name(idnameadmincharsmax(nameadmin))
    
get_user_name(playernameusercharsmax(nameuser))
    
    
ColorChat(0NORMAL"^4[^3KLG^4] ^1Admin ^4%s:^1 Regala ^3%s EXP ^1a ^4%s"nameadminnumnameuser)
    
AumentarRango(player)
    return 
PLUGIN_HANDLED;
}
    
public 
RoundStart() {
    
set_task(0.5,"HappyTime")
}

public 
happytimechat(idColorChat(idNORMAL"^4[^3KLG^4] ^1Hora Feliz: ^4%s"g_isHappytime "Activada":"Desactivada");

public 
HappyTime()
{
    new 
time_data[12], current_date[4]
    
get_time("%H"time_data12)
    
get_time("%A"current_datecharsmax(current_date))

    new 
horas str_to_num(time_data)
 
    
// Time function
    
for(new 0<= sizeof(horas)- 1i++)
    {    
        
// Hour isn't the same?
        
if(Tiempo != horas[i]) continue;
        
        
// Enable happy time
        
g_isHappytime true
        
        
break;
    }
// dia completo 
    
if(equal(current_date"Fri"))
    {
        
g_isHappytime true
    
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang8202\\ f0\\ fs16 \n\\ par }
*/ 

Tendrás otro pero que no tenga archivo .ini?

Image
Ayer 09:25 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS