agregarle compra con dinero
#1
buenas tengo este sistema de rangos + menu con extra items que se compran con aps pero le quiero agregar que tambien se compren con dinero osea que se compren con aps y dinero no se si me explique bien pero espero que me entiendan

Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */

#include <amxmisc>
#include <fakemeta>
#include <adv_vault>
#include <hamsandwich>
#include <fun>

new const PLUGIN[] = "Rangos CS:GO"
new const AUTHOR[] = "kikizon"

/* ========== [CONSTANTES] ========== */ 
new const Prefijo[] = "^1[^4ProGaming^1]" // Prefijo en say
//new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP

// Natives // 
native give_railcannon(id);
native get_thanatos(id);
native Get_Balrog3(id);
native Get_AT4CS(id);
native Get_Balrog11(id);
native give_janus3(id);
native Get_CompoundBow(id);
native give_m32(id);
native ammopacks_jctf(id);
native jctf_get_adrenaline(id);
//native get_v3(id);
// Fin // 

enum DETALLES
{
    
iNOMBRE[55],
    
LIMITE_ITEM,
    
COSTO_APS,
}
enum _:ITEMS
{
    
RAILCANNON,
    
THANATOS,
    
BALROG3,
    
AT4CS,
    
BALROG11,
    
JANUS3,
    
COMPOUNDBOW,
    
M32
};
new const 
TIENDA_ITEMS[][DETALLES] = 
{
    { 
"RailCannon",                122         },
    { 
"Thanatos 7",                126         },
    { 
"Balrog 3",                125        },
    { 
"AT4cs",                130        },
    { 
"Balrog 11",                121        },
    { 
"Janus 3",                120        },
    { 
"CompoundBow",                124        },
    { 
"M32",                135        }
};
/*   Limite   */
new Limite[33][ITEMS];

/* ========== [CONST NOMBRES DE RANGOS] ========== */
enum _:DATA
{
    
NOMBRE[32],
    
FRAGS
}
new const 
Rangos[][DATA] = 
{
    { 
"Distinguido"50 },
    { 
"Cabo I"100 },
    { 
"Cabo II"200 },
    { 
"Sargento I"300 },
    { 
"Sargento II"400 },
    { 
"Sargento Mayor"500 },
    { 
"Sargento Mayor III"600 },
    { 
"Sargento Mayor II"700 },
    { 
"Sargento Mayor I"800 },
    { 
"Sargento Elite"900 },
    { 
"Sargento Master"1000 },
    { 
"Teniente",1200 },
    { 
"Teniente I"1400 },
    { 
"Capitan"1600 },
    { 
"Mayor"1800 },
    { 
"Teniente Coronel"2000 },
    { 
"Coronel"2300 },
    { 
"General II"2600 },
    { 
"General I"2800 },
    { 
"Mayor General"3000 },
    { 
"General en Jefe"3400 },
    { 
"Comandante"3800 },
    { 
"Experto"4200 },
    { 
"Silver IV"4700 },
    { 
"Silver III"5200 },
    { 
"Silver II"5700 },
    { 
"Silver I"6200 },
    { 
"Silver Elite"6800 },
    { 
"Silver Elite Master"7400 },
    { 
"Gold Nova I"8100 },
    { 
"Gold Nova II"8800 },
    { 
"Gold Nova III"9500 },
    { 
"Gold Nova Master"10300 },
    { 
"Master Guardian I"11100 },
    { 
"Master Guardian II"12000 },
    { 
"Master Guardian Elite"13000 },
    { 
"Distinguido Master Guardian"15000 },
    { 
"Aguila Legendaria"19000 },
    { 
"Aguila Legendaria Master"23000 },
    { 
"Master Supremo I"28000 },
    { 
"Global Elite"34000 },
    { 
"Global Master"41000 },
    { 
"Boina Verde"50000 },
    { 
"Profesional"59000 },
    { 
"Ultimate"79000 },
    { 
"Rambo"100000 },
    { 
"Robocop"140000 },
    { 
"Terminator"190000 },
    { 
"Mercenario"240000 }
}

/* ========== [VARIABLES] ========== */
new g_rango[33], g_frags[33], g_ammopacks[33]
new 
g_playername[33][32];

new 
g_vault

enum 
{
    
CAMPO_AMMOS 0,
    
CAMPO_RANGO,
    
CAMPO_FRAG,
    
MAX_FIELDS
}
new 
g_campos[MAX_FIELDS]
new 
bool:Remover[33]

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

/*   Ganancia AmmoPacks   */
new cvar_ammopacks_staff
new cvar_ammopacks_full
new cvar_ammopacks_premium
new cvar_ammopacks_vip
new cvar_ammopacks_usuario

/* ========== [INIT] ========== */
public plugin_init() 
{
    
register_concmd("amx_ammopacks""cmd_packs"ADMIN_RCON"<jugador> <cantidad>");
    
    
RegisterHam(Ham_Spawn"player""PlayerSpawn"1)
    
RegisterHam(Ham_Killed"player""PlayerKilled"true)
    
    
register_event("DeathMsg""Event_DeathMsg""a")
    
register_logevent("logevent_round_end"2"1=Round_End")

    
register_clcmd("say /hud""remover_hud")
    
register_clcmd("radio1""TiendaItems")
    
register_clcmd("nightvision""Menu_Principal")
    
    
register_clcmd("say""message_saytext"
    
register_clcmd("say_team""message_sayteam")
    
        
/* ========== [EMPIEZA SECCION MODIFICABLE] ========== */
    
cvar_ammopacks_staff    =    register_cvar("amx_ammopacks_staff""5" ,ADMIN_RCON);
    
cvar_ammopacks_full    =    register_cvar("amx_ammopacks_full""4" ,ADMIN_RCON);
    
cvar_ammopacks_premium    =    register_cvar("amx_ammopacks_premium",  "3" ,ADMIN_RCON);
    
cvar_ammopacks_vip    =     register_cvar("amx_ammopacks_vip",     "2" ,ADMIN_RCON);
    
cvar_ammopacks_usuario    =    register_cvar("amx_ammopacks_usuario",     "1" ,ADMIN_RCON);
    
/* ========== [TERMINA SECCION MODIFICABLE] ========== */
    
    
g_vault adv_vault_open("data_rangos"false)
    
g_campos[CAMPO_AMMOS] = adv_vault_register_field(g_vault"AMMOS")
    
g_campos[CAMPO_RANGO] = adv_vault_register_field(g_vault"RANGOS")
    
g_campos[CAMPO_FRAG] = adv_vault_register_field(g_vault"FRAGS")
    
adv_vault_init(g_vault)
}
/* ========== [PRECACHE]* ==========*/
//public plugin_precache() 
//    precache_generic(Sonido)
    
/* ========== [NATIVES]* ==========*/
public plugin_natives()
{
    
register_native("rangos_jctf""mi_rango"1)
    
register_native("ammopacks_jctf""mi_ammopack"1)
    
register_native("jctf_get_tienda","TiendaItems"1)
}    
    
public 
PlayerSpawn(id)
{
    for(new 
;ITEMSo++)
    
Limite[id][o] = 0
}
public 
mi_rango(id)
    return 
Rangos[g_rango[id]][NOMBRE]
    
public 
mi_ammopack(id)
    return 
g_ammopacks[id]
    
/* ========== [REMOVER HUD] ==========*/
public remover_hud(id)
{
    if(!
Remover[id])
    {
        
remove_task(id+TASK_HUD)
        
chatcolor(id"%s Has desactivado el ^4hud de rangos"Prefijo)
        
Remover[id] = true    
    
}
    else
    {   
        
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
        
chatcolor(id"%s Has activado el ^4hud de rangos"Prefijo)
        
Remover[id] = false 
    
}
}
/* ========== [HUD] ==========*/
 
public Rangos_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(2552552550.600.6710.11.01.01.01)
        
show_hudmessage(ID_HUD"Nombre: %s | Frags: %d | Rango: %s"g_playername[id], g_frags[id], Rangos[g_rango[id]][NOMBRE])
    } 
    else
    {
        
set_hudmessage(255255255, -1.00.8700.11.01.01.01)
        
show_hudmessage(ID_HUD"Rango: %s^nFrags: [%d / %d]"Rangos[g_rango[id]][NOMBRE], g_frags[id], 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;
    
g_ammopacks[id] = 0;
    
    
Cargar(id)
    
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
}
/* ========== [DISCONNECT] ========== */
public client_disconnect(id)
{
    
Guardar(id)
    
remove_task(id+TASK_HUD)
}

/* ========== [ROUND END] ========== */
public logevent_round_end() 
{
    for(new 
id 1id <= get_maxplayers(); id++)
    
Guardar(id); 
}
/* ========== [HAM KILLED] ========== */
public PlayerKilled(victimattackershouldgib)
{
    if(!
is_user_connected(attacker) || !is_user_connected(victim) || victim == attacker)
    return 
HAM_IGNORED
    
    
if(is_user_admin(attacker))
    {
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Ag_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_staff)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Bg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_full)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Cg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_premium)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Dg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_vip)
    }
    else 
g_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_usuario)
    return 
HAM_IGNORED
}
/* ========== [DEATHMSG] ========== */
public Event_DeathMsg() 
{
    new 
attacker read_data(1)
    new 
victim read_data(2)
    
    if(
victim == attacker) return;
    
    if(
is_user_alive(attacker)) 
    {
        
g_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 has ascendido al rango: ^4%s^1!"PrefijoRangos[g_rango[id]][NOMBRE])
        
//client_cmd(id, "mp3 play ^"%s^"", Sonido)
        
Aumento false
    
}
}
/* ========== [HOOK SAY & SAY_TEAM] ========== */
public message_saytext(id)

    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
color[11]; get_user_team(id,color,charsmax(color))
    static 
name[32]; get_user_name(id,name,charsmax(name))

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s",Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i) || is_user_alive(i) != is_user_alive(id)) continue
        
    
        
get_user_team(iteamcharsmax(team))
        
changeTeamInfo(icolor)
        
writeMessage(isaid)
        
changeTeamInfo(iteam)
    }
    return 
PLUGIN_HANDLED_MAIN;
}

public 
message_sayteam(id)
{    
    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) 
    return 
PLUGIN_CONTINUE
    
    static 
playerTeamName[19]
    switch (
get_user_team(id)) 
    {
        case 
1copy (playerTeamName12"TT")
        case 
2copy (playerTeamName12"CT"
        default: 
copy (playerTeamName11"Sin Equipo"
    }

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

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i)) continue;
        
        if (
get_user_team(i) == get_user_team(id)) 
        {
            if(
is_user_admin(i) && is_user_alive(id) || !is_user_alive(i) && !is_user_alive(id)) 
            {
                
get_user_team(iteamcharsmax(team))
                
changeTeamInfo(icolor)
                
writeMessage(isaid)
                
changeTeamInfo(iteam)
            }
        }
    }
    return 
PLUGIN_HANDLED_MAIN;
}
public 
changeTeamInfo(playerteam[]) 
{
    
message_begin(MSG_ONEget_user_msgid("TeamInfo"), _player)
    
write_byte(player)
    
write_string(team)
    
message_end()
}
public 
writeMessage(playermessage[])
{
    
message_begin(MSG_ONEget_user_msgid("SayText"), {000}, player)
    
write_byte(player)
    
write_string(message)
    
message_end()
}
/* ========== [GUARDADO] ========== */
Guardar(id
{
    
adv_vault_set_start(g_vault)
    
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOS], g_ammopacks[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_RANGO], g_rango[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_FRAG], g_frags[id])
    
adv_vault_set_end(g_vault0g_playername[id])
}
Cargar(id
{
    if(!
adv_vault_get_prepare(g_vault_g_playername[id])) 
    return

    
g_rango[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_RANGO])
    
g_frags[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FRAG])
    
g_ammopacks[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOS])

