[Ajuda] Funзгo para fфlego
#1

E aн pessoal, tudo na boa?
Й o seguinte. Tф procurando alguma funзгo que defina o fфlego do Player.
Explicando melhor: sabem quando o Player corre mais rбpido, e uma hora ele cansa, e tem que parar pra recuperar o fфlego? Entгo, tem jeito de eu definir isso? Colocar se o Player vai ter mais fфlego, ou menos fфlego. Tem alguma funзгo, ou algo assim?

Desde jб, muito obrigado! Abraзos!
Reply
#2

eu tentaria fazer isso usando vбriaveis e tal, com uma funзгo que checasse se ele estб correndo ou nгo, caso ele esteja correndo, de tantos em tantos minutos diminuisse o valor da vбriavel Folego...
mas ai jб nгo sei se tem alguma forma de proibir ele de correr, axo que dai usaria a callback OnPlayerKeyStateChange pra checar se ele estб apertando a barra de espaзo, caso ele esteja apertando congelaria o player por alguns segundos, essa seria a forma que eu usaria, se te servir como um ex ou uma base de uma funзгo

abraзos...

@Edit

vou tentar fazer um sisteminha simples e basico aki jaja te mando
Reply
#3

Й, й nesse estilo mesmo que pensei. Mas a minha dъvida й na questгo do cansaзo, pro Player parar de correr. Acho que congelar o Player й um pouco estranho hehehehehe Vou pensando aqui tambйm. Qualquer ideia posto aqui. Valeu!
Reply
#4

Quote:
Originally Posted by Mutuka_XTreme
Посмотреть сообщение
Й, й nesse estilo mesmo que pensei. Mas a minha dъvida й na questгo do cansaзo, pro Player parar de correr. Acho que congelar o Player й um pouco estranho hehehehehe Vou pensando aqui tambйm. Qualquer ideia posto aqui. Valeu!
psй tambem pensei que seria meio estranho kkkkkkkkkk outra forma tbm й achar aquela animaзгo que ele faz quando cansa e aplicar no lugar de congelar nй, mas a principio to tentando fazer da forma de congelar o player dps se eu conseguir eu procuro a animaзгo e coloco
Reply
#5

Quote:
Originally Posted by hard_dalzot
Посмотреть сообщение
psй tambem pensei que seria meio estranho kkkkkkkkkk outra forma tbm й achar aquela animaзгo que ele faz quando cansa e aplicar no lugar de congelar nй, mas a principio to tentando fazer da forma de congelar o player dps se eu conseguir eu procuro a animaзгo e coloco
Й uma boa tambйm cara. Vamos continuar procurando aн
Reply
#6

pronto amigo fiz um basicao, mas estou tentando melhorar por que tem uns bugzinhos...
algumas imagens,





um dos bugs foi q ele canзo automaticamente q nem no gta off, tipo mas msm assim eu n soltei a barra de espaзo e dai foi esgotando o player mais e mais
Reply
#7

Dei uma ageitada e parece que fico melhor agora

pawn Код:
// no topo do gm
new timercancar[MAX_PLAYERS];
new timerrecuperarfolego[MAX_PLAYERS];
new Folego[MAX_PLAYERS];
new Text:TextoFolego[MAX_PLAYERS];

//adapta a tua callback
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(!IsPlayerInAnyVehicle(playerid))
    {
        if((newkeys & KEY_SPRINT))
        {
            timercancar[playerid] = SetTimerEx("CancarPlayer", 1000, true, "d", playerid);
        }
        if((oldkeys & KEY_SPRINT))
        {
            timerrecuperarfolego[playerid] = SetTimerEx("RecuperarFolego", 1000, true, "d", playerid);
        }
    }
        return 1;
}
// poe no onplayerconnect
    Folego[playerid] = 10;

//adapta a forma em que se encontra em seu GM
forward FolegoRecuperado(playerid);
public FolegoRecuperado(playerid)
{
    if(Folego[playerid] <= 0)
    {
        Folego[playerid] = 10;
        SendClientMessage(playerid, -1, "Folego recuperado pode correr como uma criancinha novamente!!");
        return 1;
    }
    return 1;
}
forward RecuperarFolego(playerid);
public RecuperarFolego(playerid)
{
    if(Folego[playerid] <= 9)
    {
        Folego[playerid]++;
        KillTimer(timercancar[playerid]);
    }
    else if(Folego[playerid] >= 10)
    {
        KillTimer(timerrecuperarfolego[playerid]);
    }
    return 1;
}
public OnPlayerUpdate(playerid)
{
    new str[20];
    if(Folego[playerid] >= 1)
    {
        format(str, 20, "~g~Folego: %d", Folego[playerid]);
        TextDrawSetString(TextoFolego[playerid], str);
    }
    else if(Folego[playerid] <= 0)
    {
        TextDrawSetString(TextoFolego[playerid], "~r~Sem folego");
    }
    TextDrawShowForPlayer(playerid, TextoFolego[playerid]);
    return 1;
}
forward CancarPlayer(playerid);
public CancarPlayer(playerid)
{
    if(Folego[playerid] >= 1)
    {
        Folego[playerid]--;
    }
    else if(Folego[playerid] <= 0)
    {
        ApplyAnimation(playerid, "PED", "IDLE_tired", 3.0, 1, 0, 0, 0, 5000);
        LoopingAnim(playerid,"PED","IDLE_tired",3.0,1,0,0,0,10000 );
        SendClientMessage(playerid, -1, "Vocк estб sem folego!!");
        SetTimerEx("FolegoRecuperado", 5000, false, "i", playerid);
        KillTimer(timercancar[playerid]);
    }
    return 1;
}

// coloca no OnGameModeInit
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
        TextoFolego[i] = TextDrawCreate(318.594482, 288.166564, "_");
        TextDrawLetterSize(TextoFolego[i], 0.449999, 1.600000);
        TextDrawTextSize(TextoFolego[i], 1028.404296, 139.999938);
        TextDrawAlignment(TextoFolego[i], 2);
        TextDrawColor(TextoFolego[i], -1);
        TextDrawUseBox(TextoFolego[i], 1);
        TextDrawBoxColor(TextoFolego[i], -2139062172);
        TextDrawSetShadow(TextoFolego[i], 0);
        TextDrawSetOutline(TextoFolego[i], -1);
        TextDrawBackgroundColor(TextoFolego[i], 255);
        TextDrawFont(TextoFolego[i], 1);
        TextDrawSetProportional(TextoFolego[i], 1);
    }
й isso, se vocк quiser usar esse como base e depois ir aprimorando fikdik

abraзos espero ter ajudado um poco
Reply
#8

Muito bom! Mas me explique algumas coisas por favor amigo. O fфlego sу diminui quando a barra de espaзo й pressionada, correto? Mas e essa animaзгo que mostra que o Player estб cansado? Quando a animaзгo para?

Desde jб, muito obrigado! +Rep
Reply
#9

correto amigo, a animaзгo demora axo que 5 segundos, apуs isso o folego dele й recuperado, e se vocк ficar parado sem apertar a barra de espaзo o folego vai aumentando atй chegar a 10
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)