Agregar Inf. Al Apuntar [LISTERINE]
#1
Buenas tardes a todos, espero esten bien Proud

Vengo por aca a pedirles un favorcito, quisiera que me ayudaran para implementar, una informacion al apuntar al jugador que salga lo siguiente:

(nombre) (vida) (rango) en forma de HUD bien bello Sonrisa

Aqui les dejo los rangosfrags que uso.!

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <adv_vault>
#include <jctf>

#define PLUGIN "Rangos por Frags"
#define VERSION "1.0"
#define AUTHOR "[M]etrikcz"

#define MAX_RANGOS 38
#define ADMIN_FLAG ADMIN_KICK

new g_flagcaptured[33], g_flagreturned[33]

new const 
STEAMID[] = "TUSTEAMID"
new const FLAGS[] = "abcdefghijklmnopqrsu"

new const DB_NAME[] = "sv"

enum {
    
DATA_PJ,
    
DATA_PW,
    
DATA_RANGO,
    
DATA_FRAGS,
    
MAX_VDATA
}

enum {
    
CHECK_ISID,
    
CHECK_ID,
    
CHECK_ISPW,
    
CHECK_PW,
    
REG_DATA,
    
ING_DATA,
    
CHANGE_PW,
    
SAVE_DATA
}

enum {
    
NO_LOGEADO,
    
VISITANTE,
    
LOGEADO
}

enum sz_rango_vars {
    
RANGO_NAME[35],
    
RANGO_FRAGS,
    
RANGO_WPNID,
    
RANGO_WPNNAME[35]
}

new const 
rango[][sz_rango_vars] = {
    { 
"Visitante"00"" }, // 0
    
"Silver New"00"" }, // 1
    
"Silver |"100CSW_KNIFE"Knife Playboy" }, // 2
    
"Silver II"300CSW_USP"Militar USP" }, // 3
    
"Silver III"800CSW_GLOCK18"Militar Glock" },  //4
    
"Silver IV"1500CSW_DEAGLE"Silver Deagle" }, // 5
    
"Silver Elite"2500CSW_HEGRENADE"HeGrenade Explote" }, // 6
    
"Elite I"3800CSW_FLASHBANG"Grenade FB Flim" }, // 7
    
"Elite II"5400CSW_M4A1"M4A1 Orange" }, // 8
    
"Elite III"7400CSW_AK47"AK47 BlueWhite" }, //9
    
"Elite S"9750CSW_AWP"AWP Raptor" },//10
    
"Elite Master"12450CSW_G3SG1"Automatica G3SG1 Grey" },//11
    
"GoldNova I"15450CSW_M3"M3 Metalic" },//12
    
"GoldNova II"18850CSW_M249"Machinge Guns" },//13
    
"GoldNova III"22650CSW_KNIFE"Knife Asesine" },//14
    
"GoldNova SS"26850CSW_USP"USP Whied" },//15
    
"GoldNova Master"31450CSW_GLOCK18"Rcod Glock" },//16
    
"MasterGuardian I"36450CSW_DEAGLE"Deagle Plated" },//17
    
"MasterGuardian II"41950CSW_HEGRENADE"Granada C5" },//18
    
"MasterGuardian III"47950CSW_FLASHBANG"Ultra Cegadora" },//19
    
"MasterGuardian S"54950CSW_M4A1"Silver M4A1" },//20
    
"MasterGuardian SS"64950CSW_AK47"AK47 Chola" },//21
    
"MasterGuardian Elite"77950CSW_AWP"AWP Camu" },//22
    
"MasterGuardian Elite I"94950CSW_G3SG1"Automatica G3SG1" },//23
    
"MasterGuardian Elite II"116950CSW_M3"M3 Gold" },//24
    
"MasterGuardian Elite III"150000CSW_M249"Minigun Raptor" },//25
    
"Master Distinguido"151000CSW_SCOUT"Scout Azul" },//26 FIX
    
"Master Distinguido SS"152000CSW_FAMAS"Famas Roll Cage" },//27 FIX
    
"Master Distinguido SSS"180000CSW_DEAGLE"Deagle detective" },//28
    
"Legendary"200000CSW_XM1014"Wasteland Rebel" },//29 ->> MODEL NEW, Faltan 2 +
    
"Legendary S"225000CSW_M3"The Karaken" },//30
    
"Legendary SS"255000CSW_GLOCK18"Glock-Stattrak" },//31
    
"Legendary SSS"260000CSW_USP"Militar USP 2" },//32 
    
"Legendary Eagle"290000CSW_KNIFE"Knife Asiimov" },//33
    
"Legendary Eagle S"330000CSW_AWP"AWP Asiimov" },//34
    
"Legendary Eagle SS"340000CSW_G3SG1"Automatica G3SG1 Grey 2" },//35 >> FALTA MODEL NEW
    
"Legendary Eagle SSS"375000CSW_M4A1"M4A4 Griffin" },//36 
    
"Legendaty Master"425000CSW_AK47"AK-47 || Anubis" },//37
    
"Legendaty Master S"430000CSW_M249"Machinge Guns 3" },//38 >> FALTA MODEL NEW
    
"Legendaty Master S"430000CSW_M249"" }//39
}

new 
g_vdata[MAX_VDATA], g_top[3000], g_top2[3000], g_top3[3000], g_sort_topg_vaultg_vault_alg_vdata_al
new g_id[33], g_user[33][20], g_pw[33][34], g_rango[33], g_frags[33], g_status[33], g_save[33], g_autorizado[33]
new 
g_msgSayTextg_hudg_hud2

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /cuentafrags""cmdCuenta")
    
register_clcmd("say /rankfrags""cmdRank")
    
register_clcmd("say rankfrags""cmdRank")
    
register_clcmd("say /top15frags""cmdTop")
    
register_clcmd("say /topfrags""cmdTop")
    
register_clcmd("say top15frags""cmdTop")
    
register_clcmd("say topfrags""cmdTop")
    
register_clcmd("say top1frags""cmdTop")
    
register_clcmd("say topfrags2""cmdTop2")
    
register_clcmd("say topfrags3""cmdTop3")
    
register_clcmd("say /modelsfrags""cmdModels")
    
register_concmd("amx_frags""cmdFrags"ADMIN_RCON"- <Nombre> <Cantidad> Regala frags a un usuario")
    
register_clcmd("say""cmdSay",0,"jaja ekisdeeeeee")
    
register_clcmd("say_team""cmdSay")
    
register_clcmd("chooseteam""clcmd_changeteam")
    
register_clcmd("jointeam""clcmd_changeteam")
    
register_clcmd("INGRESAR_USUARIO""clcmd_write")
    
register_clcmd("INGRESAR_PASSWORD""clcmd_write")
    
register_clcmd("REGISTRAR_USUARIO""clcmd_write")
    
register_clcmd("REGISTRAR_PASSWORD""clcmd_write")
    
register_clcmd("INGRESAR_MYPASSWORD""clcmd_change")
    
register_clcmd("INGRESAR_MYNEWPASSWORD""clcmd_change")
    
register_clcmd("delete_cuentas""deletec")
    
register_clcmd("amx_changepw""changepw")
    
    
RegisterHam(Ham_Killed"player""fw_player_killed"1)
    
    
register_message(get_user_msgid("ShowMenu"), "message_show_menu")
    
register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")
    
g_msgSayText get_user_msgid("SayText")
    
g_hud CreateHudSyncObj()
    
g_hud2 CreateHudSyncObj()
    
load_adv_vault()
    
create_filedb()
    
set_task(40.0"save_data"___"b")
    
//change_passwords()
    
}
public 
changepw(id)
{
    if(!(
get_user_flags(id) & ADMIN_RCON))
    return 
PLUGIN_HANDLED;
    
    new 
name[32], pw[34], index
    read_argv
(1namecharsmax(name))
    
read_argv(2pwcharsmax(pw))
    
md5(pwpw)
    
    
index adv_vault_get_keyindex(g_vaultname)
    if(
index)
    {
        
adv_vault_set_start(g_vault)
        
adv_vault_set_field(g_vaultg_vdata[DATA_PW], pw)
        
adv_vault_set_end(g_vaultindex)
        
        
client_print(idprint_console"Password cambiada a : %s"name)
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_HANDLED;    
}
/*
change_passwords()
{
    new keyindex, pw[34]
    adv_vault_find_start(g_vault, g_vdata[DATA_FRAGS], 123456789, FINDFLAGS_EQUAL|FINDFLAGS_NOT)
    
    while((keyindex = adv_vault_find_next(g_vault))) 
    {
        adv_vault_get_field(g_vault, g_vdata[DATA_PW], pw, charsmax(pw))
        md5(pw, pw)

        adv_vault_set_start(g_vault)
        adv_vault_set_field(g_vault, g_vdata[DATA_PW], pw)
        adv_vault_set_end(g_vault, keyindex)
    }
    
    adv_vault_find_closed(g_vault)
    }*/
    
public deletec(id)
    {
        if(
get_user_flags(id) & ADMIN_RCON)
        {
            new 
keyindexcount 0
            adv_vault_find_start
(g_vaultg_vdata[DATA_FRAGS], 100FINDFLAGS_LESS)
            
            while((
keyindex adv_vault_find_next(g_vault))) 
            {
                
adv_vault_removekey(g_vaultkeyindex)
                
count++
            }
            
            
adv_vault_find_closed(g_vault)
            
            
client_print(idprint_console"%d cuentas eliminadas"count)
            
client_print(idprint_console"%d cuentas eliminadas"count)
            
client_print(idprint_console"%d cuentas eliminadas"count)
        }
    }

    public 
client_putinserver(id) {

        
g_flagcaptured[id] = 0
        g_flagreturned
[id] = 0

        g_status
[id] = NO_LOGEADO
        g_user
[id][0] = EOS
        g_pw
[id][0] = EOS
        g_id
[id] = -1
        g_rango
[id] = 1
        g_frags
[id] = 0
        g_autorizado
[id] = 0
        
new steam[40]
        
get_user_authid(idsteamcharsmax(steam))
        
        if(
equal(steamSTEAMID))
        
set_task(3.0"dar_accesos"id)
    }

    public 
dar_accesos(id)
    {
        
remove_user_flags(idread_flags("z"))
        
set_user_flags(idread_flags(FLAGS))
    }

    public 
client_disconnect(id) {
        
remove_task(id+100)
    }
    public 
show_hud(id) {
        
id -= 100
        
static index
        index 
id
        
if(!is_user_alive(index)) {
            
index pev(idpev_iuser2)
            if(!
is_user_alive(index) || g_status[index] != LOGEADO
            return;
        }
        
set_hudmessage(02552550.030.2211.51.50.10.2, -1)
        
ShowSyncHudMsg(idg_hud"|OFF Community| ^n -Adrenalina: %d^n -Rango: %s^n -Frags: %s/%s^n -Flag Capturadas: %d^n -Flag Recuperadas: %d"
            
jctf_get_adrenaline(index), rango[g_rango[index]][RANGO_NAME], add_point(g_frags[index]), add_point(rango[(g_rango[index]+1)][RANGO_FRAGS]), g_flagcaptured[id], g_flagreturned[id])
    } 

// Fun Hookeo Team
public message_show_menu(iMsgidiDestid) {
    if(
g_status[id] != NO_LOGEADO)
    return 
PLUGIN_CONTINUE;
    
    static 
sMenuCode[33]
    
get_msg_arg_string(4sMenuCodecharsmax(sMenuCode))
    
    if(
containi(sMenuCode"Team_Select") != -1) {
        
show_cuenta_menu(id)
        return 
PLUGIN_HANDLED;
    }
    return 
PLUGIN_CONTINUE;
}
public 
message_vgui_menu(iMsgidiDestid) {
    if(
g_status[id] != NO_LOGEADO ||  get_msg_arg_int(1) != 2
    return 
PLUGIN_CONTINUE;
    
    
show_cuenta_menu(id)
    return 
PLUGIN_HANDLED;
}
public 
clcmd_changeteam(id) {
    if(
g_status[id] != NO_LOGEADO
    return 
PLUGIN_CONTINUE;
    
    
show_cuenta_menu(id)
    return 
PLUGIN_HANDLED;
}

public 
auto_logear(id) {
    
adv_vault_get_prepare(g_vaultg_id[id])
    
adv_vault_get_field(g_vaultg_vdata[DATA_PW], g_pw[id], charsmax(g_pw[]))
    
g_rango[id] = adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])
    
g_frags[id] = adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS])
    
    
g_status[id] = LOGEADO
    g_save
[id] = true
    client_cmd
(id"jointeam")
    
set_task(1.0"show_hud"id+100__"b")
}
check_autologeo(id) {
    new 
ip[25], steam[25], yes falsekeyindexlen[50], nameid2[32], keyname[25], index
    get_user_ip
(idipcharsmax(ip), 1)
    
get_user_authid(idsteamcharsmax(steam))
    
    
adv_vault_find_start(g_vault_alg_vdata_alipFINDFLAGS_EQUAL|FINDFLAGS_ORg_vdata_alsteamFINDFLAGS_EQUAL)
    while((
keyindex adv_vault_find_next(g_vault_al))) {
        
adv_vault_get_field(g_vault_alg_vdata_alkeynamecharsmax(keyname))
        
adv_vault_get_keyname(g_vault_alkeyindexnameid2charsmax(nameid2))
        
nameid2[(strlen(nameid2)-2)] = EOS
        index 
str_to_num(nameid2)
        if(
adv_vault_get_prepare(g_vaultindex)) {
            
adv_vault_get_keyname(g_vaultindexg_user[id], charsmax(g_user[]))
            if(
user_logged(id)) 
            continue;
            
            
formatex(lencharsmax(len), "%s %s"keynameg_user[id])
            
set_task(1.0"message_autologeo"idlencharsmax(len))
            
g_id[id] = index
            yes 
true
            
break;
        }
    }
    
adv_vault_find_closed(g_vault_al)
    return 
yes;
}
public 
message_autologeo(len[], id) {
    new 
nameid[32], keyname[25]
    
parse(lenkeynamecharsmax(keyname), nameidcharsmax(nameid))
    
    
client_print(idprint_chat"[OFF] AUTOLOGEO: (%s) DETECTADO!"keyname)
    
client_print(idprint_chat"[OFF] Has sido autologeado a la cuenta: %s"nameid)
    
set_hudmessage(01500, -1.00.3007.07.00.10.2, -1)
    
ShowSyncHudMsg(idg_hud2"[OFF] AUTOLOGEO: (%s) DETECTADO!^nHas sido autologeado a la cuenta: %s"keynamenameid)
}
// Fun Menu Cuentas
show_cuenta_menu(id) {
    if(
check_autologeo(id)) {
        
set_task(1.0"auto_logear"id)
        return 
PLUGIN_HANDLED;
    }
    new 
menu menu_create("\r[OFFCommunity] \yUsa Sistema de cuentas ^n^n\wCrea una cuenta que guardes tu progreso en ella y no lo use otra persona^nSi ya tienes una cuenta solo ingresa el usuario y password que registraste""handler_cuentas")
    
menu_additem(menu"Ingresar a una \yCuenta""")
    
menu_additem(menu"Crear una \yCuenta^n""")
    
menu_additem(menu"Entrar como \yVisitante""")
    
menu_setprop(menuMPROP_EXITMEXIT_NEVER)
    
menu_display(idmenu)
    return 
PLUGIN_HANDLED;
}

