Advertisement
Guest User

Untitled

a guest
Jan 26th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. function marksman_additional_fire( is_not_upgraded )
  2. {
  3.  
  4. fire_angles = self getPlayerAngles();
  5. fire_origin = self getPlayerCameraPos();
  6.  
  7. v_player_angles = vectorToAngles( self getWeaponForwardDir() );
  8. v_player_angles = blundersplat_randomize_angles( v_player_angles );
  9. v_shot_start = self getWeaponMuzzlePoint();
  10.  
  11. a_targets = arrayCombine( getaiarray( "axis" ), getvehiclearray( "axis" ), 0, 0 );
  12. a_targets = util::get_array_of_closest( self.origin, a_targets, undefined, undefined, 1500 );
  13. n_fuse_timer = randomFloatRange( 3, 4 );
  14.  
  15. _a161 = a_targets;
  16. _k161 = getFirstArrayKey( _a161 );
  17. while ( isDefined( _k161 ) )
  18. {
  19. target = _a161[ _k161 ];
  20. if ( util::within_fov( v_shot_start, v_player_angles, target.origin, cos( 30 ) ) )
  21. {
  22. if ( isAi( target ) )
  23. {
  24. if ( !isDefined( target.blundersplat_marked ) )
  25. {
  26. a_tags = [];
  27. a_tags[ 0 ] = "j_hip_le";
  28. a_tags[ 1 ] = "j_hip_ri";
  29. a_tags[ 2 ] = "j_spine4";
  30. a_tags[ 3 ] = "j_elbow_le";
  31. a_tags[ 4 ] = "j_elbow_ri";
  32. a_tags[ 5 ] = "j_clavicle_le";
  33. a_tags[ 6 ] = "j_clavicle_ri";
  34. str_tag = a_tags[ randomInt( a_tags.size ) ];
  35. b_trace_pass = bulletTracePassed( v_shot_start, target gettagorigin( str_tag ), 1, self, target );
  36. if ( b_trace_pass )
  37. {
  38. target thread blundersplat_marked();
  39. e_dart = self magicMissile( getWeapon( "h1_m1911_proj" ), v_shot_start, target getTagOrigin( str_tag ), self );
  40. return;
  41. }
  42. }
  43. }
  44. }
  45. _k161 = getNextArrayKey( _a161, _k161 );
  46. }
  47. v_shot_end = v_shot_start + ( anglesToForward( v_player_angles ) * 20000 );
  48.  
  49. e_dart = self magicMissile( getWeapon( BLUNDERSPLAT_PROJECTILE_WEAPONFILE ), v_shot_start, v_shot_end, self );
  50. }
  51.  
  52. function blundersplat_randomize_angles( angles )
  53. {
  54. n_x = angles[ 0 ] - 5 + randomInt( 5 );
  55. n_y = angles[ 1 ] - 5 + randomInt( 5 );
  56. n_z = angles[ 2 ] - 5 + randomInt( 5 );
  57. return ( n_x, n_y, n_z );
  58. }
  59.  
  60. function blundersplat_marked()
  61. {
  62. self endon( "death" );
  63. self.blundersplat_marked = 1;
  64. wait 1;
  65. self.blundersplat_marked = undefined;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement