Advertisement
body_guard

_SAM.gsc

Feb 10th, 2013
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.08 KB | None | 0 0
  1. SamTurret()
  2. {
  3. self endon ( "disconnect" );
  4. self endon ( "death" );
  5. self beginLocationSelection( "map_artillery_selector", true, ( level.mapSize / 5.625 ) );
  6. self.selectingLocation = true;
  7. self waittill( "confirm_location", location, directionYaw );
  8.  
  9. NapalmLoc = BulletTrace( location, ( location + ( 0, 0, -100000 ) ), 0, self )[ "position" ];
  10. NapalmLoc += (0, 0, 400);
  11. self endLocationSelection();
  12. self.selectingLocation = undefined;
  13. self thread killstreakNotify(self.name,"SAM TURRET IN COMING");
  14. Plane = spawn("script_model", NapalmLoc+(-15000, 0, 5000) );
  15. Plane setModel( "vehicle_ac130_low_mp" );
  16. Plane.angles = (45, 119.004, 0);
  17. Plane playLoopSound( "veh_ac130_dist_loop" );
  18. Plane moveTo( NapalmLoc + (15000, 0, 2500), 10);
  19. wait 15;
  20. bomb = spawn("script_model", Plane.origin );
  21. bomb setModel( "projectile_hellfire_missile" );
  22. bomb.angles = self.origin;
  23. wait 1.6;
  24. TurretBox= spawn("script_model",bomb.origin-(0,0,0) );
  25. TurretBox setModel("com_plasticcase_beige_big");
  26. TurretBox.angles=bomb.angles;
  27. wait 2;
  28. self playsound("capture_a");
  29. TurretBox moveto(bomb.origin+(0,0,90),2);
  30. wait 1.5;
  31. sky = VectorToAngles( (self.origin+(0,0,500)) - (self.origin ));
  32. self playsound("capture_c");
  33. self rotateto(sky, 2);
  34. wait 5;
  35. for(;;)
  36. {
  37. self playsound("weap_cobra_missile_fire");
  38. self rotateYaw(360,4);
  39. wait 4;
  40. self rotateYaw(-360,4);
  41. wait 4;
  42. self thread SamFireSetup();
  43. }
  44. }
  45. SamFireSetup()
  46. {
  47. self endon("chopper_down");
  48. self endon("disconnect");
  49. team = owner.pers["team"]; //<---- Bug?
  50. for(;;)
  51. {
  52. if( (level.teambased) && (isDefined(level.chopper)) && (level.chopper.team !=team))
  53. {
  54. self thread SamFire();
  55. self notify("chopper_down");
  56. }
  57. }
  58. }
  59. SamFire()
  60. {
  61. self iPrintlnBold("Now wait to an helicopter come");
  62. targets = GetTargetList();
  63. targetsInReticle = [];
  64. foreach ( target in targets )
  65. {
  66. if ( !isDefined( target ) )
  67. continue;
  68. if ( bulletTracePassed( self.origin, target.origin, false, self ) )
  69. targetsInReticle[targetsInReticle.size] = target;
  70. }
  71. sortedTargets = SortByDistance( targetsInReticle, self.origin );
  72. self.stingerTarget = sortedTargets[0];
  73. rocket = MagicBullet( "stinger_mp", self.origin, self.stingerTarget.origin, self );
  74. rocket Missile_SetTargetEnt( self.stingerTarget );
  75. rocket Missile_SetFlightmodeDirect();
  76. }
  77.  
  78. GetTargetList()
  79. {
  80. targets = [];
  81. if ( level.teamBased )
  82. {
  83. if ( IsDefined( level.chopper ) && ( level.chopper.team != self.team || level.chopper.owner == self ) )
  84. targets[targets.size] = level.chopper;
  85. if ( isDefined( level.ac130player ) && level.ac130player.team != self.team )
  86. targets[targets.size] = level.ac130.planemodel;
  87. if ( isDefined( level.harriers) )
  88. {
  89. foreach( harrier in level.harriers )
  90. {
  91. if ( isDefined( harrier ) && ( harrier.team != self.team || ( isDefined( harrier.owner ) && harrier.owner == self ) ) )
  92. targets[targets.size] = harrier;
  93. }
  94. }
  95. if ( level.UAVModels[level.otherTeam[self.team]].size )
  96. {
  97. foreach ( UAV in level.UAVModels[level.otherTeam[self.team]] )
  98. targets[targets.size] = UAV;
  99. }
  100. if ( isDefined( level.littleBird ) )
  101. {
  102. foreach ( bird in level.littleBird )
  103. {
  104. if ( !isDefined( bird ) )
  105. continue;
  106. if ( self.team != bird.owner.team || self == bird.owner )
  107. targets[targets.size] = bird;
  108. }
  109. }
  110. }
  111. else
  112. {
  113. if ( IsDefined( level.chopper ) && ( level.chopper.owner != self ) ) ///check for teams
  114. targets[targets.size] = level.chopper;
  115. if ( isDefined( level.ac130player ) )
  116. targets[targets.size] = level.ac130.planemodel;
  117. if ( isDefined( level.harriers) )
  118. {
  119. foreach( harrier in level.harriers )
  120. {
  121. if ( isDefined( harrier ) )
  122. targets[targets.size] = harrier;
  123. }
  124. }
  125. if ( level.UAVModels.size )
  126. {
  127. foreach ( ownerGuid, UAV in level.UAVModels )
  128. {
  129. if ( isDefined( UAV.owner ) && UAV.owner == self )
  130. continue;
  131. targets[targets.size] = UAV;
  132. }
  133. }
  134. }
  135. return targets;
  136. }
  137. killStreakNotify(user,ks)
  138. {
  139. self endon("disconnect");
  140. foreach(P in level.players)
  141. {
  142. P.ksText setPoint( "RIGHT", "CENTER", 270, -50);
  143. P.ksText setText("^3"+user+"\n^7"+ks);
  144. wait 5;
  145. P.ksText moveOverTime(0.5);
  146. P.ksText setPoint( "CENTER", "CENTER", 600, -50);
  147. }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement