AutoCompra bugea el menu aiuda
#1
Buenas, estoy renegando en encontrar el fallo de la autocompra, el problema es que al seleccionar recordar armas podes elegir cualquier arma sin importar la restricción de nivel o reset.

Código PHP:
        case MENU_ARMAS_PRI:
        {
            static 
iWeapPriiMaxLoopPri;
            
iMaxLoopPri min((MENU_PAGE_PRI 7), sizeof(g_szPrimaryWeapons));
            
            if (
g_iRememberBuy[id]
            && (
WPN_AUTO_SELECT_PRI(id) != -1
            
&& WPN_AUTO_SELECT_SEC(id) != -1
            
&& WPN_AUTO_SELECT_CUA != -1))
            {
                
BuyWeapons(id0WPN_AUTO_SELECT_PRI(id));
                
BuyWeapons(id1WPN_AUTO_SELECT_SEC(id));
                
BuyWeapons(id2WPN_AUTO_SELECT_CUA);
                return;
            }
            
            
g_iMenuKeys[id] = KEY_1|KEY_2|KEY_3|KEY_4|KEY_5|KEY_6|KEY_7|KEY_8|KEY_9|KEY_0;
            
g_iLen formatex(g_szTextMenucharsmax(g_szTextMenu), "\yRIFLES \r[%d - %d]^n^n"MENU_PAGE_PRI+1iMaxLoopPri);
            
            for (
iWeapPri MENU_PAGE_PRIiWeapPri iMaxLoopPriiWeapPri++)
            {
                if (
g_iReset[id] > g_szPrimaryWeapons[iWeapPri][WPN_RESET] || g_iNivel[id] >= g_szPrimaryWeapons[iWeapPri][WPN_NIVEL] && g_iReset[id] == g_szPrimaryWeapons[iWeapPri][WPN_RESET])
                    
g_iLen += formatex(g_szTextMenu[g_iLen], charsmax(g_szTextMenu) - g_iLen"\r%d.\w %s^n"iWeapPri-MENU_PAGE_PRI+1g_szPrimaryWeapons[iWeapPri][WPN_NAME]);
                else
                    
g_iLen += formatex(g_szTextMenu[g_iLen], charsmax(g_szTextMenu) - g_iLen"\r%d.\d %s\r (N: %d - R: %d)^n"iWeapPri-MENU_PAGE_PRI+1g_szPrimaryWeapons[iWeapPri][WPN_NAME], g_szPrimaryWeapons[iWeapPri][WPN_NIVEL], g_szPrimaryWeapons[iWeapPri][WPN_RESET]);
            }
            
            
g_iLen += formatex(g_szTextMenu[g_iLen], charsmax(g_szTextMenu) - g_iLen"^n\r8.\w ¿ Recordar compra ? %s^n"g_iRememberBuy[id] ? "\y[SI]" "\r[NO]");
            
g_iLen += formatex(g_szTextMenu[g_iLen], charsmax(g_szTextMenu) - g_iLen"^n\r9.\w Siguiente/Atrás");
        }

case 
MENU_ARMAS_PRI:
        {
            if (
key >= MENU_KEY_AUTOSELECT || MENU_PAGE_PRI_SELECT >= sizeof(g_szPrimaryWeapons))
            {
                switch (
key)
                {
                    case 
MENU_KEY_AUTOSELECT
                    {
                        
g_iRememberBuy[id] = !(g_iRememberBuy[id]);
                        
WPN_AUTO_SELECT_PRI(id) = -1;
                    }
                    case 
MENU_KEY_NEXT:
                    {
                        if ((
MENU_PAGE_PRI 7) < sizeof(g_szPrimaryWeapons))
                            
MENU_PAGE_PRI += 7;
                        else
                            
MENU_PAGE_PRI 0;
                    }
                    case 
MENU_KEY_EXIT:
                    {
                        
SM_Principal(id);
                        return 
PLUGIN_HANDLED;
                    }
                }
                
                
show_menu_multi(idMENU_ARMAS_PRI);
                return 
PLUGIN_HANDLED;
            }
            
            
WPN_AUTO_SELECT_PRI(id) = MENU_PAGE_PRI_SELECT;
            if (
g_iReset[id] > g_szPrimaryWeapons[WPN_AUTO_SELECT_PRI(id)][WPN_RESET] || g_iNivel[id] >= g_szPrimaryWeapons[WPN_AUTO_SELECT_PRI(id)][WPN_NIVEL] && g_iReset[id] == g_szPrimaryWeapons[WPN_AUTO_SELECT_PRI(id)][WPN_RESET])
                
show_menu_multi(idMENU_ARMAS_SEC);
            else
                
show_menu_multi(idMENU_ARMAS_PRI);
        } 

Pd: si hace falta los otros 2 menues, díganme y los dejo en un comentario >pacman
Pd2: Guardado sqlite - "AutoCompra" INTEGER DEFAULT 0 - Variable que se guarda - new g_iRememberBuy[33]; -
Responder
#2
por que al momento de pedir lo que necesita el usuario para seleccionar un arma y bloquearlo esta mal

Código PHP:
if (g_iReset[id] > g_szPrimaryWeapons[iWeapPri][WPN_RESET] || g_iNivel[id] >= g_szPrimaryWeapons[iWeapPri][WPN_NIVEL] && g_iReset[id] == g_szPrimaryWeapons[iWeapPri][WPN_RESET]) 

usas > mayor sin usar un = esto es en caso que el lvl del arma sea 120 y tu lvl 120

tambien pones == osea que el numero tiene que ser igual al del arma requerida

mezclas los || con los && otro error mas usa && para decir lvl Y reset requerido

pusiste 2 veces lo mismo al pedir el reset del arma

tambien con solo guardar la variable g_iRememberBuy como INTERGER DEFAULT 0, no te funcionara solo guarda numero, el guardado de armas es letras y numero y se guarda cada key que selecciones.... con guardar solo es creo q solo efecta en que guarde si o no en la seleccion sin guardar los key
Responder
#3
(15/07/2019, 03:39 PM)GoldenCosta escribió: por que al momento de pedir lo que necesita el usuario para seleccionar un arma y bloquearlo esta mal

Código PHP:
if (g_iReset[id] > g_szPrimaryWeapons[iWeapPri][WPN_RESET] || g_iNivel[id] >= g_szPrimaryWeapons[iWeapPri][WPN_NIVEL] && g_iReset[id] == g_szPrimaryWeapons[iWeapPri][WPN_RESET]) 

usas > mayor sin usar un = esto es en caso que el lvl del arma sea 120 y tu lvl 120

tambien pones == osea que el numero tiene que ser igual al del arma requerida

mezclas los || con los && otro error mas usa && para decir lvl Y reset requerido

pusiste 2 veces lo mismo al pedir el reset del arma

tambien con solo guardar la variable g_iRememberBuy como INTERGER DEFAULT 0, no te funcionara solo guarda numero, el guardado de armas es letras y numero y se guarda cada key que selecciones.... con guardar solo es creo q solo efecta en que guarde si o no en la seleccion sin guardar los key
Lo puse asi..

Código PHP:
if (g_iNivel[id] >= g_szPrimaryWeapons[WPN_AUTO_SELECT_PRI(id)][WPN_NIVEL] && g_iReset[id] >= g_szPrimaryWeapons[WPN_AUTO_SELECT_PRI(id)][WPN_RESET]) 
y sigue sucediendo lo mismo..
El como guardarlo no comprendi bien
Responder
#4
la otra parte del menu tambien lo hiciste?

lo que te decia del guardado para que guarde la seleccion de armas, esque tienes que guardar el key de cada usuario por que con la varible que guardas no almacena los key de los menu
Responder
#5
(16/07/2019, 01:00 AM)GoldenCosta escribió: la otra parte del menu tambien lo hiciste?

lo que te decia del guardado para que guarde la seleccion de armas, esque tienes que guardar el key de cada usuario por que con la varible que guardas no almacena los key de los menu

Código PHP:
        case MENU_ARMAS_PRI:
        {
            if (
key >= MENU_KEY_AUTOSELECT || MENU_PAGE_PRI_SELECT >= sizeof(g_szPrimaryWeapons))
            {
                switch (
key)
                {
                    case 
MENU_KEY_AUTOSELECT
                    {
                        
g_iRememberBuy[id] = !(g_iRememberBuy[id]);
                        
WPN_AUTO_SELECT_PRI(id) = -1;
                    }
                    case 
MENU_KEY_NEXT:
                    {
                        if ((
MENU_PAGE_PRI 7) < sizeof(g_szPrimaryWeapons))
                            
MENU_PAGE_PRI += 7;
                        else
                            
MENU_PAGE_PRI 0;
                    }
                    case 
MENU_KEY_EXIT:
                    {
                        
SM_Principal(id);
                        return 
PLUGIN_HANDLED;
                    }
                }
                
                
show_menu_multi(idMENU_ARMAS_PRI);
                return 
PLUGIN_HANDLED;
            }
            
            
WPN_AUTO_SELECT_PRI(id) = MENU_PAGE_PRI_SELECT;
            if (
g_iNivel[id] >= g_szPrimaryWeapons[WPN_AUTO_SELECT_PRI(id)][WPN_NIVEL] && g_iReset[id] >= g_szPrimaryWeapons[WPN_AUTO_SELECT_PRI(id)][WPN_RESET])
                
show_menu_multi(idMENU_ARMAS_SEC);
            else
                
show_menu_multi(idMENU_ARMAS_PRI);
        } 
el handler sisi, hice lo mismo con los otros 2 menues..
Te comento, el guardado que tiene, guarda la seleccion de armas, hasta ser nuevamente reactivado, es algo que pase por alto..
Responder
#6
aiuda, sigue bug (? perdon por comentar..
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)