// HOLDING(keys)
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
// PRESSING(keyVariable, keys)
#define PRESSING(%0,%1) \
(%0 & (%1))
if(HOLDING(KEY_SPRINT) || PRESSING(newkeys, KEY_SPRINT ))
{
(assim vocк deteta quando ele corre)
}
Pode ser feito um sistema com barra de progresso:
Detecte, com um timer, quando o jogador estiver correndo e se estiver, use esse timer para aumentar a barra de progresso. Quando a barra chegar a 100% (como queira) caso esteja correndo aplique a animaзгo de andar, atй que a barra se encha novamente... Isso tudo no mesmo timer. Esta й uma forma. |
PHP код:
PHP код:
|
if(HOLDING(KEY_SPRINT) && HOLDING(KEY_UP) || HOLDING(KEY_SPRINT) && HOLDING(KEY_DOWN) || HOLDING(KEY_SPRINT) && HOLDING(KEY_LEFT) || HOLDING(KEY_SPRINT) && HOLDING(KEY_RIGHT)) { if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { Correndo[playerid] = true; } } else { Correndo[playerid] = false; }
Boa ideia usar uma progress bar pra mostrar pros players, mas meu problema й com a forma de detectar se o player ta correndo...
Tentei seguir o que vc me falou: Код:
if(HOLDING(KEY_SPRINT) && HOLDING(KEY_UP) || HOLDING(KEY_SPRINT) && HOLDING(KEY_DOWN) || HOLDING(KEY_SPRINT) && HOLDING(KEY_LEFT) || HOLDING(KEY_SPRINT) && HOLDING(KEY_RIGHT)) { if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { Correndo[playerid] = true; } } else { Correndo[playerid] = false; } |
public OnPlayerUpdate(playerid)
{
new Keys,ud,lr;
GetPlayerKeys(playerid,Keys,ud,lr);
if(ud == KEY_UP) SendClientMessage(playerid, -1, "UP");
else if(ud == KEY_DOWN) SendClientMessage(playerid, -1, "DOWN");
if(lr == KEY_LEFT) SendClientMessage(playerid, -1, "LEFT");
else if(lr == KEY_RIGHT) SendClientMessage(playerid, -1, "RIGHT");
return 1;
}
if(HOLDING(KEY_SPRINT) || PRESSING(newkeys, KEY_SPRINT ))
{
//QUANDO PRESSIONA BARRA DE ESPAЗO PARA CORRER
}
if(RELEASED(KEY_SPRINT))
{
//QUANDO LIBERTA A BARRA DE ESPAЗO PARA PARAR DE CORRER
}
public OnPlayerUpdate(playerid)
{
new Keys,ud,lr;
GetPlayerKeys(playerid,Keys,ud,lr);
if(ud != 0 || ud != 0 || lr != 0 || lr != 0)
{
if(Correndo[playerid] == false)
{
if(!IsPlayerInAnyVehicle(playerid))
{
//QUANDO SE MOVE NAS SETAS
Andando[playerid] = true;
}
}
}
else
{
if(Correndo[playerid] == true)
{
if(!IsPlayerInAnyVehicle(playerid))
{
//QUANDO DEIXA DE PRESSIONAR AS SETAS
Andando[playerid] = false;
}
}
}
return 1;
}