Rangos + habilidades
#1
Introducción

Bueno esta es una modificación de los rangos de kikizon que le agregue el shop de CSAxel, bueno aclaro que no estoy roban autor ni nada Thats what she said
Se que no es la gran cosa pero los que no sepan como hacerlo le va a servir


Características

Guardado nfvault
Las habilidades facil de modificar para el rango especificado
Prefijo para los admins (DUEÑO, STAFF Y ADMINS)
Admins chat colors
Cuando pasas de rango, los frags se resetean, osea, haces 100 frag, subis a 100, se resetea y para el proximo rango vas a necesitar 200 frags


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

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


#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <nfvault>

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


/* =============================================
|= [EMPIEZA SECCION MODIFICABLE] =|
==============================================*/
/* ====================================
*[CONSTANTES]*
=====================================*/ 
//new const Web[] = "web de tu comunidad"  // Se Muestra en HUD (para habilitar sacar las // de atras del new
new const Prefijo[] = "!g[RANGOS]!y";// Prefijo en say
new const Sonido[] = "rango/up.wav"// Sonido Rango UP

new Flags;
new 
g_AdminTag[33][10];

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

new const 
AdminsTags[][Data2] = {
    { 
"[DUEÑO]"ADMIN_RCON },
    { 
"[STAFF]"ADMIN_IMMUNITY },
    { 
"[ADMIN]"ADMIN_KICK }
};
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
};
new const 
Rangos[][DATA] = {
    { 
"Novato"100 },
    { 
"Silver I"200 },
    { 
"Silver II"300 },
    { 
"Silver III"500 },
    { 
"Silver IV"700 },
    { 
"Silver Elite"800 },
    { 
"Silver Elite Master"900 },
    { 
"Gold Nova I"1000 },
    { 
"Gold Nova II"1200 },
    { 
"Gold Nova III"1300 },
    { 
"Gold Nova Master"1400 },
    { 
"Master Guardian I",1500 },
    { 
"Master Guardian II"1700 },
    { 
"Master Guardian Elite"1800 },
    { 
"Distinguished Master Guardian"1900 },
    { 
"Legendary Eagle"2000 },
    { 
"Legendary Eagle Master"2100 },
    { 
"Supreme Master First Class"2200 },
    { 
"The Global Elite"2500 },
    { 
""99999 //fix
};

new const 
szPrefix[] = "SHOP";

enum _:DATA_SHOP
{
    
NAME_ITEM[38],
    
COST_ITEM,
    
LEVEL_ITEM
};

new const 
szShop_Items[][DATA_SHOP] = {
    { 
"Pack de granadas"10000}, // el 1 vendría a ser el primer rango (Novato)
    
"+100 Vida \r(1 Ronda)"7500},
    { 
"+250 Vida \r(1 Ronda)"1100},
    { 
"-300 Gravedad \r(Hasta morir)"12000}, // el 2 vendría a ser el segundo rango (Silver I)
    
"Pasos silenciosos \r(Hasta morir)"10000},
    { 
"Desert Eagle.50 \r(2 balas)"13500},
    { 
"AWP Magnum Sniper \r(1 bala)"15000},
    { 
"Disfraz de traidor \r(1 ronda)"130002},
    { 
"Invisibilidad \r(Hasta morir)"16000// el 3 vendría ser el tercer rango (Silver II) y a si sucesivamente....... es totalmente modificable a su gusto 
};

new 
g_bAlreadyBuy;
new 
g_MsgID_SayText;



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

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

/* ====================================
*[Cvars]*
=====================================*/
new cvar_Hudcvar_knifex2cvar_hsx2;
/* ====================================
*[INIT]*
=====================================*/
public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
    
register_event("DeathMsg""Event_DeathMsg""a");
    
register_event("HLTV""Event_NewRound""a""1=0""2=0");
    
register_clcmd("say /shop""Clcmd_Shop");
    
register_clcmd("say_team /shop""Clcmd_Shop");
    
    
register_logevent("logevent_round_end"2"1=Round_End");
    
register_clcmd("say""message_saytext");
    
register_clcmd("say_team""message_sayteam");
    
g_MsgID_SayText get_user_msgid("SayText");

    
    
/* =============================================
    |= [EMPIEZA SECCION MODIFICABLE] =|
    ==============================================*/
    
cvar_Hud register_cvar("rangos_hud""1");       // 1 - Mostrar HUD | 0 - No Mostrar
    
cvar_knifex2 register_cvar("rangos_knifex2""1");    // 1 - x2 frags con knife | 0 - ÑO :v
    
cvar_hsx2 register_cvar("rangos_hsx2""1");        // 1 - x2 frags de HeadShot | 0 - ÑO :v
    /* =============================================
    |= [TERMINA SECCION MODIFICABLE] =|
    ==============================================*/
    
    
    
SyncHUD CreateHudSyncObj();
    
g_maxplayers get_maxplayers();
    
g_msgTeamInfo get_user_msgid("TeamInfo");
    
g_msgSayText get_user_msgid("SayText");
    
    
nfv_file("Ranguitos"VaultRangocharsmax(VaultRango));
}
/* ====================================
*[PRECACHE]*
=====================================*/
public plugin_precache()
    
precache_sound(Sonido);
/* ===================================
*[HUD]*
=====================================*/
public HUD(taskid) {
    new 
id ID_HUD;
    
    if (!
is_user_alive(id)) {
        
id pev(idpev_iuser2);
        if (!
is_user_alive(id)) return;
    }
   
    if(
id != ID_HUD) {
        
set_hudmessage(2552552550.600.6716.01.0);
        
ShowSyncHudMsg(ID_HUDSyncHUD"Frags: %d  ||  Rango: %s"g_frags[id], Rangos[g_rango[id]][NOMBRE]);
    } else {
        
set_hudmessage(255000.00.2006.01.0);
        
ShowSyncHudMsg(ID_HUDSyncHUD"Frags: %d^nRango: %s^nSig. Rango: %s^nFrags Restantes: %d"g_frags[id], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], Rangos[g_rango[id]][FRAGS] -  g_frags[id])
    }
    

/* ==================================
    [PUTINSERVER]
===================================*/
public client_putinserver(id) {
    {
    
g_rango[id] = 1;
    
g_bAlreadyBuy &= ~(1<<(id-1));
    }
    
get_user_nameidg_playernameid ], charsmaxg_playername[ ] ) );
    
g_rango[id] = 0;
    
g_frags[id] = 0;
    
    
Cargar(id);
    
    if(
get_pcvar_num(cvar_Hud))
        
set_task(1.0"HUD"id+TASK_HUD__"b");
    if(!
is_user_admin(id)) {
        
copy(g_AdminTag[id], charsmax(g_AdminTag[]), "");
        return;
    }
        
    
Flags get_user_flagsid );
    
    for(new 
isizeof AdminsTagsi++) {
        if(
Flags AdminsTags[i][FLAG]) {
            
copy(g_AdminTag[id], charsmax(g_AdminTag[]), AdminsTags[i][TAG]);
            break;
        }
    }
}

public 
Event_NewRound()
    
g_bAlreadyBuy 0;
    
public 
Clcmd_Shop(id)
{
    if (!
is_user_alive(id))
    {
        
ChatColor(id"^x04[%s]^x01 Tienes que estar vivo para abrir el shop"szPrefix);
        return 
PLUGIN_HANDLED;
    }
    
    
ShowMenu_Shop(id);
    return 
PLUGIN_HANDLED;
}

public 
ShowMenu_Shop(id)
{
    if (!
is_user_alive(id))
        return;

    static 
iMenuszText[64], szInfoLevel[12], i;
    
formatex(szTextcharsmax(szText), "MENú SHOP%s"g_bAlreadyBuy & (1<<(id-1)) ? "^n\rYa compraste un item. Espera a la próxima ronda.\w" "\r");
    
iMenu menu_create(szText"HandleMenu_Shop");
    
    for (
0sizeof(szShop_Items); i++)
    {
        if (
g_rango[id] >= szShop_Items[i][LEVEL_ITEM])
            
szInfoLevel[0] = '^0';
        else
            
formatex(szInfoLevelcharsmax(szInfoLevel), " \r(N: %d)"szShop_Items[i][LEVEL_ITEM]);
        
        
formatex(szTextcharsmax(szText), "%s \w[\y$%d\w]%s"szShop_Items[i][NAME_ITEM], szShop_Items[i][COST_ITEM], szInfoLevel);
        
menu_additem(iMenuszText__menu_makecallback("CallBack_Shop"));
    }
    
    
menu_setprop(iMenuMPROP_BACKNAME"ATRÃS");
    
menu_setprop(iMenuMPROP_NEXTNAME"SIGUIENTE");
    
menu_setprop(iMenuMPROP_EXITNAME"SALIR");
    
    
menu_display(idiMenu);
}

public 
CallBack_Shop(idiMenuiItem)
{
    if (
g_bAlreadyBuy & (1<<(id-1)))
        return 
ITEM_DISABLED;
    
    if (
cs_get_user_money(id) < szShop_Items[iItem][COST_ITEM])
        return 
ITEM_DISABLED;
    
    if (
g_rango[id] < szShop_Items[iItem][LEVEL_ITEM])
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}

public 
HandleMenu_Shop(idiMenuiItem)
{
    if (
iItem == MENU_EXIT)
        return 
PLUGIN_HANDLED;

    if (!
is_user_alive(id))
        return 
PLUGIN_HANDLED;
    
    switch (
iItem)
    {
        case 
0
        {
            
give_item(id"weapon_hegrenade");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_smokegrenade");
        }
        case 
1set_user_health(idget_user_health(id) + 100);
        case 
2set_user_health(idget_user_health(id) + 250);
        case 
3set_user_gravity(id0.5);
        case 
4set_user_footsteps(id1);
        case 
5cs_set_weapon_ammo(give_item(id"weapon_deagle"), 2);
        case 
6cs_set_weapon_ammo(give_item(id"weapon_awp"), 1);
        case 
7: {
    if (
get_user_team(id)==1)
    {
    
cs_set_user_model(id"urban")
    }
    else
    {
    
cs_set_user_model(id"guerilla")
    }
}
        case 
8set_user_rendering(idkRenderFxNone000kRenderTransAdd10);
    }
    
    
g_bAlreadyBuy |= (1<<(id-1));
    
cs_set_user_money(idcs_get_user_money(id) - szShop_Items[iItem][COST_ITEM]);
    
ChatColor(id"^x04[%s]^x01 Compraste: ^x04%s"szPrefixszShop_Items[iItem][NAME_ITEM]);
    return 
PLUGIN_HANDLED;
}


/* ==================================
    [DISCONNECT]
===================================*/
public client_disconnect(id) {
    if(
XDGuardar(id);
        
    
remove_task(id+TASK_HUD);
}

/* ==================================
    [ROUND END]
===================================*/
public logevent_round_end() {
    for(new 
id 1id <= g_maxplayersid++) {
        if(
XD
            
Guardar(id); 
    }
}
/* ==================================
    [DEATHMSG]
===================================*/
public Event_DeathMsg() {
    new 
attacker read_data(1);
    new 
victim read_data(2);
    new 
hs read_data(3);
    new 
weaponid get_user_weapon(attacker);
    
    if(
victim == attacker) return;
    
    if(
is_user_alive(attacker)) {
        
g_frags[attacker]+= is_user_admin(attacker)? 1;
        
        if(
get_pcvar_num(cvar_knifex2)) {
            if(
weaponid == CSW_KNIFE
                
g_frags[attacker]+= is_user_admin(attacker)? 1;
        }
        if(
get_pcvar_num(cvar_hsx2)) {
            if(
hs)
        
g_frags[attacker]+= is_user_admin(attacker)? 1;
        }
        
AumentarRango(attacker);
    }

/* ================================
    [UPDATE RANGO]
=================================*/
AumentarRango(id) {    
    new 
Aumento false;
    
    while(
g_frags[id] >= Rangos[g_rango[id]][FRAGS]) {
        
Aumento true;
        
g_rango[id]++;
    }
        
    if(
Aumento) {
        
chatcolor(id"%s Felicidades subiste al rango: !g[ %s ]"PrefijoRangos[g_rango[id]][NOMBRE]);
        
client_cmd(id"spk %s"Sonido);
        
Aumento false;
    }

/*=====================================
*[SAY]*
=====================================*/
public message_saytext(id) { 
    static 
said[192];
    
read_args(saidcharsmax(said));
    
remove_quotes(said);
    
    if (
said[0] == '%' || said[0] == '.' || said[0] == '!' || equal (said""))
        return 
PLUGIN_HANDLED;

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

    if (
is_user_alive (id)) {
        
alive "";
    } else {
        
alive "(MUERTO)";
    }

    if (
is_user_admin(id)) {
        if (
get_user_flags(id)) 
            
format(saidcharsmax(said), "^x01%s (^x04%s^x01)^x04 %s^x01-> ^x03 %s ^x01: ^x04%s"aliveRangos[g_rango[id]][NOMBRE], g_AdminTag[id], namesaid);
    } else 
    {
        
format(saidcharsmax(said), "^x01%s (^x04 %s^x01) ^x03%s ^x01: %s"aliveRangos[g_rango[id]][NOMBRE], namesaid);
    }
    
    static 
iteam[11];
    for (
1<= g_maxplayersi++) {
        if (!
is_user_connected(i)) continue;
        
get_user_name(id,name,charsmax(name));
        
        if (
is_user_admin(i) || is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) {
            
get_user_team(iteamcharsmax(team));
            
changeTeamInfo(icolor);
            
writeMessage(isaid);
            
changeTeamInfo(iteam);
        }
    }
    return 
PLUGIN_HANDLED_MAIN;
}

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

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

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

    if (
is_user_alive (id)) {
        
alive "";
    } else {
        
alive "(MUERTO)";
    }

    if (
is_user_admin(id)) {
        if (
get_user_flags(id))
            
format(saidcharsmax(said), "^x01%s [^x04%s^x01] (^x04%s^x01)^x04 %s^x01-> ^x03 %s ^x01: %s"aliveplayerTeamRangos[g_rango[id]], g_AdminTag[id], namesaid);
    } else {
        
format(saidcharsmax(said), "^x01%s [^x04%s^x01] (^x04%s^x01)^x03 %s ^x01: %s"aliveplayerTeamRangos[g_rango[id]],namesaid);
    }

    static 
iteam[11];
    for (
1<= g_maxplayersi++) {
        if (!
is_user_connected(i)) continue;
        
get_user_name(id,name,charsmax(name));
        
        if (
get_user_team(i) == playerTeam || is_user_admin(i)) {
            if (
is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) {
                
get_user_team(iteamcharsmax(team));
                
changeTeamInfo(icolor);
                
writeMessage(isaid);
                
changeTeamInfo(iteam);
            }
        }
    }
    return 
PLUGIN_HANDLED_MAIN;
}
public 
changeTeamInfo(playerteam[]) {
    
message_begin(MSG_ONEg_msgTeamInfo_player);
    
write_byte(player);
    
write_string(team);
    
message_end();
}




public 
writeMessage(playermessage[]) {
    
message_begin(MSG_ONEg_msgSayText, {000}, player);
    
write_byte(player);
    
write_string(message);
    
message_end();
}
/* ===================================
*[GUARDADO]*
=====================================*/
Guardar(id) {
    
formatex(szKeycharsmax(szKey), "data_rangos");
    
formatex(szRangoscharsmax(szRangos), "%d %d"g_frags[id], g_rango[id]);
    
    
nfv_set_data(VaultRangoszKeyg_playername[id], szRangos);
}

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

/* ===================================
*[STOCKS]*
=====================================*/
// stock de chatcolor
stock chatcolorid, const input[], any:... )
{
    static 
szMsg191 ], msgSayText;
    
    if( !
msgSayText )
        
msgSayText get_user_msgid"SayText" );
    
    
vformatszMsg190input);

    
replace_allszMsg190"!g""^4" );
    
replace_allszMsg190"!y""^1" );
    
replace_allszMsg190"!t""^3" );
    
    
message_beginid MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id );
    
write_byteid id 33 );
    
write_stringszMsg );
    
message_end( );

// Stock para Saber Si el mensaje es valido
stock ValidMessage(text[], maxcount) {
    static 
lenicount;
    
len strlen(text);
    
count 0;
    
    if (!
len)
        return 
false;
    
    for (
0leni++) {
        if (
text[i] != ' ') {
            
count++;
            if (
count >= maxcount)
                return 
true;
        }
    }
    return 
false;


stock ChatColor(id, const input[], any:...)
{
    static 
szMsg[191];
    
vformat(szMsgcharsmax(szMsg), input3);
    
    
message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTg_MsgID_SayText, .player id);
    
write_byte(id id 33);
    
write_string(szMsg);
    
message_end();


Espero que les guste, si hay que modificar algo me dicen.

Y ya que estamos, alguien me puede decir como hacerle guardado por HID Whatever
Aprendiendo 5%Proud
Responder
#2
5mentarios

Responder
#3
le podrias optimizar aun mas :V
aca un ejemplo
te ocuparia menos lineas
Código PHP:
new const AdminsTags[][Data2] = {
    { 
"[DUEÑO]"ADMIN_RCON }, { "[STAFF]"ADMIN_IMMUNITY }, { "[ADMIN]"ADMIN_KICK }
};
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
};
new const 
Rangos[][DATA] = {
    { 
"Novato"100 }, { "Silver I"200 }, { "Silver II"300 }, { "Silver III"500 }, { "Silver IV"700 }, { "Silver Elite"800 }, { "Silver Elite Master"900 }, { "Gold Nova I"1000 },
    { 
"Gold Nova II"1200 }, { "Gold Nova III"1300 }, { "Gold Nova Master"1400 }, { "Master Guardian I",1500 }, { "Master Guardian II"1700 }, { "Master Guardian Elite"1800 },
    { 
"Distinguished Master Guardian"1900 }, { "Legendary Eagle"2000 }, { "Legendary Eagle Master"2100 }, { "Supreme Master First Class"2200 }, { "The Global Elite"2500 },
    { 
""99999 //fix
};

new const 
szPrefix[] = "SHOP";

enum _:DATA_SHOP
{
    
NAME_ITEM[38],
    
COST_ITEM,
    
LEVEL_ITEM
};

new const 
szShop_Items[][DATA_SHOP] = {
    { 
"Pack de granadas"10000}, { "+100 Vida \r(1 Ronda)"7500}, { "+250 Vida \r(1 Ronda)"1100}, { "-300 Gravedad \r(Hasta morir)"12000}, { "Pasos silenciosos \r(Hasta morir)"10000},
    { 
"Desert Eagle.50 \r(2 balas)"13500}, { "AWP Magnum Sniper \r(1 bala)"15000}, { "Disfraz de traidor \r(1 ronda)"130002}, { "Invisibilidad \r(Hasta morir)"16000}
}; 
Nothingdohere <===| Aprendiendo Con Cada Momento |===> Nothingdohere
<==| Aportes |==>
Sistema de Carnages + Menu para Mandarlos
Responder
#4
(03/02/2017, 04:40 PM)|-|Tuli|-| escribió: le podrias optimizar aun mas :V
aca un ejemplo
te ocuparia menos lineas
Código PHP:
new const AdminsTags[][Data2] = {
    { 
"[DUEÑO]"ADMIN_RCON }, { "[STAFF]"ADMIN_IMMUNITY }, { "[ADMIN]"ADMIN_KICK }
};
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
};
new const 
Rangos[][DATA] = {
    { 
"Novato"100 }, { "Silver I"200 }, { "Silver II"300 }, { "Silver III"500 }, { "Silver IV"700 }, { "Silver Elite"800 }, { "Silver Elite Master"900 }, { "Gold Nova I"1000 },
    { 
"Gold Nova II"1200 }, { "Gold Nova III"1300 }, { "Gold Nova Master"1400 }, { "Master Guardian I",1500 }, { "Master Guardian II"1700 }, { "Master Guardian Elite"1800 },
    { 
"Distinguished Master Guardian"1900 }, { "Legendary Eagle"2000 }, { "Legendary Eagle Master"2100 }, { "Supreme Master First Class"2200 }, { "The Global Elite"2500 },
    { 
""99999 //fix
};

new const 
szPrefix[] = "SHOP";

enum _:DATA_SHOP
{
    
NAME_ITEM[38],
    
COST_ITEM,
    
LEVEL_ITEM
};

new const 
szShop_Items[][DATA_SHOP] = {
    { 
"Pack de granadas"10000}, { "+100 Vida \r(1 Ronda)"7500}, { "+250 Vida \r(1 Ronda)"1100}, { "-300 Gravedad \r(Hasta morir)"12000}, { "Pasos silenciosos \r(Hasta morir)"10000},
    { 
"Desert Eagle.50 \r(2 balas)"13500}, { "AWP Magnum Sniper \r(1 bala)"15000}, { "Disfraz de traidor \r(1 ronda)"130002}, { "Invisibilidad \r(Hasta morir)"16000}
}; 

En que parte lo optimizas? RoflmaoRoflmaoRoflmao

Edit; Ademas de que solo ahorras lineas haces el codigo menos legible
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
#5
(03/02/2017, 04:40 PM)|-|Tuli|-| escribió: le podrias optimizar aun mas :V
aca un ejemplo
te ocuparia menos lineas
Código PHP:
new const AdminsTags[][Data2] = {
    { 
"[DUEÑO]"ADMIN_RCON }, { "[STAFF]"ADMIN_IMMUNITY }, { "[ADMIN]"ADMIN_KICK }
};
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
};
new const 
Rangos[][DATA] = {
    { 
"Novato"100 }, { "Silver I"200 }, { "Silver II"300 }, { "Silver III"500 }, { "Silver IV"700 }, { "Silver Elite"800 }, { "Silver Elite Master"900 }, { "Gold Nova I"1000 },
    { 
"Gold Nova II"1200 }, { "Gold Nova III"1300 }, { "Gold Nova Master"1400 }, { "Master Guardian I",1500 }, { "Master Guardian II"1700 }, { "Master Guardian Elite"1800 },
    { 
"Distinguished Master Guardian"1900 }, { "Legendary Eagle"2000 }, { "Legendary Eagle Master"2100 }, { "Supreme Master First Class"2200 }, { "The Global Elite"2500 },
    { 
""99999 //fix
};

new const 
szPrefix[] = "SHOP";

enum _:DATA_SHOP
{
    
NAME_ITEM[38],
    
COST_ITEM,
    
LEVEL_ITEM
};

new const 
szShop_Items[][DATA_SHOP] = {
    { 
"Pack de granadas"10000}, { "+100 Vida \r(1 Ronda)"7500}, { "+250 Vida \r(1 Ronda)"1100}, { "-300 Gravedad \r(Hasta morir)"12000}, { "Pasos silenciosos \r(Hasta morir)"10000},
    { 
"Desert Eagle.50 \r(2 balas)"13500}, { "AWP Magnum Sniper \r(1 bala)"15000}, { "Disfraz de traidor \r(1 ronda)"130002}, { "Invisibilidad \r(Hasta morir)"16000}
}; 

A eso llamas optimizar?
Responder
#6
(03/02/2017, 04:40 PM)|-|Tuli|-| escribió: le podrias optimizar aun mas :V
aca un ejemplo
te ocuparia menos lineas
Código PHP:
new const AdminsTags[][Data2] = {
    { 
"[DUEÑO]"ADMIN_RCON }, { "[STAFF]"ADMIN_IMMUNITY }, { "[ADMIN]"ADMIN_KICK }
};
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
};
new const 
Rangos[][DATA] = {
    { 
"Novato"100 }, { "Silver I"200 }, { "Silver II"300 }, { "Silver III"500 }, { "Silver IV"700 }, { "Silver Elite"800 }, { "Silver Elite Master"900 }, { "Gold Nova I"1000 },
    { 
"Gold Nova II"1200 }, { "Gold Nova III"1300 }, { "Gold Nova Master"1400 }, { "Master Guardian I",1500 }, { "Master Guardian II"1700 }, { "Master Guardian Elite"1800 },
    { 
"Distinguished Master Guardian"1900 }, { "Legendary Eagle"2000 }, { "Legendary Eagle Master"2100 }, { "Supreme Master First Class"2200 }, { "The Global Elite"2500 },
    { 
""99999 //fix
};

new const 
szPrefix[] = "SHOP";

enum _:DATA_SHOP
{
    
NAME_ITEM[38],
    
COST_ITEM,
    
LEVEL_ITEM
};

new const 
szShop_Items[][DATA_SHOP] = {
    { 
"Pack de granadas"10000}, { "+100 Vida \r(1 Ronda)"7500}, { "+250 Vida \r(1 Ronda)"1100}, { "-300 Gravedad \r(Hasta morir)"12000}, { "Pasos silenciosos \r(Hasta morir)"10000},
    { 
"Desert Eagle.50 \r(2 balas)"13500}, { "AWP Magnum Sniper \r(1 bala)"15000}, { "Disfraz de traidor \r(1 ronda)"130002}, { "Invisibilidad \r(Hasta morir)"16000}
}; 

No se en que mundo eso es optimizar, hijodetuperramadre
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#7
2 stock de chatcolor (?
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Responder
#8
Código PHP:
/* ===================================
*[STOCKS]*
=====================================*/
// stock de chatcolor
stock chatcolorid, const input[], any:... )
{
    static 
szMsg191 ], msgSayText;
    
    if( !
msgSayText )
        
msgSayText get_user_msgid"SayText" );
    
    
vformatszMsg190input);

    
replace_allszMsg190"!g""^4" );
    
replace_allszMsg190"!y""^1" );
    
replace_allszMsg190"!t""^3" );
    
    
message_beginid MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id );
    
write_byteid id 33 );
    
write_stringszMsg );
    
message_end( );

// Stock para Saber Si el mensaje es valido
stock ValidMessage(text[], maxcount) {
    static 
lenicount;
    
len strlen(text);
    
count 0;
    
    if (!
len)
        return 
false;
    
    for (
0leni++) {
        if (
text[i] != ' ') {
            
count++;
            if (
count >= maxcount)
                return 
true;
        }
    }
    return 
false;


stock ChatColor(id, const input[], any:...)
{
    static 
szMsg[191];
    
vformat(szMsgcharsmax(szMsg), input3);
    
    
message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTg_MsgID_SayText, .player id);
    
write_byte(id id 33);
    
write_string(szMsg);
    
message_end();


Será que quiere algo con mucho color. NothingdohereRoflmaoRoflmaoRoflmaoRoflmaoRoflmaoRoflmao
Responder
#9
(03/02/2017, 04:40 PM)|-|Tuli|-| escribió: le podrias optimizar aun mas :V
aca un ejemplo
te ocuparia menos lineas
Código PHP:
new const AdminsTags[][Data2] = {
    { 
"[DUEÑO]"ADMIN_RCON }, { "[STAFF]"ADMIN_IMMUNITY }, { "[ADMIN]"ADMIN_KICK }
};
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
};
new const 
Rangos[][DATA] = {
    { 
"Novato"100 }, { "Silver I"200 }, { "Silver II"300 }, { "Silver III"500 }, { "Silver IV"700 }, { "Silver Elite"800 }, { "Silver Elite Master"900 }, { "Gold Nova I"1000 },
    { 
"Gold Nova II"1200 }, { "Gold Nova III"1300 }, { "Gold Nova Master"1400 }, { "Master Guardian I",1500 }, { "Master Guardian II"1700 }, { "Master Guardian Elite"1800 },
    { 
"Distinguished Master Guardian"1900 }, { "Legendary Eagle"2000 }, { "Legendary Eagle Master"2100 }, { "Supreme Master First Class"2200 }, { "The Global Elite"2500 },
    { 
""99999 //fix
};

new const 
szPrefix[] = "SHOP";

enum _:DATA_SHOP
{
    
NAME_ITEM[38],
    
COST_ITEM,
    
LEVEL_ITEM
};

new const 
szShop_Items[][DATA_SHOP] = {
    { 
"Pack de granadas"10000}, { "+100 Vida \r(1 Ronda)"7500}, { "+250 Vida \r(1 Ronda)"1100}, { "-300 Gravedad \r(Hasta morir)"12000}, { "Pasos silenciosos \r(Hasta morir)"10000},
    { 
"Desert Eagle.50 \r(2 balas)"13500}, { "AWP Magnum Sniper \r(1 bala)"15000}, { "Disfraz de traidor \r(1 ronda)"130002}, { "Invisibilidad \r(Hasta morir)"16000}
}; 

WTF que optimisas ahí?

(03/02/2017, 05:43 PM)FreDDy escribió:
Código PHP:
/* ===================================
*[STOCKS]*
=====================================*/
// stock de chatcolor
stock chatcolorid, const input[], any:... )
{
    static 
szMsg191 ], msgSayText;
    
    if( !
msgSayText )
        