public 
TiendaItems(id)
{    
    static 
sztext[70]    
    new 
Menulen[300]
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d"g_ammopacks[id])
    
Menu menu_create(len"TiendaItems_Handler")
    
    for(new 
0sizeof(TIENDA_ITEMS); i++)
    {
        if(
Limite[id][i] == || g_ammopacks[id] < TIENDA_ITEMS[i][COSTO_APS])
            
format(sztextcharsmax(sztext), "\d%s \d[APs %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS]);
    
        else
            
format(sztextcharsmax(sztext), "\w%s \r[APs %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS]);
        
        
menu_additem(Menusztext__menu_makecallback"tienda_callback"));
    }
    
menu_setprop(MenuMPROP_EXITNAME"Cerrar");
    
menu_display(idMenu);
    return 
PLUGIN_HANDLED;
}
public 
tienda_callback(idMenuItem
{
    if(
g_ammopacks[id] < TIENDA_ITEMS[Item][COSTO_APS])
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}
public 
TiendaItems_Handler(idMenuItem)
{
    if(
Item == MENU_EXIT || !is_user_alive(id))
    {
        
menu_destroy(Menu);
        return 
PLUGIN_HANDLED;
    }    
    static 
cost
    cost 
TIENDA_ITEMS[Item][COSTO_APS];
    
    if(
Limite[id][Item] == TIENDA_ITEMS[Item][LIMITE_ITEM])
    {
        
chatcolor(id"%s Ya has comprado este item especial."Prefijo)
        
TiendaItems(id)
        return 
PLUGIN_HANDLED;
    }
    
Comprar_Items(idItemcost);
    
menu_destroy(Menu)
    return 
PLUGIN_HANDLED;
}
Comprar_Items(idItemcost)
{
    switch(
Item)
    {
        case 
RAILCANNONdrop_weapons(id1), give_railcannon(id)
        case 
THANATOSdrop_weapons(id1), get_thanatos(id)
        case 
BALROG3drop_weapons(id1), Get_Balrog3(id)
        case 
AT4CSdrop_weapons(id1), Get_AT4CS(id)
        case 
BALROG11drop_weapons(id1), Get_Balrog11(id)
        case 
JANUS3drop_weapons(id1), give_janus3(id)
        case 
COMPOUNDBOWdrop_weapons(id1), Get_CompoundBow(id)
        case 
M32drop_weapons(id1), give_m32(id)
    }
    
Limite[id][Item]++
    
g_ammopacks[id] -= cost
    chatcolor
(id"%s Has comprado el item ^4%s^1."PrefijoTIENDA_ITEMS[Item][iNOMBRE])
    return 
PLUGIN_HANDLED
}
public 
cmd_packsiId,level,cid 
{
    if(!
cmd_accessiIdlevelcid) )
    return 
PLUGIN_HANDLED;
        
    new 
target[33], cantidad[10], packsplayer;
    
read_argv(1targetcharsmaxtarget ) );
    
read_argv(2cantidadcharsmaxcantidad ) );
    
player cmd_targetiIdtargetCMDTARGET_ALLOW_SELF );
    
packs str_to_numcantidad );
        
    if(!
player)
    return 
PLUGIN_HANDLED;
        
    new 
TargetName[33]; get_user_nameplayerTargetNamecharsmax(TargetName) );
    new 
AdminName[33]; get_user_nameiIdAdminNamecharsmax(AdminName) );
        
        
    
chatcolor0"%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." Prefijo AdminNamepackspacks packs "ammopacks""ammopack"TargetName);
    
g_ammopacks[player] += packs;
    return 
PLUGIN_HANDLED;
}
/* ========== [STOCKS] ========== */
// stock de chatcolor
stock chatcolor(id, const input[], any:...) 
{
    new 
count 1players[32]; 
    static 
msg[191]; 
    
vformat(msg190input3); 
    
    
replace_all(msg190"!g""^4"); // Verde
    
replace_all(msg190"!y""^1"); // Default
    
replace_all(msg190"!t""^3"); // Color del Equipo 
    
    
if (idplayers[0] = id; else get_players(playerscount"ch"); 
    { 
        for (new 
0counti++)  
        { 
            if (
is_user_connected(players[i])) 
            { 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]); 
                
write_byte(players[i]); 
                
write_string(msg); 
                
message_end(); 
            } 
        } 
    } 

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


public 
Menu_Principal(iId)
{
    new 
menulen[300];
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%"jctf_get_adrenaline(iId));
    
menu menu_create (len"MenuPrincipal_Handler");
    
    
menu_additemmenu"\wComprar \rArmas Especiales""0");
    
menu_additemmenu"\wUsar \rAdrenalina""1");
    
menu_additemmenu"\wNuestras \rServers""2");
    
menu_additemmenu"\wDropear \rBandera""3");
    
menu_additemmenu"\wReiniciar \rScore""4");
    
menu_additemmenu"\wVer \rTop 15""5" );
    
menu_additemmenu"\wVer \rRankstats""6" );
    
menu_additemmenu"\wPanel \rAdmin""7"ADMIN_KICK );
    
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
    
menu_displayiIdmenu);
    return 
PLUGIN_HANDLED;
}

public 
MenuPrincipal_HandleriIdmenuitem ) {
    if(
item == MENU_EXIT)
    {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    switch( 
item )
    {
        case 
0TiendaItemsiId );
        case 
1client_cmdiId"adrenaline");
        case 
2client_cmdiId"say servers");
        case 
3client_cmdiId"say /dropflag");
        case 
4client_cmdiId"say rs");
        case 
5client_cmdiId"say top");
        case 
6client_cmdiId"say /rankstats");
        case 
7client_cmdiId"amxmodmenu");
    }
    return 
PLUGIN_HANDLED;
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid;
    
num 0;
    
get_user_weapons(idweaponsnum);
    
    const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|
    (
1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
    
    const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
    for (
0numi++)
    {
        
weaponid weapons[i];
        
        if ((
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            static 
wname[32];
            
get_weaponname(weaponidwnamesizeof wname 1);
            
engclient_cmd(id"drop"wname);
        }
    }

Aprendiendo scripting Excitedeyes || Tratare ayudar en lo que pueda Trolleyes || PD: Soy pobre Cutecry
Responder
#2
Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */

#include <amxmisc>
#include <fakemeta>
#include <adv_vault>
#include <hamsandwich>
#include <fun>
#include <cstrike>

new const PLUGIN[] = "Rangos CS:GO"
new const AUTHOR[] = "kikizon"

/* ========== [CONSTANTES] ========== */ 
new const Prefijo[] = "^1[^4ProGaming^1]" // Prefijo en say
//new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP

// Natives // 
native give_railcannon(id);
native get_thanatos(id);
native Get_Balrog3(id);
native Get_AT4CS(id);
native Get_Balrog11(id);
native give_janus3(id);
native Get_CompoundBow(id);
native give_m32(id);
native ammopacks_jctf(id);
native jctf_get_adrenaline(id);
//native get_v3(id);
// Fin // 

enum DETALLES
{
    
iNOMBRE[55],
    
LIMITE_ITEM,
    
COSTO_APS,
    
COSTO_MONEY
}
enum _:ITEMS
{
    
RAILCANNON,
    
THANATOS,
    
BALROG3,
    
AT4CS,
    
BALROG11,
    
JANUS3,
    
COMPOUNDBOW,
    
M32
};
new const 
TIENDA_ITEMS[][DETALLES] = 
{
    { 
"RailCannon",                1221000         },
    { 
"Thanatos 7",                1262000         },
    { 
"Balrog 3",                1253000        },
    { 
"AT4cs",                1304000        },
    { 
"Balrog 11",                1215000        },
    { 
"Janus 3",                1206000        },
    { 
"CompoundBow",                1247000        },
    { 
"M32",                1358000        }
};
/*   Limite   */
new Limite[33][ITEMS];

/* ========== [CONST NOMBRES DE RANGOS] ========== */
enum _:DATA
{
    
NOMBRE[32],
    
FRAGS
}
new const 
Rangos[][DATA] = 
{
    { 
"Distinguido"50 },
    { 
"Cabo I"100 },
    { 
"Cabo II"200 },
    { 
"Sargento I"300 },
    { 
"Sargento II"400 },
    { 
"Sargento Mayor"500 },
    { 
"Sargento Mayor III"600 },
    { 
"Sargento Mayor II"700 },
    { 
"Sargento Mayor I"800 },
    { 
"Sargento Elite"900 },
    { 
"Sargento Master"1000 },
    { 
"Teniente",1200 },
    { 
"Teniente I"1400 },
    { 
"Capitan"1600 },
    { 
"Mayor"1800 },
    { 
"Teniente Coronel"2000 },
    { 
"Coronel"2300 },
    { 
"General II"2600 },
    { 
"General I"2800 },
    { 
"Mayor General"3000 },
    { 
"General en Jefe"3400 },
    { 
"Comandante"3800 },
    { 
"Experto"4200 },
    { 
"Silver IV"4700 },
    { 
"Silver III"5200 },
    { 
"Silver II"5700 },
    { 
"Silver I"6200 },
    { 
"Silver Elite"6800 },
    { 
"Silver Elite Master"7400 },
    { 
"Gold Nova I"8100 },
    { 
"Gold Nova II"8800 },
    { 
"Gold Nova III"9500 },
    { 
"Gold Nova Master"10300 },
    { 
"Master Guardian I"11100 },
    { 
"Master Guardian II"12000 },
    { 
"Master Guardian Elite"13000 },
    { 
"Distinguido Master Guardian"15000 },
    { 
"Aguila Legendaria"19000 },
    { 
"Aguila Legendaria Master"23000 },
    { 
"Master Supremo I"28000 },
    { 
"Global Elite"34000 },
    { 
"Global Master"41000 },
    { 
"Boina Verde"50000 },
    { 
"Profesional"59000 },
    { 
"Ultimate"79000 },
    { 
"Rambo"100000 },
    { 
"Robocop"140000 },
    { 
"Terminator"190000 },
    { 
"Mercenario"240000 }
}

/* ========== [VARIABLES] ========== */
new g_rango[33], g_frags[33], g_ammopacks[33]
new 
g_playername[33][32];

new 
g_vault

enum 
{
    
CAMPO_AMMOS 0,
    
CAMPO_RANGO,
    
CAMPO_FRAG,
    
MAX_FIELDS
}
new 
g_campos[MAX_FIELDS]
new 
bool:Remover[33]

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

/*   Ganancia AmmoPacks   */
new cvar_ammopacks_staff
new cvar_ammopacks_full
new cvar_ammopacks_premium
new cvar_ammopacks_vip
new cvar_ammopacks_usuario

/* ========== [INIT] ========== */
public plugin_init() 
{
    
register_concmd("amx_ammopacks""cmd_packs"ADMIN_RCON"<jugador> <cantidad>");
    
    
RegisterHam(Ham_Spawn"player""PlayerSpawn"1)
    
RegisterHam(Ham_Killed"player""PlayerKilled"true)
    
    
register_event("DeathMsg""Event_DeathMsg""a")
    
register_logevent("logevent_round_end"2"1=Round_End")

    
register_clcmd("say /hud""remover_hud")
    
register_clcmd("radio1""TiendaItems")
    
register_clcmd("nightvision""Menu_Principal")
    
    
register_clcmd("say""message_saytext"
    
register_clcmd("say_team""message_sayteam")
    
        
/* ========== [EMPIEZA SECCION MODIFICABLE] ========== */
    
cvar_ammopacks_staff    =    register_cvar("amx_ammopacks_staff""5" ,ADMIN_RCON);
    
cvar_ammopacks_full    =    register_cvar("amx_ammopacks_full""4" ,ADMIN_RCON);
    
cvar_ammopacks_premium    =    register_cvar("amx_ammopacks_premium",  "3" ,ADMIN_RCON);
    
cvar_ammopacks_vip    =     register_cvar("amx_ammopacks_vip",     "2" ,ADMIN_RCON);
    
cvar_ammopacks_usuario    =    register_cvar("amx_ammopacks_usuario",     "1" ,ADMIN_RCON);
    
/* ========== [TERMINA SECCION MODIFICABLE] ========== */
    
    
g_vault adv_vault_open("data_rangos"false)
    
g_campos[CAMPO_AMMOS] = adv_vault_register_field(g_vault"AMMOS")
    
g_campos[CAMPO_RANGO] = adv_vault_register_field(g_vault"RANGOS")
    
g_campos[CAMPO_FRAG] = adv_vault_register_field(g_vault"FRAGS")
    
adv_vault_init(g_vault)
}
/* ========== [PRECACHE]* ==========*/
//public plugin_precache() 
//    precache_generic(Sonido)
    
/* ========== [NATIVES]* ==========*/
public plugin_natives()
{
    
register_native("rangos_jctf""mi_rango"1)
    
register_native("ammopacks_jctf""mi_ammopack"1)
    
register_native("jctf_get_tienda","TiendaItems"1)
}    
    
public 
PlayerSpawn(id)
{
    for(new 
;ITEMSo++)
    
Limite[id][o] = 0
}
public 
mi_rango(id)
    return 
Rangos[g_rango[id]][NOMBRE]
    
public 
mi_ammopack(id)
    return 
g_ammopacks[id]
    
/* ========== [REMOVER HUD] ==========*/
public remover_hud(id)
{
    if(!
Remover[id])
    {
        
remove_task(id+TASK_HUD)
        
chatcolor(id"%s Has desactivado el ^4hud de rangos"Prefijo)
        
Remover[id] = true    
    
}
    else
    {   
        
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
        
chatcolor(id"%s Has activado el ^4hud de rangos"Prefijo)
        
Remover[id] = false 
    
}
}
/* ========== [HUD] ==========*/
 
public Rangos_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(2552552550.600.6710.11.01.01.01)
        
show_hudmessage(ID_HUD"Nombre: %s | Frags: %d | Rango: %s"g_playername[id], g_frags[id], Rangos[g_rango[id]][NOMBRE])
    } 
    else
    {
        
set_hudmessage(255255255, -1.00.8700.11.01.01.01)
        
show_hudmessage(ID_HUD"Rango: %s^nFrags: [%d / %d]"Rangos[g_rango[id]][NOMBRE], g_frags[id], 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;
    
g_ammopacks[id] = 0;
    
    
Cargar(id)
    
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
}
/* ========== [DISCONNECT] ========== */
public client_disconnect(id)
{
    
Guardar(id)
    
remove_task(id+TASK_HUD)
}

/* ========== [ROUND END] ========== */
public logevent_round_end() 
{
    for(new 
id 1id <= get_maxplayers(); id++)
    
Guardar(id); 
}
/* ========== [HAM KILLED] ========== */
public PlayerKilled(victimattackershouldgib)
{
    if(!
is_user_connected(attacker) || !is_user_connected(victim) || victim == attacker)
    return 
HAM_IGNORED
    
    
if(is_user_admin(attacker))
    {
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Ag_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_staff)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Bg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_full)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Cg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_premium)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Dg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_vip)
    }
    else 