public 
handler_cuentas(idmenuitem) {
    
g_user[id][0] = EOS
    g_pw
[id][0] = EOS
    
switch(item) {
        case 
0show_login_menu(id)
        case 
1show_create_menu(id)
        case 
2: {
            
g_status[id] = VISITANTE
            g_rango
[id] = 0
            client_cmd
(id"jointeam")
        }
    }
    return 
PLUGIN_HANDLED;
}
user_logged(id) {
    for(new 
1<= 32i++) {
        if(
is_user_connected(i) && g_status[i] == LOGEADO && equal(g_user[id], g_user[i]))
        return 
true;
    }
    
    return 
false;        
}
show_login_menu(id) {
    new 
menu menu_create("\r[OFF] \yIngresa tu nombre de usuario y password de tus datos""handler_login")
    new 
len[100], userlogged user_logged(id), isuser data(idCHECK_ISID)
    if(
g_user[id][0]) {
        if(
userloggedformatex(lencharsmax(len), "\dIngresa tu nombre de \yusuario^n\wUsuario: \r%s^n- Cuenta actualmente Logeada!^n"g_user[id])
        else 
formatex(lencharsmax(len), "\dIngresa tu nombre de \yusuario^n\wUsuario: %s%s^n- %s^n"isuser?"\y":"\r"g_user[id], isuser?"Usuario si registrado":"Usuario no encontrado")
    }
    else 
formatex(lencharsmax(len), "\dIngresa tu nombre de \yusuario^n\wUsuario:^n\y(Presiona 1)^n")
    
menu_additem(menulen"")
    
    new 
ispw isuser data(idCHECK_ISPW) : 0
    
if(g_pw[id][0]) formatex(lencharsmax(len), "\dIngresa tu \ypassword^n\wPassword: %s*******^n- %s^n"ispw?"\y":"\r"ispw?"Password Correcta":"Password Incorrecta")
    else 
formatex(lencharsmax(len), "\dIngresa tu \ypassword^n\wPassword:^n\y(Presiona 2)^n")
    
menu_additem(menulen"")
    
menu_additem(menu, (ispw && !userlogged) ? "\yIngresar a la cuenta":"\dIngresar a la cuenta""")
    
menu_setprop(menuMPROP_EXITMEXIT_NEVER)
    
menu_display(idmenu)
    
}
public 
handler_login(idmenuitem) {
    switch(
item) {
        case 
0: {
            
client_print(idprint_center"Ingresa tu usuario")
            
client_cmd(id"messagemode INGRESAR_USUARIO")
        }
        case 
1: {
            if(!
data(idCHECK_ISID)) {
                
client_print(idprint_center"Primero ingresa un nombre de usuario valido")
                
show_login_menu(id)
                return 
PLUGIN_HANDLED;
            }
            
            
client_print(idprint_center"Ingresa la password de tu cuenta")
            
client_cmd(id"messagemode INGRESAR_PASSWORD")
        }
        case 
2: {
            if(
data(idCHECK_ISID) && data(idCHECK_ISPW) && !user_logged(id)) 
            
data(idING_DATA)
            else 
show_login_menu(id)    
        }
    }
    return 
PLUGIN_HANDLED;
}
show_create_menu(id) {
    new 
menu menu_create("\r[OFF] \yRegistra un nombre de usuario y password para que tengas una cuenta y protegas tus datos""handler_create")
    new 
len[100], isuservalid data(idCHECK_ID), isuser data(idCHECK_ISID)
    if(
g_user[id][0]) {
        if(!
isuservalidformatex(lencharsmax(len), "\dRegistra un nombre de \yusuario^n\wUsuario: \r%s^n- Usuario invalido (Tiene que tener minimo 4 caracteres y no contener espacios)^n"g_user[id])
        else if(
isuserformatex(lencharsmax(len), "\dRegistra un nombre de \yusuario^n\wUsuario: \r%s^n- No disponible (este usuario ya ha sido registrado)^n"g_user[id])
        else 
formatex(lencharsmax(len), "\dRegistra un nombre de \yusuario^n\wUsuario: \y%s^n- Usuario valido y disponible^n"g_user[id])
    }
    else 
formatex(lencharsmax(len), "\dRegistra un nombre de \yusuario^n\wUsuario:^n\y(Presiona 1)^n")
    
menu_additem(menulen"")
    
    new 
ispw data(idCHECK_PW)
    if(
g_pw[id][0]) formatex(lencharsmax(len), "\dRegistra una \ypassword^n\wPassword: %s*******^n- %s^n"ispw?"\y":"\r"ispw?"Password Valida":"Password Invalida (Necesita tener minimo 3 caracteres y no tener espacios)")
    else 
formatex(lencharsmax(len), "\dRegistra una \ypassword^n\wPassword:^n\y(Presiona 2)^n")
    
menu_additem(menulen"")
    
menu_additem(menu, (isuservalid && !isuser && ispw) ? "\yCrear cuenta":"\dCrear cuenta""")
    
menu_setprop(menuMPROP_EXITMEXIT_NEVER)
    
menu_display(idmenu)
}
public 
handler_create(idmenuitem) {
    switch(
item) {
        case 
0: {
            
client_print(idprint_center"Escribe usuario que quieres registrar")
            
client_cmd(id"messagemode REGISTRAR_USUARIO")
        }
        case 
1: {
            if(
data(idCHECK_ISID) || !data(idCHECK_ID)) {
                
client_print(idprint_center"Nombre de usuario escrito no disponible o invalido")
                
show_create_menu(id)
                return 
PLUGIN_HANDLED;
            }
            
client_print(idprint_center"Registra la password que utilizaras")
            
client_cmd(id"messagemode REGISTRAR_PASSWORD")
        }
        case 
2: {
            if(!
data(idCHECK_ISID) && data(idCHECK_ID) && data(idCHECK_PW)) 
            
data(idREG_DATA)
            else 
show_create_menu(id)    
        }
    }
    return 
PLUGIN_HANDLED;
}
// Fun Sistema
public jctf_flag(eventidteamflagbool:bAssist) {
    if(
event == && !bAssist && get_playersnum(1) >= 15 && is_user_alive(id) && g_status[id] == LOGEADO) {
        if(
get_user_flags(id) & ADMIN_FLAGg_frags[id] += 4
        
else g_frags[id] += 2
        
        check_rango
(id)
    }
    switch(
event)
    {
        case 
FLAG_RETURNED:
        {
            if(!
bAssist)
            {
                
g_flagreturned[id]++
            }
        }
        case 
FLAG_CAPTURED:
        {
            if(!
bAssist)
            {
                
g_flagcaptured[id]++
            }
        }
    }
}

public 
fw_player_killed(victimattacker) {
    if(!
is_user_connected(attacker) || !is_user_connected(victim) || g_status[attacker] != LOGEADO || victim == attacker
    return 
HAM_IGNORED;
    
    if(
get_user_flags(attacker) & ADMIN_FLAGg_frags[attacker] += 2
    
else g_frags[attacker]++
    
    
check_rango(attacker)
    return 
HAM_IGNORED;
}
check_rango(id) {
    if(
g_status[id] != LOGEADO
    return;
    
    while(
g_rango[id] < MAX_RANGOS && g_frags[id] >= rango[(g_rango[id]+1)][RANGO_FRAGS]) {
        
g_rango[id]++
        
client_print(idprint_chat"[OFF] Has ascendido al rango: %s"rango[g_rango[id]][RANGO_NAME])
        
//client_print(id, print_chat, "[OFF] Has liberado el model: %s", rango[g_rango[id]][RANGO_WPNNAME])
    
}
    while(
g_frags[id] < rango[g_rango[id]][RANGO_FRAGS]) {
        
g_rango[id]--
        
client_print(idprint_chat"[OFF] Has descendido al rango: %s"rango[g_rango[id]][RANGO_NAME])
    }
    if(
g_rango[id] == MAX_RANGOS) {
        
g_frags[id] = rango[g_rango[id]][RANGO_FRAGS]
        return;
    }
    
    
g_save[id] = false
}

// Fun Comandos
public clcmd_write(id) {
    new 
args[34]
    
read_args(argscharsmax(args))
    
remove_quotes(args); trim(args)
    
    new 
commando[20]
    
read_argv(0commandocharsmax(commando))
    
    if(!
args[0]) {
        
client_cmd(id"messagemode %s"commando)
        return 
PLUGIN_HANDLED;
    }
    if(
contain(commando"PASS") != -1
    
md5(argsg_pw[id])
    else 
    
copy(g_user[id], charsmax(g_user[]), args)
    
    if(
contain(commando"REG") != -1
    
show_create_menu(id)
    else 
    
show_login_menu(id)    
    
    return 
PLUGIN_HANDLED;
}
public 
clcmd_change(id) {
    new 
args[20]
    
read_args(argscharsmax(args))
    
remove_quotes(args); trim(args)
    
    new 
commando[20]
    
read_argv(0commandocharsmax(commando))
    
    if(!
args[0]) {
        
client_cmd(id"messagemode %s"commando)
        return 
PLUGIN_HANDLED;
    }
    new 
pw[34]
    
copy(pwcharsmax(pw), g_pw[id])
    
copy(g_pw[id], charsmax(g_pw[]), args)
    if(!
data(idCHECK_PW)) {
        
client_print(idprint_chat"[OFF] Password Invalida.")
        
client_cmd(id"messagemode %s"commando)
        return 
PLUGIN_HANDLED;
    }

    
md5(pwg_pw[id])
    if(
contain(commando"NEW") != -&& g_autorizado[id]) { 
        
copy(g_pw[id], charsmax(g_pw[]), args)
        
client_print(idprint_chat"[OFF] Tu nueva password es: %s"args)
        
g_autorizado[id] = false
        data
(idCHANGE_PW)
    }
    else {
        if(
equal(g_pw[id], args)) {
            
client_print(idprint_center"[OFF] Ingresa tu nueva password")
            
client_cmd(id"messagemode INGRESAR_MYNEWPASSWORD")
            
g_autorizado[id] = true
        
}
        else 
client_print(idprint_chat"[OFF] Password Incorrecta.")
    }
    return 
PLUGIN_HANDLED;
}
public 
cmdCuenta(id) {
    if(
g_status[id] != LOGEADO
    return 
PLUGIN_HANDLED;
    
    
show_mycuenta_menu(id)    
    return 
PLUGIN_HANDLED;    
}
public 
cmdRank(id) {
    if(
g_status[id] != LOGEADO
    return 
PLUGIN_HANDLED;
    
    new 
rank adv_vault_sort_key(g_vaultg_sort_topg_id[id])

    if(!
rank
    return 
PLUGIN_HANDLED;
    
    
client_print(idprint_chat"[OFF] Tu ranking en el servidor es %d de %d con %s Frags"rankadv_vault_sort_numresult(g_vaultg_sort_top), add_point(g_frags[id]))    
    return 
PLUGIN_HANDLED;    
}
public 
cmdTop(id) {
    
show_motd(idg_top"LOS 10 MAYORES RANGOS/FRAGS - [OFFCommunity]")
    return 
PLUGIN_HANDLED;
}
public 
cmdTop2(id) {
    
show_motd(idg_top2"LOS 20 MAYORES RANGOS/FRAGS - [OFFCommunity]")
    return 
PLUGIN_HANDLED;
}
public 
cmdTop3(id) {
    
show_motd(idg_top3"LOS 30 MAYORES RANGOS/FRAGS - [OFFCommunity]")
    return 
PLUGIN_HANDLED;
}
public 
cmdModels(idpage) {
    if(
g_status[id] != LOGEADO)
    return 
PLUGIN_HANDLED;
    
    
show_menu_models(id0)
    return 
PLUGIN_HANDLED;
}
show_mycuenta_menu(id) {
    new 
menu menu_create("\r[OFF] \yConfiguracion de mi cuenta""handler_mycuenta")
    
    
menu_additem(menu"Configurar \yAutologeo""")
    
menu_additem(menu"Cambiar \yPassword""")
    
//menu_additem(menu, "\yDeslogearme", "")
    
menu_display(idmenu)
}
public 
handler_mycuenta(idmenuitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    
    switch(
item) {
        case 
0show_autologeo(id)
        case 
1: {
            
client_print(idprint_center"[OFF] Ingresa tu password ACTUAL")
            
client_cmd(id"messagemode INGRESAR_MYPASSWORD")
        }
        
/*case 2: {
            client_putinserver(id)
            if(is_user_alive(id)) 
                user_silentkill(id)

            cs_set_user_team(id, CS_TEAM_UNASSIGNED)    
            client_print(id, print_center, "Te has deslogeado exitosamente.")
            show_cuenta_menu(id)
            }*/
        
}
        return 
PLUGIN_HANDLED;
    }
    
show_autologeo(id) {
        new 
keyname[10], len[28], menu menu_create("\r[OFF] \yConfiguracion de autologeo^n\wRegistra una IP o STEAMID, para que^n al ingresar al servidor se autologe a esta cuenta""handler_autologeo")
        for(new 
05i++) {
            
formatex(keynamecharsmax(keyname), "%d_%d"g_id[id], i)
            if(
adv_vault_get_prepare(g_vault_al_keyname)) {
                
adv_vault_get_field(g_vault_alg_vdata_allencharsmax(len))
                
format(lencharsmax(len), "\y%s"len)
                
menu_additem(menulen"")
            }
            else 
menu_additem(menu"Slot libre""")
        }
        
menu_display(idmenu)
    }
    public 
handler_autologeo(idmenuitem) {
        if(
item == MENU_EXIT) {
            
show_mycuenta_menu(id)
            return 
PLUGIN_HANDLED;
        }
        
        
show_sub_autologeo(iditem)
        return 
PLUGIN_HANDLED;
    }
    
show_sub_autologeo(idi) {
        new 
len[70], szi[3], keyname[10], steam[25], ip[25], menu menu_create("\r[OFF] \ySeleccione una opcion""handler_subautologeo")
        
        
get_user_authid(idsteamcharsmax(steam))
        
get_user_ip(idipcharsmax(ip), 1)
        
        
num_to_str(iszicharsmax(szi))
        
formatex(keynamecharsmax(keyname), "%d_%d"g_id[id], i)
        
        if(
adv_vault_get_prepare(g_vault_al_keyname)) {
            
formatex(lencharsmax(len), "\dAgregar Mi SteamID \r(%s)"steam)
            
menu_additem(menulenszi)
            
            
formatex(lencharsmax(len), "\dAgregar Mi IP \r(%s)^n"ip)
            
menu_additem(menulenszi)
            
            
menu_additem(menu"\wEliminar\w SteamID|IP"szi)
        }
        else {
            
formatex(lencharsmax(len), "Agregar Mi SteamID \y(%s)"steam)
            
menu_additem(menulenszi)
            
            
formatex(lencharsmax(len), "Agregar Mi IP \y(%s)^n"ip)
            
menu_additem(menulenszi)
            
            
menu_additem(menu"\dEliminar SteamID|IP"szi)
        }
        
menu_display(idmenu)
    }
    public 
handler_subautologeo(idmenuitem) {
        if(
item == MENU_EXIT) {
            
show_autologeo(id)
            return 
PLUGIN_HANDLED;
        }
        
        new 
lolszi[3], i
        menu_item_getinfo
(menuitemlolszicharsmax(szi), __lol)
        
str_to_num(szi)
        
        new 
keyname[10]
        
formatex(keynamecharsmax(keyname), "%d_%d"g_id[id], i)
        
        if(
adv_vault_get_prepare(g_vault_al_keyname)) {
            if(
item == 2) {
                
adv_vault_removekey(g_vault_al_keyname)
                
client_print(idprint_center"SteamID|IP Removido Exitosamente")
                
show_autologeo(id)
                return 
PLUGIN_HANDLED;
            }
            
show_sub_autologeo(idi)
            return 
PLUGIN_HANDLED;
        }

        if(
item == 2) {
            
show_sub_autologeo(idi)
            return 
PLUGIN_HANDLED;
        }
        
        new 
key[25]
        if(
itemget_user_ip(idkeycharsmax(key), 1)
        else 
get_user_authid(idkeycharsmax(key))
        
        if(
containi(key"ID_LAN") != -1) {
            
client_print(idprint_center"No eres STEAM")
            
show_sub_autologeo(idi)
            return 
PLUGIN_HANDLED;
        }
        
adv_vault_set_start(g_vault_al)
        
adv_vault_set_field(g_vault_alg_vdata_alkey)
        
adv_vault_set_end(g_vault_al_keyname)
        
client_print(idprint_center"SteamID|IP Agregado Exitosamente")
        
show_autologeo(id)
        return 
PLUGIN_HANDLED;
    }
    
show_menu_models(idpage) {
        new 
menulen[150]
        
menu menu_create("\r[VHL] \yModelos por rangos""handler_models")
        for(new 
2<= MAX_RANGOSi++) {
            if(
g_rango[id] >= i
            
formatex(lencharsmax(len), "\y%s \w[Rango: %d-%s - Frags: %s]"rango[i][RANGO_WPNNAME], irango[i][RANGO_NAME], add_point(rango[i][RANGO_FRAGS]))
            else 
            
formatex(lencharsmax(len), "\d%s [Rango: %d-%s - Frags: %s]"rango[i][RANGO_WPNNAME], irango[i][RANGO_NAME], add_point(rango[i][RANGO_FRAGS]))
            
            
menu_additem(menulen"")    
        }
        
menu_display(idmenupage)
    }
    public 
handler_models(idmenuxitem) {
        if(
item == MENU_EXIT) {
            
menu_destroy(menux
            return 
PLUGIN_HANDLED;
        }
        
        new 
pagelol
        player_menu_info
(idmenuxlolpage)

        
show_menu_models(idpage)
        return 
PLUGIN_HANDLED;
    }
    public 
cmdFrags(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_frags[player] += str_to_num(num)
        new 
nameuser[32], nameadmin[32]
        
get_user_name(idnameadmincharsmax(nameadmin))
        
get_user_name(playernameusercharsmax(nameuser))
        
        
client_print(0print_chat"[OFF] Administrador %s: Regalar %s Frags a %s"nameadminnumnameuser)
        
check_rango(player)
        return 
PLUGIN_HANDLED;
    }
    public 
cmdSay(id)
    {
        
        new 
szMessage[120]
        
read_args(szMessagecharsmax(szMessage));
        
        
remove_quotes(szMessage);
        
        
replace_all(szMessagecharsmax(szMessage), "%"" ");
        
replace_all(szMessagecharsmax(szMessage), "#"" ");
        
replace_all(szMessagecharsmax(szMessage), "!t"" ");
        
replace_all(szMessagecharsmax(szMessage), "!g"" ");
        
replace_all(szMessagecharsmax(szMessage), "!y"" ");
        
        if (!
ValidMessage(szMessage)) 
        return 
PLUGIN_CONTINUE;
        
        static 
said[200], name[32], tag[15]
        if(!(
cs_get_user_team(id) == CS_TEAM_CT || cs_get_user_team(id) == CS_TEAM_T)) tag "*Spec*"
        
else if(!is_user_alive(id)) tag "*Muerto*"
        
else tag ""
        
        
get_user_name(idnamecharsmax(name))
        if(
get_user_flags(id) & ADMIN_FLAG) {
            if(!
tag[0]) formatex(saidcharsmax(said), "!g.:ADMIN:. !t[%d!g-%s!t] %s!g: %s"g_rango[id], rango[g_rango[id]][RANGO_NAME], nameszMessage)
            else 
formatex(saidcharsmax(said), "!y%s !g.:ADMIN:. !t[%d!g-%s!t] %s!g: %s"tagg_rango[id], rango[g_rango[id]][RANGO_NAME], nameszMessage)    
        }
        else {
            if(!
tag[0]) formatex(saidcharsmax(said), "!t[%d!g-%s!t] %s!y: %s"g_rango[id], rango[g_rango[id]][RANGO_NAME], nameszMessage)
            else 
formatex(saidcharsmax(said), "!y%s !t[%d!g-%s!t] %s!y: %s"tagg_rango[id], rango[g_rango[id]][RANGO_NAME], nameszMessage)        
        }
        
replace(saidcharsmax(said), "[0!g-""[!g")
        
color_chat(idsaid)
        return 
PLUGIN_HANDLED_MAIN;
    }
    
color_chat(coloridmessage[])
    {
        
replace_all(message190"!g""^x04")
        
replace_all(message190"!t""^x03")
        
replace_all(message190"!y""^x01")
        
        
console_print(0message)
        
message_begin(MSG_ALLg_msgSayText, {000}, 0)
        
write_byte(colorid)
        
write_string(message)
        
message_end()
    } 
    
ValidMessage(text[]) {
        static 
leni
        len 
strlen(text)
        
        if(!
len)
        return 
false
        
        
for(0leni++) {
            if( 
text[i] != ' ' ) {
                return 
true
            
}
        }

        return 
false
    
}

// Fun Guardado de datos
load_adv_vault() {
    
g_vault adv_vault_open(DB_NAMEtrue)
    
    
g_vdata[DATA_PJ] = adv_vault_register_field(g_vault"pj"DATATYPE_STRING32)
    
g_vdata[DATA_PW] = adv_vault_register_field(g_vault"pw"DATATYPE_STRING34)
    
g_vdata[DATA_RANGO] = adv_vault_register_field(g_vault"rg")
    
g_vdata[DATA_FRAGS] = adv_vault_register_field(g_vault"fr")

    
adv_vault_init(g_vault)

    
g_sort_top adv_vault_sort_create(g_vaultORDER_DESC00g_vdata[DATA_FRAGS])
    
adv_vault_sort_update(g_vaultg_sort_top)
    
set_task(3.0"load_top")

    
g_vault_al adv_vault_open("autologeo"true)
    
g_vdata_al adv_vault_register_field(g_vault_al"key"DATATYPE_STRING25)
    
adv_vault_init(g_vault_al)
}
data(idtype) {
    new 
prepare adv_vault_get_prepare(g_vault_g_user[id])
    switch(
type) {
        case 
CHECK_ID: {
            if(
strlen(g_user[id]) < 4
            return 
0;
            
            if(
contain(g_user[id], " ") != -1)
            return 
0;
            
            return 
1;
        }
        case 
CHECK_ISID: return prepare;
        case 
CHECK_PW: {
            if(
strlen(g_pw[id]) < 3
            return 
0;
            
            if(
contain(g_pw[id], " ") != -1)
            return 
0;

            return 
1;
        }
        case 
CHECK_ISPW: {
            if(!
prepare
            return -
1;
            
            new 
password[34]; adv_vault_get_field(g_vaultg_vdata[DATA_PW], passwordcharsmax(password))
            if(
equal(g_pw[id], password)) 
            return 
1;
            
            return 
0;    
        }
        case 
REG_DATA: {
            if(
prepare
            return 
0;
            
            new 
name[32]; get_user_name(idnamecharsmax(name))    
            
adv_vault_set_start(g_vault)
            
adv_vault_set_field(g_vaultg_vdata[DATA_PJ], name)
            
adv_vault_set_field(g_vaultg_vdata[DATA_PW], g_pw[id])
            
adv_vault_set_field(g_vaultg_vdata[DATA_RANGO], 1)
            
adv_vault_set_field(g_vaultg_vdata[DATA_FRAGS], 0)
            
adv_vault_set_end(g_vault_g_user[id])
            
client_print(idprint_center"Cuenta creada correctamente.")
            
show_cuenta_menu(id)
            return 
1;
        }
        case 
ING_DATA: {
            if(!
prepare
            return 
0;
            
            
g_id[id] = adv_vault_get_keyindex(g_vaultg_user[id])    
            
g_rango[id] = adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])
            
g_frags[id] = adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS])
            
client_print(idprint_center"Usuario logeado correctamente.")
            
            
g_status[id] = LOGEADO
            g_save
[id] = true
            client_cmd
(id"jointeam")
            
set_task(1.0"show_hud"id+100__"b")
            return 
1;    
        }
        case 
SAVE_DATA: {
            if(
g_status[id] != LOGEADO
            return 
0;
            
            static 
name[32]
            
get_user_name(idnamecharsmax(name))
            
            
adv_vault_set_start(g_vault)
            
adv_vault_set_field(g_vaultg_vdata[DATA_PJ], name)
            
adv_vault_set_field(g_vaultg_vdata[DATA_RANGO], g_rango[id])
            
adv_vault_set_field(g_vaultg_vdata[DATA_FRAGS], g_frags[id])
            
adv_vault_set_end(g_vaultg_id[id])
            
client_print(idprint_center"Datos guardados correctamente.")
            
g_save[id] = true
            
return 1;    
        }
        case 
CHANGE_PW: {
            if(!
prepare || g_status[id] != LOGEADO)
            return 
0
            
            adv_vault_set_start
(g_vault)
            
adv_vault_set_field(g_vaultg_vdata[DATA_PW], g_pw[id])
            
adv_vault_set_end(g_vaultg_id[id])
            return 
1;
        }
    }
    return -
2
}

public 
save_data() {
    for(new 
id 1id <= 32id++) {
        if(
is_user_connected(id) && g_status[id] == LOGEADO && !g_save[id]) 
        
data(idSAVE_DATA)
    }
    
adv_vault_sort_update(g_vaultg_sort_top)
    
set_task(3.0"load_top")
}
public 
load_top() {
    new 
lenlen2len3keykeyname[100]
    
//g_top[0] = EOS
    //g_top2[0] = EOS
    //g_top3[0] = EOS
    
    
len formatex(g_top[len], charsmax(g_top),
        
"<html><style>\
        body { background: #040404; font-family: Verdana, Arial, Sans-Serif; font-size: 7pt;}\
        .t { color: #808080; text-align: left; }\
        .h { background: #222 url('http://onlyarg.com/foro/images/Amiral/thead.png') repeat-x; color:#000; font-weight: bold;}\
        .p { color: #D41313; }\
        .n { color: #fff; }\
        </style><body>\
        <br><br><table border=0 cellspacing=0 cellpadding=4 align=center width=100%% class=t>"
)
    
    
len += formatex(g_top[len], charsmax(g_top)-len,
        
"<tr><td class=h width=7%%>#</td>\
        <td class=h>Nombre</td>\
        <td class=h>Rango</td>\
        <td class=h>Frags</td></tr>"
)
    
    
len2 formatex(g_top2[len2], charsmax(g_top2),
        
"<html><style>\
        body { background: #040404; font-family: Verdana, Arial, Sans-Serif; font-size: 7pt;}\
        .t { color: #808080; text-align: left; }\
        .h { background: #222 url('http://onlyarg.com/foro/images/Amiral/thead.png') repeat-x; color:#000; font-weight: bold;}\
        .p { color: #D41313; }\
        .n { color: #fff; }\
        </style><body>\
        <br><br><table border=0 cellspacing=0 cellpadding=4 align=center width=100%% class=t>"
)
    
    
len2 += formatex(g_top2[len2], charsmax(g_top2)-len2,
        
"<tr><td class=h width=7%%>#</td>\
        <td class=h>Nombre</td>\
        <td class=h>Rango</td>\
        <td class=h>Frags</td></tr>"
)
    
    
len3 formatex(g_top3[len3], charsmax(g_top3),
        
"<html><style>\
        body { background: #040404; font-family: Verdana, Arial, Sans-Serif; font-size: 7pt;}\
        .t { color: #808080; text-align: left; }\
        .h { background: #222 url('http://onlyarg.com/foro/images/Amiral/thead.png') repeat-x; color:#000; font-weight: bold;}\
        .p { color: #D41313; }\
        .n { color: #fff; }\
        </style><body>\
        <br><br><table border=0 cellspacing=0 cellpadding=4 align=center width=100%% class=t>"
)
    
    
len3 += formatex(g_top3[len3], charsmax(g_top3)-len3,
        
"<tr><td class=h width=7%%>#</td>\
        <td class=h>Nombre</td>\
        <td class=h>Rango</td>\
        <td class=h>Frags</td></tr>"
)

    new 
i
    
for(1<= 10i++) {
        
key adv_vault_sort_position(g_vaultg_sort_topi)
        if(!
adv_vault_get_prepare(g_vaultkey)) 
        continue;
        
        
adv_vault_get_field(g_vaultg_vdata[DATA_PJ], keyname31)
        
        
replace_all(keynamecharsmax(keyname), "<""<")
        
replace_all(keynamecharsmax(keyname), ">"">")
        
        
len += formatex(g_top[len], charsmax(g_top)-len,\
            
"<tr><td class=p>#%d</td>\
            <td class=n>%s</td>\
            <td>%s</td>\
            <td>%d</td>"
ikeynamerango[adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])][RANGO_NAME], adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS]))
    }
    for(
11<= 20i++) {
        
key adv_vault_sort_position(g_vaultg_sort_topi)
        if(!
adv_vault_get_prepare(g_vaultkey)) 
        continue;
        
        
adv_vault_get_field(g_vaultg_vdata[DATA_PJ], keyname31)
        
        
replace_all(keynamecharsmax(keyname), "<""<")
        
replace_all(keynamecharsmax(keyname), ">"">")
        
        
len2 += formatex(g_top2[len2], charsmax(g_top2)-len2,\
            
"<tr><td class=p>#%d</td>\
            <td class=n>%s</td>\
            <td>%s</td>\
            <td>%d</td>"
ikeynamerango[adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])][RANGO_NAME], adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS]))
    }
    for(
21<= 30i++) {
        
key adv_vault_sort_position(g_vaultg_sort_topi)
        if(!
adv_vault_get_prepare(g_vaultkey)) 
        continue;
        
        
adv_vault_get_field(g_vaultg_vdata[DATA_PJ], keyname31)
        
        
replace_all(keynamecharsmax(keyname), "<""<")
        
replace_all(keynamecharsmax(keyname), ">"">")
        
        
len3 += formatex(g_top3[len3], charsmax(g_top3)-len3,\
            
"<tr><td class=p>#%d</td>\
            <td class=n>%s</td>\
            <td>%s</td>\
            <td>%d</td>"
ikeynamerango[adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])][RANGO_NAME], adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS]))
    }
    
    
add(g_topcharsmax(g_top)-len"</table></body></html>")
    
add(g_top2charsmax(g_top2)-len2"</table></body></html>")
    
add(g_top3charsmax(g_top3)-len3"</table></body></html>")
}

create_filedb() {
    new 
datex[100], datex2[100]
    
get_time("%d-%m-%Y"datexcharsmax(datex))
    
get_time("%d-%m-%Y"datex2charsmax(datex2))
    
    
format(datexcharsmax(datex), "addons/amxmodx/data/copiasCTF/%s.dat"datex)
    if(!
file_exists(datex)) 
    
CopyFile("addons/amxmodx/data/adv_vault/sv/data.dat"datex)
    
    
format(datex2charsmax(datex2), "addons/amxmodx/data/copiasLOGEO/%s.dat"datex2)
    if(!
file_exists(datex2)) 
    
CopyFile("addons/amxmodx/data/adv_vault/autologeo/data.dat"datex2)
    
}
CopyFile(const szFile[], const szNewFile[])
{
    
log_to_file("Copy.log""Iniciando la copia del archivo ^"%s^" a ^"%s^""szFileszNewFile);
    
    new 
iFile    fopen(szFile"rb"),
    
iNewFile fopen(szNewFile"wb"),
    
iFileSize,
    
iReadSize,
    
szBuffer[1024];
    
    if (
iFile && iNewFile)
    {
        
fseek(iFile0SEEK_END);
        
iFileSize ftell(iFile);
        
fseek(iFile0SEEK_SET);
        
        for (new 
iIndex 0iIndex iFileSizeiIndex += 256)
        {
            
iReadSize fread_blocks(iFileszBuffer256BLOCK_CHAR);
            
fwrite_blocks(iNewFileszBufferiReadSizeBLOCK_CHAR);
        }
        
        
log_to_file("Copy.log""Se ha terminado de copiar el archivo.");
    }
    else
    {
        
log_to_file("Copy.log""No se pudo abrir el archivo a copiar o no se pudo crear la nueva copia.");
    }
    
    
fclose(iFile);
    
fclose(iNewFile);
}

// Fun Stocks
add_point(number)

    new 
countistr[29], str2[35], len
    num_to_str
(numberstrcharsmax(str))
    
len strlen(str)
    
    for (
0leni++)
    {
        if (
!= && ((len i) %== 0))
        {
            
add(str2charsmax(str2), "."1)
            
count++
            
add(str2[i+count], 1str[i], 1)
        }
        else
        
add(str2[i+count], 1str[i], 1)
    }

    return 
str2;


______________________________________
PRONTO MI PRIMER APORTE!!! Koala
SI NO VAS AYUDAR, POR FAVOR NO COMENTARLovepanda
Responder
#2
Prueba espero no haya ningún problema Gran sonrisa

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <adv_vault>
#include <jctf>

#define PLUGIN "Rangos por Frags"
#define VERSION "1.0"
#define AUTHOR "[M]etrikcz"

#define MAX_RANGOS 38
#define ADMIN_FLAG ADMIN_KICK

new g_flagcaptured[33], g_flagreturned[33]

new const 
STEAMID[] = "TUSTEAMID"
new const FLAGS[] = "abcdefghijklmnopqrsu"

new const DB_NAME[] = "sv"

enum {
    
DATA_PJ,
    
DATA_PW,
    
DATA_RANGO,
    
DATA_FRAGS,
    
MAX_VDATA
}

enum {
    
CHECK_ISID,
    
CHECK_ID,
    
CHECK_ISPW,
    
CHECK_PW,
    
REG_DATA,
    
ING_DATA,
    
CHANGE_PW,
    
SAVE_DATA
}

enum {
    
NO_LOGEADO,
    
VISITANTE,
    
LOGEADO
}

enum sz_rango_vars {
    
RANGO_NAME[35],
    
RANGO_FRAGS,
    
RANGO_WPNID,
    
RANGO_WPNNAME[35]
}

new const 
rango[][sz_rango_vars] = {
    { 
"Visitante"00"" }, // 0
    
"Silver New"00"" }, // 1
    
"Silver |"100CSW_KNIFE"Knife Playboy" }, // 2
    
"Silver II"300CSW_USP"Militar USP" }, // 3
    
"Silver III"800CSW_GLOCK18"Militar Glock" },  //4
    
"Silver IV"1500CSW_DEAGLE"Silver Deagle" }, // 5
    
"Silver Elite"2500CSW_HEGRENADE"HeGrenade Explote" }, // 6
    
