Bloquear items de menu
#1
Hola nuevamente, bien a continuacion voy a dejar el sma, quiero bloquear cierto item del menu, es decir que al seleccionar ese item se le bloquee hasta la siguiente ronda,
y que los demas items los pueda usar mientras espero haberme explicado bien, gracias
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <colorchat>

public plugin_init()
{
    
register_clcmd("say /armas""Armas")
}

public 
Armas(id)
{
    new 
iMenu menu_create("\r[\ySP\r]\w Menu Armas""handler_menuu")
    
menu_additemiMenu"Armita 1""1"0)
    
menu_additemiMenu"Armita 2""2"0)
    
menu_additemiMenu"Armita 3""3"0)
     
    
menu_setpropiMenuMPROP_EXITMEXIT_ALL );
    
menu_displayidiMenu0);
       
    return 
1;
}

public 
handler_menuuidiMenuitem ) {
     if (
item == MENU_EXIT) {
          
menu_destroyiMenu )
          return 
1;
     }
 
     new 
data[6], iName[64]
     new 
accesscallback
     menu_item_getinfo
iMenuitemaccessdata13iName63callback);
 
     new 
key str_to_numdata )
     switch( 
key ) {
          case 
1
    {
    
ColorChat(idRED"Bloquear")
    }
    case 
2
    {
    
ColorChat(idRED"Bloquear")
    } 
    case 
3
    {
    
ColorChat(idRED"Bloquear")
    }
     }
 
     
menu_destroyiMenu )
     return 
1;

La Verdadera Vuelta


Aprendiendo :$
Responder
#2
Código PHP:
creo que era así 

variable
new g_opcion33 ];

init
register_event
"HLTV""eventRoundStart""a""1=0""2=0" );

eventRoundStart( ) con
for( new id 0id <= get_maxplayers( ); id++ ) g_opcionid ] = false;

handler menú

case x
Seteas la opcion en true.
g_opcionid ] = true
Responder
#3
(17/06/2017, 11:53 PM)Niper.-. escribió:
Código PHP:
creo que era así 

variable
new g_opcion33 ];

init
register_event
"HLTV""eventRoundStart""a""1=0""2=0" );

eventRoundStart( ) con
for( new id 0id <= get_maxplayers( ); id++ ) g_opcionid ] = false;

handler menú

case x
Seteas la opcion en true.
g_opcionid ] = true

Hola amigo no me funciono, puedo comprar igual
La Verdadera Vuelta


Aprendiendo :$
Responder
#4
por que le falto verificar si es verdadero no de nada

if(g_opcion[ id ]) return;
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#5
(18/06/2017, 01:02 AM)NkkI escribió: por que le falto verificar si es verdadero no de nada

if(g_opcion[ id ]) return;
Y eso donde debo ponerlo, soy noob. gracias a los 2
La Verdadera Vuelta


Aprendiendo :$
Responder
#6
dentro del case
Responder
#7
(18/06/2017, 12:13 AM)FacundoCarp escribió:
(17/06/2017, 11:53 PM)Niper.-. escribió:
Código PHP:
creo que era así 

variable
new g_opcion33 ];

init
register_event
"HLTV""eventRoundStart""a""1=0""2=0" );

eventRoundStart( ) con
for( new id 0id <= get_maxplayers( ); id++ ) g_opcionid ] = false;

handler menú

case x
Seteas la opcion en true.
g_opcionid ] = true

Hola amigo no me funciono, puedo comprar igual

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <colorchat>

new g_item[33][3]

public 
plugin_init()
{
    
register_clcmd("say /armas""Armas")
}

public 
Armas(id)
{
    new 
iMenu menu_create("\r[\ySP\r]\w Menu Armas""handler_menuu")
    
menu_additemiMenu"Armita 1""1"0)
    
menu_additemiMenu"Armita 2""2"0)
    
menu_additemiMenu"Armita 3""3"0)
    
    
menu_setpropiMenuMPROP_EXITMEXIT_ALL );
    
menu_displayidiMenu0);
    
    return 
1;
}

public 
handler_menuuidiMenuitem ) {
    if (
item == MENU_EXIT) {
        
menu_destroyiMenu )
        return 
1;
    }
    
    if(
g_item[id][item]) {
        
ColorChat(idGREEN"Bloqueado")
        return 
1;
    }
    
    switch( 
item ) {
        case 
1// dar pichila
        
case 2:  // dar pichola
        
case 3:  // dar pochilo
    
}
    
    
g_item[id][item] = true
    
    menu_destroy
