Bug visual reset * Solucionado *
#1
Buenas, hace poco hice un pedido de plugin, que consistía en reemplazar los reset numéricos por letras. Dejo un ej:
RR 1 = RR " I "
RR 4 = RR " IV "

Bueno resulta que me dieron lo siguiente.
Código PHP:
new const g_szResetLetters[ ] = { "A""J""K""S" };

// en algún hooksay mostras así..

say0"^4[RR:%s]^3 %s^1: %s"g_szResetLettersg_iResetiID ] ], g_szPlayerNameiID ], szOutput );

// Solo tienes que guardar la variable g_iReset. 

Esto me bugea el hooksay y el showhud, si lo aplico en el showhud, me tira log y en el cs no aparece el hud directamente.
Sin mas decir dejo el showhud y el hooksay, quizas me equivoco en algo y no funciona.
Código PHP:
//HOOOKSAY
else
    {
        
formatex(szResetcharsmax(szReset), "[R: %d]"g_iReset[id]);
        
formatex(szPrefixcharsmax(szPrefix), "^x01%s^x03%s^x04 (N: %d)%s"Check_Var(g_bAliveid) ? "" "*MUERTO* "g_szPlayerName[id], g_iNivel[id], g_iReset[id] ? szReset "");
    }
//SHOWHUD
    
if (iSpect && id != iSpect)
    {
        
set_hudmessage(255255255HUD_SPECT_XHUD_SPECT_Y06.01.10.00.0, -1);
        
ShowSyncHudMsg(idg_iMsgSync[HUD_STATICS], "Vida: %s - Chaleco: %d - Ammopacks: %s - Nivel: %d^nExperiencia: %s (%0.2f%%) - Reset: %d",
        
AddPoints(get_user_health(iSpect)), get_user_armor(iSpect), AddPoints(g_iAmmoPacks[iSpect]), g_iNivel[iSpect], AddPoints(g_iExp[iSpect]), PorcentajeNivel(iSpect), g_iReset[iSpect]);
    }
    else
    {
        
set_hudmessage(g_iColor[id][E_HUD_COLOR][0], g_iColor[id][E_HUD_COLOR][1], g_iColor[id][E_HUD_COLOR][2], g_iHUDPosition[id][0], g_iHUDPosition[id][1], g_iHUDEffect[id], 6.01.10.00.0, -1);
        
ShowSyncHudMsg(idg_iMsgSync[HUD_STATICS], "Vida: %s^nChaleco: %d^nClase: %s^nNivel: %d^nAmmoPacks: %s^nExperiencia: %s (%.2f%%)^nReset: %d^nMinas laser: %d",
        
AddPoints(get_user_health(id)), get_user_armor(id), szClaseg_iNivel[id], AddPoints(g_iAmmoPacks[id]), AddPoints(g_iExp[id]), PorcentajeNivel(id), g_iResetid ], zp_lasermine_get_amount(id));
    } 

Cabe mencionar que volvi a dejarlo default.
Responder
#2
Qué log te deja?.

PD: Probablemente sea porque el reset supera la cantidad de letras en g_szResetLetters.

Saludos. Crab
Responder
#3
Y como sabremos el error si lo dejaste default, y no pasaste el log?
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#4
No se si entra decir, pero la idea es que no sea al azar, si no, que sea como el reset. El salteo del ejemplo es para darme a explicar..
Código PHP:
new const g_szLetrasReset[] = { "I""II""III""IV""V"};

const 
RESET_MAXIMO 5;

    else
    {
        
formatex(szResetcharsmax(szReset), "[R: %d]"g_szLetrasReset[g_iReset[id]]);
        
formatex(szPrefixcharsmax(szPrefix), "^x01%s^x03%s^x04 (N: %d)%s"Check_Var(g_bAliveid) ? "" "*MUERTO* "g_szPlayerName[id], g_iNivel[id], g_szLetrasReset[g_iReset[id]] ? szReset "");
    }

    if (
iSpect && id != iSpect)
    {
        
set_hudmessage(255255255HUD_SPECT_XHUD_SPECT_Y06.01.10.00.0, -1);
        
ShowSyncHudMsg(idg_iMsgSync[HUD_STATICS], "Vida: %s - Chaleco: %d - Ammopacks: %s - Nivel: %d^nExperiencia: %s (%0.2f%%) - Reset: %d",
        
AddPoints(get_user_health(iSpect)), get_user_armor(iSpect), AddPoints(g_iAmmoPacks[iSpect]), g_iNivel[iSpect], AddPoints(g_iExp[iSpect]), PorcentajeNivel(iSpect), g_szLetrasReset[g_iReset[iSpect]]);
    }
    else
    {
        
set_hudmessage(g_iColor[id][E_HUD_COLOR][0], g_iColor[id][E_HUD_COLOR][1], g_iColor[id][E_HUD_COLOR][2], g_iHUDPosition[id][0], g_iHUDPosition[id][1], g_iHUDEffect[id], 6.01.10.00.0, -1);
        
ShowSyncHudMsg(idg_iMsgSync[HUD_STATICS], "Vida: %s^nChaleco: %d^nClase: %s^nNivel: %d^nAmmoPacks: %s^nExperiencia: %s (%.2f%%)^nReset: %d^nMinas laser: %d",
        
AddPoints(get_user_health(id)), get_user_armor(id), szClaseg_iNivel[id], AddPoints(g_iAmmoPacks[id]), AddPoints(g_iExp[id]), PorcentajeNivel(id), g_szLetrasReset[g_iReset[id]], zp_lasermine_get_amount(id));
    } 

