Habilitar armas pasando de niveles a reset?
#1
Tengo el siguiente menú de armas por niveles y reset, pero al pasar hacer el primer reset me ocurre lo siguiente

.Las armas de nivel, ej: 1 a 250. No me permite comprarlas
.Mi objetivo es que al resetear los niveles, pueda habilitar las armas de niveles bajos tanto como la del reset 1
Código PHP:
public show_menu_buy1(taskid)
{
    
// Get player id
    
static id
    
(taskid 32) ? (id ID_SPAWN) : (id taskid);
    
    
// Zombies or survivors get no guns
    
if (g_zombie || g_survivor[id] || !is_user_alive(id))
        return;
    
    
// Bots pick their weapons randomly
    
if (is_user_bot(id))
    {
        
buy_primary_weapon(idrandom_num(0sizeof Armasp 1))
        
buy_secondary_weapon(idrandom_num(0sizeof Armass 1))
        
//buy_third_weapon(id, random_num(0, sizeof PACKWEAPONENT - 1))
        
return;
    }
    
    
// Automatic selection enabled for player and menu called on spawn event
    
if (WPN_AUTO_ON && taskid 32)
    {
        
buy_primary_weapon(idWPN_AUTO_PRI)
        
buy_secondary_weapon(idWPN_AUTO_SEC)
        
//buy_third_weapon(id, WPN_AUTO_THIRD)
        
return;
    }
    
    static 
menu[999], txtreset[999], texresetd[999], lenweap
    len 
0
    
    
// Title
    
len += formatex(menu[len], sizeof menu len"\yArma Primaria \r[%d-%d]^n^n"WPN_STARTID+1min(WPN_STARTID+7WPN_MAXIDS))
    
    
// 1-7. Weapon List
    
for (weap WPN_STARTIDweap min(WPN_STARTID+7WPN_MAXIDS); weap++)
    {
        
formatex(txtresetsizeof txtreset 1"\r(\yRR \w%d\r)"Armasp[weap][PRESET])
        
        
formatex(texresetdsizeof texresetd 1"\r(\dRR \w%d\r)"Armasp[weap][PRESET])
        
        
replace_all(txtresetcharsmax(txtreset), "\r(\yRR \w0\r)""")
        
        
replace_all(texresetdcharsmax(texresetd), "\r(\dRR \w0\r)""")
        
        if (
g_level[id] >= Armasp[weap][PLEVEL] && g_resets[id] >= Armasp[weap][PRESET])
            
len += formatex(menu[len], sizeof menu len"\r%d.\w %s \d(\yLvl \w%d\d)%s^n"weap-WPN_STARTID+1Armasp[weap][PNAME], Armasp[weap][PLEVEL], txtreset)
        else
            
len += formatex(menu[len], sizeof menu len"\r%d.\w %s \d(\rMin Lvl \w%d\d)%s^n"weap-WPN_STARTID+1Armasp[weap][PNAME], Armasp[weap][PLEVEL], texresetd)
    }
    
    
// 8. Auto Select
    
len += formatex(menu[len], sizeof menu len"^n\r8.\w Recordar Seleccion \y[%s]", (WPN_AUTO_ON) ? "Habilitado" "Deshabilitado")
    
    
// 9. Next/Back - 0. Exit
    
len += formatex(menu[len], sizeof menu len"^n^n\r9.\w Siguiente/Anterior^n^n\r0.\w Salir")
    
    
show_menu(idKEYSMENUmenu, -1"Buy Menu 1")
}




// Buy Menu 2
show_menu_buy2(id)
{
static 
menu[999], lenweap
len 
0


// Title
len += formatex(menu[len], sizeof menu len"\yArma Secundaria \r[%d-%d]^n^n"WPN2_STARTID+1min(WPN2_STARTID+7WPN2_MAXIDS))


// 1-6. Weapon List
for (weap WPN2_STARTIDweap min(WPN2_STARTID+7WPN2_MAXIDS); weap++)
{
    if (
g_level[id] >= Armass[weap][PLEVEL])
        
len += formatex(menu[len], sizeof menu len"\r%d.\w %s \d(\yLvl \w%d\d)^n"weap-WPN2_STARTID+1Armass[weap][PNAME], Armass[weap][PLEVEL])
        else
            
len += formatex(menu[len], sizeof menu len"\r%d.\w %s \d(\rMin Lvl \w%d\d)^n"weap-WPN2_STARTID+1Armass[weap][PNAME], Armass[weap][PLEVEL])
    }
    
    
// 8. Auto Select
    
len += formatex(menu[len], sizeof menu len"^n\r8.\w Recordar Seleccion \y[%s]", (WPN_AUTO_ON) ? "Habilitado" "Deshabilitado")
    
    
// 9. Next/Back - 0. Exit
    
len += formatex(menu[len], sizeof menu len"^n^n\r9.\w Siguiente/Anterior^n^n\r0.\w Salir")
    
    
show_menu(idKEYSMENUmenu, -1"Buy Menu 2")
}
public 
menu_buy1(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 >= MENU_KEY_AUTOSELECT || WPN_SELECTION >= WPN_MAXIDS)
    {
        switch (
key)
        {
            case 
MENU_KEY_AUTOSELECT// toggle auto select
            
{
                
WPN_AUTO_ON WPN_AUTO_ON
            
}
            case 
MENU_KEY_NEXT// next/back
            
{
                if (
WPN_STARTID+WPN_MAXIDS)
                    
WPN_STARTID += 7
                
else
                    
WPN_STARTID 0
            
}
            case 
MENU_KEY_EXIT// exit
            
{
                return 
PLUGIN_HANDLED;
            }
        }
        
        
// Show buy menu again
        
show_menu_buy1(id)
        return 
PLUGIN_HANDLED;
    }
    
    if(
g_level[id] >= Armasp[WPN_SELECTION][PLEVEL] && g_resets[id] >= Armasp[WPN_SELECTION][PRESET])
    {
        
// Store selected weapon id
        
WPN_AUTO_PRI WPN_SELECTION
        
        
// Buy primary weapon
        
buy_primary_weapon(idWPN_AUTO_PRI)
        
        
// Show pistols menu
        
show_menu_buy2(id)
    }
    else
        
