Portal SAMP
[Ajuda] Alterar ANIM de modo correr (não é UsePlayerPedAnims) - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Alterar ANIM de modo correr (não é UsePlayerPedAnims) (/showthread.php?tid=1117)



Alterar ANIM de modo correr (não é UsePlayerPedAnims) - robertjwx - 21/04/2021

Em alguns servidores de RP do MTA você consegue escolher seu modo de andar e seu modo de correr...

Aqui no fórum eu vi o bruno mostrando essa lib https://github.com/Mergevos/samp-walking-styles
Ela muda o modo de andar no SAMP, muito foda...

Mas no MTA também da pra escolher o modo de correr...
Quando você só ta apertando WASD sem apertar ALT ou quando você está apertando WASD apertando espaço

Existe algo assim pro SAMP?
Se não existe, da pra fazer? Alguém pode ir passando uma base de como talvez deveria ser feito? Com essa base eu começo a construir e compartilho aqui, acho que muita gente adoraria...


RE: Alterar ANIM de modo correr (não é UsePlayerPedAnims) - xbruno1000x - 21/04/2021

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.


RE: Alterar ANIM de modo correr (não é UsePlayerPedAnims) - robertjwx - 05/05/2021

(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...


RE: Alterar ANIM de modo correr (não é UsePlayerPedAnims) - xbruno1000x - 05/05/2021

(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.


RE: Alterar ANIM de modo correr (não é UsePlayerPedAnims) - robertjwx - 05/05/2021

(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?