Como se vera en la segunda imagen solo en el hud.


Archivos adjuntos Miniatura(s)
       
Responder
#5
Es un ejemplo, sí no puedes adaptarlo avisas.

Saludos. Crab


Código PHP:
public ClientCommand_ShowReset( const id ) {

    static 
szRoman10 ];

    
num_to_romang_iResetid ], szRoman);

    
formatex(szResetcharsmax(szReset), "[R: %s]"szRoman );
    
formatex(szPrefixcharsmax(szPrefix), "^x01%s^x03%s^x04 (N: %d)%s"Check_Var(g_bAliveid) ? "" "*MUERTO* "g_szPlayerName[id], g_iNivel[id], szRoman szReset "" );
}

stock NumberToRomaniNumszBuffer[ ], szOutput ) {

    
/* Thanks Milashkasiya */
    
if( iNum || iNum 3999 )
        return 
0;

    static const 
iNumbers[ ] = { 100090050040010090504010954};
    static const 
szRomanNumbers[ ][ ] = { "M""CM""D""CD""C""XC""L""XL""X""IX""V""IV""I" }; 

    new 
iPos;

    for( new 
isizeof iNumbers && iPos szOutput && iNumi++ ) {

        while( 
iNum >= iNumbers[i] && iPos szOutput ) {

            
iNum -= iNumbers];
            
iPos += copyszBufferiPos ], 2szRomanNumbers] );
        }
    }

    return 
iPos;

Responder
#6
Código PHP:
new const gResetName[][] = { """I""II""III""IV""V""VI""VII""VIII""IX""X" }
en el hooksay 
static szReset[15]
formatex(szResetcharsmax(szReset), "^4[^x03%s^4]"gResetName[g_iReset[id]])
szReset %
no lo testie avisame si te sirve xd, saludos
https://steamcommunity.com/id/adriancek1ng/

Aquellos que te critican quieren verte distinto,
Por que ven en ti lo que ellos no serán jamás. Feel like a sir
Responder
#7
(17/06/2019, 07:58 PM)Blackk escribió:
Código PHP:
new const gResetName[][] = { """I""II""III""IV""V""VI""VII""VIII""IX""X" }
en el hooksay 
static szReset[15]
formatex(szResetcharsmax(szReset), "^4[^x03%s^4]"gResetName[g_iReset[id]])
szReset %
no lo testie avisame si te sirve xd, saludos

Es mejor que use lo que yo le pase, hace automáticamente la conversión a número romano. Y pienso que sería más efícaz.

EDIT: Además que pasaría sí pasa de reset 10, con tú metodo?. Thats what she said
EDIT2: Le pasaste casi exactamente lo que yo le dí anteriormente. Dafuq

Saludos. Crab
Responder
#8
(17/06/2019, 05:52 PM)Chema escribió: Es un ejemplo, sí no puedes adaptarlo avisas.

Saludos. Crab


Código PHP:
public ClientCommand_ShowReset( const id ) {

    static 
szRoman10 ];

    
num_to_romang_iResetid ], szRoman);

    
formatex(szResetcharsmax(szReset), "[R: %s]"szRoman );
    
formatex(szPrefixcharsmax(szPrefix), "^x01%s^x03%s^x04 (N: %d)%s"Check_Var(g_bAliveid) ? "" "*MUERTO* "g_szPlayerName[id], g_iNivel[id], szRoman szReset "" );
}