show_menu_buy1(id)
    
    return 
PLUGIN_HANDLED;
}


// Buy Primary Weapon
buy_primary_weapon(idselection)
{
// Drop previous weapons
drop_weapons(id1)
drop_weapons(id2)
drop_weapons(id3)


// Get weapon index
static weaponid
weaponid 
get_weaponid(Armasp[selection][PITEMS])


// Give the new weapon
fm_give_item(idArmasp[selection][PITEMS])
fm_set_user_bpammo(idweaponidMAXBPAMMO[weaponid])
g_primarias[id][selection] = true

// Weapons bought
g_canbuy[id] = false
}
// 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 >= MENU_KEY_AUTOSELECT || WPN2_SELECTION >= WPN2_MAXIDS)
    {
        switch (
key)
        {
            case 
MENU_KEY_AUTOSELECT// toggle auto select
            
{
                
WPN_AUTO_ON WPN_AUTO_ON
            
}
            case 
MENU_KEY_NEXT// next/back
            
{
                if (
WPN2_STARTID+WPN2_MAXIDS)
                    
WPN2_STARTID += 7
                
else
                    
WPN2_STARTID 0
            
}
            case 
MENU_KEY_EXIT// exit
            
{
                return 
PLUGIN_HANDLED;
            }
        }
        
        
// Show buy menu again
        
show_menu_buy2(id)
        return 
PLUGIN_HANDLED;
    }
    
    if(
g_level[id] < Armass[WPN2_SELECTION][PLEVEL])
    {
        
show_menu_buy2(id)
        
        return 
PLUGIN_HANDLED;
    }
    
    
// Store selected weapon id
    
WPN_AUTO_SEC WPN2_SELECTION
    
    
// Buy secondary weapon
    
buy_secondary_weapon(idWPN_AUTO_SEC)
    
    
    
// Show bomb menu
    //show_menu_buy3(id)
    
    
return PLUGIN_HANDLED;
    
}


// Buy secondary Weapon
buy_secondary_weapon(idselection)
{
// Drop previous weapons
drop_weapons(id2)


// Get weapon index
static weaponid
weaponid 
get_weaponid(Armass[selection][PITEMS])


// Give the new weapon
fm_give_item(idArmass[selection][PITEMS])
fm_set_user_bpammo(idweaponidMAXBPAMMO[weaponid])
g_secundarias[id][selection] = true

Responder
#2
Deberías agregar un chequeo así creo:
Código PHP:
if( g_resetid ] >= reset && g_levelid ] < level // le habilitas el arma 

Responder
#3
Código PHP:
if (g_level[id] >= Armasp[weap][PLEVEL] && g_resets[id] == Armasp[weap][PRESET] || g_resets[id] > Armasp[weap][PRESET]) 

(08/02/2019, 03:41 PM)Skylar escribió: Deberías agregar un chequeo así creo:
Código PHP:
if( g_resetid ] >= reset && g_levelid ] < level // le habilitas el arma 
Responder
#4
(08/02/2019, 07:49 PM)wavee escribió:
Código PHP:
if (g_level[id] >= Armasp[weap][PLEVEL] && g_resets[id] == Armasp[weap][PRESET] || g_resets[id] > Armasp[weap][PRESET]) 

(08/02/2019, 03:41 PM)Skylar escribió: Deberías agregar un chequeo así creo:
Código PHP:
if( g_resetid ] >= reset && g_levelid ] < level // le habilitas el arma 

Código PHP:
if (g_level[id] >= Armasp[weap][PLEVEL] && g_resets[id] >= Armasp[weap][PRESET] || g_resets[id] >= Armasp[weap][PRESET] && g_level[id] < Armasp[weap][PLEVEL]) 
O
Código PHP:
if( g_levelid ] >= Armaspweap ][ PLEVEL ] || g_resetid ] >= Armaspweap ][ PRESET ] ) 

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)