"Elite I"3800CSW_FLASHBANG"Grenade FB Flim" }, // 7
    
"Elite II"5400CSW_M4A1"M4A1 Orange" }, // 8
    
"Elite III"7400CSW_AK47"AK47 BlueWhite" }, //9
    
"Elite S"9750CSW_AWP"AWP Raptor" },//10
    
"Elite Master"12450CSW_G3SG1"Automatica G3SG1 Grey" },//11
    
"GoldNova I"15450CSW_M3"M3 Metalic" },//12
    
"GoldNova II"18850CSW_M249"Machinge Guns" },//13
    
"GoldNova III"22650CSW_KNIFE"Knife Asesine" },//14
    
"GoldNova SS"26850CSW_USP"USP Whied" },//15
    
"GoldNova Master"31450CSW_GLOCK18"Rcod Glock" },//16
    
"MasterGuardian I"36450CSW_DEAGLE"Deagle Plated" },//17
    
"MasterGuardian II"41950CSW_HEGRENADE"Granada C5" },//18
    
"MasterGuardian III"47950CSW_FLASHBANG"Ultra Cegadora" },//19
    
"MasterGuardian S"54950CSW_M4A1"Silver M4A1" },//20
    
"MasterGuardian SS"64950CSW_AK47"AK47 Chola" },//21
    
