Detectar se player estб segurando espaзo -
gmstrikker - 06.02.2018
Estou tentnado detectar se o player estб correndo...
Qnd o player aperta espaзo detecta, mas segurando o espaзo nгo, queria que quando estivesse segudano espaзo tambйm ficasse:
PHP код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
// cansando
if((newkeys & KEY_SPRINT) || HOLDING(KEY_SPRINT))
{
if(!IsPlayerInAnyVehicle(playerid)) {
PlayerCorrendo(playerid);
}
}
else
{ //if((oldkeys & KEY_SPRINT))
ContadorParandoCorrer[playerid] = SetTimerEx("PlayerNaoEstaCorrendo", 100, 0, "i", playerid);
}
}
Re: Detectar se player estб segurando espaзo -
PT - 06.02.2018
Usa isso
https://sampwiki.blast.hk/wiki/GetPlayerAnimationIndex
Ai depois fica mais facil
Re: Detectar se player estб segurando espaзo -
gmstrikker - 06.02.2018
Quote:
Originally Posted by PT
|
Jб pensei em fazer por anim, mas nгo rola...
printa 1231 andando com w sem espaзo e com espaзo continua 1231
Re: Detectar se player estб segurando espaзo -
JohnBlack - 07.02.2018
A public
OnPlayerKeyStateChange й usada apenas quando um player altera o estado de suas teclas, ou seja, ou aperta ou solta. Para verificar se o player persiste segurando uma tecla, use um
Timer com a funзгo
GetPlayerKeys.
Re: Detectar se player estб segurando espaзo -
Ermanhaut - 07.02.2018
Quote:
Originally Posted by JohnBlack
A public OnPlayerKeyStateChange й usada apenas quando um player altera o estado de suas teclas, ou seja, ou aperta ou solta. Para verificar se o player persiste segurando uma tecla, use um Timer com a funзгo GetPlayerKeys.
|
Isto funcionarб bem, mas tem uma funзгo na SAMP Wiki para isto:
Код:
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
//Uso
if(HOLDING(KEY_SPRINT)){//Se o player estiver segurando 'espaзo'
//bla bla bla
}
Re: Detectar se player estб segurando espaзo -
JohnBlack - 07.02.2018
Quote:
Originally Posted by Ermanhaut
Isto funcionarб bem, mas tem uma funзгo na SAMP Wiki para isto:
Код:
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
//Uso
if(HOLDING(KEY_SPRINT)){//Se o player estiver segurando 'espaзo'
//bla bla bla
}
|
A funзгo
HOLDING sу funcionarб dentro da public
OnPlayerKeyStateChange, ou seja, quando o player apertar ou soltar uma tecla, o que faz essa funзгo
HOLDING nгo ser tгo ъtil quanto simplesmente colocar
Код:
if(newkeys & KEY_SPRINT) { /**/ }
Para verificar se o player persiste segurando a tecla espaзo, terб que usar ou um
Timer com
GetPlayerKeys dentro ou a public
OnPlayerUpdate.
Re: Detectar se player estб segurando espaзo -
Ermanhaut - 07.02.2018
Quote:
Originally Posted by JohnBlack
A funзгo HOLDING sу funcionarб dentro da public OnPlayerKeyStateChange, ou seja, quando o player apertar ou soltar uma tecla, o que faz essa funзгo HOLDING nгo ser tгo ъtil quanto simplesmente colocar
Код:
if(newkeys & KEY_SPRINT) { /**/ }
Para verificar se o player persiste segurando a tecla espaзo, terб que usar ou um Timer com GetPlayerKeys dentro ou a public OnPlayerUpdate.
|
Vocк tem razгo, ele tem que fazer o timer mesmo. Erro meu.
Re: Detectar se player estб segurando espaзo -
gmstrikker - 07.02.2018
Por que nгo ta detectando o espaзo pressionado?
PHP код:
new Keys,ud,lr;
GetPlayerKeys(i,Keys,ud,lr);
// cansando
if(ud == KEY_SPRINT) {
if(!IsPlayerInAnyVehicle(i)) { PlayerCorrendo(i); }
}
else { // parou de correr
ContadorParandoCorrer[i] = SetTimerEx("PlayerNaoEstaCorrendo", 100, 0, "i", i);
}
Re: Detectar se player estб segurando espaзo -
JohnBlack - 07.02.2018
Quote:
Originally Posted by gmstrikker
Por que nгo ta detectando o espaзo pressionado?
PHP код:
new Keys,ud,lr;
GetPlayerKeys(i,Keys,ud,lr);
// cansando
if(ud == KEY_SPRINT) {
if(!IsPlayerInAnyVehicle(i)) { PlayerCorrendo(i); }
}
else { // parou de correr
ContadorParandoCorrer[i] = SetTimerEx("PlayerNaoEstaCorrendo", 100, 0, "i", i);
}
|
Vocк tб comparando as teclas cima/baixo com espaзo, isso nгo faz muito sentido.
Para dar certo vocк teria que comparar a sua variбvel Keys com KEY_SPRINT, aн sim.
Re: Detectar se player estб segurando espaзo -
gmstrikker - 08.02.2018
Quote:
Originally Posted by JohnBlack
Vocк tб comparando as teclas cima/baixo com espaзo, isso nгo faz muito sentido.
Para dar certo vocк teria que comparar a sua variбvel Keys com KEY_SPRINT, aн sim.
|
Muito obrigado! +rep