busco menu cuchillos por niveles
#1
hola toy buscando un menu de unos 10 cuchillos por niveles
por ejemplo

que funciona por nombres el guardado

100 frags   cuchillo de banan [BLOKEADO]
200 frags cuchillo de palo [BLOKEADO]
300 frags cuchillo de pescado [BLOKEADO]
400 frags   cuchillo de banan [BLOKEADO]
500 frags cuchillo de palo [BLOKEADO]
600 frags cuchillo de pescado [BLOKEADO]

700 frags   cuchillo de banan [BLOKEADO]
800 frags cuchillo de palo [BLOKEADO]
900 frags cuchillo de pescado [BLOKEADO]

1000 frags cuchillo de pescado [BLOKEADO]
Responder
#2
Puede que te sirva, trata de adaptarlos.
Cita:Cruzadas incompletas en penínsulas desiertas. Feel like a sir
Responder
#3
Código PHP:
#include <amxmodx>
#include <adv_vault>
#include <fakemeta>

#define PLUGIN  "Knife Level"
#define VERSION "1.0.0"
#define AUTHOR  "HK-416"
#define PREFIX "[UwU]"

#if AMXX_VERSION_NUM < 190
    #define MAX_PLAYERS 32
    #define client_disconnected(%i) client_disconnect(%i)
#endif

#pragma semicolon 1

enum _:knife_data
{
    
KNIFE_NAME[40],
    
KNIFE_MDL_V[80],
    
KNIFE_MDL_P[80],
    
KNIFE_KILLS
};

new const 
KNIFES_LIST[][knife_data] =
{
    { 
"Default"""""},
    { 
"Hammer""models/v_hammer.mdl"""25 }
};

enum _:vault_data
{
    
DATA_KILLS,
    
DATA_KNIFE
};

new 
g_kills[MAX_PLAYERS 1];
new 
g_knife[MAX_PLAYERS 1];
new 
g_playername[MAX_PLAYERS 1][32];

new 
g_vault;
new 
g_data[vault_data];

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
    
register_clcmd("say /knife""clcmd_show_menu_knife");
    
register_clcmd("say /kills""clcmd_say_kills");

    
register_event("DeathMsg""event_death""a");
    
register_event("CurWeapon""event_cur_weapon""be","1=1");

    
register_forward(FM_ClientUserInfoChanged"fw_ClientUserInfoChanged");

    
g_vault adv_vault_open("player_data"false);
    
g_data[DATA_KILLS] = adv_vault_register_field(g_vault"kills"DATATYPE_INT0);
    
g_data[DATA_KNIFE] = adv_vault_register_field(g_vault"knife"DATATYPE_INT0);
    
adv_vault_init(g_vault);
}

public 
plugin_precache()
{
    for (new 
0sizeof KNIFES_LISTi++)
    {
        if (!
equal(KNIFES_LIST[i][KNIFE_MDL_V], ""))
        {
            
precache_model(KNIFES_LIST[i][KNIFE_MDL_V]);
        }

        if (!
equal(KNIFES_LIST[i][KNIFE_MDL_P], ""))
        {
            
precache_model(KNIFES_LIST[i][KNIFE_MDL_P]);
        }
    }
}

public 
client_putinserver(id)
{
    
g_kills[id] = 0;
    
g_knife[id] = 0;
    
get_user_name(idg_playername[id], charsmax(g_playername[]));
    
load_player_data(id);
}

public 
client_disconnected(id)
{
    
save_player_data(id);
}

public 
fw_ClientUserInfoChanged(idbuffer)
{
    new 
newname[32];

    
engfunc(EngFunc_InfoKeyValuebuffer"name"newnamecharsmax(newname));

    if(!
equal(newnameg_playername[id]))
    {
        
save_player_data(id);
        
copy(g_playername[id], charsmax(g_playername[]), newname);
        if (
load_player_data(id))
        {
            
client_print(idprint_chat"%s Se cargaron los datos de tu nuevo nick"PREFIX);
        }
        else
        {
            
client_print(idprint_chat"%s Este nick no contiene datos anteriores"PREFIX);
        }
    }
}

public 
clcmd_show_menu_knife(id)
{
    new 
menu menu_create("Menu de cuchis :3""hand_knife");
    new 
knifes[200];

    for (new 
0sizeof KNIFES_LISTi++)
    {
        if (
g_kills[id] >= KNIFES_LIST[i][KNIFE_KILLS])
        {
            
formatex(knifescharsmax(knifes), "\w%s %s"KNIFES_LIST[i][KNIFE_NAME], g_knife[id] == "\y[Actual]":"");
        }
        else
        {
            
formatex(knifescharsmax(knifes), "\d%s \r[BLOQUEADO]"KNIFES_LIST[i][KNIFE_NAME]);
        }
        
menu_additem(menuknifes);
    }

    
menu_display(idmenu0);
}

public 
hand_knife(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        return 
PLUGIN_HANDLED;
    }

    if (
item <= sizeof KNIFES_LIST)
    {
        if (
item == g_knife[id])
        {
            
clcmd_show_menu_knife(id);
            return 
PLUGIN_HANDLED;
        }

        if (
g_kills[id] >= KNIFES_LIST[item][KNIFE_KILLS])
        {
            
client_print(idprint_chat"%s Cambiaste tu cuchi de %s a %s"PREFIXKNIFES_LIST[g_knife[id]][KNIFE_NAME], KNIFES_LIST[item][KNIFE_NAME]);
            
g_knife[id] = item;
            if (
is_user_alive(id))
            {
                
engclient_cmd(id"weapon_knife");
            }
        }
        else
        {
            
client_print(idprint_chat"%s Te faltan %d kills para desbloquear el %s"PREFIX, (KNIFES_LIST[item][KNIFE_KILLS] - g_kills[id]), KNIFES_LIST[item][KNIFE_NAME]);
        }
    }

    
clcmd_show_menu_knife(id);
    return 
PLUGIN_HANDLED;
}

public 
event_cur_weapon(id)
{
    if(
read_data(2) != CSW_KNIFE)
        return 
PLUGIN_CONTINUE;
    
    if (!
equal(KNIFES_LIST[g_knife[id]][KNIFE_MDL_V], ""))
    {
        
set_pev(idpev_viewmodel2KNIFES_LIST[g_knife[id]][KNIFE_MDL_V]);
    }
    if (!
equal(KNIFES_LIST[g_knife[id]][KNIFE_MDL_P], ""))
    {
        
set_pev(idpev_weaponmodel2KNIFES_LIST[g_knife[id]][KNIFE_MDL_P]);
    }
    return 
PLUGIN_CONTINUE;
}

public 
event_death()
{
    new 
attackervictim;

    
attacker read_data(1);
    
victim read_data(2);

    if (!
is_user_connected(attacker) || attacker == victim) return;

    
g_kills[attacker] ++;
}

public 
clcmd_say_kills(id)
{
    
client_print(idprint_chat"%s tienes un total de %d kills"PREFIXg_kills[id]);
}

save_player_data(id)
{
    
adv_vault_set_start(g_vault);

    
adv_vault_set_field(g_vaultg_data[DATA_KILLS], g_kills[id]);
    
adv_vault_set_field(g_vaultg_data[DATA_KNIFE], g_knife[id]);
    
    
adv_vault_set_end(g_vault0g_playername[id]);
}

load_player_data(id)
{
    if(!
adv_vault_get_prepare(g_vault_g_playername[id]))
    {
        
g_kills[id] = 0;
        
g_knife[id] = 0;
        return 
false;
    }

    
g_kills[id] = adv_vault_get_field(g_vaultg_data[DATA_KILLS]);
    
g_knife[id] = adv_vault_get_field(g_vaultg_data[DATA_KNIFE]);

    return 
true;


Hice algo rápido, se podría mejorar mucho
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)