ZONIYAS Posted February 24 Share Posted February 24 Hi! everyone, I m trying to make a mission script with c++, but the question is I don't know how to check an animation is done or not, if it's done so that I can play the next animation. What should I do? Please help me!! Thanks in advance! Link to comment Share on other sites More sharing options...
ZAZ Posted February 24 Share Posted February 24 (edited) If you can use scm opcodes 0611: and 0613: then it's easy you can find checks for animation time(progress) very often in main.scm view examples inside spoiler Spoiler inside script for Lowrider condition :LOWGAME_5632 00D6: if 0611: actor 2@ performing_animation "LRGIRL_BDBNCE" 004D: jump_if_false @LOWGAME_5686 0613: 26@ = actor 2@ animation "LRGIRL_BDBNCE" time :LOWGAME_5686 00D6: if 0023: 0.9 > 26@ 004D: jump_if_false @LOWGAME_5714 0006: 17@ = 1 inside script for final mission :FINALEC_16006 00D6: if 0611: actor $PLAYER_ACTOR performing_animation "FIN_SWITCH_P" 004D: jump_if_false @FINALEC_16338 0613: 170@ = actor $PLAYER_ACTOR animation "FIN_SWITCH_P" time 00D6: if 0043: 170@ == 1.0 004D: jump_if_false @FINALEC_16338 One complete animation = 1.0 if 0611: actor [ActorHandle] performing_animation "Swim_Dive_Under" then 0613: [AnimTime] = actor [ActorHandle] animation "Swim_Dive_Under" time if [AnimTime] == 1.0 then //-- animation sequence is finshed end end i prefer to check if bigger than 0.95 because 1.0 maybe exist only for one millisecond if 0611: actor [ActorHandle] performing_animation "Swim_Dive_Under" then 0613: [AnimTime] = actor [ActorHandle] animation "Swim_Dive_Under" time if [AnimTime] > 0.95 then //-- animation sequence reached the end end end if 0611: actor [ActorHandle] performing_animation "Swim_Dive_Under" then 0613: [AnimTime] = actor [ActorHandle] animation "Swim_Dive_Under" time if 1.0 > [AnimTime] then //-- animation is running else //-- animation sequence is finished or didn't start end end Edited February 24 by ZAZ ZONIYAS and Jack 2 CLEO MODS CLEO Script Tutorial Link to comment Share on other sites More sharing options...
Jack Posted February 24 Share Posted February 24 18 hours ago, ZONIYAS said: Hi! everyone, I m trying to make a mission script with c++, but the question is I don't know how to check an animation is done or not, if it's done so that I can play the next animation. What should I do? Please help me!! Thanks in advance! c++ (plugin-sdk), (not tested): #include "CAnimBlendHierarchy.h" CPed *playa = FindPlayerPed(); if (playa) { if (RpAnimBlendClumpGetAssociation(playa->m_pRwClump, "ABSEIL")) { // player is performing animation "ABSEIL" } else { // animation "ABSEIL" finished } // Animation time: if (RpAnimBlendClumpGetAssociation(playa->m_pRwClump, "ABSEIL")) { float totalTime = RpAnimBlendClumpGetAssociation(playa->m_pRwClump, "ABSEIL")->m_pHierarchy->m_fTotalTime; float currentTime = RpAnimBlendClumpGetAssociation(playa->m_pRwClump, "ABSEIL")->m_fCurrentTime; float animTime = currentTime / currentTime; } } ZONIYAS 1 Tank Fire [SA] New Police Helicopter [VC & III] My YouTube Channel Link to comment Share on other sites More sharing options...
ZONIYAS Posted February 25 Author Share Posted February 25 (edited) Thanks for all your help ! your code works great! 12 hours ago, Jack said: c++ (plugin-sdk), (not tested): #include "CAnimBlendHierarchy.h" CPed *playa = FindPlayerPed(); if (playa) { if (RpAnimBlendClumpGetAssociation(playa->m_pRwClump, "ABSEIL")) { // player is performing animation "ABSEIL" } else { // animation "ABSEIL" finished } // Animation time: if (RpAnimBlendClumpGetAssociation(playa->m_pRwClump, "ABSEIL")) { float totalTime = RpAnimBlendClumpGetAssociation(playa->m_pRwClump, "ABSEIL")->m_pHierarchy->m_fTotalTime; float currentTime = RpAnimBlendClumpGetAssociation(playa->m_pRwClump, "ABSEIL")->m_fCurrentTime; float animTime = currentTime / currentTime; } } But I got another problem in setting next animation. After checking , the script just skip the first animation then play the second one. So I set the second animation's priority from TASK_PRIMARY_PRIMARY to TASK_PRIMARY_DEFAULT, although it works, game freezes and shutdown after play the next animation at last frame. What should I do? Should I release someting ? Edited February 25 by ZONIYAS Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now