no me funciona "progressbar" una funcion
#1

Hola, estoy aciendo para que la barra de progressbar baje 1 a 1 asta llegar a 0 y que a llegar a 0 haga lo que yo quiera, pero no me va, al arrancar no se pone a 100% y lo tengo asi:

pawn Код:
public OnPlayerSpawn(playerid)
{
    energiagenerador[playerid] = CreateProgressBar(500.00, 105.00, 102.50, 6.19, 13421823, 100.0);
    UpdateProgressBar(energiagenerador[playerid]);
    SetProgressBarValue(energiagenerador[playerid],PlayerInfo[playerid][porciento]);
    ShowProgressBarForAll(energiagenerador[playerid]);
    PlayerInfo[playerid][porciento] = 100; //<<<<<<<< ESTO ES LAPARA QUE SUBA AL 100% PERO NADA
    SetTimer("energiacheck", 1000, true);
    return 1;
}


y depues tengo esto que es para que baje y tyampoco funciona:


pawn Код:
forward energiacheck(playerid);
public energiacheck(playerid)
{
    if( PlayerInfo[playerid][porciento] >= 0)
    {
    SetPlayerCheckpoint(playerid, 1759.9247,-1924.5101,13.5753, 2.0);
    TextDrawShowForAll(enciendegenerador);
    luzencendia[playerid] = 1;
    }
    if( PlayerInfo[playerid][porciento] >= 100)
    {
    TextDrawHideForAll(enciendegenerador);
    luzencendia[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    }

    SetProgressBarValue(energiagenerador[playerid],PlayerInfo[playerid][porciento]);
    UpdateProgressBar(energiagenerador[playerid]);

    return 1;
}
Reply
#2

prueba el public asi :
pawn Код:
forward energiacheck(playerid);
public energiacheck(playerid)
{
    if( PlayerInfo[playerid][porciento] >= 0)
    {
    SetPlayerCheckpoint(playerid, 1759.9247,-1924.5101,13.5753, 2.0);
    TextDrawShowForAll(enciendegenerador);
    luzencendia[playerid] = 1;
    }
    if( PlayerInfo[playerid][porciento] >= 100)
    {
    TextDrawHideForAll(enciendegenerador);
    luzencendia[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    }
    else
    {
    SetProgressBarValue(energiagenerador[playerid],PlayerInfo[playerid][porciento]);
    UpdateProgressBar(energiagenerador[playerid]);
    }
    return 1;
}
como tienes definido el "porciento" ?
si estoy mal corriganme.
Reply
#3

Prueba con:
pawn Код:
public OnPlayerSpawn(playerid)
{
    energiagenerador[playerid] = CreateProgressBar(500.00, 105.00, 102.50, 6.19, 13421823, 100.0);
    UpdateProgressBar(energiagenerador[playerid]);
    PlayerInfo[playerid][porciento] = 100;
    SetProgressBarValue(energiagenerador[playerid],PlayerInfo[playerid][porciento]);
    ShowProgressBarForAll(energiagenerador[playerid]);
    SetTimer("energiacheck", 1000, true);
    return 1;
}
(Solo para que se ponga al 100% al comienzo)
Reply
#4

si, se llena, pero la funcion de bajar 1 a 1 no lo hace :S:

pawn Код:
forward energiacheck(playerid);
public energiacheck(playerid)
{
    if( PlayerInfo[playerid][porciento] >= 0)
    {
    SetPlayerCheckpoint(playerid, 1759.9247,-1924.5101,13.5753, 2.0);
    TextDrawShowForAll(enciendegenerador);
    luzencendia[playerid] = 1;
    }
    if( PlayerInfo[playerid][porciento] >= 100)
    {
    TextDrawHideForAll(enciendegenerador);
    luzencendia[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    }
    else
    {
    SetProgressBarValue(energiagenerador[playerid],PlayerInfo[playerid][porciento]);
    UpdateProgressBar(energiagenerador[playerid]);
    }
    return 1;
}
lo he puesto como me ha dicho AnGeeeL
Reply
#5

Prueba asн:

pawn Код:
forward energiacheck(playerid);
public energiacheck(playerid)
{
    if( PlayerInfo[playerid][porciento] >= 0)
    {
    SetPlayerCheckpoint(playerid, 1759.9247,-1924.5101,13.5753, 2.0);
    TextDrawShowForAll(enciendegenerador);
    luzencendia[playerid] = 1;
    }
    if( PlayerInfo[playerid][porciento] >= 100)
    {
    TextDrawHideForAll(enciendegenerador);
    luzencendia[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    }
    PlayerInfo[playerid][porciento] -=1;
    SetProgressBarValue(energiagenerador[playerid],PlayerInfo[playerid][porciento]);
    UpdateProgressBar(energiagenerador[playerid]);

    return 1;
}
Reply
#6

nada, sigue igual :S


EDITO: he probado asi:

pawn Код:
if (strcmp("/ya", cmdtext, true, 10) == 0)
    {
        SetTimerEx("energiacheck",2000,false,"i",playerid);
    return 1;
    }
pawn Код:
if (strcmp("/ya", cmdtext, true, 10) == 0)
    {
        SetTimer("energiacheck", 1000, true);
    return 1;
    }


pero nada, le tengo que poner ese comando 3 veces pa k funcione...
Reply
#7

Explica quй quieres hacer, porque no le veo mucho sentido por lo que has publicado.

Si el porcentaje es mayor o igual a 0 -> Muestra un checkpoint, un textdraw (a todos los jugadores, їes asн?) y cambia la variable luz encendida. Tambiйn si el porcentaje es mayor o igual a 100 hace lo contrario a lo explicado con anterioridad. Si comienza con el porcentaje a 100, realizarб lo primero al ser mayor a 0 y luego desharб lo hecho al ser el porcentaje igual a 100.

Creo que ese es el problema.
Reply
#8

ira lo que qauiero es, si el porcentaje es 0 que se apague la luz (luzencendia[playerid] = 0 y si el porcentaje es mayor de 0 que se encienda(luzencendia[playerid] = 1 si eso me funciona, ya me podria giar con lo demas, de ponerle los textdraw...
Reply
#9

Asн deberнa ser:
pawn Код:
forward energiacheck(playerid);
public energiacheck(playerid)
{
    if( PlayerInfo[playerid][porciento] == 0)
    {
    luzencendia[playerid] = 0;
    }
    else if( PlayerInfo[playerid][porciento] > 0)
    {
    luzencendia[playerid] = 1;
    }
    PlayerInfo[playerid][porciento] -=1; //Resta 1 al porcentaje
    SetProgressBarValue(energiagenerador[playerid],PlayerInfo[playerid][porciento]); //Actualiza la barra de progreso
    UpdateProgressBar(energiagenerador[playerid]);

    return 1;
}
Reply
#10

ok ahora si baja, pero por que le tengo k dar 2 o 3 veces para que funcione?

pawn Код:
if (strcmp("/ya", cmdtext, true, 10) == 0)
    {
        SetTimer("energiacheck", 1000, true);
    return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)