g_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_usuario)
    return 
HAM_IGNORED
}
/* ========== [DEATHMSG] ========== */
public Event_DeathMsg() 
{
    new 
attacker read_data(1)
    new 
victim read_data(2)
    
    if(
victim == attacker) return;
    
    if(
is_user_alive(attacker)) 
    {
        
g_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 has ascendido al rango: ^4%s^1!"PrefijoRangos[g_rango[id]][NOMBRE])
        
//client_cmd(id, "mp3 play ^"%s^"", Sonido)
        
Aumento false
    
}
}
/* ========== [HOOK SAY & SAY_TEAM] ========== */
public message_saytext(id)

    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
color[11]; get_user_team(id,color,charsmax(color))
    static 
name[32]; get_user_name(id,name,charsmax(name))

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s",Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i) || is_user_alive(i) != is_user_alive(id)) continue
        
    
        
get_user_team(iteamcharsmax(team))
        
changeTeamInfo(icolor)
        
writeMessage(isaid)
        
changeTeamInfo(iteam)
    }
    return 
PLUGIN_HANDLED_MAIN;
}

public 
message_sayteam(id)
{    
    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) 
    return 
PLUGIN_CONTINUE
    
    static 
playerTeamName[19]
    switch (
get_user_team(id)) 
    {
        case 
1copy (playerTeamName12"TT")
        case 
2copy (playerTeamName12"CT"
        default: 
copy (playerTeamName11"Sin Equipo"
    }

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

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i)) continue;
        
        if (
get_user_team(i) == get_user_team(id)) 
        {
            if(
is_user_admin(i) && is_user_alive(id) || !is_user_alive(i) && !is_user_alive(id)) 
            {
                
get_user_team(iteamcharsmax(team))
                
changeTeamInfo(icolor)
                
writeMessage(isaid)
                
changeTeamInfo(iteam)
            }
        }
    }
    return 
PLUGIN_HANDLED_MAIN;
}
public 
changeTeamInfo(playerteam[]) 
{
    
message_begin(MSG_ONEget_user_msgid("TeamInfo"), _player)
    
write_byte(player)
    
write_string(team)
    
message_end()
}
public 
writeMessage(playermessage[])
{
    
message_begin(MSG_ONEget_user_msgid("SayText"), {000}, player)
    
write_byte(player)
    
write_string(message)
    
message_end()
}
/* ========== [GUARDADO] ========== */
Guardar(id
{
    
adv_vault_set_start(g_vault)
    
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOS], g_ammopacks[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_RANGO], g_rango[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_FRAG], g_frags[id])
    
adv_vault_set_end(g_vault0g_playername[id])
}
Cargar(id
{
    if(!
adv_vault_get_prepare(g_vault_g_playername[id])) 
    return

    
g_rango[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_RANGO])
    
g_frags[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FRAG])
    
g_ammopacks[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOS])

public 
TiendaItems(id)
{    
    static 
sztext[70]    
    new 
Menulen[300]
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d"g_ammopacks[id])
    
Menu menu_create(len"TiendaItems_Handler")
    
    for(new 
0sizeof(TIENDA_ITEMS); i++)
    {
        if(
Limite[id][i] == || g_ammopacks[id] < TIENDA_ITEMS[i][COSTO_APS] || cs_get_user_money(id) < TIENDA_ITEMS[i][COSTO_MONEY])
            
format(sztextcharsmax(sztext), "\d%s \d[APs %d] [Dinero %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS], TIENDA_ITEMS[i][COSTO_MONEY]);
    
        else
            
format(sztextcharsmax(sztext), "\w%s \r[APs %d] [Dinero %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS], TIENDA_ITEMS[i][COSTO_MONEY]);
        
        
menu_additem(Menusztext__menu_makecallback"tienda_callback"));
    }
    
menu_setprop(MenuMPROP_EXITNAME"Cerrar");
    
menu_display(idMenu);
    return 
PLUGIN_HANDLED;
}
public 
tienda_callback(idMenuItem
{
    if(
g_ammopacks[id] < TIENDA_ITEMS[Item][COSTO_APS] || cs_get_user_money(id) < TIENDA_ITEMS[Item][COSTO_MONEY])
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}
public 
TiendaItems_Handler(idMenuItem)
{
    if(
Item == MENU_EXIT || !is_user_alive(id))
    {
        
menu_destroy(Menu);
        return 
PLUGIN_HANDLED;
    }    
    static 
cost
    cost 
TIENDA_ITEMS[Item][COSTO_APS];
    
    if(
Limite[id][Item] == TIENDA_ITEMS[Item][LIMITE_ITEM])
    {
        
chatcolor(id"%s Ya has comprado este item especial."Prefijo)
        
TiendaItems(id)
        return 
PLUGIN_HANDLED;
    }
    
Comprar_Items(idItemcost);
    
menu_destroy(Menu)
    return 
PLUGIN_HANDLED;
}
Comprar_Items(idItemcost)
{
    switch(
Item)
    {
        case 
RAILCANNONdrop_weapons(id1), give_railcannon(id)
        case 
THANATOSdrop_weapons(id1), get_thanatos(id)
        case 
BALROG3drop_weapons(id1), Get_Balrog3(id)
        case 
AT4CSdrop_weapons(id1), Get_AT4CS(id)
        case 
BALROG11drop_weapons(id1), Get_Balrog11(id)
        case 
JANUS3drop_weapons(id1), give_janus3(id)
        case 
COMPOUNDBOWdrop_weapons(id1), Get_CompoundBow(id)
        case 
M32drop_weapons(id1), give_m32(id)
    }
    
Limite[id][Item]++
    
g_ammopacks[id] -= cost
    chatcolor
(id"%s Has comprado el item ^4%s^1."PrefijoTIENDA_ITEMS[Item][iNOMBRE])
    
cs_set_user_money(idcs_get_user_money(id) - TIENDA_ITEMS[Item][COSTO_MONEY])
    
    return 
PLUGIN_HANDLED
}
public 
cmd_packsiId,level,cid 
{
    if(!
cmd_accessiIdlevelcid) )
    return 
PLUGIN_HANDLED;
        
    new 
target[33], cantidad[10], packsplayer;
    
read_argv(1targetcharsmaxtarget ) );
    
read_argv(2cantidadcharsmaxcantidad ) );
    
player cmd_targetiIdtargetCMDTARGET_ALLOW_SELF );
    
packs str_to_numcantidad );
        
    if(!
player)
    return 
PLUGIN_HANDLED;
        
    new 
TargetName[33]; get_user_nameplayerTargetNamecharsmax(TargetName) );
    new 
AdminName[33]; get_user_nameiIdAdminNamecharsmax(AdminName) );
        
        
    
chatcolor0"%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." Prefijo AdminNamepackspacks packs "ammopacks""ammopack"TargetName);
    
g_ammopacks[player] += packs;
    return 
PLUGIN_HANDLED;
}
/* ========== [STOCKS] ========== */
// stock de chatcolor
stock chatcolor(id, const input[], any:...) 
{
    new 
count 1players[32]; 
    static 
msg[191]; 
    
vformat(msg190input3); 
    
    
replace_all(msg190"!g""^4"); // Verde
    
replace_all(msg190"!y""^1"); // Default
    
replace_all(msg190"!t""^3"); // Color del Equipo 
    
    
if (idplayers[0] = id; else get_players(playerscount"ch"); 
    { 
        for (new 
0counti++)  
        { 
            if (
is_user_connected(players[i])) 
            { 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]); 
                
write_byte(players[i]); 
                
write_string(msg); 
                
message_end(); 
            } 
        } 
    } 

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


public 
Menu_Principal(iId)
{
    new 
menulen[300];
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%"jctf_get_adrenaline(iId));
    
menu menu_create (len"MenuPrincipal_Handler");
    
    
menu_additemmenu"\wComprar \rArmas Especiales""0");
    
menu_additemmenu"\wUsar \rAdrenalina""1");
    
menu_additemmenu"\wNuestras \rServers""2");
    
menu_additemmenu"\wDropear \rBandera""3");
    
menu_additemmenu"\wReiniciar \rScore""4");
    
menu_additemmenu"\wVer \rTop 15""5" );
    
menu_additemmenu"\wVer \rRankstats""6" );
    
menu_additemmenu"\wPanel \rAdmin""7"ADMIN_KICK );
    
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
    
menu_displayiIdmenu);
    return 
PLUGIN_HANDLED;
}

public 
MenuPrincipal_HandleriIdmenuitem ) {
    if(
item == MENU_EXIT)
    {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    switch( 
item )
    {
        case 
0TiendaItemsiId );
        case 
1client_cmdiId"adrenaline");
        case 
2client_cmdiId"say servers");
        case 
3client_cmdiId"say /dropflag");
        case 
4client_cmdiId"say rs");
        case 
5client_cmdiId"say top");
        case 
6client_cmdiId"say /rankstats");
        case 
7client_cmdiId"amxmodmenu");
    }
    return 
PLUGIN_HANDLED;
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid;
    
num 0;
    
get_user_weapons(idweaponsnum);
    
    const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|
    (
1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
    
    const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
    for (
0numi++)
    {
        
weaponid weapons[i];
        
        if ((
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            static 
wname[32];
            
get_weaponname(weaponidwnamesizeof wname 1);
            
engclient_cmd(id"drop"wname);
        }
    }

Mis Aportes:

[ TTT ] Item: Target Gun

[ TTT ] Item: Skeleton Gun (New)
[ TTT ] Item: Pipe Bomb
[ TTT ] Item: Inverse Golden
[Imagen: 76561198074954930.png] [Imagen: venezuela.gif]
Pregúntate si lo que estás haciendo hoy te acerca a el lugar en el que quieres estar mañana. Corazón
Responder
#3
(27/12/2018, 03:57 PM)SthoNy escribió:
Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */

#include <amxmisc>
#include <fakemeta>
#include <adv_vault>
#include <hamsandwich>
#include <fun>
#include <cstrike>

new const PLUGIN[] = "Rangos CS:GO"
new const AUTHOR[] = "kikizon"

/* ========== [CONSTANTES] ========== */ 
new const Prefijo[] = "^1[^4ProGaming^1]" // Prefijo en say
//new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP

// Natives // 
native give_railcannon(id);
native get_thanatos(id);
native Get_Balrog3(id);
native Get_AT4CS(id);
native Get_Balrog11(id);
native give_janus3(id);
native Get_CompoundBow(id);
native give_m32(id);
native ammopacks_jctf(id);
native jctf_get_adrenaline(id);
//native get_v3(id);
// Fin // 

enum DETALLES
{
    
iNOMBRE[55],
    
LIMITE_ITEM,
    
COSTO_APS,
    
COSTO_MONEY
}
enum _:ITEMS
{
    
RAILCANNON,
    
THANATOS,
    
BALROG3,
    
AT4CS,
    
BALROG11,
    
JANUS3,
    
COMPOUNDBOW,
    
M32
};
new const 
TIENDA_ITEMS[][DETALLES] = 
{
    { 
"RailCannon",                1221000         },
    { 
"Thanatos 7",                1262000         },
    { 
"Balrog 3",                1253000        },
    { 
"AT4cs",                1304000        },
    { 
"Balrog 11",                1215000        },
    { 
"Janus 3",                1206000        },
    { 
"CompoundBow",                1247000        },
    { 
"M32",                1358000        }
};
/*   Limite   */
new Limite[33][ITEMS];

/* ========== [CONST NOMBRES DE RANGOS] ========== */
enum _:DATA
{
    
NOMBRE[32],
    
FRAGS
}
new const 
Rangos[][DATA] = 
{
    { 
"Distinguido"50 },
    { 
"Cabo I"100 },
    { 
"Cabo II"200 },
    { 
"Sargento I"300 },
    { 
"Sargento II"400 },
    { 
"Sargento Mayor"500 },
    { 
"Sargento Mayor III"600 },
    { 
"Sargento Mayor II"700 },
    { 
"Sargento Mayor I"800 },
    { 
"Sargento Elite"900 },
    { 
"Sargento Master"1000 },
    { 
"Teniente",1200 },
    { 
"Teniente I"1400 },
    { 
"Capitan"1600 },
    { 
"Mayor"1800 },
    { 
"Teniente Coronel"2000 },
    { 
"Coronel"2300 },
    { 
"General II"2600 },
    { 
"General I"2800 },
    { 
"Mayor General"3000 },
    { 
"General en Jefe"3400 },
    { 
"Comandante"3800 },
    { 
"Experto"4200 },
    { 
"Silver IV"4700 },
    { 
"Silver III"5200 },
    { 
"Silver II"5700 },
    { 
"Silver I"6200 },
    { 
"Silver Elite"6800 },
    { 
"Silver Elite Master"7400 },
    { 
"Gold Nova I"8100 },
    { 
"Gold Nova II"8800 },
    { 
"Gold Nova III"9500 },
    { 
"Gold Nova Master"10300 },
    { 
"Master Guardian I"11100 },
    { 
"Master Guardian II"12000 },
    { 
"Master Guardian Elite"13000 },
    { 
"Distinguido Master Guardian"15000 },
    { 
"Aguila Legendaria"19000 },
    { 
"Aguila Legendaria Master"23000 },
    { 
"Master Supremo I"28000 },
    { 
"Global Elite"34000 },
    { 
"Global Master"41000 },
    { 
"Boina Verde"50000 },
    { 
"Profesional"59000 },
    { 
"Ultimate"79000 },
    { 
"Rambo"100000 },
    { 
"Robocop"140000 },
    { 
"Terminator"190000 },
    { 
"Mercenario"240000 }
}

/* ========== [VARIABLES] ========== */
new g_rango[33], g_frags[33], g_ammopacks[33]
new 
g_playername[33][32];

new 
g_vault

enum 
{
    
CAMPO_AMMOS 0,
    
CAMPO_RANGO,
    
CAMPO_FRAG,
    
MAX_FIELDS
}
new 
g_campos[MAX_FIELDS]
new 
bool:Remover[33]

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

/*   Ganancia AmmoPacks   */
new cvar_ammopacks_staff
new cvar_ammopacks_full
new cvar_ammopacks_premium
new cvar_ammopacks_vip
new cvar_ammopacks_usuario

/* ========== [INIT] ========== */
public plugin_init() 
{
    
register_concmd("amx_ammopacks""cmd_packs"ADMIN_RCON"<jugador> <cantidad>");
    
    
RegisterHam(Ham_Spawn"player""PlayerSpawn"1)
    
RegisterHam(Ham_Killed"player""PlayerKilled"true)
    
    
register_event("DeathMsg""Event_DeathMsg""a")
    
register_logevent("logevent_round_end"2"1=Round_End")

    
register_clcmd("say /hud""remover_hud")
    
register_clcmd("radio1""TiendaItems")
    
register_clcmd("nightvision""Menu_Principal")
    
    
register_clcmd("say""message_saytext"
    
register_clcmd("say_team""message_sayteam")
    
        
/* ========== [EMPIEZA SECCION MODIFICABLE] ========== */
    
cvar_ammopacks_staff    =    register_cvar("amx_ammopacks_staff""5" ,ADMIN_RCON);
    
cvar_ammopacks_full    =    register_cvar("amx_ammopacks_full""4" ,ADMIN_RCON);
    
cvar_ammopacks_premium    =    register_cvar("amx_ammopacks_premium",  "3" ,ADMIN_RCON);
    
cvar_ammopacks_vip    =     register_cvar("amx_ammopacks_vip",     "2" ,ADMIN_RCON);
    
cvar_ammopacks_usuario    =    register_cvar("amx_ammopacks_usuario",     "1" ,ADMIN_RCON);
    
/* ========== [TERMINA SECCION MODIFICABLE] ========== */
    
    
g_vault adv_vault_open("data_rangos"false)
    
g_campos[CAMPO_AMMOS] = adv_vault_register_field(g_vault"AMMOS")
    
g_campos[CAMPO_RANGO] = adv_vault_register_field(g_vault"RANGOS")
    
g_campos[CAMPO_FRAG] = adv_vault_register_field(g_vault"FRAGS")
    
adv_vault_init(g_vault)
}
/* ========== [PRECACHE]* ==========*/
//public plugin_precache() 
//    precache_generic(Sonido)
    
/* ========== [NATIVES]* ==========*/
public plugin_natives()
{
    
register_native("rangos_jctf""mi_rango"1)
    
register_native("ammopacks_jctf""mi_ammopack"1)
    
register_native("jctf_get_tienda","TiendaItems"1)
}    
    
public 
PlayerSpawn(id)
{
    for(new 
;ITEMSo++)
    
Limite[id][o] = 0
}
public 
mi_rango(id)
    return 
Rangos[g_rango[id]][NOMBRE]
    
public 
mi_ammopack(id)
    return 
g_ammopacks[id]
    
/* ========== [REMOVER HUD] ==========*/
public remover_hud(id)
{
    if(!
Remover[id])
    {
        
remove_task(id+TASK_HUD)
        
chatcolor(id"%s Has desactivado el ^4hud de rangos"Prefijo)
        
Remover[id] = true    
    
}
    else
    {   
        
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
        
chatcolor(id"%s Has activado el ^4hud de rangos"Prefijo)
        
Remover[id] = false 
    
}
}
/* ========== [HUD] ==========*/
 
public Rangos_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(2552552550.600.6710.11.01.01.01)
        
show_hudmessage(ID_HUD"Nombre: %s | Frags: %d | Rango: %s"g_playername[id], g_frags[id], Rangos[g_rango[id]][NOMBRE])
    } 
    else
    {
        
set_hudmessage(255255255, -1.00.8700.11.01.01.01)
        
show_hudmessage(ID_HUD"Rango: %s^nFrags: [%d / %d]"Rangos[g_rango[id]][NOMBRE], g_frags[id], 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;
    
g_ammopacks[id] = 0;
    
    
Cargar(id)
    
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
}
/* ========== [DISCONNECT] ========== */
public client_disconnect(id)
{
    
Guardar(id)
    
remove_task(id+TASK_HUD)
}

/* ========== [ROUND END] ========== */
public logevent_round_end() 
{
    for(new 
id 1id <= get_maxplayers(); id++)
    
Guardar(id); 
}
/* ========== [HAM KILLED] ========== */
public PlayerKilled(victimattackershouldgib)
{
    if(!
is_user_connected(attacker) || !is_user_connected(victim) || victim == attacker)
    return 
HAM_IGNORED
    
    
if(is_user_admin(attacker))
    {
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Ag_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_staff)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Bg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_full)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Cg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_premium)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Dg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_vip)
    }
    else 
g_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_usuario)
    return 
HAM_IGNORED
}
/* ========== [DEATHMSG] ========== */
public Event_DeathMsg() 
{
    new 
attacker read_data(1)
    new 
victim read_data(2)
    
    if(
victim == attacker) return;
    
    if(
is_user_alive(attacker)) 
    {
        
g_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 has ascendido al rango: ^4%s^1!"PrefijoRangos[g_rango[id]][NOMBRE])
        
//client_cmd(id, "mp3 play ^"%s^"", Sonido)
        
Aumento false
    
}
}
/* ========== [HOOK SAY & SAY_TEAM] ========== */
public message_saytext(id)

    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
color[11]; get_user_team(id,color,charsmax(color))
    static 
name[32]; get_user_name(id,name,charsmax(name))

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s",Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i) || is_user_alive(i) != is_user_alive(id)) continue
        
    
        
get_user_team(iteamcharsmax(team))
        
changeTeamInfo(icolor)
        
writeMessage(isaid)
        
changeTeamInfo(iteam)
    }
    return 
PLUGIN_HANDLED_MAIN;
}

public 
message_sayteam(id)
{    
    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) 
    return 
PLUGIN_CONTINUE
    
    static 
playerTeamName[19]
    switch (
get_user_team(id)) 
    {
        case 
1copy (playerTeamName12"TT")
        case 
2copy (playerTeamName12"CT"
        default: 
copy (playerTeamName11"Sin Equipo"
    }

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

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i)) continue;
        
        if (
get_user_team(i) == get_user_team(id)) 
        {
            if(
is_user_admin(i) && is_user_alive(id) || !is_user_alive(i) && !is_user_alive(id)) 
            {
                
get_user_team(iteamcharsmax(team))
                
changeTeamInfo(icolor)
                
writeMessage(isaid)
                
changeTeamInfo(iteam)
            }
        }
    }
    return 
PLUGIN_HANDLED_MAIN;
}
public 
changeTeamInfo(playerteam[]) 
{
    
message_begin(MSG_ONEget_user_msgid("TeamInfo"), _player)
    
write_byte(player)
    
write_string(team)
    
message_end()
}
public 
writeMessage(playermessage[])
{
    
message_begin(MSG_ONEget_user_msgid("SayText"), {000}, player)
    
write_byte(player)
    
write_string(message)
    
message_end()
}
/* ========== [GUARDADO] ========== */
Guardar(id
{
    
adv_vault_set_start(g_vault)
    
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOS], g_ammopacks[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_RANGO], g_rango[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_FRAG], g_frags[id])
    
adv_vault_set_end(g_vault0g_playername[id])
}
Cargar(id
{
    if(!
adv_vault_get_prepare(g_vault_g_playername[id])) 
    return

    
g_rango[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_RANGO])
    
g_frags[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FRAG])
    
g_ammopacks[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOS])

public 
TiendaItems(id)
{    
    static 
sztext[70]    
    new 
Menulen[300]
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d"g_ammopacks[id])
    
Menu menu_create(len"TiendaItems_Handler")
    
    for(new 
0sizeof(TIENDA_ITEMS); i++)
    {
        if(
Limite[id][i] == || g_ammopacks[id] < TIENDA_ITEMS[i][COSTO_APS] || cs_get_user_money(id) < TIENDA_ITEMS[i][COSTO_MONEY])
            
format(sztextcharsmax(sztext), "\d%s \d[APs %d] [Dinero %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS], TIENDA_ITEMS[i][COSTO_MONEY]);
    
        else
            
format(sztextcharsmax(sztext), "\w%s \r[APs %d] [Dinero %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS], TIENDA_ITEMS[i][COSTO_MONEY]);
        
        
menu_additem(Menusztext__menu_makecallback"tienda_callback"));
    }
    
menu_setprop(MenuMPROP_EXITNAME"Cerrar");
    
menu_display(idMenu);
    return 
PLUGIN_HANDLED;
}
public 
tienda_callback(idMenuItem
{
    if(
g_ammopacks[id] < TIENDA_ITEMS[Item][COSTO_APS] || cs_get_user_money(id) < TIENDA_ITEMS[Item][COSTO_MONEY])
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}
public 
TiendaItems_Handler(idMenuItem)
{
    if(
Item == MENU_EXIT || !is_user_alive(id))
    {
        
menu_destroy(Menu);
        return 
PLUGIN_HANDLED;
    }    
    static 
cost
    cost 
TIENDA_ITEMS[Item][COSTO_APS];
    
    if(
Limite[id][Item] == TIENDA_ITEMS[Item][LIMITE_ITEM])
    {
        
chatcolor(id"%s Ya has comprado este item especial."Prefijo)
        
TiendaItems(id)
        return 
PLUGIN_HANDLED;
    }
    
Comprar_Items(idItemcost);
    
menu_destroy(Menu)
    return 
PLUGIN_HANDLED;
}
Comprar_Items(idItemcost)
{
    switch(
Item)
    {
        case 
RAILCANNONdrop_weapons(id1), give_railcannon(id)
        case 
THANATOSdrop_weapons(id1), get_thanatos(id)
        case 
BALROG3drop_weapons(id1), Get_Balrog3(id)
        case 
AT4CSdrop_weapons(id1), Get_AT4CS(id)
        case 
BALROG11drop_weapons(id1), Get_Balrog11(id)
        case 
JANUS3drop_weapons(id1), give_janus3(id)
        case 
COMPOUNDBOWdrop_weapons(id1), Get_CompoundBow(id)
        case 
M32drop_weapons(id1), give_m32(id)
    }
    
Limite[id][Item]++
    
g_ammopacks[id] -= cost
    chatcolor
(id"%s Has comprado el item ^4%s^1."PrefijoTIENDA_ITEMS[Item][iNOMBRE])
    
cs_set_user_money(idcs_get_user_money(id) - TIENDA_ITEMS[Item][COSTO_MONEY])
    
    return 
PLUGIN_HANDLED
}
public 
cmd_packsiId,level,cid 
{
    if(!
cmd_accessiIdlevelcid) )
    return 
PLUGIN_HANDLED;
        
    new 
target[33], cantidad[10], packsplayer;
    
read_argv(1targetcharsmaxtarget ) );
    
read_argv(2cantidadcharsmaxcantidad ) );
    
player cmd_targetiIdtargetCMDTARGET_ALLOW_SELF );
    
packs str_to_numcantidad );
        
    if(!
player)
    return 
PLUGIN_HANDLED;
        
    new 
TargetName[33]; get_user_nameplayerTargetNamecharsmax(TargetName) );
    new 
AdminName[33]; get_user_nameiIdAdminNamecharsmax(AdminName) );
        
        
    
chatcolor0"%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." Prefijo AdminNamepackspacks packs "ammopacks""ammopack"TargetName);
    
g_ammopacks[player] += packs;
    return 
PLUGIN_HANDLED;
}
/* ========== [STOCKS] ========== */
// stock de chatcolor
stock chatcolor(id, const input[], any:...) 
{
    new 
count 1players[32]; 
    static 
msg[191]; 
    
vformat(msg190input3); 
    
    
replace_all(msg190"!g""^4"); // Verde
    
replace_all(msg190"!y""^1"); // Default
    
replace_all(msg190"!t""^3"); // Color del Equipo 
    
    
if (idplayers[0] = id; else get_players(playerscount"ch"); 
    { 
        for (new 
0counti++)  
        { 
            if (
is_user_connected(players[i])) 
            { 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]); 
                
write_byte(players[i]); 
                
write_string(msg); 
                
message_end(); 
            } 
        } 
    } 

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


public 
Menu_Principal(iId)
{
    new 
menulen[300];
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%"jctf_get_adrenaline(iId));
    
menu menu_create (len"MenuPrincipal_Handler");
    
    
menu_additemmenu"\wComprar \rArmas Especiales""0");
    
menu_additemmenu"\wUsar \rAdrenalina""1");
    
menu_additemmenu"\wNuestras \rServers""2");
    
menu_additemmenu"\wDropear \rBandera""3");
    
menu_additemmenu"\wReiniciar \rScore""4");
    
menu_additemmenu"\wVer \rTop 15""5" );
    
menu_additemmenu"\wVer \rRankstats""6" );
    
menu_additemmenu"\wPanel \rAdmin""7"ADMIN_KICK );
    
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
    
menu_displayiIdmenu);
    return 
PLUGIN_HANDLED;
}

public 
MenuPrincipal_HandleriIdmenuitem ) {
    if(
item == MENU_EXIT)
    {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    switch( 
item )
    {
        case 
0TiendaItemsiId );
        case 
1client_cmdiId"adrenaline");
        case 
2client_cmdiId"say servers");
        case 
3client_cmdiId"say /dropflag");
        case 
4client_cmdiId"say rs");
        case 
5client_cmdiId"say top");
        case 
6client_cmdiId"say /rankstats");
        case 
7client_cmdiId"amxmodmenu");
    }
    return 
PLUGIN_HANDLED;
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid;
    
num 0;
    
get_user_weapons(idweaponsnum);
    
    const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|
    (
1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
    
    const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
    for (
0numi++)
    {
        
weaponid weapons[i];
        
        if ((
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            static 
wname[32];
            
get_weaponname(weaponidwnamesizeof wname 1);
            
engclient_cmd(id"drop"wname);
        }
    }


otra cosa como le puedo poner para que cada tipo de admin comienze con que si los staff 50 de aps los full 40 premium 30 y vip 20 algo a si
Aprendiendo scripting Excitedeyes || Tratare ayudar en lo que pueda Trolleyes || PD: Soy pobre Cutecry
Responder
#4
(27/12/2018, 03:57 PM)SthoNy escribió:
Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */

#include <amxmisc>
#include <fakemeta>
#include <adv_vault>
#include <hamsandwich>
#include <fun>
#include <cstrike>

new const PLUGIN[] = "Rangos CS:GO"
new const AUTHOR[] = "kikizon"

/* ========== [CONSTANTES] ========== */ 
new const Prefijo[] = "^1[^4ProGaming^1]" // Prefijo en say
//new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP

// Natives // 
native give_railcannon(id);
native get_thanatos(id);
native Get_Balrog3(id);
native Get_AT4CS(id);
native Get_Balrog11(id);
native give_janus3(id);
native Get_CompoundBow(id);
native give_m32(id);
native ammopacks_jctf(id);
native jctf_get_adrenaline(id);
//native get_v3(id);
// Fin // 

enum DETALLES
{
    
iNOMBRE[55],
    
LIMITE_ITEM,
    
COSTO_APS,
    
COSTO_MONEY
}
enum _:ITEMS
{
    
RAILCANNON,
    
THANATOS,
    
BALROG3,
    
AT4CS,
    
BALROG11,
    
JANUS3,
    
COMPOUNDBOW,
    
M32
};
new const 
TIENDA_ITEMS[][DETALLES] = 
{
    { 
"RailCannon",                1221000         },
    { 
"Thanatos 7",                1262000         },
    { 
"Balrog 3",                1253000        },
    { 
"AT4cs",                1304000        },
    { 
"Balrog 11",                1215000        },
    { 
"Janus 3",                1206000        },
    { 
"CompoundBow",                1247000        },
    { 
"M32",                1358000        }
};
/*   Limite   */
new Limite[33][ITEMS];

/* ========== [CONST NOMBRES DE RANGOS] ========== */
enum _:DATA
{
    
NOMBRE[32],
    
FRAGS
}
new const 
Rangos[][DATA] = 
{
    { 
"Distinguido"50 },
    { 
"Cabo I"100 },
    { 
"Cabo II"200 },
    { 
"Sargento I"300 },
    { 
"Sargento II"400 },
    { 
"Sargento Mayor"500 },
    { 
"Sargento Mayor III"600 },
    { 
"Sargento Mayor II"700 },
    { 
"Sargento Mayor I"800 },
    { 
"Sargento Elite"900 },
    { 
"Sargento Master"1000 },
    { 
"Teniente",1200 },
    { 
"Teniente I"1400 },
    { 
"Capitan"1600 },
    { 
"Mayor"1800 },
    { 
"Teniente Coronel"2000 },
    { 
"Coronel"2300 },
    { 
"General II"2600 },
    { 
"General I"2800 },
    { 
"Mayor General"3000 },
    { 
"General en Jefe"3400 },
    { 
"Comandante"3800 },
    { 
"Experto"4200 },
    { 
"Silver IV"4700 },
    { 
"Silver III"5200 },
    { 
"Silver II"5700 },
    { 
"Silver I"6200 },
    { 
"Silver Elite"6800 },
    { 
"Silver Elite Master"7400 },
    { 
"Gold Nova I"8100 },
    { 
"Gold Nova II"8800 },
    { 
"Gold Nova III"9500 },
    { 
"Gold Nova Master"10300 },
    { 
"Master Guardian I"11100 },
    { 
"Master Guardian II"12000 },
    { 
"Master Guardian Elite"13000 },
    { 
"Distinguido Master Guardian"15000 },
    { 
"Aguila Legendaria"19000 },
    { 
"Aguila Legendaria Master"23000 },
    { 
"Master Supremo I"28000 },
    { 
"Global Elite"34000 },
    { 
"Global Master"41000 },
    { 
"Boina Verde"50000 },
    { 
"Profesional"59000 },
    { 
"Ultimate"79000 },
    { 
"Rambo"100000 },
    { 
"Robocop"140000 },
    { 
"Terminator"190000 },
    { 
"Mercenario"240000 }
}

/* ========== [VARIABLES] ========== */
new g_rango[33], g_frags[33], g_ammopacks[33]
new 
g_playername[33][32];

new 
g_vault

enum 
{
    
CAMPO_AMMOS 0,
    
CAMPO_RANGO,
    
CAMPO_FRAG,
    
MAX_FIELDS
}
new 
g_campos[MAX_FIELDS]
new 
bool:Remover[33]

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

/*   Ganancia AmmoPacks   */
new cvar_ammopacks_staff
new cvar_ammopacks_full
new cvar_ammopacks_premium
new cvar_ammopacks_vip
new cvar_ammopacks_usuario

/* ========== [INIT] ========== */
public plugin_init() 
{
    
register_concmd("amx_ammopacks""cmd_packs"ADMIN_RCON"<jugador> <cantidad>");
    
    
RegisterHam(Ham_Spawn"player""PlayerSpawn"1)
    
RegisterHam(Ham_Killed"player""PlayerKilled"true)
    
    
register_event("DeathMsg""Event_DeathMsg""a")
    
register_logevent("logevent_round_end"2"1=Round_End")

    
register_clcmd("say /hud""remover_hud")
    
register_clcmd("radio1""TiendaItems")
    
register_clcmd("nightvision""Menu_Principal")
    
    
register_clcmd("say""message_saytext"
    
register_clcmd("say_team""message_sayteam")
    
        
/* ========== [EMPIEZA SECCION MODIFICABLE] ========== */
    
cvar_ammopacks_staff    =    register_cvar("amx_ammopacks_staff""5" ,ADMIN_RCON);
    
cvar_ammopacks_full    =    register_cvar("amx_ammopacks_full""4" ,ADMIN_RCON);
    
cvar_ammopacks_premium    =    register_cvar("amx_ammopacks_premium",  "3" ,ADMIN_RCON);
    
cvar_ammopacks_vip    =     register_cvar("amx_ammopacks_vip",     "2" ,ADMIN_RCON);
    
cvar_ammopacks_usuario    =    register_cvar("amx_ammopacks_usuario",     "1" ,ADMIN_RCON);
    
/* ========== [TERMINA SECCION MODIFICABLE] ========== */
    
    
g_vault adv_vault_open("data_rangos"false)
    
g_campos[CAMPO_AMMOS] = adv_vault_register_field(g_vault"AMMOS")
    
g_campos[CAMPO_RANGO] = adv_vault_register_field(g_vault"RANGOS")
    
g_campos[CAMPO_FRAG] = adv_vault_register_field(g_vault"FRAGS")
    
adv_vault_init(g_vault)
}
/* ========== [PRECACHE]* ==========*/
//public plugin_precache() 
//    precache_generic(Sonido)
    
/* ========== [NATIVES]* ==========*/
public plugin_natives()
{
    
register_native("rangos_jctf""mi_rango"1)
    
register_native("ammopacks_jctf""mi_ammopack"1)
    
register_native("jctf_get_tienda","TiendaItems"1)
}    
    
public 
PlayerSpawn(id)
{
    for(new 
;ITEMSo++)
    
Limite[id][o] = 0
}
public 
mi_rango(id)
    return 
Rangos[g_rango[id]][NOMBRE]
    
public 
mi_ammopack(id)
    return 
g_ammopacks[id]
    
/* ========== [REMOVER HUD] ==========*/
public remover_hud(id)
{
    if(!
Remover[id])
    {
        
remove_task(id+TASK_HUD)
        
chatcolor(id"%s Has desactivado el ^4hud de rangos"Prefijo)
        
Remover[id] = true    
    
}
    else
    {   
        
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
        
chatcolor(id"%s Has activado el ^4hud de rangos"Prefijo)
        
Remover[id] = false 
    
}
}
/* ========== [HUD] ==========*/
 
public Rangos_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(2552552550.600.6710.11.01.01.01)
        
show_hudmessage(ID_HUD"Nombre: %s | Frags: %d | Rango: %s"g_playername[id], g_frags[id], Rangos[g_rango[id]][NOMBRE])
    } 
    else
    {
        
set_hudmessage(255255255, -1.00.8700.11.01.01.01)
        
show_hudmessage(ID_HUD"Rango: %s^nFrags: [%d / %d]"Rangos[g_rango[id]][NOMBRE], g_frags[id], 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;
    
g_ammopacks[id] = 0;
    
    
Cargar(id)
    
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
}
/* ========== [DISCONNECT] ========== */
public client_disconnect(id)
{
    
Guardar(id)
    
remove_task(id+TASK_HUD)
}

/* ========== [ROUND END] ========== */
public logevent_round_end() 
{
    for(new 
id 1id <= get_maxplayers(); id++)
    
Guardar(id); 
}
/* ========== [HAM KILLED] ========== */
public PlayerKilled(victimattackershouldgib)
{
    if(!
is_user_connected(attacker) || !is_user_connected(victim) || victim == attacker)
    return 
HAM_IGNORED
    
    
if(is_user_admin(attacker))
    {
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Ag_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_staff)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Bg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_full)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Cg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_premium)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Dg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_vip)
    }
    else 