stock NumberToRomaniNumszBuffer[ ], szOutput ) {

    
/* Thanks Milashkasiya */
    
if( iNum || iNum 3999 )
        return 
0;

    static const 
iNumbers[ ] = { 100090050040010090504010954};
    static const 
szRomanNumbers[ ][ ] = { "M""CM""D""CD""C""XC""L""XL""X""IX""V""IV""I" }; 

    new 
iPos;

    for( new 
isizeof iNumbers && iPos szOutput && iNumi++ ) {

        while( 
iNum >= iNumbers[i] && iPos szOutput ) {

            
iNum -= iNumbers];
            
iPos += copyszBufferiPos ], 2szRomanNumbers] );
        }
    }

    return 
iPos;


Quedo Mario
En el hud hago el mismo precedimiento?
Responder
#9
(18/06/2019, 12:14 AM)Reverant escribió:
(17/06/2019, 05:52 PM)Chema escribió: Es un ejemplo, sí no puedes adaptarlo avisas.

Saludos. Crab


Código PHP:
public ClientCommand_ShowReset( const id ) {

    static 
szRoman10 ];

    
num_to_romang_iResetid ], szRoman);

    
formatex(szResetcharsmax(szReset), "[R: %s]"szRoman );
    
formatex(szPrefixcharsmax(szPrefix), "^x01%s^x03%s^x04 (N: %d)%s"Check_Var(g_bAliveid) ? "" "*MUERTO* "g_szPlayerName[id], g_iNivel[id], szRoman szReset "" );
}

stock NumberToRomaniNumszBuffer[ ], szOutput ) {

    
/* Thanks Milashkasiya */
    
if( iNum || iNum 3999 )
        return 
0;

    static const 
iNumbers[ ] = { 100090050040010090504010954};
    static const 
szRomanNumbers[ ][ ] = { "M""CM""D""CD""C""XC""L""XL""X""IX""V""IV""I" }; 

    new 
iPos;

    for( new 
isizeof iNumbers && iPos szOutput && iNumi++ ) {

        while( 
iNum >= iNumbers[i] && iPos szOutput ) {

            
iNum -= iNumbers];
            
iPos += copyszBufferiPos ], 2szRomanNumbers] );
        }
    }

    return 
iPos;


Quedo Mario
En el hud hago el mismo precedimiento?

Yep. Lengua

EDIT: Edita el título y agrégale [SOLUCIONADO].

Saludos. Crab
Responder
#10
(18/06/2019, 12:15 AM)Chema escribió:
(18/06/2019, 12:14 AM)Reverant escribió:
(17/06/2019, 05:52 PM)Chema escribió: Es un ejemplo, sí no puedes adaptarlo avisas.

Saludos. Crab


Código PHP:
public ClientCommand_ShowReset( const id ) {

    static 
szRoman10 ];

    
num_to_romang_iResetid ], szRoman);

    
formatex(szResetcharsmax(szReset), "[R: %s]"szRoman );
    
formatex(szPrefixcharsmax(szPrefix), "^x01%s^x03%s^x04 (N: %d)%s"Check_Var(g_bAliveid) ? "" "*MUERTO* "g_szPlayerName[id], g_iNivel[id], szRoman szReset "" );
}

stock NumberToRomaniNumszBuffer[ ], szOutput ) {

    
/* Thanks Milashkasiya */
    
if( iNum || iNum 3999 )
        return 
0;

    static const 
iNumbers[ ] = { 100090050040010090504010954};
    static const 
szRomanNumbers[ ][ ] = { "M""CM""D""CD""C""XC""L""XL""X""IX""V""IV""I" }; 

    new 
iPos;

    for( new 
isizeof iNumbers && iPos szOutput && iNumi++ ) {

        while( 
iNum >= iNumbers[i] && iPos szOutput ) {

            
iNum -= iNumbers];
            
iPos += copyszBufferiPos ], 2szRomanNumbers] );
        }
    }

    return 
iPos;


Quedo Mario
En el hud hago el mismo precedimiento?

Yep. Lengua

EDIT: Edita el título y agrégale [SOLUCIONADO].

Saludos. Crab

num_to_roman -> NumberToRoman

Responder
#11
(17/06/2019, 05:52 PM)Chema escribió: Es un ejemplo, sí no puedes adaptarlo avisas.

Saludos. Crab


Código PHP:
public ClientCommand_ShowReset( const id ) {

    static 
szRoman10 ];

    
num_to_romang_iResetid ], szRoman);

    
formatex(szResetcharsmax(szReset), "[R: %s]"szRoman );
    
formatex(szPrefixcharsmax(szPrefix), "^x01%s^x03%s^x04 (N: %d)%s"Check_Var(g_bAliveid) ? "" "*MUERTO* "g_szPlayerName[id], g_iNivel[id], szRoman szReset "" );
}

