[Problema] Con barra de experiencia
#1

Hola, bueno el problema es que cuando pongo la barra de experiencia funciona pero cuando pongo para que aсada +1 al textdraw de nivel cuando se llega a X score, desaparece la barra. Alguien sabe porque puede ser??

Saludos!
Reply
#2

Pon el codigo... Porque casi siempre el error esta en el codigo...
Reply
#3

Bueno he conseguido que me salga la barra de exp pero ahora tengo un problema y es que por ejemplo e puesto que el score sea el dinero y si tiene 12$ suba un nivel, el problema es que si el dinero permanece en 12$ no para de subir niveles en vez de sumar solo 1 nivel, alguien sabe como puedo hacer para que solo se sume 1 nivel aunque permanezca con 12$??

Saludos!
Reply
#4

Adivino no soy, sino ya serнa millonario, asi que postea el codigo.
Reply
#5

pawn Код:
//Arriba
forward EXPTimer(playerid);

//En OnGameModeInit
SetTimer("EXPTimer",500,1);

//Abajo del todo del GM
public EXPTimer(playerid)
{
    new score = GetPlayerMoney(playerid);
    if(score >= 1 || score == 10)
    {
        SetProgressBarValue(exp[playerid],score*10);
        UpdateProgressBar(exp[playerid],playerid);
    }
    if(score == 12)
    {
        SetProgressBarValue(exp[playerid],0);
        UpdateProgressBar(exp[playerid],playerid);
        NumNivelVar[playerid] ++;
        format(string1, sizeof (string1), "Nivel: %i", NumNivelVar[playerid]);
        TextDrawDestroy(NumNivel);
        TextDrawSetString(Nivel, string1);
        TextDrawShowForPlayer(playerid, Nivel);
        return 1;
    }
    return 1;
}
Reply
#6

pawn Код:
forward EXPTimer(playerid);
new advertised;

//En OnGameModeInit
SetTimer("EXPTimer",500,1);

//Abajo del todo del GM
public EXPTimer(playerid)
{
    new score = GetPlayerMoney(playerid);
    if(score >= 1 || score == 10)
    {
        SetProgressBarValue(exp[playerid],score*10);
        UpdateProgressBar(exp[playerid],playerid);
    }
    if(score == 12 && advertised == 0)
    {
        SetProgressBarValue(exp[playerid],0);
        UpdateProgressBar(exp[playerid],playerid);
        NumNivelVar[playerid] ++;
        format(string1, sizeof (string1), "Nivel: %i", NumNivelVar[playerid]);
        TextDrawDestroy(NumNivel);
        TextDrawSetString(Nivel, string1);
        TextDrawShowForPlayer(playerid, Nivel);
        advertised = 1;
        return 1;
    }
    return 1;
}
Reply
#7

He probado el codigo pero sigue igual, no se para :S

Saludos!
Reply
#8

El cуdigo que te diу deberнa funcionar...
pawn Код:
new
    bool:comprobante;

if((cierta == condiciуn) && (comprobante == false))
{
    hacer_cierta_cosa_una();
    comprobante = true;
}
Asн es como funciona, si quieres que una cosa se ejecute una sola vez, usa una variable lуgica o un nъmero entero para comprobar y definir cuando esa cosa se tiene que ejecutar y cuando no. En tu caso, comprobante es false al comienzo, luego de que se ejecuta el cуdigo de subir nivel comprobante cambia a true, y cuando es true la condiciуn "if((cierta == condiciуn) && (comrpobante == false))", no se da, por lo que el nivel no sube. Si el cуdigo que te dieron no funciona, haz que funcione.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)