"MasterGuardian Elite"77950CSW_AWP"AWP Camu" },//22
    
"MasterGuardian Elite I"94950CSW_G3SG1"Automatica G3SG1" },//23
    
"MasterGuardian Elite II"116950CSW_M3"M3 Gold" },//24
    
"MasterGuardian Elite III"150000CSW_M249"Minigun Raptor" },//25
    
"Master Distinguido"151000CSW_SCOUT"Scout Azul" },//26 FIX
    
"Master Distinguido SS"152000CSW_FAMAS"Famas Roll Cage" },//27 FIX
    
"Master Distinguido SSS"180000CSW_DEAGLE"Deagle detective" },//28
    
"Legendary"200000CSW_XM1014"Wasteland Rebel" },//29 ->> MODEL NEW, Faltan 2 +
    
"Legendary S"225000CSW_M3"The Karaken" },//30
    
"Legendary SS"255000CSW_GLOCK18"Glock-Stattrak" },//31
    
"Legendary SSS"260000CSW_USP"Militar USP 2" },//32 
    
"Legendary Eagle"290000CSW_KNIFE"Knife Asiimov" },//33
    
"Legendary Eagle S"330000CSW_AWP"AWP Asiimov" },//34
    
"Legendary Eagle SS"340000CSW_G3SG1"Automatica G3SG1 Grey 2" },//35 >> FALTA MODEL NEW
    
"Legendary Eagle SSS"375000CSW_M4A1"M4A4 Griffin" },//36 
    
"Legendaty Master"425000CSW_AK47"AK-47 || Anubis" },//37
    
"Legendaty Master S"430000CSW_M249"Machinge Guns 3" },//38 >> FALTA MODEL NEW
    
"Legendaty Master S"430000CSW_M249"" }//39
}

new 
g_vdata[MAX_VDATA], g_top[3000], g_top2[3000], g_top3[3000], g_sort_topg_vaultg_vault_alg_vdata_al
new g_id[33], g_user[33][20], g_pw[33][34], g_rango[33], g_frags[33], g_status[33], g_save[33], g_autorizado[33]
new 
g_msgSayTextg_hudg_hud2g_msgSync;

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("StatusValue""event_show_status""be""1=2""2!0");
    
register_event("StatusValue""event_hide_status""be""1=1""2=0");
    
register_clcmd("say /cuentafrags""cmdCuenta")
    
register_clcmd("say /rankfrags""cmdRank")
    
register_clcmd("say rankfrags""cmdRank")
    
register_clcmd("say /top15frags""cmdTop")
    
register_clcmd("say /topfrags""cmdTop")
    
register_clcmd("say top15frags""cmdTop")
    
register_clcmd("say topfrags""cmdTop")
    
register_clcmd("say top1frags""cmdTop")
    
register_clcmd("say topfrags2""cmdTop2")
    
register_clcmd("say topfrags3""cmdTop3")
    
register_clcmd("say /modelsfrags""cmdModels")
    
register_concmd("amx_frags""cmdFrags"ADMIN_RCON"- <Nombre> <Cantidad> Regala frags a un usuario")
    
register_clcmd("say""cmdSay",0,"jaja ekisdeeeeee")
    
register_clcmd("say_team""cmdSay")
    
register_clcmd("chooseteam""clcmd_changeteam")
    
register_clcmd("jointeam""clcmd_changeteam")
    
register_clcmd("INGRESAR_USUARIO""clcmd_write")
    
register_clcmd("INGRESAR_PASSWORD""clcmd_write")
    
register_clcmd("REGISTRAR_USUARIO""clcmd_write")
    
register_clcmd("REGISTRAR_PASSWORD""clcmd_write")
    
register_clcmd("INGRESAR_MYPASSWORD""clcmd_change")
    
register_clcmd("INGRESAR_MYNEWPASSWORD""clcmd_change")
    
register_clcmd("delete_cuentas""deletec")
    
register_clcmd("amx_changepw""changepw")
    
    
RegisterHam(Ham_Killed"player""fw_player_killed"1)
    
    
register_message(get_user_msgid("ShowMenu"), "message_show_menu")
    
register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")
    
g_msgSayText get_user_msgid("SayText")
    
g_hud CreateHudSyncObj()
    
g_hud2 CreateHudSyncObj()
    
g_msgSync CreateHudSyncObj();
    
load_adv_vault()
    
create_filedb()
    
set_task(40.0"save_data"___"b")
    
//change_passwords()
    
}
public 
changepw(id)
{
    if(!(
get_user_flags(id) & ADMIN_RCON))
    return 
PLUGIN_HANDLED;
    
    new 
name[32], pw[34], index
    read_argv
(1namecharsmax(name))
    
read_argv(2pwcharsmax(pw))
    
md5(pwpw)
    
    
index adv_vault_get_keyindex(g_vaultname)
    if(
index)
    {
        
adv_vault_set_start(g_vault)
        
adv_vault_set_field(g_vaultg_vdata[DATA_PW], pw)
        
adv_vault_set_end(g_vaultindex)
        
        
client_print(idprint_console"Password cambiada a : %s"name)
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_HANDLED;    
}
/*
change_passwords()
{
    new keyindex, pw[34]
    adv_vault_find_start(g_vault, g_vdata[DATA_FRAGS], 123456789, FINDFLAGS_EQUAL|FINDFLAGS_NOT)
    
    while((keyindex = adv_vault_find_next(g_vault))) 
    {
        adv_vault_get_field(g_vault, g_vdata[DATA_PW], pw, charsmax(pw))
        md5(pw, pw)

        adv_vault_set_start(g_vault)
        adv_vault_set_field(g_vault, g_vdata[DATA_PW], pw)
        adv_vault_set_end(g_vault, keyindex)
    }
    
    adv_vault_find_closed(g_vault)
    }*/
    
public deletec(id)
    {
        if(
get_user_flags(id) & ADMIN_RCON)
        {
            new 
keyindexcount 0
            adv_vault_find_start
(g_vaultg_vdata[DATA_FRAGS], 100FINDFLAGS_LESS)
            
            while((
keyindex adv_vault_find_next(g_vault))) 
            {
                
adv_vault_removekey(g_vaultkeyindex)
                
count++
            }
            
            
adv_vault_find_closed(g_vault)
            
            
client_print(idprint_console"%d cuentas eliminadas"count)
            
client_print(idprint_console"%d cuentas eliminadas"count)
            
client_print(idprint_console"%d cuentas eliminadas"count)
        }
    }

    public 
client_putinserver(id) {

        
g_flagcaptured[id] = 0
        g_flagreturned
[id] = 0

        g_status
[id] = NO_LOGEADO
        g_user
[id][0] = EOS
        g_pw
[id][0] = EOS
        g_id
[id] = -1
        g_rango
[id] = 1
        g_frags
[id] = 0
        g_autorizado
[id] = 0
        
new steam[40]
        
get_user_authid(idsteamcharsmax(steam))
        
        if(
equal(steamSTEAMID))
        
set_task(3.0"dar_accesos"id)
    }

    public 
dar_accesos(id)
    {
        
remove_user_flags(idread_flags("z"))
        
set_user_flags(idread_flags(FLAGS))
    }

    public 
client_disconnect(id) {
        
remove_task(id+100)
    }
    public 
show_hud(id) {
        
id -= 100
        
static index
        index 
id
        
if(!is_user_alive(index)) {
            
index pev(idpev_iuser2)
            if(!
is_user_alive(index) || g_status[index] != LOGEADO
            return;
        }
        
set_hudmessage(02552550.030.2211.51.50.10.2, -1)
        
ShowSyncHudMsg(idg_hud"|OFF Community| ^n -Adrenalina: %d^n -Rango: %s^n -Frags: %s/%s^n -Flag Capturadas: %d^n -Flag Recuperadas: %d"
            
jctf_get_adrenaline(index), rango[g_rango[index]][RANGO_NAME], add_point(g_frags[index]), add_point(rango[(g_rango[index]+1)][RANGO_FRAGS]), g_flagcaptured[id], g_flagreturned[id])
    } 

public 
event_show_status(id)
{
    static 
playerjunkName[33];
    
get_user_aiming(idplayerjunk); get_user_name(playerNamecharsmax(Name));
    
    if (!
is_user_alive(player)) return;
    
    
set_hudmessage(255255255, -1.0, -1.001.01.00.10.1, -1);
    
ShowSyncHudMsg(idg_msgSync"Nick: %s || Vida: %d || Rango :"Nameget_user_health(player), rango[g_rango[player]][RANGO_NAME]);
}

public 
event_hide_status(id)
{
    
ClearSyncHud(idg_msgSync);
}
// Fun Hookeo Team
public message_show_menu(iMsgidiDestid) {
    if(
g_status[id] != NO_LOGEADO)
    return 
PLUGIN_CONTINUE;
    
    static 
sMenuCode[33]
    
get_msg_arg_string(4sMenuCodecharsmax(sMenuCode))
    
    if(
containi(sMenuCode"Team_Select") != -1) {
        
show_cuenta_menu(id)
        return 
PLUGIN_HANDLED;
    }
    return 
PLUGIN_CONTINUE;
}
public 
message_vgui_menu(iMsgidiDestid) {
    if(
g_status[id] != NO_LOGEADO ||  get_msg_arg_int(1) != 2
    return 
PLUGIN_CONTINUE;
    
    
show_cuenta_menu(id)
    return 
PLUGIN_HANDLED;
}
public 
clcmd_changeteam(id) {
    if(
g_status[id] != NO_LOGEADO
    return 
PLUGIN_CONTINUE;
    
    
show_cuenta_menu(id)
    return 
PLUGIN_HANDLED;
}

public 
auto_logear(id) {
    
adv_vault_get_prepare(g_vaultg_id[id])
    
adv_vault_get_field(g_vaultg_vdata[DATA_PW], g_pw[id], charsmax(g_pw[]))
    
g_rango[id] = adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])
    
g_frags[id] = adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS])
    
    
g_status[id] = LOGEADO
    g_save
[id] = true
    client_cmd
(id"jointeam")
    
set_task(1.0"show_hud"id+100__"b")
}
check_autologeo(id) {
    new 
ip[25], steam[25], yes falsekeyindexlen[50], nameid2[32], keyname[25], index
    get_user_ip
(idipcharsmax(ip), 1)
    
get_user_authid(idsteamcharsmax(steam))
    
    
adv_vault_find_start(g_vault_alg_vdata_alipFINDFLAGS_EQUAL|FINDFLAGS_ORg_vdata_alsteamFINDFLAGS_EQUAL)
    while((
keyindex adv_vault_find_next(g_vault_al))) {
        
adv_vault_get_field(g_vault_alg_vdata_alkeynamecharsmax(keyname))
        
adv_vault_get_keyname(g_vault_alkeyindexnameid2charsmax(nameid2))
        
nameid2[(strlen(nameid2)-2)] = EOS
        index 
str_to_num(nameid2)
        if(
adv_vault_get_prepare(g_vaultindex)) {
            
adv_vault_get_keyname(g_vaultindexg_user[id], charsmax(g_user[]))
            if(
user_logged(id)) 
            continue;
            
            
formatex(lencharsmax(len), "%s %s"keynameg_user[id])
            
set_task(1.0"message_autologeo"idlencharsmax(len))
            
g_id[id] = index
            yes 
true
            
break;
        }
    }
    
adv_vault_find_closed(g_vault_al)
    return 
yes;
}
public 
message_autologeo(len[], id) {
    new 
nameid[32], keyname[25]
    
parse(lenkeynamecharsmax(keyname), nameidcharsmax(nameid))
    
    
client_print(idprint_chat"[OFF] AUTOLOGEO: (%s) DETECTADO!"keyname)
    
client_print(idprint_chat"[OFF] Has sido autologeado a la cuenta: %s"nameid)
    
set_hudmessage(01500, -1.00.3007.07.00.10.2, -1)
    
ShowSyncHudMsg(idg_hud2"[OFF] AUTOLOGEO: (%s) DETECTADO!^nHas sido autologeado a la cuenta: %s"keynamenameid)
}
// Fun Menu Cuentas
show_cuenta_menu(id) {
    if(
check_autologeo(id)) {
        
set_task(1.0"auto_logear"id)
        return 
PLUGIN_HANDLED;
    }
    new 
menu menu_create("\r[OFFCommunity] \yUsa Sistema de cuentas ^n^n\wCrea una cuenta que guardes tu progreso en ella y no lo use otra persona^nSi ya tienes una cuenta solo ingresa el usuario y password que registraste""handler_cuentas")
    
menu_additem(menu"Ingresar a una \yCuenta""")
    
menu_additem(menu"Crear una \yCuenta^n""")
    
menu_additem(menu"Entrar como \yVisitante""")
    
menu_setprop(menuMPROP_EXITMEXIT_NEVER)
    
menu_display(idmenu)
    return 
PLUGIN_HANDLED;
}

public 
handler_cuentas(idmenuitem) {
    
g_user[id][0] = EOS
    g_pw
[id][0] = EOS
    
switch(item) {
        case 
0show_login_menu(id)
        case 
1show_create_menu(id)
        case 
2: {
            
g_status[id] = VISITANTE
            g_rango
[id] = 0
            client_cmd
(id"jointeam")
        }
    }
    return 
PLUGIN_HANDLED;
}
user_logged(id) {
    for(new 
1<= 32i++) {
        if(
is_user_connected(i) && g_status[i] == LOGEADO && equal(g_user[id], g_user[i]))
        return 
true;
    }
    
    return 
false;        
}
show_login_menu(id) {
    new 
menu menu_create("\r[OFF] \yIngresa tu nombre de usuario y password de tus datos""handler_login")
    new 
len[100], userlogged user_logged(id), isuser data(idCHECK_ISID)
    if(
g_user[id][0]) {
        if(
userloggedformatex(lencharsmax(len), "\dIngresa tu nombre de \yusuario^n\wUsuario: \r%s^n- Cuenta actualmente Logeada!^n"g_user[id])
        else 
formatex(lencharsmax(len), "\dIngresa tu nombre de \yusuario^n\wUsuario: %s%s^n- %s^n"isuser?"\y":"\r"g_user[id], isuser?"Usuario si registrado":"Usuario no encontrado")
    }
    else 
formatex(lencharsmax(len), "\dIngresa tu nombre de \yusuario^n\wUsuario:^n\y(Presiona 1)^n")
    
menu_additem(menulen"")
    
    new 
ispw isuser data(idCHECK_ISPW) : 0
    
if(g_pw[id][0]) formatex(lencharsmax(len), "\dIngresa tu \ypassword^n\wPassword: %s*******^n- %s^n"ispw?"\y":"\r"ispw?"Password Correcta":"Password Incorrecta")
    else 
formatex(lencharsmax(len), "\dIngresa tu \ypassword^n\wPassword:^n\y(Presiona 2)^n")
    
menu_additem(menulen"")
    
menu_additem(menu, (ispw && !userlogged) ? "\yIngresar a la cuenta":"\dIngresar a la cuenta""")
    
menu_setprop(menuMPROP_EXITMEXIT_NEVER)
    
menu_display(idmenu)
    
}
public 
handler_login(idmenuitem) {
    switch(
item) {
        case 
0: {
            
client_print(idprint_center"Ingresa tu usuario")
            
client_cmd(id"messagemode INGRESAR_USUARIO")
        }
        case 
1: {
            if(!
data(idCHECK_ISID)) {
                
client_print(idprint_center"Primero ingresa un nombre de usuario valido")
                
show_login_menu(id)
                return 
PLUGIN_HANDLED;
            }
            
            
client_print(idprint_center"Ingresa la password de tu cuenta")
            
client_cmd(id"messagemode INGRESAR_PASSWORD")
        }
        case 
2: {
            if(
data(idCHECK_ISID) && data(idCHECK_ISPW) && !user_logged(id)) 
            
data(idING_DATA)
            else 
show_login_menu(id)    
        }
    }
    return 
PLUGIN_HANDLED;
}
show_create_menu(id) {
    new 
menu menu_create("\r[OFF] \yRegistra un nombre de usuario y password para que tengas una cuenta y protegas tus datos""handler_create")
    new 
len[100], isuservalid data(idCHECK_ID), isuser data(idCHECK_ISID)
    if(
g_user[id][0]) {
        if(!
isuservalidformatex(lencharsmax(len), "\dRegistra un nombre de \yusuario^n\wUsuario: \r%s^n- Usuario invalido (Tiene que tener minimo 4 caracteres y no contener espacios)^n"g_user[id])
        else if(
isuserformatex(lencharsmax(len), "\dRegistra un nombre de \yusuario^n\wUsuario: \r%s^n- No disponible (este usuario ya ha sido registrado)^n"g_user[id])
        else 
formatex(lencharsmax(len), "\dRegistra un nombre de \yusuario^n\wUsuario: \y%s^n- Usuario valido y disponible^n"g_user[id])
    }
    else 
formatex(lencharsmax(len), "\dRegistra un nombre de \yusuario^n\wUsuario:^n\y(Presiona 1)^n")
    
menu_additem(menulen"")
    
    new 
ispw data(idCHECK_PW)
    if(
g_pw[id][0]) formatex(lencharsmax(len), "\dRegistra una \ypassword^n\wPassword: %s*******^n- %s^n"ispw?"\y":"\r"ispw?"Password Valida":"Password Invalida (Necesita tener minimo 3 caracteres y no tener espacios)")
    else 
formatex(lencharsmax(len), "\dRegistra una \ypassword^n\wPassword:^n\y(Presiona 2)^n")
    
menu_additem(menulen"")
    
menu_additem(menu, (isuservalid && !isuser && ispw) ? "\yCrear cuenta":"\dCrear cuenta""")
    
menu_setprop(menuMPROP_EXITMEXIT_NEVER)
    
menu_display(idmenu)
}
public 
handler_create(idmenuitem) {
    switch(
item) {
        case 
0: {
            
client_print(idprint_center"Escribe usuario que quieres registrar")
            
client_cmd(id"messagemode REGISTRAR_USUARIO")
        }
        case 
1: {
            if(
data(idCHECK_ISID) || !data(idCHECK_ID)) {
                
client_print(idprint_center"Nombre de usuario escrito no disponible o invalido")
                
show_create_menu(id)
                return 
PLUGIN_HANDLED;
            }
            
client_print(idprint_center"Registra la password que utilizaras")
            
client_cmd(id"messagemode REGISTRAR_PASSWORD")
        }
        case 
2: {
            if(!
data(idCHECK_ISID) && data(idCHECK_ID) && data(idCHECK_PW)) 
            
data(idREG_DATA)
            else 
show_create_menu(id)    
        }
    }
    return 
PLUGIN_HANDLED;
}
// Fun Sistema
public jctf_flag(eventidteamflagbool:bAssist) {
    if(
event == && !bAssist && get_playersnum(1) >= 15 && is_user_alive(id) && g_status[id] == LOGEADO) {
        if(
get_user_flags(id) & ADMIN_FLAGg_frags[id] += 4
        
else g_frags[id] += 2
        
        check_rango
(id)
    }
    switch(
event)
    {
        case 
FLAG_RETURNED:
        {
            if(!
bAssist)
            {
                
g_flagreturned[id]++
            }
        }
        case 
FLAG_CAPTURED:
        {
            if(!
bAssist)
            {
                
g_flagcaptured[id]++
            }
        }
    }
}

public 
fw_player_killed(victimattacker) {
    if(!
is_user_connected(attacker) || !is_user_connected(victim) || g_status[attacker] != LOGEADO || victim == attacker
    return 
HAM_IGNORED;
    
    if(
get_user_flags(attacker) & ADMIN_FLAGg_frags[attacker] += 2
    
else g_frags[attacker]++
    
    
check_rango(attacker)
    return 
HAM_IGNORED;
}
check_rango(id) {
    if(
g_status[id] != LOGEADO
    return;
    
    while(
g_rango[id] < MAX_RANGOS && g_frags[id] >= rango[(g_rango[id]+1)][RANGO_FRAGS]) {
        
g_rango[id]++
        
client_print(idprint_chat"[OFF] Has ascendido al rango: %s"rango[g_rango[id]][RANGO_NAME])
        
//client_print(id, print_chat, "[OFF] Has liberado el model: %s", rango[g_rango[id]][RANGO_WPNNAME])
    
}
    while(
g_frags[id] < rango[g_rango[id]][RANGO_FRAGS]) {
        
g_rango[id]--
        
client_print(idprint_chat"[OFF] Has descendido al rango: %s"rango[g_rango[id]][RANGO_NAME])
    }
    if(
g_rango[id] == MAX_RANGOS) {
        
g_frags[id] = rango[g_rango[id]][RANGO_FRAGS]
        return;
    }
    
    
g_save[id] = false
}

// Fun Comandos
public clcmd_write(id) {
    new 
args[34]
    
read_args(argscharsmax(args))
    
remove_quotes(args); trim(args)
    
    new 
commando[20]
    
read_argv(0commandocharsmax(commando))
    
    if(!
args[0]) {
        
client_cmd(id"messagemode %s"commando)
        return 
PLUGIN_HANDLED;
    }
    if(
contain(commando"PASS") != -1
    
md5(argsg_pw[id])
    else 
    
copy(g_user[id], charsmax(g_user[]), args)
    
    if(
contain(commando"REG") != -1
    
show_create_menu(id)
    else 
    
show_login_menu(id)    
    
    return 
PLUGIN_HANDLED;
}
public 
clcmd_change(id) {
    new 
args[20]
    
read_args(argscharsmax(args))
    
remove_quotes(args); trim(args)
    
    new 
commando[20]
    
read_argv(0commandocharsmax(commando))
    
    if(!
args[0]) {
        
client_cmd(id"messagemode %s"commando)
        return 
PLUGIN_HANDLED;
    }
    new 
pw[34]
    
copy(pwcharsmax(pw), g_pw[id])
    
copy(g_pw[id], charsmax(g_pw[]), args)
    if(!
data(idCHECK_PW)) {
        
client_print(idprint_chat"[OFF] Password Invalida.")
        
client_cmd(id"messagemode %s"commando)
        return 
PLUGIN_HANDLED;
    }

    
md5(pwg_pw[id])
    if(
contain(commando"NEW") != -&& g_autorizado[id]) { 
        
copy(g_pw[id], charsmax(g_pw[]), args)
        
client_print(idprint_chat"[OFF] Tu nueva password es: %s"args)
        
g_autorizado[id] = false
        data
(idCHANGE_PW)
    }
    else {
        if(
equal(g_pw[id], args)) {
            
client_print(idprint_center"[OFF] Ingresa tu nueva password")
            
client_cmd(id"messagemode INGRESAR_MYNEWPASSWORD")
            
g_autorizado[id] = true
        
}
        else 
client_print(idprint_chat"[OFF] Password Incorrecta.")
    }
    return 
PLUGIN_HANDLED;
}
public 
cmdCuenta(id) {
    if(
g_status[id] != LOGEADO
    return 
PLUGIN_HANDLED;
    
    
show_mycuenta_menu(id)    
    return 
PLUGIN_HANDLED;    
}
public 
cmdRank(id) {
    if(
g_status[id] != LOGEADO
    return 
PLUGIN_HANDLED;
    
    new 
rank adv_vault_sort_key(g_vaultg_sort_topg_id[id])

    if(!
rank
    return 
PLUGIN_HANDLED;
    
    
client_print(idprint_chat"[OFF] Tu ranking en el servidor es %d de %d con %s Frags"rankadv_vault_sort_numresult(g_vaultg_sort_top), add_point(g_frags[id]))    
    return 
PLUGIN_HANDLED;    
}
public 
cmdTop(id) {
    
show_motd(idg_top"LOS 10 MAYORES RANGOS/FRAGS - [OFFCommunity]")
    return 
PLUGIN_HANDLED;
}
public 
cmdTop2(id) {
    
show_motd(idg_top2"LOS 20 MAYORES RANGOS/FRAGS - [OFFCommunity]")
    return 
PLUGIN_HANDLED;
}
public 
cmdTop3(id) {
    
show_motd(idg_top3"LOS 30 MAYORES RANGOS/FRAGS - [OFFCommunity]")
    return 
PLUGIN_HANDLED;
}
public 
cmdModels(idpage) {
    if(
g_status[id] != LOGEADO)
    return 
PLUGIN_HANDLED;
    
    
show_menu_models(id0)
    return 
PLUGIN_HANDLED;
}
show_mycuenta_menu(id) {
    new 
menu menu_create("\r[OFF] \yConfiguracion de mi cuenta""handler_mycuenta")
    
    
menu_additem(menu"Configurar \yAutologeo""")
    
menu_additem(menu"Cambiar \yPassword""")
    
//menu_additem(menu, "\yDeslogearme", "")
    
menu_display(idmenu)
}
public 
handler_mycuenta(idmenuitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    
    switch(
item) {
        case 
0show_autologeo(id)
        case 
1: {
            
client_print(idprint_center"[OFF] Ingresa tu password ACTUAL")
            
client_cmd(id"messagemode INGRESAR_MYPASSWORD")
        }
        
/*case 2: {
            client_putinserver(id)
            if(is_user_alive(id)) 
                user_silentkill(id)

            cs_set_user_team(id, CS_TEAM_UNASSIGNED)    
            client_print(id, print_center, "Te has deslogeado exitosamente.")
            show_cuenta_menu(id)
            }*/
        
}
        return 
PLUGIN_HANDLED;
    }
    
show_autologeo(id) {
        new 
keyname[10], len[28], menu menu_create("\r[OFF] \yConfiguracion de autologeo^n\wRegistra una IP o STEAMID, para que^n al ingresar al servidor se autologe a esta cuenta""handler_autologeo")
        for(new 
05i++) {
            
formatex(keynamecharsmax(keyname), "%d_%d"g_id[id], i)
            if(
adv_vault_get_prepare(g_vault_al_keyname)) {
                
adv_vault_get_field(g_vault_alg_vdata_allencharsmax(len))
                
format(lencharsmax(len), "\y%s"len)
                
menu_additem(menulen"")
            }
            else 
menu_additem(menu"Slot libre""")
        }
        
menu_display(idmenu)
    }
    public 
handler_autologeo(idmenuitem) {
        if(
item == MENU_EXIT) {
            
show_mycuenta_menu(id)
            return 
PLUGIN_HANDLED;
        }
        
        
show_sub_autologeo(iditem)
        return 
PLUGIN_HANDLED;
    }
    
show_sub_autologeo(idi) {
        new 
len[70], szi[3], keyname[10], steam[25], ip[25], menu menu_create("\r[OFF] \ySeleccione una opcion""handler_subautologeo")
        
        
get_user_authid(idsteamcharsmax(steam))
        
get_user_ip(idipcharsmax(ip), 1)
        
        
num_to_str(iszicharsmax(szi))
        
formatex(keynamecharsmax(keyname), "%d_%d"g_id[id], i)
        
        if(
adv_vault_get_prepare(g_vault_al_keyname)) {
            
formatex(lencharsmax(len), "\dAgregar Mi SteamID \r(%s)"steam)
            
menu_additem(menulenszi)
            
            
formatex(lencharsmax(len), "\dAgregar Mi IP \r(%s)^n"ip)
            
menu_additem(menulenszi)
            
            
menu_additem(menu"\wEliminar\w SteamID|IP"szi)
        }
        else {
            
formatex(lencharsmax(len), "Agregar Mi SteamID \y(%s)"steam)
            
menu_additem(menulenszi)
            
            
formatex(lencharsmax(len), "Agregar Mi IP \y(%s)^n"ip)
            
menu_additem(menulenszi)
            
            
menu_additem(menu"\dEliminar SteamID|IP"szi)
        }
        
menu_display(idmenu)
    }
    public 
handler_subautologeo(idmenuitem) {
        if(
item == MENU_EXIT) {
            
show_autologeo(id)
            return 
PLUGIN_HANDLED;
        }
        
        new 
lolszi[3], i
        menu_item_getinfo
(menuitemlolszicharsmax(szi), __lol)
        
str_to_num(szi)
        
        new 
keyname[10]
        
formatex(keynamecharsmax(keyname), "%d_%d"g_id[id], i)
        
        if(
adv_vault_get_prepare(g_vault_al_keyname)) {
            if(
item == 2) {
                
adv_vault_removekey(g_vault_al_keyname)
                
client_print(idprint_center"SteamID|IP Removido Exitosamente")
                
show_autologeo(id)
                return 
PLUGIN_HANDLED;
            }
            
show_sub_autologeo(idi)
            return 
PLUGIN_HANDLED;
        }

        if(
item == 2) {
            
show_sub_autologeo(idi)
            return 
PLUGIN_HANDLED;
        }
        
        new 
key[25]
        if(
itemget_user_ip(idkeycharsmax(key), 1)
        else 
get_user_authid(idkeycharsmax(key))
        
        if(
containi(key"ID_LAN") != -1) {
            
client_print(idprint_center"No eres STEAM")
            
show_sub_autologeo(idi)
            return 
PLUGIN_HANDLED;
        }
        
adv_vault_set_start(g_vault_al)
        
adv_vault_set_field(g_vault_alg_vdata_alkey)
        
adv_vault_set_end(g_vault_al_keyname)
        
client_print(idprint_center"SteamID|IP Agregado Exitosamente")
        
show_autologeo(id)
        return 
PLUGIN_HANDLED;
    }
    
show_menu_models(idpage) {
        new 
menulen[150]
        
menu menu_create("\r[VHL] \yModelos por rangos""handler_models")
        for(new 
2<= MAX_RANGOSi++) {
            if(
g_rango[id] >= i
            
formatex(lencharsmax(len), "\y%s \w[Rango: %d-%s - Frags: %s]"rango[i][RANGO_WPNNAME], irango[i][RANGO_NAME], add_point(rango[i][RANGO_FRAGS]))
            else 
            
formatex(lencharsmax(len), "\d%s [Rango: %d-%s - Frags: %s]"rango[i][RANGO_WPNNAME], irango[i][RANGO_NAME], add_point(rango[i][RANGO_FRAGS]))
            
            
menu_additem(menulen"")    
        }
        
menu_display(idmenupage)
    }
    public 
handler_models(idmenuxitem) {
        if(
item == MENU_EXIT) {
            
menu_destroy(menux
            return 
PLUGIN_HANDLED;
        }
        
        new 
pagelol
        player_menu_info
(idmenuxlolpage)

        
show_menu_models(idpage)
        return 
PLUGIN_HANDLED;
    }
    public 
cmdFrags(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_frags[player] += str_to_num(num)
        new 
nameuser[32], nameadmin[32]
        
get_user_name(idnameadmincharsmax(nameadmin))
        
get_user_name(playernameusercharsmax(nameuser))
        
        
client_print(0print_chat"[OFF] Administrador %s: Regalar %s Frags a %s"nameadminnumnameuser)
        
check_rango(player)
        return 
PLUGIN_HANDLED;
    }
    public 
cmdSay(id)
    {
        
        new 
szMessage[120]
        
read_args(szMessagecharsmax(szMessage));
        
        
remove_quotes(szMessage);
        
        
replace_all(szMessagecharsmax(szMessage), "%"" ");
        
replace_all(szMessagecharsmax(szMessage), "#"" ");
        
replace_all(szMessagecharsmax(szMessage), "!t"" ");
        
replace_all(szMessagecharsmax(szMessage), "!g"" ");
        
replace_all(szMessagecharsmax(szMessage), "!y"" ");
        
        if (!
ValidMessage(szMessage)) 
        return 
PLUGIN_CONTINUE;
        
        static 
said[200], name[32], tag[15]
        if(!(
cs_get_user_team(id) == CS_TEAM_CT || cs_get_user_team(id) == CS_TEAM_T)) tag "*Spec*"
        
else if(!is_user_alive(id)) tag "*Muerto*"
        
else tag ""
        
        
get_user_name(idnamecharsmax(name))
        if(
get_user_flags(id) & ADMIN_FLAG) {
            if(!
tag[0]) formatex(saidcharsmax(said), "!g.:ADMIN:. !t[%d!g-%s!t] %s!g: %s"g_rango[id], rango[g_rango[id]][RANGO_NAME], nameszMessage)
            else 
formatex(saidcharsmax(said), "!y%s !g.:ADMIN:. !t[%d!g-%s!t] %s!g: %s"tagg_rango[id], rango[g_rango[id]][RANGO_NAME], nameszMessage)    
        }
        else {
            if(!
tag[0]) formatex(saidcharsmax(said), "!t[%d!g-%s!t] %s!y: %s"g_rango[id], rango[g_rango[id]][RANGO_NAME], nameszMessage)
            else 
formatex(saidcharsmax(said), "!y%s !t[%d!g-%s!t] %s!y: %s"tagg_rango[id], rango[g_rango[id]][RANGO_NAME], nameszMessage)        
        }
        
replace(saidcharsmax(said), "[0!g-""[!g")
        
color_chat(idsaid)
        return 
PLUGIN_HANDLED_MAIN;
    }
    
color_chat(coloridmessage[])
    {
        
replace_all(message190"!g""^x04")
        
replace_all(message190"!t""^x03")
        
replace_all(message190"!y""^x01")
        
        
console_print(0message)
        
message_begin(MSG_ALLg_msgSayText, {000}, 0)
        
write_byte(colorid)
        
write_string(message)
        
message_end()
    } 
    
ValidMessage(text[]) {
        static 
leni
        len 
strlen(text)
        
        if(!
len)
        return 
false
        
        
for(0leni++) {
            if( 
text[i] != ' ' ) {
                return 
true
            
}
        }

        return 
false
    
}

// Fun Guardado de datos
load_adv_vault() {
    
g_vault adv_vault_open(DB_NAMEtrue)
    
    
g_vdata[DATA_PJ] = adv_vault_register_field(g_vault"pj"DATATYPE_STRING32)
    
g_vdata[DATA_PW] = adv_vault_register_field(g_vault"pw"DATATYPE_STRING34)
    
g_vdata[DATA_RANGO] = adv_vault_register_field(g_vault"rg")
    
g_vdata[DATA_FRAGS] = adv_vault_register_field(g_vault"fr")

    
adv_vault_init(g_vault)

    
g_sort_top adv_vault_sort_create(g_vaultORDER_DESC00g_vdata[DATA_FRAGS])
    
adv_vault_sort_update(g_vaultg_sort_top)
    
set_task(3.0"load_top")

    
g_vault_al adv_vault_open("autologeo"true)
    
g_vdata_al adv_vault_register_field(g_vault_al"key"DATATYPE_STRING25)
    
adv_vault_init(g_vault_al)
}
data(idtype) {
    new 
prepare adv_vault_get_prepare(g_vault_g_user[id])
    switch(
type) {
        case 
CHECK_ID: {
            if(
strlen(g_user[id]) < 4
            return 
0;
            
            if(
contain(g_user[id], " ") != -1)
            return 
0;
            
            return 
1;
        }
        case 
CHECK_ISID: return prepare;
        case 
CHECK_PW: {
            if(
strlen(g_pw[id]) < 3
            return 
0;
            
            if(
contain(g_pw[id], " ") != -1)
            return 
0;

            return 
1;
        }
        case 
CHECK_ISPW: {
            if(!
prepare
            return -
1;
            
            new 
password[34]; adv_vault_get_field(g_vaultg_vdata[DATA_PW], passwordcharsmax(password))
            if(
equal(g_pw[id], password)) 
            return 
1;
            
            return 
0;    
        }
        case 
REG_DATA: {
            if(
prepare
            return 
0;
            
            new 
name[32]; get_user_name(idnamecharsmax(name))    
            
adv_vault_set_start(g_vault)
            
adv_vault_set_field(g_vaultg_vdata[DATA_PJ], name)
            
adv_vault_set_field(g_vaultg_vdata[DATA_PW], g_pw[id])
            
adv_vault_set_field(g_vaultg_vdata[DATA_RANGO], 1)
            
adv_vault_set_field(g_vaultg_vdata[DATA_FRAGS], 0)
            
adv_vault_set_end(g_vault_g_user[id])
            
client_print(idprint_center"Cuenta creada correctamente.")
            
show_cuenta_menu(id)
            return 
1;
        }
        case 
ING_DATA: {
            if(!
prepare
            return 
0;
            
            
g_id[id] = adv_vault_get_keyindex(g_vaultg_user[id])    
            
g_rango[id] = adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])
            
g_frags[id] = adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS])
            
client_print(idprint_center"Usuario logeado correctamente.")
            
            
g_status[id] = LOGEADO
            g_save
[id] = true
            client_cmd
(id"jointeam")
            
set_task(1.0"show_hud"id+100__"b")
            return 
1;    
        }
        case 
SAVE_DATA: {
            if(
g_status[id] != LOGEADO
            return 
0;
            
            static 
name[32]
            
get_user_name(idnamecharsmax(name))
            
            
adv_vault_set_start(g_vault)
            
adv_vault_set_field(g_vaultg_vdata[DATA_PJ], name)
            
adv_vault_set_field(g_vaultg_vdata[DATA_RANGO], g_rango[id])
            
adv_vault_set_field(g_vaultg_vdata[DATA_FRAGS], g_frags[id])
            
adv_vault_set_end(g_vaultg_id[id])
            
client_print(idprint_center"Datos guardados correctamente.")
            
g_save[id] = true
            
return 1;    
        }
        case 
CHANGE_PW: {
            if(!
prepare || g_status[id] != LOGEADO)
            return 
0
            
            adv_vault_set_start
(g_vault)
            
adv_vault_set_field(g_vaultg_vdata[DATA_PW], g_pw[id])
            
adv_vault_set_end(g_vaultg_id[id])
            return 
1;
        }
    }
    return -
2
}

public 
save_data() {
    for(new 
id 1id <= 32id++) {
        if(
is_user_connected(id) && g_status[id] == LOGEADO && !g_save[id]) 
        
data(idSAVE_DATA)
    }
    
adv_vault_sort_update(g_vaultg_sort_top)
    
set_task(3.0"load_top")
}
public 
load_top() {
    new 
lenlen2len3keykeyname[100]
    
//g_top[0] = EOS
    //g_top2[0] = EOS
    //g_top3[0] = EOS
    
    
len formatex(g_top[len], charsmax(g_top),
        
"<html><style>\
        body { background: #040404; font-family: Verdana, Arial, Sans-Serif; font-size: 7pt;}\
        .t { color: #808080; text-align: left; }\
        .h { background: #222 url('http://onlyarg.com/foro/images/Amiral/thead.png') repeat-x; color:#000; font-weight: bold;}\
        .p { color: #D41313; }\
        .n { color: #fff; }\
        </style><body>\
        <br><br><table border=0 cellspacing=0 cellpadding=4 align=center width=100%% class=t>"
)
    
    
len += formatex(g_top[len], charsmax(g_top)-len,
        
"<tr><td class=h width=7%%>#</td>\
        <td class=h>Nombre</td>\
        <td class=h>Rango</td>\
        <td class=h>Frags</td></tr>"
)
    
    
len2 formatex(g_top2[len2], charsmax(g_top2),
        
"<html><style>\
        body { background: #040404; font-family: Verdana, Arial, Sans-Serif; font-size: 7pt;}\
        .t { color: #808080; text-align: left; }\
        .h { background: #222 url('http://onlyarg.com/foro/images/Amiral/thead.png') repeat-x; color:#000; font-weight: bold;}\
        .p { color: #D41313; }\
        .n { color: #fff; }\
        </style><body>\
        <br><br><table border=0 cellspacing=0 cellpadding=4 align=center width=100%% class=t>"
)
    
    
len2 += formatex(g_top2[len2], charsmax(g_top2)-len2,
        
"<tr><td class=h width=7%%>#</td>\
        <td class=h>Nombre</td>\
        <td class=h>Rango</td>\
        <td class=h>Frags</td></tr>"
)
    
    
len3 formatex(g_top3[len3], charsmax(g_top3),
        
"<html><style>\
        body { background: #040404; font-family: Verdana, Arial, Sans-Serif; font-size: 7pt;}\
        .t { color: #808080; text-align: left; }\
        .h { background: #222 url('http://onlyarg.com/foro/images/Amiral/thead.png') repeat-x; color:#000; font-weight: bold;}\
        .p { color: #D41313; }\
        .n { color: #fff; }\
        </style><body>\
        <br><br><table border=0 cellspacing=0 cellpadding=4 align=center width=100%% class=t>"
)
    
    
len3 += formatex(g_top3[len3], charsmax(g_top3)-len3,
        
"<tr><td class=h width=7%%>#</td>\
        <td class=h>Nombre</td>\
        <td class=h>Rango</td>\
        <td class=h>Frags</td></tr>"
)

    new 
i
    
for(1<= 10i++) {
        
key adv_vault_sort_position(g_vaultg_sort_topi)
        if(!
adv_vault_get_prepare(g_vaultkey)) 
        continue;
        
        
adv_vault_get_field(g_vaultg_vdata[DATA_PJ], keyname31)
        
        
replace_all(keynamecharsmax(keyname), "<""<")
        
replace_all(keynamecharsmax(keyname), ">"">")
        
        
len += formatex(g_top[len], charsmax(g_top)-len,\
            
"<tr><td class=p>#%d</td>\
            <td class=n>%s</td>\
            <td>%s</td>\
            <td>%d</td>"
ikeynamerango[adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])][RANGO_NAME], adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS]))
    }
    for(
11<= 20i++) {
        
key adv_vault_sort_position(g_vaultg_sort_topi)
        if(!
adv_vault_get_prepare(g_vaultkey)) 
        continue;
        
        
adv_vault_get_field(g_vaultg_vdata[DATA_PJ], keyname31)
        
        
replace_all(keynamecharsmax(keyname), "<""<")
        
replace_all(keynamecharsmax(keyname), ">"">")
        
        
len2 += formatex(g_top2[len2], charsmax(g_top2)-len2,\
            
"<tr><td class=p>#%d</td>\
            <td class=n>%s</td>\
            <td>%s</td>\
            <td>%d</td>"
ikeynamerango[adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])][RANGO_NAME], adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS]))
    }
    for(
21<= 30i++) {
        
key adv_vault_sort_position(g_vaultg_sort_topi)
        if(!
adv_vault_get_prepare(g_vaultkey)) 
        continue;
        
        
adv_vault_get_field(g_vaultg_vdata[DATA_PJ], keyname31)
        
        
replace_all(keynamecharsmax(keyname), "<""<")
        
replace_all(keynamecharsmax(keyname), ">"">")
        
        
len3 += formatex(g_top3[len3], charsmax(g_top3)-len3,\
            
"<tr><td class=p>#%d</td>\
            <td class=n>%s</td>\
            <td>%s</td>\
            <td>%d</td>"
ikeynamerango[adv_vault_get_field(g_vaultg_vdata[DATA_RANGO])][RANGO_NAME], adv_vault_get_field(g_vaultg_vdata[DATA_FRAGS]))
    }
    
    
add(g_topcharsmax(g_top)-len"</table></body></html>")
    
add(g_top2charsmax(g_top2)-len2"</table></body></html>")
    
add(g_top3charsmax(g_top3)-len3"</table></body></html>")
}

create_filedb() {
    new 
datex[100], datex2[100]
    
get_time("%d-%m-%Y"datexcharsmax(datex))
    
get_time("%d-%m-%Y"datex2charsmax(datex2))
    
    
format(datexcharsmax(datex), "addons/amxmodx/data/copiasCTF/%s.dat"datex)
    if(!
file_exists(datex)) 
    
CopyFile("addons/amxmodx/data/adv_vault/sv/data.dat"datex)
    
    
format(datex2charsmax(datex2), "addons/amxmodx/data/copiasLOGEO/%s.dat"datex2)
    if(!
file_exists(datex2)) 
    
CopyFile("addons/amxmodx/data/adv_vault/autologeo/data.dat"datex2)
    
}
CopyFile(const szFile[], const szNewFile[])
{
    
log_to_file("Copy.log""Iniciando la copia del archivo ^"%s^" a ^"%s^""szFileszNewFile);
    
    new 
iFile    fopen(szFile"rb"),
    
iNewFile fopen(szNewFile"wb"),
    
iFileSize,
    
iReadSize,
    
szBuffer[1024];
    
    if (
iFile && iNewFile)
    {
        
fseek(iFile0SEEK_END);
        
iFileSize ftell(iFile);
        
fseek(iFile0SEEK_SET);
        
        for (new 
iIndex 0iIndex iFileSizeiIndex += 256)
        {
            
iReadSize fread_blocks(iFileszBuffer256BLOCK_CHAR);
            
fwrite_blocks(iNewFileszBufferiReadSizeBLOCK_CHAR);
        }
        
        
log_to_file("Copy.log""Se ha terminado de copiar el archivo.");
    }
    else
    {
        
log_to_file("Copy.log""No se pudo abrir el archivo a copiar o no se pudo crear la nueva copia.");
    }
    
    
fclose(iFile);
    
fclose(iNewFile);
}

// Fun Stocks
add_point(number)

    new 
countistr[29], str2[35], len
    num_to_str
(numberstrcharsmax(str))
    
len strlen(str)
    
    for (
0leni++)
    {
        if (
!= && ((len i) %== 0))
        {
            
add(str2charsmax(str2), "."1)
            
count++
            
add(str2[i+count], 1str[i], 1)
        }
        else
        
add(str2[i+count], 1str[i], 1)
    }

    return 
str2;

Responder
#3
(11/09/2019, 04:08 PM)Kiltr0 escribió: Prueba espero no haya ningún problema Gran sonrisa
Hay un problemilla xd, no muestra el rango que es v:

[Imagen: YwVe9rh.png]

Ayuda papu v:

____________________________________________
PRONTO MI PRIMER APORTE!!! .Koala.
SI NO VAS AYUDAR, POR FAVOR NO COMENTARLovepanda
Responder
#4
sida visual...

Código PHP:
public event_show_status(id)
{
    static 
playerjunkName[33];
    
get_user_aiming(idplayerjunk); get_user_name(playerNamecharsmax(Name));
    
    if (!
is_user_alive(player)) return;
    
    
set_hudmessage(255255255, -1.0, -1.001.01.00.10.1, -1);
    
ShowSyncHudMsg(idg_msgSync"Nick: %s || Vida: %d || Rango : %s"Nameget_user_health(player), rango[g_rango[player]][RANGO_NAME]);

[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#5
(11/09/2019, 08:12 PM)kikizon2 escribió: sida visual...

Código PHP:
public event_show_status(id)
{
    static 
playerjunkName[33];
    
get_user_aiming(idplayerjunk); get_user_name(playerNamecharsmax(Name));
    
    if (!
is_user_alive(player)) return;
    
    
set_hudmessage(255255255, -1.0, -1.001.01.00.10.1, -1);
    
ShowSyncHudMsg(idg_msgSync"Nick: %s || Vida: %d || Rango : %s"Nameget_user_health(player), rango[g_rango[player]][RANGO_NAME]);

Jjaja me estaba fijando en eso y yo decia sera que debo agregarle el %s pero no la pense y no lo intente por eso queria que el me confirmara pero ya pruebo y vere si funciona y pues no me active en ese momento que lento soy Roflmao

EDIT: Ya esta funciono muchas gracias, alfin ayudas a un pobre Roflmao

______________________________
PRONTO MI PRIMER APORTE!!! .Koala.
SI NO VAS AYUDAR, POR FAVOR NO COMENTARLovepanda
Responder
#6
Lee un poquito el código, falto un %s.
Responder
#7
(11/09/2019, 08:20 PM)metita escribió: Lee un poquito el código, falto un %s.
Si lo se, fue culpa mia por no aprestar atencion iva agregarlo pero consulte antes con el para por si no era eso, pero me di de cuenta que hay que meter mano y ver que sale Whatever No volvera a suceder. Proud

________________________________-
PRONTO MI PRIMER APORTE!!! .Koala.
SI NO VAS AYUDAR, POR FAVOR NO COMENTARLovepanda
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)