g_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_usuario)
    return 
HAM_IGNORED
}
/* ========== [DEATHMSG] ========== */
public Event_DeathMsg() 
{
    new 
attacker read_data(1)
    new 
victim read_data(2)
    
    if(
victim == attacker) return;
    
    if(
is_user_alive(attacker)) 
    {
        
g_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 has ascendido al rango: ^4%s^1!"PrefijoRangos[g_rango[id]][NOMBRE])
        
//client_cmd(id, "mp3 play ^"%s^"", Sonido)
        
Aumento false
    
}
}
/* ========== [HOOK SAY & SAY_TEAM] ========== */
public message_saytext(id)

    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
color[11]; get_user_team(id,color,charsmax(color))
    static 
name[32]; get_user_name(id,name,charsmax(name))

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s",Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i) || is_user_alive(i) != is_user_alive(id)) continue
        
    
        
get_user_team(iteamcharsmax(team))
        
changeTeamInfo(icolor)
        
writeMessage(isaid)
        
changeTeamInfo(iteam)
    }
    return 
PLUGIN_HANDLED_MAIN;
}

public 
message_sayteam(id)
{    
    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) 
    return 
PLUGIN_CONTINUE
    
    static 
playerTeamName[19]
    switch (
get_user_team(id)) 
    {
        case 
1copy (playerTeamName12"TT")
        case 
2copy (playerTeamName12"CT"
        default: 
copy (playerTeamName11"Sin Equipo"
    }

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

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i)) continue;
        
        if (
get_user_team(i) == get_user_team(id)) 
        {
            if(
is_user_admin(i) && is_user_alive(id) || !is_user_alive(i) && !is_user_alive(id)) 
            {
                
get_user_team(iteamcharsmax(team))
                
changeTeamInfo(icolor)
                
writeMessage(isaid)
                
changeTeamInfo(iteam)
            }
        }
    }
    return 
PLUGIN_HANDLED_MAIN;
}
public 
changeTeamInfo(playerteam[]) 
{
    
message_begin(MSG_ONEget_user_msgid("TeamInfo"), _player)
    
write_byte(player)
    
write_string(team)
    
message_end()
}
public 
writeMessage(playermessage[])
{
    
message_begin(MSG_ONEget_user_msgid("SayText"), {000}, player)
    
write_byte(player)
    
write_string(message)
    
message_end()
}
/* ========== [GUARDADO] ========== */
Guardar(id
{
    
adv_vault_set_start(g_vault)
    
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOS], g_ammopacks[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_RANGO], g_rango[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_FRAG], g_frags[id])
    
adv_vault_set_end(g_vault0g_playername[id])
}
Cargar(id
{
    if(!
adv_vault_get_prepare(g_vault_g_playername[id])) 
    return

    
g_rango[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_RANGO])
    
g_frags[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FRAG])
    
g_ammopacks[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOS])

public 
TiendaItems(id)
{    
    static 
sztext[70]    
    new 
Menulen[300]
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d"g_ammopacks[id])
    
Menu menu_create(len"TiendaItems_Handler")
    
    for(new 
0sizeof(TIENDA_ITEMS); i++)
    {
        if(
Limite[id][i] == || g_ammopacks[id] < TIENDA_ITEMS[i][COSTO_APS] || cs_get_user_money(id) < TIENDA_ITEMS[i][COSTO_MONEY])
            
format(sztextcharsmax(sztext), "\d%s \d[APs %d] [Dinero %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS], TIENDA_ITEMS[i][COSTO_MONEY]);
    
        else
            
format(sztextcharsmax(sztext), "\w%s \r[APs %d] [Dinero %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS], TIENDA_ITEMS[i][COSTO_MONEY]);
        
        
menu_additem(Menusztext__menu_makecallback"tienda_callback"));
    }
    
menu_setprop(MenuMPROP_EXITNAME"Cerrar");
    
menu_display(idMenu);
    return 
PLUGIN_HANDLED;
}
public 
tienda_callback(idMenuItem
{
    if(
g_ammopacks[id] < TIENDA_ITEMS[Item][COSTO_APS] || cs_get_user_money(id) < TIENDA_ITEMS[Item][COSTO_MONEY])
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}
public 
TiendaItems_Handler(idMenuItem)
{
    if(
Item == MENU_EXIT || !is_user_alive(id))
    {
        
menu_destroy(Menu);
        return 
PLUGIN_HANDLED;
    }    
    static 
cost
    cost 
TIENDA_ITEMS[Item][COSTO_APS];
    
    if(
Limite[id][Item] == TIENDA_ITEMS[Item][LIMITE_ITEM])
    {
        
chatcolor(id"%s Ya has comprado este item especial."Prefijo)
        
TiendaItems(id)
        return 
PLUGIN_HANDLED;
    }
    
Comprar_Items(idItemcost);
    
menu_destroy(Menu)
    return 
PLUGIN_HANDLED;
}
Comprar_Items(idItemcost)
{
    switch(
Item)
    {
        case 
RAILCANNONdrop_weapons(id1), give_railcannon(id)
        case 
THANATOSdrop_weapons(id1), get_thanatos(id)
        case 
BALROG3drop_weapons(id1), Get_Balrog3(id)
        case 
AT4CSdrop_weapons(id1), Get_AT4CS(id)
        case 
BALROG11drop_weapons(id1), Get_Balrog11(id)
        case 
JANUS3drop_weapons(id1), give_janus3(id)
        case 
COMPOUNDBOWdrop_weapons(id1), Get_CompoundBow(id)
        case 
M32drop_weapons(id1), give_m32(id)
    }
    
Limite[id][Item]++
    
g_ammopacks[id] -= cost
    chatcolor
(id"%s Has comprado el item ^4%s^1."PrefijoTIENDA_ITEMS[Item][iNOMBRE])
    
cs_set_user_money(idcs_get_user_money(id) - TIENDA_ITEMS[Item][COSTO_MONEY])
    
    return 
PLUGIN_HANDLED
}
public 
cmd_packsiId,level,cid 
{
    if(!
cmd_accessiIdlevelcid) )
    return 
PLUGIN_HANDLED;
        
    new 
target[33], cantidad[10], packsplayer;
    
read_argv(1targetcharsmaxtarget ) );
    
read_argv(2cantidadcharsmaxcantidad ) );
    
player cmd_targetiIdtargetCMDTARGET_ALLOW_SELF );
    
packs str_to_numcantidad );
        
    if(!
player)
    return 
PLUGIN_HANDLED;
        
    new 
TargetName[33]; get_user_nameplayerTargetNamecharsmax(TargetName) );
    new 
AdminName[33]; get_user_nameiIdAdminNamecharsmax(AdminName) );
        
        
    
chatcolor0"%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." Prefijo AdminNamepackspacks packs "ammopacks""ammopack"TargetName);
    
g_ammopacks[player] += packs;
    return 
PLUGIN_HANDLED;
}
/* ========== [STOCKS] ========== */
// stock de chatcolor
stock chatcolor(id, const input[], any:...) 
{
    new 
count 1players[32]; 
    static 
msg[191]; 
    
vformat(msg190input3); 
    
    
replace_all(msg190"!g""^4"); // Verde
    
replace_all(msg190"!y""^1"); // Default
    
replace_all(msg190"!t""^3"); // Color del Equipo 
    
    
if (idplayers[0] = id; else get_players(playerscount"ch"); 
    { 
        for (new 
0counti++)  
        { 
            if (
is_user_connected(players[i])) 
            { 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]); 
                
write_byte(players[i]); 
                
write_string(msg); 
                
message_end(); 
            } 
        } 
    } 

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


public 
Menu_Principal(iId)
{
    new 
menulen[300];
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%"jctf_get_adrenaline(iId));
    
menu menu_create (len"MenuPrincipal_Handler");
    
    
menu_additemmenu"\wComprar \rArmas Especiales""0");
    
menu_additemmenu"\wUsar \rAdrenalina""1");
    
menu_additemmenu"\wNuestras \rServers""2");
    
menu_additemmenu"\wDropear \rBandera""3");
    
menu_additemmenu"\wReiniciar \rScore""4");
    
menu_additemmenu"\wVer \rTop 15""5" );
    
menu_additemmenu"\wVer \rRankstats""6" );
    
menu_additemmenu"\wPanel \rAdmin""7"ADMIN_KICK );
    
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
    
menu_displayiIdmenu);
    return 
PLUGIN_HANDLED;
}

public 
MenuPrincipal_HandleriIdmenuitem ) {
    if(
item == MENU_EXIT)
    {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    switch( 
item )
    {
        case 
0TiendaItemsiId );
        case 
1client_cmdiId"adrenaline");
        case 
2client_cmdiId"say servers");
        case 
3client_cmdiId"say /dropflag");
        case 
4client_cmdiId"say rs");
        case 
5client_cmdiId"say top");
        case 
6client_cmdiId"say /rankstats");
        case 
7client_cmdiId"amxmodmenu");
    }
    return 
PLUGIN_HANDLED;
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid;
    
num 0;
    
get_user_weapons(idweaponsnum);
    
    const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|
    (
1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
    
    const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
    for (
0numi++)
    {
        
weaponid weapons[i];
        
        if ((
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            static 
wname[32];
            
get_weaponname(weaponidwnamesizeof wname 1);
            
engclient_cmd(id"drop"wname);
        }
    }


cabe aclarar que le gasta los AP y el dinero; no explico bien si quería que se comprara con AP y dinero o con AP o dinero
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#5
(27/12/2018, 04:12 PM)[R]ak escribió:
(27/12/2018, 03:57 PM)SthoNy escribió:
Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */

#include <amxmisc>
#include <fakemeta>
#include <adv_vault>
#include <hamsandwich>
#include <fun>
#include <cstrike>

new const PLUGIN[] = "Rangos CS:GO"
new const AUTHOR[] = "kikizon"

/* ========== [CONSTANTES] ========== */ 
new const Prefijo[] = "^1[^4ProGaming^1]" // Prefijo en say
//new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP

// Natives // 
native give_railcannon(id);
native get_thanatos(id);
native Get_Balrog3(id);
native Get_AT4CS(id);
native Get_Balrog11(id);
native give_janus3(id);
native Get_CompoundBow(id);
native give_m32(id);
native ammopacks_jctf(id);
native jctf_get_adrenaline(id);
//native get_v3(id);
// Fin // 

enum DETALLES
{
    
iNOMBRE[55],
    
LIMITE_ITEM,
    
COSTO_APS,
    
COSTO_MONEY
}
enum _:ITEMS
{
    
RAILCANNON,
    
THANATOS,
    
BALROG3,
    
AT4CS,
    
BALROG11,
    
JANUS3,
    
COMPOUNDBOW,
    
M32
};
new const 
TIENDA_ITEMS[][DETALLES] = 
{
    { 
"RailCannon",                1221000         },
    { 
"Thanatos 7",                1262000         },
    { 
"Balrog 3",                1253000        },
    { 
"AT4cs",                1304000        },
    { 
"Balrog 11",                1215000        },
    { 
"Janus 3",                1206000        },
    { 
"CompoundBow",                1247000        },
    { 
"M32",                1358000        }
};
/*   Limite   */
new Limite[33][ITEMS];

/* ========== [CONST NOMBRES DE RANGOS] ========== */
enum _:DATA
{
    
NOMBRE[32],
    
FRAGS
}
new const 
Rangos[][DATA] = 
{
    { 
"Distinguido"50 },
    { 
"Cabo I"100 },
    { 
"Cabo II"200 },
    { 
"Sargento I"300 },
    { 
"Sargento II"400 },
    { 
"Sargento Mayor"500 },
    { 
"Sargento Mayor III"600 },
    { 
"Sargento Mayor II"700 },
    { 
"Sargento Mayor I"800 },
    { 
"Sargento Elite"900 },
    { 
"Sargento Master"1000 },
    { 
"Teniente",1200 },
    { 
"Teniente I"1400 },
    { 
"Capitan"1600 },
    { 
"Mayor"1800 },
    { 
"Teniente Coronel"2000 },
    { 
"Coronel"2300 },
    { 
"General II"2600 },
    { 
"General I"2800 },
    { 
"Mayor General"3000 },
    { 
"General en Jefe"3400 },
    { 
"Comandante"3800 },
    { 
"Experto"4200 },
    { 
"Silver IV"4700 },
    { 
"Silver III"5200 },
    { 
"Silver II"5700 },
    { 
"Silver I"6200 },
    { 
"Silver Elite"6800 },
    { 
"Silver Elite Master"7400 },
    { 
"Gold Nova I"8100 },
    { 
"Gold Nova II"8800 },
    { 
"Gold Nova III"9500 },
    { 
"Gold Nova Master"10300 },
    { 
"Master Guardian I"11100 },
    { 
"Master Guardian II"12000 },
    { 
"Master Guardian Elite"13000 },
    { 
"Distinguido Master Guardian"15000 },
    { 
"Aguila Legendaria"19000 },
    { 
"Aguila Legendaria Master"23000 },
    { 
"Master Supremo I"28000 },
    { 
"Global Elite"34000 },
    { 
"Global Master"41000 },
    { 
"Boina Verde"50000 },
    { 
"Profesional"59000 },
    { 
"Ultimate"79000 },
    { 
"Rambo"100000 },
    { 
"Robocop"140000 },
    { 
"Terminator"190000 },
    { 
"Mercenario"240000 }
}

/* ========== [VARIABLES] ========== */
new g_rango[33], g_frags[33], g_ammopacks[33]
new 
g_playername[33][32];

new 
g_vault

enum 
{
    
CAMPO_AMMOS 0,
    
CAMPO_RANGO,
    
CAMPO_FRAG,
    
MAX_FIELDS
}
new 
g_campos[MAX_FIELDS]
new 
bool:Remover[33]

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

/*   Ganancia AmmoPacks   */
new cvar_ammopacks_staff
new cvar_ammopacks_full
new cvar_ammopacks_premium
new cvar_ammopacks_vip
new cvar_ammopacks_usuario

/* ========== [INIT] ========== */
public plugin_init() 
{
    
register_concmd("amx_ammopacks""cmd_packs"ADMIN_RCON"<jugador> <cantidad>");
    
    
RegisterHam(Ham_Spawn"player""PlayerSpawn"1)
    
RegisterHam(Ham_Killed"player""PlayerKilled"true)
    
    
register_event("DeathMsg""Event_DeathMsg""a")
    
register_logevent("logevent_round_end"2"1=Round_End")

    
register_clcmd("say /hud""remover_hud")
    
register_clcmd("radio1""TiendaItems")
    
register_clcmd("nightvision""Menu_Principal")
    
    
register_clcmd("say""message_saytext"
    
register_clcmd("say_team""message_sayteam")
    
        
/* ========== [EMPIEZA SECCION MODIFICABLE] ========== */
    
cvar_ammopacks_staff    =    register_cvar("amx_ammopacks_staff""5" ,ADMIN_RCON);
    
cvar_ammopacks_full    =    register_cvar("amx_ammopacks_full""4" ,ADMIN_RCON);
    
cvar_ammopacks_premium    =    register_cvar("amx_ammopacks_premium",  "3" ,ADMIN_RCON);
    
cvar_ammopacks_vip    =     register_cvar("amx_ammopacks_vip",     "2" ,ADMIN_RCON);
    
cvar_ammopacks_usuario    =    register_cvar("amx_ammopacks_usuario",     "1" ,ADMIN_RCON);
    
/* ========== [TERMINA SECCION MODIFICABLE] ========== */
    
    
g_vault adv_vault_open("data_rangos"false)
    
g_campos[CAMPO_AMMOS] = adv_vault_register_field(g_vault"AMMOS")
    
g_campos[CAMPO_RANGO] = adv_vault_register_field(g_vault"RANGOS")
    
g_campos[CAMPO_FRAG] = adv_vault_register_field(g_vault"FRAGS")
    
adv_vault_init(g_vault)
}
/* ========== [PRECACHE]* ==========*/
//public plugin_precache() 
//    precache_generic(Sonido)
    
/* ========== [NATIVES]* ==========*/
public plugin_natives()
{
    
register_native("rangos_jctf""mi_rango"1)
    
register_native("ammopacks_jctf""mi_ammopack"1)
    
register_native("jctf_get_tienda","TiendaItems"1)
}    
    
public 
PlayerSpawn(id)
{
    for(new 
;ITEMSo++)
    
Limite[id][o] = 0
}
public 
mi_rango(id)
    return 
Rangos[g_rango[id]][NOMBRE]
    
public 
mi_ammopack(id)
    return 
g_ammopacks[id]
    
/* ========== [REMOVER HUD] ==========*/
public remover_hud(id)
{
    if(!
Remover[id])
    {
        
remove_task(id+TASK_HUD)
        
chatcolor(id"%s Has desactivado el ^4hud de rangos"Prefijo)
        
Remover[id] = true    
    
}
    else
    {   
        
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
        
chatcolor(id"%s Has activado el ^4hud de rangos"Prefijo)
        
Remover[id] = false 
    
}
}
/* ========== [HUD] ==========*/
 
public Rangos_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(2552552550.600.6710.11.01.01.01)
        
show_hudmessage(ID_HUD"Nombre: %s | Frags: %d | Rango: %s"g_playername[id], g_frags[id], Rangos[g_rango[id]][NOMBRE])
    } 
    else
    {
        
set_hudmessage(255255255, -1.00.8700.11.01.01.01)
        
show_hudmessage(ID_HUD"Rango: %s^nFrags: [%d / %d]"Rangos[g_rango[id]][NOMBRE], g_frags[id], 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;
    
g_ammopacks[id] = 0;
    
    
Cargar(id)
    
set_task(1.0"Rangos_Hud"id+TASK_HUD__"b")
}
/* ========== [DISCONNECT] ========== */
public client_disconnect(id)
{
    
Guardar(id)
    
remove_task(id+TASK_HUD)
}

/* ========== [ROUND END] ========== */
public logevent_round_end() 
{
    for(new 
id 1id <= get_maxplayers(); id++)
    
Guardar(id); 
}
/* ========== [HAM KILLED] ========== */
public PlayerKilled(victimattackershouldgib)
{
    if(!
is_user_connected(attacker) || !is_user_connected(victim) || victim == attacker)
    return 
HAM_IGNORED
    
    
if(is_user_admin(attacker))
    {
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Ag_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_staff)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Bg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_full)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Cg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_premium)
        if(
get_user_flags(attacker) & ADMIN_LEVEL_Dg_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_vip)
    }
    else 
g_ammopacks[attacker] += get_pcvar_num(cvar_ammopacks_usuario)
    return 
HAM_IGNORED
}
/* ========== [DEATHMSG] ========== */
public Event_DeathMsg() 
{
    new 
attacker read_data(1)
    new 
victim read_data(2)
    
    if(
victim == attacker) return;
    
    if(
is_user_alive(attacker)) 
    {
        
g_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 has ascendido al rango: ^4%s^1!"PrefijoRangos[g_rango[id]][NOMBRE])
        
//client_cmd(id, "mp3 play ^"%s^"", Sonido)
        
Aumento false
    
}
}
/* ========== [HOOK SAY & SAY_TEAM] ========== */
public message_saytext(id)

    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) return PLUGIN_CONTINUE;
    
    static 
color[11]; get_user_team(id,color,charsmax(color))
    static 
name[32]; get_user_name(id,name,charsmax(name))

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^4%s^1] ^3%s ^1: %s"Rangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s",Rangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i) || is_user_alive(i) != is_user_alive(id)) continue
        
    
        
