[Duda] Animacion
#1

Buenas amigos de SA-MP, quisiera pedirles una ayudita con el tema de las animaciones.

їComo evitar que el jugador se ponga en pie si una animaciуn es ejecutada con el jugador agachado?

Bueno digo esto ya que estoy creando un cуdigo el cuбl aplica una animaciуn cuando el jugador esta agachado pero cuando esta termina de ejecutarse entonces el jugador se pone de pie.

PD: La animaciуn solo hace mover las manos y no veo el porque el PJ tiene que ponerse de pie al terminar la animaciуn.

Muchas gracias por su atenciуn y ayuda.

Un saludo.
Reply
#2

Creo que no se puede.
Reply
#3

Podrias mediante detectar si esta o no agachado mediante una variable booleana (detectas la tecla KEY_CROUCH en OnPlayerKeyStateChange).
Reply
#4

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
Podrias mediante detectar si esta o no agachado mediante una variable booleana (detectas la tecla KEY_CROUCH en OnPlayerKeyStateChange).
Eso no servirнa, una vez lo intentй y como que, es posible buguearlo, ya que si vas corriendo y apretбs C, no se agacha, pero la variable booleana de agachado pasarнa a true, y si saltбs y presionбs varias veces C lo desincronizas, no sabйs en que queda (si en true o en false).
Reply
#5

Quote:
Originally Posted by DeadSkyTkb
Посмотреть сообщение
Eso no servirнa, una vez lo intentй y como que, es posible buguearlo, ya que si vas corriendo y apretбs C, no se agacha, pero la variable booleana de agachado pasarнa a true, y si saltбs y presionбs varias veces C lo desincronizas, no sabйs en que queda (si en true o en false).
Todas las teclas que mensionas son facilmente detectables, solo basta evaluar cuando un jugador realmente se agacha y no se causaria un bug. No voy a brindar el codigo ya que no tengo el mismo y tendria que ponerme a evaluar todos los casos y no tengo tiempo. Pero poder se puede.
Reply
#6

Ah, pensй que no se podнa, gracias por avisar, voy a ir buscando, porque la verdad, me serнa de mucha utilidad eso.

Hace unos dнas estaba trabajando en un sistema probando las camera mode, y necesitaba detectar si el jugador estaba agachado, y probй muchas cosas y como que lleguй a algo, pero requerнa de constante actualizaciуn y bueno, mucho no servнa.
Reply
#7

Quote:
Originally Posted by DeadSkyTkb
Посмотреть сообщение
Eso no servirнa, una vez lo intentй y como que, es posible buguearlo, ya que si vas corriendo y apretбs C, no se agacha, pero la variable booleana de agachado pasarнa a true, y si saltбs y presionбs varias veces C lo desincronizas, no sabйs en que queda (si en true o en false).
Eso de detectar si estб agachado es fбcil simplemente utilizando GetPlayerSpecialAction, ustedes aparecer no entendieron mi duda. Quiero saber como evitar que el jugador al aplicar una animaciуn agachado y esta termine entonces el jugador se quede agachado y no se ponga de pie.

PD: Lo que pasa es que al terminar la animaciуn en vйz de quedarse agachado el jugador se pone de pie automaticamente.

Un saludo.
Reply
#8

Quote:
Originally Posted by oOFotherOo
Посмотреть сообщение
Eso de detectar si estб agachado es fбcil simplemente utilizando GetPlayerSpecialAction, ustedes aparecer no entendieron mi duda. Quiero saber como evitar que el jugador al aplicar una animaciуn agachado y esta termine entonces el jugador se quede agachado y no se ponga de pie.

PD: Lo que pasa es que al terminar la animaciуn en vйz de quedarse agachado el jugador se pone de pie automaticamente.

Un saludo.
No, GetPlayerSpecialAction no es preciso, podйs comprobarlo vos mismo, es una herramienta que intentй usar, la de la Action de DUCK (agachado) y sinceramente, no sirviу. Serнa de mбs utilidad una callback como OnPlayerSpecialActionChange(playerid, oldspecialaction, newspecialaction).
Reply
#9

Lo que tu pides no es posible a menos que exista una animacion que deje al jugador agachado (no conosco todas las animaciones, por lo que no se si existe alguna). Te sugiero que dicha animacion solo pueda ser ejecutada si el jugador esta de pie, por eso te sugeri utilizar ese metodo para detectar si el jugador esta o no agachado con presicion.
Reply
#10

Quote:
Originally Posted by DeadSkyTkb
Посмотреть сообщение
No, GetPlayerSpecialAction no es preciso, podйs comprobarlo vos mismo, es una herramienta que intentй usar, la de la Action de DUCK (agachado) y sinceramente, no sirviу. Serнa de mбs utilidad una callback como OnPlayerSpecialActionChange(playerid, oldspecialaction, newspecialaction).
pawn Код:
forward OnPlayerSpecialActionChange(playerid, oldspecialaction, newspecialaction);

public OnPlayerSpecialActionChange(playerid, oldspecialaction, newspecialaction)
{
    return 1;
}

static SAction[2];

public OnPlayerUpdate(playerid)
{
    SAction[1] = GetPlayerSpecialAction(playerid);
    if(SAction[0] != SAction[1])
    {
       CallRemoteFunction("OnPlayerSpecialActionChange", "iii", playerid, SAction[0], SAction[1]);
       SAction[0] = SAction[1];
    }
    return 1;
}
No lo he testeado pero deberia funcionar.

Un saludo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)