stock NumberToRomaniNumszBuffer[ ], szOutput ) {

    
/* Thanks Milashkasiya */
    
if( iNum || iNum 3999 )
        return 
0;

    static const 
iNumbers[ ] = { 100090050040010090504010954};
    static const 
szRomanNumbers[ ][ ] = { "M""CM""D""CD""C""XC""L""XL""X""IX""V""IV""I" }; 

    new 
iPos;

    for( new 
isizeof iNumbers && iPos szOutput && iNumi++ ) {

        while( 
iNum >= iNumbers[i] && iPos szOutput ) {

            
iNum -= iNumbers];
            
iPos += copyszBufferiPos ], 2szRomanNumbers] );
        }
    }

    return 
iPos;


Perdon que reviva, Para mostrar los numeros romanos en un menu de armas como debo hacer?
Código PHP:
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]); 
Responder
#12
Código PHP:
/* DENTRO DEL BUCLE */
static szRoman10 ];
NumberToRomang_szPrimaryWeapons[iWeapPri][WPN_RESET], szRoman); 

Saludos. Crab
Responder
#13
Cita:L 06/18/2019 - 16:59:14: [AMXX] Displaying debug trace (plugin "zombie_plague_v1.amxx")
L 06/18/2019 - 16:59:14: [AMXX] Run time error 4: index out of bounds
L 06/18/2019 - 16:59:14: [AMXX] [0] zombie_plague_v1.sma:Confundidohow_menu_multi (line 3996)
L 06/18/2019 - 16:59:14: [AMXX] [1] zombie_plague_v1.sma::Task_RemoveWeap (line 7319)
L 06/18/2019 - 16:59:15: [AMXX] Displaying debug trace (plugin "zombie_plague_v1.amxx")
L 06/18/2019 - 16:59:15: [AMXX] Run time error 4: index out of bounds
L 06/18/2019 - 16:59:15: [AMXX] [0] zombie_plague_v1.sma:Confundidohow_menu_multi (line 3996)
L 06/18/2019 - 16:59:15: [AMXX] [1] zombie_plague_v1.sma::HM_Principal (li

Código PHP:
            static iWeapPriiMaxLoopPriszRoman10 ];
            
NumberToRomang_szPrimaryWeapons[iWeapPri][WPN_RESET], szRoman); 

Código PHP:
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], szRoman);
            } 
Responder
#14
qcyo pero no se ve que este ADENTRO DEL BUCLE

Código PHP:
NumberToRomang_szPrimaryWeapons[iWeapPri][WPN_RESET], szRoman); 


WhateverWhateverWhateverWhatever
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#15
(18/06/2019, 05:06 PM)kikizon2 escribió: qcyo pero no se ve que este ADENTRO DEL BUCLE

Código PHP:
NumberToRomang_szPrimaryWeapons[iWeapPri][WPN_RESET], szRoman); 


WhateverWhateverWhateverWhatever
Código PHP:
        case MENU_ARMAS_PRI:
        {
            static 
iWeapPriiMaxLoopPriszRoman10 ];

            
iMaxLoopPri min((MENU_PAGE_PRI 7), sizeof(g_szPrimaryWeapons));
            
NumberToRomang_szPrimaryWeapons[iWeapPri][WPN_RESET], szRoman);
            
            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: %s)^n"iWeapPri-MENU_PAGE_PRI+1g_szPrimaryWeapons[iWeapPri][WPN_NAME], g_szPrimaryWeapons[iWeapPri][WPN_NIVEL], szRoman);    
            }
            
            
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");
        } 

Cita:NumberToRoman( g_szPrimaryWeapons[iWeapPri][WPN_RESET], szRoman, 9 );
Run time error 4: index out of bounds
Responder
#16
sigue sin estar dentro del bucle, diosWhatdone
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#17
Vi tutoriales de lo que es un bucle, for, while, dowhile, etc, los mas usados.
Entonces iria dentro del for con un " && " o " || "? o cualquier cosa dije
Responder
#18
Después de que inices el bucle pones eso c.c

Código PHP:
for( .... ) {
/* aqui al inicio */


Responder
#19
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++)
            {
                     static 
szRoman10 ];
                    
NumberToRomang_szPrimaryWeapons[iWeapPri][WPN_RESET], szRoman);
                
                    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: %s)^n"iWeapPri-MENU_PAGE_PRI+1g_szPrimaryWeapons[iWeapPri][WPN_NAME], g_szPrimaryWeapons[iWeapPri][WPN_NIVEL], szRoman);    
            }
            
            
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");
        } 

Asi me dicen que haga? estoy del cel..
Responder
#20
Sí pero la variable szRoman déjala fuera del bucle.

Saludos. Crab
Responder
#21
GraciasMario
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)