05/05/2021 17:23
(05/05/2021 12:57)xbruno1000x Escreveu:(05/05/2021 11:32)robertjwx Escreveu:(21/04/2021 14:47)xbruno1000x Escreveu: Essa include é recente e foi postada no finalzinho do fórum sa-mp. Quando o Mergevos havia postado, eu sugeri que ele fizesse uma próxima versão alterando também o modo de correr. Não sei se ele tentou fazer e não deu certo, ou se nem tentou. Porém acredito que seja possível fazer alterando a tecla usada na KeyStateChange para a tecla de correr e a animação.
Como eu faria pra detectar correndo+espaço, correndo-espaço, andando?
Código:public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
#if defined WS_OnPlayerKeyStateChange
WS_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
#endif
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
if( (newkeys & KEY_UP && !(oldkeys & KEY_UP))
|| (newkeys & KEY_DOWN && !(oldkeys & KEY_DOWN))
|| (newkeys & KEY_LEFT && !(oldkeys & KEY_LEFT))
|| (newkeys & KEY_RIGHT && !(oldkeys & KEY_RIGHT))
) {
SendClientMessage(playerid, -1, "TEST 1");
timer_Walking[playerid] = SetTimerEx("timer_WalkAnimation",200,0,"d",playerid);
}
if(HOLDING(KEY_UP) || HOLDING(KEY_DOWN) || HOLDING(KEY_LEFT) || HOLDING(KEY_RIGHT)) {
SendClientMessage(playerid, -1, "TEST 2");
}
if(newkeys & KEY_UP || newkeys & KEY_DOWN || newkeys & KEY_LEFT || newkeys & KEY_RIGHT) {
SendClientMessage(playerid, -1, "TEST 3");
timer_Walking[playerid] = SetTimerEx("timer_WalkAnimation",200,0,"d",playerid);
}
}
return 1;
}
Nenhum dos 3 pegou...
Em nenhum momento você assinalou a barra de espaço... tenta só alterar na include a KEY_WALK(tecla de andar) para KEY_SPRINT(tecla de correr) e mudar as anims.
Não era minha intenção, aqui minha intenção era detectar quando o player estivesse apertando WASD, qnd tivesse andando, dps ali dentro eu chamo uma função que trata isso...
Mas nem detectar quando o player começa a se mover eu estou conseguindo...
To fazendo algo errado?