Contado bug
#1

Bueno ayer hise un simple contador con GameText pero por alguan razon no sale el 1 xD
Sale el 3, 2, 0 pero el 1 no. Les dejo el codigo, yo no le veo nada mal y lo intente de dos formas.

Es un Timer que se repite cada 1 segundo, eso no importa ahora:

pawn Код:
forward ContadoAuto(playerid);
public ContadoAuto(playerid)
{
    new string[256];
    VSegundosA[playerid] ++;
    if(VSegundosA[playerid] >= 60)
    {
        VSegundosA[playerid] = 0;
        VMinutosA[playerid] ++;
        format(string,sizeof(string),"el minuto ahora es %d",VMinutosA[playerid]); // Debug Mode
        SendClientMessage(playerid,COLOR_GREY,string);// Debug Mode
    }
    if(VSegundosA[playerid] >= 0 && VSegundosA[playerid] <= 9)
    {
        if(VMinutosA[playerid] == 0) format(string,sizeof(string),"~y~0~w~:~b~0%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 1) format(string,sizeof(string),"~y~1~w~:~b~0%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 2) format(string,sizeof(string),"~y~2~w~:~b~0%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 3) format(string,sizeof(string),"~y~3~w~:~b~0%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 4) format(string,sizeof(string),"~y~4~w~:~b~0%d",VSegundosA[playerid]);
    }
    else
    {
        if(VMinutosA[playerid] == 0) format(string,sizeof(string),"~y~0~w~:~b~%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 1) format(string,sizeof(string),"~y~1~w~:~b~%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 2) format(string,sizeof(string),"~y~2~w~:~b~%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 3) format(string,sizeof(string),"~y~3~w~:~b~%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 4) format(string,sizeof(string),"~y~4~w~:~b~%d",VSegundosA[playerid]);
    }
   
    GameTextForPlayer(playerid, string, 1500, 6);
    return 1;
}
Y esta es la primer forma como intente, mas sencilla

pawn Код:
forward ContadoAuto(playerid);
public ContadoAuto(playerid)
{
    new string[256];
    VSegundosA[playerid] ++;
    if(VSegundosA[playerid] >= 60)
    {
        VSegundosA[playerid] = 0;
        VMinutosA[playerid] ++;
        format(string,sizeof(string),"el minuto ahora es %d",VMinutosA[playerid]); //Debug Mode
        SendClientMessage(playerid,COLOR_GREY,string);// Debug Mode
    }
    if(VSegundosA[playerid] >= 0 && VSegundosA[playerid] <= 9) format(string,sizeof(string),"~y~%d~w~:~b~0%d",VMinutosA[playerid],VSegundosA[playerid]);
    else format(string,sizeof(string),"~y~%d~w~:~b~%d",VMinutosA[playerid],VSegundosA[playerid]);
    GameTextForPlayer(playerid, string, 1500, 6);
    return 1;
}
Si me dicen cual es el error se los agradesco porque yo no lo encuentro xD

Edit: Aca las IMG (Click en la oracion)

Cuando pasa a 1 no sale
Cuando pasa a otro numero, en este caso 2, si sale.
Reply
#2

Realmente no estoy muy seguro, pero puede darte unas recomendaciones:
____________________________

En vez de usar mucho if:
pawn Код:
if(VMinutosA[playerid] == 0) format(string,sizeof(string),"~y~0~w~:~b~0%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 1) format(string,sizeof(string),"~y~1~w~:~b~0%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 2) format(string,sizeof(string),"~y~2~w~:~b~0%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 3) format(string,sizeof(string),"~y~3~w~:~b~0%d",VSegundosA[playerid]);
        if(VMinutosA[playerid] == 4) format(string,sizeof(string),"~y~4~w~:~b~0%d",VSegundosA[playerid]);
Es mejor usar switch.
____________________________

Y con esto deberнa funcionar:

pawn Код:
forward ContadoAuto(playerid);
public ContadoAuto(playerid)
{
    new
        string[32];

    VSegundosA[playerid] ++;
    if (VSegundosA[playerid] == 60)
    {
        VSegundosA[playerid] = -1;
        VMinutosA[playerid] ++;
        format(string, sizeof(string), "el minuto ahora es %d", VMinutosA[playerid]);
        SendClientMessage(playerid, COLOR_GREY, string);
    }

    format(string, sizeof (string), "~y~%02d~w~:~b~%02d", VMinutosA[playerid], VSegundosA[playerid]);
   
    GameTextForPlayer(playerid, string, 1500, 6);
    return 1;
}
____________________________

EDIT:
Testeado y funciona.
Reply
#3

jeje si funciono el 2do, sigo con al duda de que era lo que fallaba pero bueno xD.
Gracias MrDeath
Reply
#4

їEl minuto 0 sale?
Reply
#5

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
їEl minuto 0 sale?
El problema ya fue solucionado lol ._.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)