get_user_team(iteamcharsmax(team))
        
changeTeamInfo(icolor)
        
writeMessage(isaid)
        
changeTeamInfo(iteam)
    }
    return 
PLUGIN_HANDLED_MAIN;
}

public 
message_sayteam(id)
{    
    static 
said[192
    
read_args(saidcharsmax(said)) 
    
remove_quotes(said
    
    if (
said[0] == '@' || said[0] == '%' || said[0] == '.' || said[0] == '.' || said[0] == '!' || equal (said""))
    return 
PLUGIN_HANDLED

    
if (!ValidMessage(said1)) 
    return 
PLUGIN_CONTINUE
    
    static 
playerTeamName[19]
    switch (
get_user_team(id)) 
    {
        case 
1copy (playerTeamName12"TT")
        case 
2copy (playerTeamName12"CT"
        default: 
copy (playerTeamName11"Sin Equipo"
    }

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

    if(
is_user_admin(id)) 
    {
        if(
get_user_flags(id) & ADMIN_LEVEL_A)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_B)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_C)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
        if(
get_user_flags(id) & ADMIN_LEVEL_D)
        {
            if(
is_user_alive(id))
                
format(saidcharsmax(said), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
            else
                
format(saidcharsmax(said), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        }
    } 
    else 
    {
        if(
is_user_alive(id))
            
format(saidcharsmax(said), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
        else
            
format(saidcharsmax(said), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s"playerTeamNameRangos[g_rango[id]][NOMBRE], namesaid)
    }
    
    static 
iteam[11
    for (
1<= get_maxplayers(); i++) 
    {
        if (!
is_user_connected(i)) continue;
        
        if (
get_user_team(i) == get_user_team(id)) 
        {
            if(
is_user_admin(i) && is_user_alive(id) || !is_user_alive(i) && !is_user_alive(id)) 
            {
                
get_user_team(iteamcharsmax(team))
                
changeTeamInfo(icolor)
                
writeMessage(isaid)
                
changeTeamInfo(iteam)
            }
        }
    }
    return 
PLUGIN_HANDLED_MAIN;
}
public 
changeTeamInfo(playerteam[]) 
{
    
message_begin(MSG_ONEget_user_msgid("TeamInfo"), _player)
    
write_byte(player)
    
write_string(team)
    
message_end()
}
public 
writeMessage(playermessage[])
{
    
message_begin(MSG_ONEget_user_msgid("SayText"), {000}, player)
    
write_byte(player)
    
write_string(message)
    
message_end()
}
/* ========== [GUARDADO] ========== */
Guardar(id
{
    
adv_vault_set_start(g_vault)
    
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOS], g_ammopacks[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_RANGO], g_rango[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_FRAG], g_frags[id])
    
adv_vault_set_end(g_vault0g_playername[id])
}
Cargar(id
{
    if(!
adv_vault_get_prepare(g_vault_g_playername[id])) 
    return

    
g_rango[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_RANGO])
    
g_frags[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FRAG])
    
g_ammopacks[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOS])

public 
TiendaItems(id)
{    
    static 
sztext[70]    
    new 
Menulen[300]
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d"g_ammopacks[id])
    
Menu menu_create(len"TiendaItems_Handler")
    
    for(new 
0sizeof(TIENDA_ITEMS); i++)
    {
        if(
Limite[id][i] == || g_ammopacks[id] < TIENDA_ITEMS[i][COSTO_APS] || cs_get_user_money(id) < TIENDA_ITEMS[i][COSTO_MONEY])
            
format(sztextcharsmax(sztext), "\d%s \d[APs %d] [Dinero %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS], TIENDA_ITEMS[i][COSTO_MONEY]);
    
        else
            
format(sztextcharsmax(sztext), "\w%s \r[APs %d] [Dinero %d]"TIENDA_ITEMS[i][iNOMBRE], TIENDA_ITEMS[i][COSTO_APS], TIENDA_ITEMS[i][COSTO_MONEY]);
        
        
menu_additem(Menusztext__menu_makecallback"tienda_callback"));
    }
    
menu_setprop(MenuMPROP_EXITNAME"Cerrar");
    
menu_display(idMenu);
    return 
PLUGIN_HANDLED;
}
public 
tienda_callback(idMenuItem
{
    if(
g_ammopacks[id] < TIENDA_ITEMS[Item][COSTO_APS] || cs_get_user_money(id) < TIENDA_ITEMS[Item][COSTO_MONEY])
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}
public 
TiendaItems_Handler(idMenuItem)
{
    if(
Item == MENU_EXIT || !is_user_alive(id))
    {
        
menu_destroy(Menu);
        return 
PLUGIN_HANDLED;
    }    
    static 
cost
    cost 
TIENDA_ITEMS[Item][COSTO_APS];
    
    if(
Limite[id][Item] == TIENDA_ITEMS[Item][LIMITE_ITEM])
    {
        
chatcolor(id"%s Ya has comprado este item especial."Prefijo)
        
TiendaItems(id)
        return 
PLUGIN_HANDLED;
    }
    
Comprar_Items(idItemcost);
    
menu_destroy(Menu)
    return 
PLUGIN_HANDLED;
}
Comprar_Items(idItemcost)
{
    switch(
Item)
    {
        case 
RAILCANNONdrop_weapons(id1), give_railcannon(id)
        case 
THANATOSdrop_weapons(id1), get_thanatos(id)
        case 
BALROG3drop_weapons(id1), Get_Balrog3(id)
        case 
AT4CSdrop_weapons(id1), Get_AT4CS(id)
        case 
BALROG11drop_weapons(id1), Get_Balrog11(id)
        case 
JANUS3drop_weapons(id1), give_janus3(id)
        case 
COMPOUNDBOWdrop_weapons(id1), Get_CompoundBow(id)
        case 
M32drop_weapons(id1), give_m32(id)
    }
    
Limite[id][Item]++
    
g_ammopacks[id] -= cost
    chatcolor
(id"%s Has comprado el item ^4%s^1."PrefijoTIENDA_ITEMS[Item][iNOMBRE])
    
cs_set_user_money(idcs_get_user_money(id) - TIENDA_ITEMS[Item][COSTO_MONEY])
    
    return 
PLUGIN_HANDLED
}
public 
cmd_packsiId,level,cid 
{
    if(!
cmd_accessiIdlevelcid) )
    return 
PLUGIN_HANDLED;
        
    new 
target[33], cantidad[10], packsplayer;
    
read_argv(1targetcharsmaxtarget ) );
    
read_argv(2cantidadcharsmaxcantidad ) );
    
player cmd_targetiIdtargetCMDTARGET_ALLOW_SELF );
    
packs str_to_numcantidad );
        
    if(!
player)
    return 
PLUGIN_HANDLED;
        
    new 
TargetName[33]; get_user_nameplayerTargetNamecharsmax(TargetName) );
    new 
AdminName[33]; get_user_nameiIdAdminNamecharsmax(AdminName) );
        
        
    
chatcolor0"%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." Prefijo AdminNamepackspacks packs "ammopacks""ammopack"TargetName);
    
g_ammopacks[player] += packs;
    return 
PLUGIN_HANDLED;
}
/* ========== [STOCKS] ========== */
// stock de chatcolor
stock chatcolor(id, const input[], any:...) 
{
    new 
count 1players[32]; 
    static 
msg[191]; 
    
vformat(msg190input3); 
    
    
replace_all(msg190"!g""^4"); // Verde
    
replace_all(msg190"!y""^1"); // Default
    
replace_all(msg190"!t""^3"); // Color del Equipo 
    
    
if (idplayers[0] = id; else get_players(playerscount"ch"); 
    { 
        for (new 
0counti++)  
        { 
            if (
is_user_connected(players[i])) 
            { 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]); 
                
write_byte(players[i]); 
                
write_string(msg); 
                
message_end(); 
            } 
        } 
    } 

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


public 
Menu_Principal(iId)
{
    new 
menulen[300];
    
formatex(lencharsmax(len), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%"jctf_get_adrenaline(iId));
    
menu menu_create (len"MenuPrincipal_Handler");
    
    
menu_additemmenu"\wComprar \rArmas Especiales""0");
    
menu_additemmenu"\wUsar \rAdrenalina""1");
    
menu_additemmenu"\wNuestras \rServers""2");
    
menu_additemmenu"\wDropear \rBandera""3");
    
menu_additemmenu"\wReiniciar \rScore""4");
    
menu_additemmenu"\wVer \rTop 15""5" );
    
menu_additemmenu"\wVer \rRankstats""6" );
    
menu_additemmenu"\wPanel \rAdmin""7"ADMIN_KICK );
    
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
    
menu_displayiIdmenu);
    return 
PLUGIN_HANDLED;
}

public 
MenuPrincipal_HandleriIdmenuitem ) {
    if(
item == MENU_EXIT)
    {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    switch( 
item )
    {
        case 
0TiendaItemsiId );
        case 
1client_cmdiId"adrenaline");
        case 
2client_cmdiId"say servers");
        case 
3client_cmdiId"say /dropflag");
        case 
4client_cmdiId"say rs");
        case 
5client_cmdiId"say top");
        case 
6client_cmdiId"say /rankstats");
        case 
7client_cmdiId"amxmodmenu");
    }
    return 
PLUGIN_HANDLED;
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid;
    
num 0;
    
get_user_weapons(idweaponsnum);
    
    const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|
    (
1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
    
    const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
    for (
0numi++)
    {
        
weaponid weapons[i];
        
        if ((
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            static 
wname[32];
            
get_weaponname(weaponidwnamesizeof wname 1);
            
engclient_cmd(id"drop"wname);
        }
    }


cabe aclarar que le gasta los AP y el dinero; no explico bien si quería que se comprara con AP y dinero o con AP o dinero

yo quiero que gaste los 2 aps y dinero al comprar el arma y como le puedo poner para que cada tipo de admin comienze que si los staff 50 de aps los full 40 premium 30 y vip 20 algo a si
Aprendiendo scripting Excitedeyes || Tratare ayudar en lo que pueda Trolleyes || PD: Soy pobre Cutecry
Responder
#6
(27/12/2018, 04:12 PM)[R]ak escribió: cabe aclarar que le gasta los AP y el dinero; no explico bien si quería que se comprara con AP y dinero o con AP o dinero

por lo que entendí lo pidió de esa forma --------->
(27/12/2018, 03:34 PM)whOo escribió: buenas tengo este sistema de rangos + menu con extra items que se compran con aps pero le quiero agregar que tambien se compren con dinero osea que se compren con aps y dinero no se si me explique bien pero espero que me entiendan

(27/12/2018, 04:08 PM)whOo escribió: otra cosa como le puedo poner para que cada tipo de admin comienze con que si los staff 50 de aps los full 40 premium 30 y vip 20 algo a si

pues, por lo que veo tu guardas los aps y al conectarse le seteas los datos guardados, si le seteas x aps no estarias haciendn nada guardando el valor de la variable g_ammopacks.

pero si lo que quieres hacer es setearle X aps si el admin no tiene datos almacenados te recomendaria que en Guardar hagas esto

Ejemplo:
Código PHP:
Cargar(id
{
    if(!
adv_vault_get_prepare(g_vault_g_playername[id])) // si no hay datos almacenados...
    
{
        if(
get_user_flags(id) & ADMIN_BAN)
        {
            
//Aqui seteas los aps
        
}
        return
    }

    
g_rango[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_RANGO])
    
g_frags[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_FRAG])
    
g_ammopacks[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOS])


Si no es lo que pides, podrias explicarte mejor
Mis Aportes:

[ TTT ] Item: Target Gun

[ TTT ] Item: Skeleton Gun (New)
[ TTT ] Item: Pipe Bomb
[ TTT ] Item: Inverse Golden
[Imagen: 76561198074954930.png] [Imagen: venezuela.gif]
Pregúntate si lo que estás haciendo hoy te acerca a el lugar en el que quieres estar mañana. Corazón
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)