Advertisement
Adam445

grenade_cower.gsc

Mar 26th, 2016
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. #using_animtree ("generic_human");
  2.  
  3. main ( )
  4. {
  5. self trackScriptState( "GrenadeCower Main", "code" );
  6. self endon("killanimscript");
  7. animscripts\utility::initialize("grenadecower");
  8.  
  9. // We have 0.3 seconds before the initialize function zeros out all animations, so use some of that to
  10. // get some variation in timing. This allows groups of AI not to all crouch at exactly the same moment.
  11. wait ( randomfloat(0.25) ); // NB This will wait up to but not including 0.25 seconds.
  12.  
  13. // For now, we invent the position of the grenade, since we can't get it from code (yet?)
  14. if (randomint(100) < 50)
  15. {
  16. crouch2hide = %grenadehide_crouch2left;
  17. hideloop = %grenadehide_left;
  18. self.anim_grenadeCowerSide = "left";
  19. }
  20. else
  21. {
  22. crouch2hide = %grenadehide_crouch2right;
  23. hideloop = %grenadehide_right;
  24. self.anim_grenadeCowerSide = "right";
  25. }
  26.  
  27. if (self.anim_pose == "crouch")
  28. {
  29. self setFlaggedAnimKnoballRestart("hideanim",crouch2hide, %body, 1, .1, 1);
  30. }
  31. else if (self.anim_pose == "prone")
  32. {
  33. animscripts\stop::main();
  34. return; // Should never get to here
  35. }
  36. else // assume stand
  37. {
  38. self setFlaggedAnimKnoballRestart("hideanim",crouch2hide, %body, 1, .4, 1);
  39.  
  40. self.anim_pose = "crouch";
  41. }
  42.  
  43. self.anim_movement = "stop";
  44.  
  45. animscripts\shared::DoNoteTracks("hideanim");
  46. self setAnimKnoballRestart(hideloop, %body, 1, .1, 1);
  47. self.anim_StopCowering = ::StopCowering;
  48. for (;;)
  49. {
  50. wait 10;
  51. }
  52.  
  53. }
  54.  
  55.  
  56. StopCowering()
  57. {
  58. if ( self.anim_script == "pain" || self.anim_script == "death" )
  59. {
  60. self.anim_StopCowering = animscripts\init::DoNothing;
  61. return;
  62. }
  63. if (self.anim_grenadeCowerSide == "left")
  64. {
  65. hideloop = %grenadehide_left;
  66. hide2crouch = %grenadehide_left2crouch;
  67. }
  68. else
  69. {
  70. hideloop = %grenadehide_right;
  71. hide2crouch = %grenadehide_right2crouch;
  72. }
  73.  
  74. self setAnimKnoball(hideloop, %body, 1, .4, 1);
  75. wait ( randomfloat(0.25) ); // NB This will wait up to but not including 0.25 seconds.
  76. self setFlaggedAnimKnoballRestart("hideanim",hide2crouch, %body, 1, .4, 1);
  77. self.anim_pose = "crouch";
  78. self.anim_StopCowering = animscripts\init::DoNothing;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement