Advertisement
Guest User

Untitled

a guest
Sep 29th, 2010
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. #include maps\mp\_utility;
  2. #include common_scripts\utility;
  3.  
  4. init()
  5. {
  6. precacheShellShock( "frag_grenade_mp" );
  7. precacheShellShock( "damage_mp" );
  8. precacheRumble( "artillery_rumble" );
  9. precacheRumble( "grenade_rumble" );
  10.  
  11. precacheMenu( "dirt_effect_center" );
  12. precacheMenu( "dirt_effect_left" );
  13. precacheMenu( "dirt_effect_right" );
  14. }
  15.  
  16. shellshockOnDamage( cause, damage )
  17. {
  18. if ( self maps\mp\_flashgrenades::isFlashbanged() )
  19. return; // don't interrupt flashbang shellshock
  20.  
  21. if ( self _hasPerk( "specialty_blastshield" ) )
  22. return;
  23.  
  24. if ( cause == "MOD_EXPLOSIVE" ||
  25. cause == "MOD_GRENADE" ||
  26. cause == "MOD_GRENADE_SPLASH" ||
  27. cause == "MOD_PROJECTILE" ||
  28. cause == "MOD_PROJECTILE_SPLASH" )
  29. {
  30. time = 0;
  31.  
  32. if(damage >= 90)
  33. time = 4;
  34. else if(damage >= 50)
  35. time = 3;
  36. else if(damage >= 25)
  37. time = 2;
  38. else if(damage > 10)
  39. time = 2;
  40.  
  41. if ( time )
  42. {
  43. self shellshock("frag_grenade_mp", 0.5);
  44. }
  45. }
  46. }
  47.  
  48. endOnDeath()
  49. {
  50. self waittill( "death" );
  51. waittillframeend;
  52. self notify ( "end_explode" );
  53. }
  54.  
  55. grenade_earthQuake()
  56. {
  57. self thread endOnDeath();
  58. self endon( "end_explode" );
  59. self waittill( "explode", position );
  60. PlayRumbleOnPosition( "grenade_rumble", position );
  61. earthquake( 0.5, 0.75, position, 800 );
  62.  
  63. foreach ( player in level.players )
  64. {
  65. if ( player isUsingRemote() )
  66. continue;
  67.  
  68. if ( distance( position, player.origin ) > 600 )
  69. continue;
  70.  
  71. if ( player DamageConeTrace( position ) )
  72. player thread dirtEffect( position );
  73. }
  74. }
  75.  
  76.  
  77. dirtEffect( position )
  78. {
  79. self endon ( "disconnect" );
  80.  
  81. forwardVec = vectorNormalize( anglesToForward( self.angles ) );
  82. rightVec = vectorNormalize( anglesToRight( self.angles ) );
  83. grenadeVec = vectorNormalize( position - self.origin );
  84.  
  85. fDot = vectorDot( grenadeVec, forwardVec );
  86. rDot = vectorDot( grenadeVec, rightVec );
  87.  
  88. printLn( fDot );
  89. printLn( rDot );
  90.  
  91. effectMenus = [];
  92. if ( fDot > 0 && fDot > 0.5 && self getCurrentWeapon() != "riotshield_mp" )
  93. effectMenus[effectMenus.size] = "dirt_effect_center";
  94.  
  95. if ( abs(fDot) < 0.866 )
  96. {
  97. if ( rDot > 0 )
  98. effectMenus[effectMenus.size] = "dirt_effect_right";
  99. else
  100. effectMenus[effectMenus.size] = "dirt_effect_left";
  101. }
  102.  
  103. foreach ( menu in effectMenus )
  104. self openMenu( menu );
  105.  
  106. if ( isAlive( self ) )
  107. self waittill_notify_or_timeout( "death", 2.0 );
  108.  
  109. foreach ( menu in effectMenus )
  110. self closeMenu( menu );
  111. }
  112.  
  113. c4_earthQuake()
  114. {
  115. self thread endOnDeath();
  116. self endon( "end_explode" );
  117. self waittill( "explode", position );
  118. PlayRumbleOnPosition( "grenade_rumble", position );
  119. earthquake( 0.4, 0.75, position, 512 );
  120. }
  121.  
  122. barrel_earthQuake()
  123. {
  124. PlayRumbleOnPosition( "grenade_rumble", self.origin );
  125. earthquake( 0.4, 0.5, self.origin, 512 );
  126. }
  127.  
  128.  
  129. artillery_earthQuake()
  130. {
  131. PlayRumbleOnPosition( "artillery_rumble", self.origin );
  132. earthquake( 0.7, 0.5, self.origin, 800 );
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement