[ZP] Prolemas para AutoSelect
#1
Buenas, me sucede algo parecido que a esta persona https://forums.alliedmods.net/showpost.p...ostcount=1, intente con la solucion que pone pero no me resuelve nada, el problema esta en el menu_buy2
que cuando elijo las secundarias me elimina el menu_buy3, y cuando activo el auto-select, me da todo pero me sigue mostrando el menu_buy3

Código PHP:
// Buy Menu 2
public menu_buy2(idkey)
{
    
    
// Zombies or survivors get no guns
    
if (g_zombie[id] || g_survivor[id] || !is_user_alive(id))
        return 
PLUGIN_HANDLED;
    
    
// Special keys / weapon list exceeded
    
if (key >= sizeof ARMITAS)
    {
        if (
key == MENU_KEY_AUTOSELECT)
            
WPN_AUTO_ON WPN_AUTO_ON
                
        
if (key != MENU_KEY_EXIT)
        
show_menu_buy2(id)
                
        
return PLUGIN_HANDLED;
    }
    
    
if(g_level[id] < ARMITAS[key][ARMAS_LEVEL])
    {
        
show_menu_buy2(id)
        
zp_colored_print(id"^x04[ZP]^x01 No tienes lo suficiente"ARMITAS[key][ARMAS_LEVEL])
        return 
PLUGIN_HANDLED;
    }
        
    WPN_AUTO_SEC 
key
        
    drop_weapons
(id2)
        
    
static weaponid
    weaponid 
get_weaponid(ARMITAS[key][ARMAS_WEAPON])
    
g_armass[id][1] = 1
    fm_give_item
(idARMITAS[key][ARMAS_WEAPON])
    
fm_set_user_bpammo(idweaponidMAXBPAMMO[weaponid])
    
g_secundarias[id] = key
    
if(WPN_AUTO_TER == -1show_menu_buy3(id)
    
    return 
PLUGIN_HANDLED;

Aporte(?
Discord: leo$#9073
Responder
#2
Fijate si te sirve, algo así lo tenia en un viejo zp

Código PHP:
// ejemplo de auto-seleccion
enum 
{
    
COMPRADO_BUY1 1,
    
COMPRADO_BUY2,
    
COMPRADO_BUY3,
    
MAX_BUY
}

new 
g_arma[33][MAX_BUY], g_zombie[33], g_comprado[33], boolg_auto_seleccionar[33];

// En tu spawn post ponele que si tiene desactivado la auto seleccion, que se resetee la variable que ha comprado
public player_spawn_post(id)
{
    if (!
is_user_alive(id))
    {
        if (!
g_zombie[id])
        {
            if (!
g_auto_seleccionar[id])
            {
                
arrayset(g_comprado033);
                
// aca pones el task del menú de armas
            
}
            else
            {
                
give_armas(id1g_arma[id][COMPRADO_BUY1]);
                
give_armas(id2g_arma[id][COMPRADO_BUY2]);
                
give_armas(id3g_arma[id][COMPRADO_BUY3]);
            }
        }
    }    
}
// _______________________________    

// Suponiendo que ya sabes como funcionan las variables y tenes los menues vamos a usar unas handlers de esos menús de ejemplo
public handle_menu_buy1(idkey)
{
    if (!
is_user_connected(id))
        return 
PLUGIN_HANDLED;

    if (
g_zombie[id] || g_comprado[id] == COMPRADO_BUY1)
        return 
PLUGIN_HANDLED;    

    
// aca les das las armas (es de ejemplo no se como tendras vos)
    //give_armas(id, 1);

    // le damos que ya compró las armas primarias y abrimos el siguiente menu
    
g_arma[id][COMPRADO_BUY1] = key;
    
give_armas(id1key);

    
g_comprado[id] = COMPRADO_BUY1;
    
    
menu_buy2(id);
    return 
PLUGIN_HANDLED;    

}

public 
handler_menu_buy2(idkey)
{
    if (!
is_user_connected(id))
        return 
PLUGIN_HANDLED;

    if (
g_zombie[id] || g_comprado[id] == COMPRADO_BUY2)
        return 
PLUGIN_HANDLED;    

    
// aca les das las armas secundarias (es de ejemplo no se como tendras vos)
    
g_arma[id][COMPRADO_BUY2] = key;
    
give_armas(id2key);

    
// le damos que ya compró las armas secundarias y abrimos el siguiente menu
    
g_comprado[id] = COMPRADO_BUY2;
    
    
menu_buy3(id);
    return 
PLUGIN_HANDLED;    
}

public 
handler_menu_buy3(idkey)
{
    if (!
is_user_connected(id))
        return 
PLUGIN_HANDLED;

    if (
g_zombie[id] || g_comprado[id] == COMPRADO_BUY3)
        return 
PLUGIN_HANDLED;    

    
// aca les das las granadas (es de ejemplo no se como tendras vos)
    
g_arma[id][COMPRADO_BUY3] = key;
    
give_armas(id3key);

    
g_comprado[id] = COMPRADO_BUY3;
    return 
PLUGIN_HANDLED;    
}

give_armas(idtipo_de_armasi)
{
    if (!
is_user_alive(id))
        return;

    switch (
tipo_de_armas)
    {
        case 
1// Armas primarias
        
{
            
give_item(idARMITAS[i][ARMAS_WEAPON]);
        }
        case 
2// Armas secundarias
        
{
            
give_item(idARMITAS[i][ARMAS_WEAPON]);
        }
        case 
3// Granadas (i guess)
        
{
            
give_item(idARMITAS[i][ARMAS_WEAPON]);
        }
    }

}

// Al principio del menú de armas si queres le agregas que si ya compro las granadas (osea ya tendria armas)
// que returne asi no te vuelve a aparecer
// Ejemplo:
menu_buy1(id)
{
    if (
g_comprado[id] >= COMPRADO_BUY3)
        return;

    
// .... sigue el codigo    
}

menu_buy2(id)
{
    if (
g_comprado[id] >= COMPRADO_BUY3)
        return;

    
// .... sigue el codigo    
}

menu_buy3(id)
{
    if (
g_comprado[id] >= COMPRADO_BUY3)
        return;

    
// .... sigue el codigo    

___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)