Uncool Animation Problem
Posted: Sat May 23, 2009 4:38 pm
So I modified the patrol order from the perfectai script so that the pawn talks to the player, then starts following the script points, than stops, checks if the player is near to the pawn and if true, proceeds to the next script point...The problem is that there's a strange bug, the walking animation is played once or twice, then the animation freezes like it's an AnimateStop() command...
Here's a vid of this, don't look at the level, it's far from done
http://www.mediafire.com/download.php?nngmdyem5t0
Also the pawn won't play it's death animation if it's attribute goes to zero, but Juutis explained me why is that in a previous topic...
My goal is to create a pawn that leads the way, opens locked doors etc. bu also shoots enemy pawns when they are in it's range.
Here's the script for the pawn's actions...the rest of the code is perfectai.
Here's a vid of this, don't look at the level, it's far from done

http://www.mediafire.com/download.php?nngmdyem5t0
Also the pawn won't play it's death animation if it's attribute goes to zero, but Juutis explained me why is that in a previous topic...
My goal is to create a pawn that leads the way, opens locked doors etc. bu also shoots enemy pawns when they are in it's range.
Here's the script for the pawn's actions...the rest of the code is perfectai.
Code: Select all
Patrol[ ()
{
NextPoint();
RotateToPoint("SG_TurnLeft", 190, false, "" );
MoveToPoint("SG_Walk_N_Run", 200, "");
SetEventState("grunttalk1", true);
Delay("SG_Idle", 3, "");
NextPoint();
RotateToPoint("SG_TurnLeft", 190, false, "" );
MoveToPoint("SG_Walk_N_Run", 200, "");
SetEventState("grunttalk2", true);
NextPoint();
RotateMoveToPoint("SG_Walk_N_Run", 130, 150, false, "");
MoveToPoint("SG_Walk_N_Run", 200, "");
NewOrder("PatrolCheck1");
} ]
PatrolCheck1[ ()
{
CURRENTORDER = "PatrolCheck1";
PlayAnimation(STAND, true, "");
PlayerDistOrder(150, "Patrol1");
RestartOrder();
} ]
Patrol1[ ()
{
CURRENTORDER = "Patrol1";
NextPoint();
RotateMoveToPoint("SG_Walk_N_Run", 130, 150, false, "");
MoveToPoint("SG_Walk_N_Run", 200, "");
NewOrder("PatrolCheck2");
} ]
PatrolCheck2[ ()
{
CURRENTORDER = "PatrolCheck2";
PlayAnimation(STAND, true, "");
PlayerDistOrder(150, "Patrol2");
RestartOrder();
} ]
Patrol2[ ()
{
CURRENTORDER = "Patrol2";
NextPoint();
RotateMoveToPoint("SG_Walk_N_Run", 130, 150, false, "");
MoveToPoint("SG_Walk_N_Run", 200, "");
Delay("SG_Walk_N_Stop", 0.85, "");
NextPoint();
RotateToPoint("SG_TurnLeft", 190, false, "" );
Delay("SG_Holster", 1.65, "");
Delay("Push_Button_Low", 1.7, "");
SetEventState("gen1dtrig", true);
LowLevel("CheckIfOk");
} ]
CheckIfOk[ ()
{
if (GetEventState("gen14ever"))
{
HighLevel("PatrolCheck3");
}
} ]
PatrolCheck3[ ()
{
PlayerDistOrder(200, "Patrol3");
} ]
Patrol3[ ()
{
Delay("SG_Draw", 1, "");
NextPoint();
RotateToPoint("SG_TurnLeft", 190, false, "" );
MoveToPoint("SG_Walk_N_Run", 200, "");
Delay("SG_Walk_N_Stop", 0.85, "");
Delay("SG_Radio_Call", 5.18, "");
NextPoint();
RotateMoveToPoint("SG_Walk_N_Run", 130, 150, false, "");
MoveToPoint("SG_Walk_N_Run", 200, "");
Delay("SG_Holster", 1.65, "");
Delay("SG_Reload", 2.33, "");
SetEventState("bombspawn", true);
NextPoint();
RotateToPoint("SG_TurnLeft", 210, false, "" );
MoveToPoint("SG_Walk_N_Run", 200, "");
NextPoint();
SetNoCollision();
MoveToPoint("SG_Roll_N", 170, "");
SetCollision();
NewOrder("Patrol4");
} ]
Patrol4[ ()
{
Delay("SG_Idle", 1, "");
NextPoint();
RotateToPoint("SG_TurnLeft", 190, false, "" );
MoveToPoint("SG_Walk_N_Run", 200, "");
} ]