open.mp forum
[Pawn] [Solved] GetAnimationName() is not working properly - Printable Version

+- open.mp forum (https://forum.open.mp)
+-- Forum: SA-MP (https://forum.open.mp/forumdisplay.php?fid=3)
+--- Forum: Pawn Scripting (https://forum.open.mp/forumdisplay.php?fid=10)
+--- Thread: [Pawn] [Solved] GetAnimationName() is not working properly (/showthread.php?tid=1800)



[Solved] GetAnimationName() is not working properly - Radical - 2021-03-23

SOLUTION:

Store that animation lib and name in a variable.

e.g. :

Code:
new rAnimLib[MAX_PLAYERS][20]; new rAnimName[MAX_PLAYERS][20]; COMMAND:anim(playerid, params[]) { ? ? ApplyAnimation(playerid, "PED", "IDLE_STANCE", 4.1, 0, 0, 0, 0, 0); ? ? rAnimLib[playerid] = "PED"; ? ??rAnimName[playerid] = "IDLE_STANCE"; ? ? return 1; } GetAnimationNameEx(playerid, Lib[20], Name[20]) { ? ? Lib = rAnimLib[playerid]; ? ? Name = rAnimName[playerid]; } //use this method instead of GetAnimationName.





I use GetAnimationName() function but it only returns PED, IDLE_STANCE or PED,SEAT_IDLE or PED,WOMAN_IDLESTANCE.



When i apply another animations like /eat, /sit, /lay

this function not give me the applied animation animlib and animname but just return PED, IDLE_STANCE.



PHP Code:
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1, 0, 1, 1, 1, 1, 1); // Sit ApplyAnimation(playerid,"BEACH", "bather",4.1, 0, 1, 1, 1, 1, 1); // Lay down CMD:anim(playerid) { ? ? if(GetPlayerAnimationIndex(playerid)) { ? ? new animlib[32]; ? ? new animname[32]; ? ? new msg[128];? ? ? ? GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32); ? ? format(msg, 128, "Running anim: %s %s", animlib, animname); ? ? SendClientMessage(playerid, -1, msg); // output is: PED IDLE_STANCE } ? ? return 1; }



In other gamemodes that I test, this problem does not occur.



I need to fix this problem quickly.

thanks for the anyone answer.


RE: GetAnimationName() is not working properly - Radical - 2021-03-24

Bump



Does the lagcomp 0 have an effect on this function?


RE: GetAnimationName() is not working properly - DandoRYx - 2021-03-24

Changing the time value fixed this.
I changed it to 4000:
PHP Code:
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop", 4.1, 0, 1, 1, 1, 4000, 1);

The only issue is that you can't exit the animation until 4 seconds (4000 ms) pass.

EDIT: After those 4 seconds, GetAnimationName gives PED, IDLE_STANCE so this won't help you much.
You can lock a player and then check if he pressed ENTER and cancel the animation or something like that.