iMenu )
    return 
1;


Solo te falta volver a poner la variable en false en roundstart
Responder
#8
Prueva..
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <colorchat>

enum
{
    
ITEM_1,
    
ITEM_2,
    
ITEM_3,
    
MAX_ITEMS
}

new 
g_items[33][MAX_ITEMS]

const 
MAX_SHOP    =  // las veces que pueden comprar
// modo de uso
// handler del menu

public plugin_init()
{
    
register_clcmd("say /armas""Armas")
    
register_event"HLTV""event_round_start""a""1=0""2=0" )
}
public 
event_round_start()

    for(new 
1<= get_maxplayers();i++)
{
    for(new 
jMAX_ITEMSj++)
    {
        
g_items[i][j] = 0
    
}
}
}

public 
Armas(id)
{
    new 
iMenu menu_create("\r[\ySP\r]\w Menu Armas""handler_menuu")
    
menu_additemiMenu"Armita 1""1"0)
    
menu_additemiMenu"Armita 2""2"0)
    
menu_additemiMenu"Armita 3""3"0)
     
    
menu_setpropiMenuMPROP_EXITMEXIT_ALL );
    
menu_displayidiMenu0);
       
    return 
1;
}

public 
handler_menuuidiMenuitem ) {
    if(
g_items[id][item] >= MAX_SHOP// si el item que eligieron tiene 3 o más usos
{
   
ColorChat(idGREEN"No puedes comprar mas de 2 veses Esta arma.")
    return 
PLUGIN_HANDLED
}
     if (
item == MENU_EXIT) {
          
menu_destroyiMenu )
          return 
1;
     }
 
     new 
data[6], iName[64]
     new 
accesscallback
     menu_item_getinfo
iMenuitemaccessdata13iName63callback);
 
     new 
key str_to_numdata )
     switch( 
key ) {
          case 
1
    {
    
ColorChat(idRED"Bloquear")
    }
    case 
2
    {
    
ColorChat(idRED"Bloquear")
    } 
    case 
3
    {
    
ColorChat(idRED"Bloquear")
    }
     }
 
     
menu_destroyiMenu )
     return 
1;

Help a anonymous.
SOMOS LEGION..
¡NO OLVIDAMOS!
Esperamos...

MI STEAM pacman
Responder
#9
Prueba...
Código PHP:
#include <amxmodx>
#include <cstrike>
#include <fun>

new item_limit[33], g_num_jug

public plugin_init()
{
    
register_clcmd("say /armas""Armas")
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
g_num_jug get_maxplayers()
}
public 
Armas(id)
{
    new 
iMenu menu_create("\w Menu Armas""handler_menuu")
    
menu_additemiMenu"Armita 1""1"0)
    
menu_additemiMenu"Armita 2""2"0)
    
menu_additemiMenu"Armita 3""3"0)
    
    
menu_setpropiMenuMPROP_EXITMEXIT_ALL );
    
menu_displayidiMenu0);
    
    return 
1;
}

public 
handler_menuu(idiMenuitem)
{
    if (
item == MENU_EXIT
    {
        
menu_destroyiMenu )
        return 
1;
    }
    
    if(
item_limit[id] >= 1) return 1;
    
    switch(
item)
    {
        case 
1client_print(idprint_chat"Hola xd")
        case 
2client_print(idprint_chat"Hola xd")
        case 
3client_print(idprint_chat"Hola xd")
    }
    
item_limit[id]++

    
menu_destroyiMenu )
    return 
1;
}
public 
event_round_start()
{
    for(new 
1<= g_num_jugi++)
    {
        
item_limit[i] = 0
    
}

Trolleyes
Responder
#10
franco no te enseñaron a leer? Oh god why

no es nada de lo que el pidió arriba ya tiene 2 tiendas la de agus y la de el otro wey

sobre la de agus si alguien la llega a usar si meten más items hay que subirle celdas al vector v:
y la del anoni hay que registrar cada item en el enum arriba siempre de max_item Whatever

agus no debería de comenzar de 0?
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#11
La de agus funciona, pero quisiera que pongan para que al iniciar una ronda pueda volver a elegir un item. Por que sigue bloqueado Lengua

La de agus funciona, pero quisiera que pongan para que al iniciar una ronda pueda volver a elegir un item. Por que sigue bloqueado Lengua
La Verdadera Vuelta


Aprendiendo :$
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)