msgSayText get_user_msgid"SayText" );
    
    
vformatszMsg190input);

    
replace_allszMsg190"!g""^4" );
    
replace_allszMsg190"!y""^1" );
    
replace_allszMsg190"!t""^3" );
    
    
message_beginid MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id );
    
write_byteid id 33 );
    
write_stringszMsg );
    
message_end( );

// Stock para Saber Si el mensaje es valido
stock ValidMessage(text[], maxcount) {
    static 
lenicount;
    
len strlen(text);
    
count 0;
    
    if (!
len)
        return 
false;
    
    for (
0leni++) {
        if (
text[i] != ' ') {
            
count++;
            if (
count >= maxcount)
                return 
true;
        }
    }
    return 
false;


stock ChatColor(id, const input[], any:...)
{
    static 
szMsg[191];
    
vformat(szMsgcharsmax(szMsg), input3);
    
    
message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTg_MsgID_SayText, .player id);
    
write_byte(id id 33);
    
write_string(szMsg);
    
message_end();


Será que quiere algo con mucho color. NothingdohereRoflmaoRoflmaoRoflmaoRoflmaoRoflmaoRoflmao

Me olvide de cambiar esoRoflmao

Alguno me le podría hacer guardado por hid ya que estamos Thats what she saidThats what she saidThats what she said
Aprendiendo 5%Proud
Responder
#10
Para guardado con hid si no me equivoco es: get_user_info( id, "*HID", variable_hid); creo pacman
De todo, esta bueno el aporte
Responder
#11
(03/02/2017, 07:35 PM)Niper.-. escribió: Para guardado con hid si no me equivoco es: get_user_info( id, "*HID", variable_hid); creo pacman
De todo, esta bueno el aporte

Me lo podes insertar en el plugin? Lo pruebo y te digo haber si quedoBetter
Aprendiendo 5%Proud
Responder
#12
(03/02/2017, 04:40 PM)|-|Tuli|-| escribió: le podrias optimizar aun mas :V
aca un ejemplo
te ocuparia menos lineas
Código PHP:
new const AdminsTags[][Data2] = {
    { 
"[DUEÑO]"ADMIN_RCON }, { "[STAFF]"ADMIN_IMMUNITY }, { "[ADMIN]"ADMIN_KICK }
};
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
};
new const 
Rangos[][DATA] = {
    { 
"Novato"100 }, { "Silver I"200 }, { "Silver II"300 }, { "Silver III"500 }, { "Silver IV"700 }, { "Silver Elite"800 }, { "Silver Elite Master"900 }, { "Gold Nova I"1000 },
    { 
"Gold Nova II"1200 }, { "Gold Nova III"1300 }, { "Gold Nova Master"1400 }, { "Master Guardian I",1500 }, { "Master Guardian II"1700 }, { "Master Guardian Elite"1800 },
    { 
"Distinguished Master Guardian"1900 }, { "Legendary Eagle"2000 }, { "Legendary Eagle Master"2100 }, { "Supreme Master First Class"2200 }, { "The Global Elite"2500 },
    { 
""99999 //fix
};

new const 
szPrefix[] = "SHOP";

enum _:DATA_SHOP
{
    
NAME_ITEM[38],
    
COST_ITEM,
    
LEVEL_ITEM
};

new const 
szShop_Items[][DATA_SHOP] = {
    { 
"Pack de granadas"10000}, { "+100 Vida \r(1 Ronda)"7500}, { "+250 Vida \r(1 Ronda)"1100}, { "-300 Gravedad \r(Hasta morir)"12000}, { "Pasos silenciosos \r(Hasta morir)"10000},
    { 
"Desert Eagle.50 \r(2 balas)"13500}, { "AWP Magnum Sniper \r(1 bala)"15000}, { "Disfraz de traidor \r(1 ronda)"130002}, { "Invisibilidad \r(Hasta morir)"16000}
}; 

Eso no es optimizar, además que no se lee una mierda estando así

Responder
#13
(03/02/2017, 11:33 PM)Skylar escribió:
(03/02/2017, 04:40 PM)|-|Tuli|-| escribió: le podrias optimizar aun mas :V
aca un ejemplo
te ocuparia menos lineas
Código PHP:
new const AdminsTags[][Data2] = {
    { 
"[DUEÑO]"ADMIN_RCON }, { "[STAFF]"ADMIN_IMMUNITY }, { "[ADMIN]"ADMIN_KICK }
};
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    
NOMBRE[30],
    
FRAGS
};
new const 
Rangos[][DATA] = {
    { 
"Novato"100 }, { "Silver I"200 }, { "Silver II"300 }, { "Silver III"500 }, { "Silver IV"700 }, { "Silver Elite"800 }, { "Silver Elite Master"900 }, { "Gold Nova I"1000 },
    { 
"Gold Nova II"1200 }, { "Gold Nova III"1300 }, { "Gold Nova Master"1400 }, { "Master Guardian I",1500 }, { "Master Guardian II"1700 }, { "Master Guardian Elite"1800 },
    { 
"Distinguished Master Guardian"1900 }, { "Legendary Eagle"2000 }, { "Legendary Eagle Master"2100 }, { "Supreme Master First Class"2200 }, { "The Global Elite"2500 },
    { 
""99999 //fix
};

new const 
szPrefix[] = "SHOP";

enum _:DATA_SHOP
{
    
NAME_ITEM[38],
    
COST_ITEM,
    
LEVEL_ITEM
};

new const 
szShop_Items[][DATA_SHOP] = {
    { 
"Pack de granadas"10000}, { "+100 Vida \r(1 Ronda)"7500}, { "+250 Vida \r(1 Ronda)"1100}, { "-300 Gravedad \r(Hasta morir)"12000}, { "Pasos silenciosos \r(Hasta morir)"10000},
    { 
"Desert Eagle.50 \r(2 balas)"13500}, { "AWP Magnum Sniper \r(1 bala)"15000}, { "Disfraz de traidor \r(1 ronda)"130002}, { "Invisibilidad \r(Hasta morir)"16000}
}; 

Eso no es optimizar, además que no se lee una mierda estando así

Pero te ahorras lineasA ysiA ysiA ysiA ysiA ysiA ysi
Aprendiendo 5%Proud
Responder
#14
Eso hace el código menos leible, así que no sirve de nada.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)