Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\mp\_utility;
  3. #include maps\mp\gametypes\_hud_util;
  4.  
  5. init()
  6. {
  7. level thread onPlayerConnect();
  8. }
  9.  
  10. onPlayerConnect()
  11. {
  12. while( true )
  13. {
  14. level waittill( "connected", player );
  15. player thread onPlayerSpawned();
  16. }
  17. }
  18.  
  19. onPlayerSpawned()
  20. {
  21. self endon( "disconnect" );
  22.  
  23. while( true )
  24. {
  25. self waittill( "spawned_player" );
  26. self thread spotEnemies();
  27. }
  28. }
  29.  
  30. spotEnemies()
  31. {
  32. self endon( "disconnect" );
  33. self endon( "death" );
  34.  
  35. distanceText = self createFontString( "smallfixed", 1 );
  36. distanceText setPoint( "CENTER", "CENTER", 10, 7 );
  37. distanceText.color = ( 51/255, 215/255, 54/255 );
  38. self thread destroyOnDeath( distanceText );
  39.  
  40. while( true )
  41. {
  42. wait .05;
  43.  
  44. if( self getCurrentWeapon() != "binoculars_mp" )
  45. continue;
  46.  
  47. if( !self playerADS() )
  48. continue;
  49.  
  50. start = self getTagOrigin( "tag_eye" );
  51. end = start + vecScale( anglesToForward( self getPlayerAngles() ), level.rm_maxbulletrange );
  52. trace = bulletTrace( start, end, true, self );
  53.  
  54. meters = inchesToMetres( distance( start, trace["position"] ) );
  55. distanceText setText( meters + "m" );
  56.  
  57. if( !isDefined( trace["entity"] ) )
  58. continue;
  59.  
  60. if( !isPlayer( trace["entity"] ) )
  61. continue;
  62.  
  63. spottedEnemy = trace["entity"];
  64. spotFailed = false;
  65. for( i = 0; i < 30; i++ )
  66. {
  67. start = self getTagOrigin( "tag_eye" );
  68. end = start + vecScale( anglesToForward( self getPlayerAngles() ), level.rm_maxbulletrange );
  69. trace = bulletTrace( start, end, true, self );
  70.  
  71. meters = inchesToMetres( distance( start, trace["position"] ) );
  72. distanceText setText( meters + "m" );
  73.  
  74. if( !isPlayer( trace["entity"] ) || ( trace["entity"] != spottedEnemy ) || !self playerADS() )
  75. {
  76. spotFailed = true;
  77. break;
  78. }
  79.  
  80. wait .05;
  81. }
  82.  
  83. if( spotFailed )
  84. continue;
  85.  
  86. self maps\mp\gametypes\_battlechatter_mp::mpSayLocalSound( self, "enemy", "infantry", false );
  87. }
  88. }
  89.  
  90. destroyOnDeath( hudElem )
  91. {
  92. self waittill( "death" );
  93. hudElem destroy();
  94. }
  95.  
  96. inchesToMetres( inches )
  97. {
  98. return ( inches * 0.0254 );
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement