Advertisement
ScriptzMoDz

[GSC] BO2 Drivable Car

Sep 16th, 2014
564
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.76 KB | None | 0 0
  1. spawnDrivableCar()
  2. {
  3. if(!isDefined(self.car["spawned"]))
  4. {
  5. setDvar("cg_thirdPersonRange", "300");
  6. self.car["carModel"] = "veh_t6_drone_rcxd";
  7. self.car["spawned"] = true;
  8. self.car["runCar"] = true;
  9. self.car["spawnPosition"] = self.origin + VectorScale(AnglesToForward((0, self getPlayerAngles()[1], self getPlayerAngles()[2])), 100);
  10. self.car["spawnAngles"] = (0, self getPlayerAngles()[1], self getPlayerAngles()[2]);
  11.  
  12. self.car["carEntity"] = spawn("script_model", self.car["spawnPosition"]);
  13. self.car["carEntity"].angles = self.car["spawnAngles"];
  14. self.car["carEntity"] setModel(self.car["carModel"]);
  15.  
  16. wait .2;
  17. thread Vehicle_Wait_Think();
  18.  
  19. }
  20. else
  21. iPrintln("You Can Only Spawn One Car At A Time!");
  22. }
  23.  
  24. Vehicle_Wait_Think()
  25. {
  26. self endon("disconnect");
  27. self endon("end_car");
  28.  
  29. while(self.car["runCar"])
  30. {
  31. if(distance(self.origin, self.car["carEntity"].origin) < 120)
  32. {
  33. if(self useButtonPressed())
  34. {
  35. if(!self.car["inCar"])
  36. {
  37. iPrintln("Press [{+attack}] To Accelerate");
  38. iPrintln("Press [{+speed_throw}] To Reverse/Break");
  39. iPrintln("Press [{+reload}] To Exit Car");
  40.  
  41. self.car["speed"] = 0;
  42. self.car["inCar"] = true;
  43.  
  44. self disableWeapons();
  45. self detachAll();
  46. self setOrigin(((self.car["carEntity"].origin) + (AnglesToForward(self.car["carEntity"].angles) * 20) + (0, 0, 3)));
  47. self hide();
  48. self setClientThirdPerson(true);
  49. self setPlayerAngles(self.car["carEntity"].angles + (0, 0, 0));
  50. self PlayerLinkTo(self.car["carEntity"]);
  51.  
  52. thread Vehicle_Physics_Think();
  53. thread Vehicle_Death_Think();
  54.  
  55. wait 1;
  56. }
  57. else
  58. thread Vehicle_Exit_Think();
  59. }
  60. }
  61. wait .05;
  62. }
  63. }
  64.  
  65. Vehicle_Physics_Think()
  66. {
  67. self endon("disconnect");
  68. self endon("end_car");
  69.  
  70. self.car["speedBar"] = drawBar((1, 1, 1), 100, 7, "", "", 0, 170);
  71. carPhysics = undefined;
  72. carTrace = undefined;
  73. newCarAngles = undefined;
  74.  
  75. while(self.car["runCar"])
  76. {
  77. carPhysics = ((self.car["carEntity"].origin) + ((AnglesToForward(self.car["carEntity"].angles) * (self.car["speed"] * 2)) + (0, 0, 100)));
  78. carTrace = bulletTrace(carPhysics, ((carPhysics) - (0, 0, 130)), false, self.car["carEntity"])["position"];
  79. if(self attackButtonPressed())
  80. {
  81. if(self.car["speed"] < 0)
  82. self.car["speed"] = 0;
  83.  
  84. if(self.car["speed"] < 50)
  85. self.car["speed"] += 0.4;
  86.  
  87. newCarAngles = vectorToAngles(carTrace - self.car["carEntity"].origin);
  88. self.car["carEntity"] moveTo(carTrace, 0.2);
  89. self.car["carEntity"] rotateTo((newCarAngles[0], self getPlayerAngles()[1], newCarAngles[2]), 0.2);
  90. }
  91. else
  92. {
  93. if(self.car["speed"] > 0)
  94. {
  95. newCarAngles = vectorToAngles(carTrace - self.car["carEntity"].origin);
  96. self.car["speed"] -= 0.7;
  97. self.car["carEntity"] moveTo(carTrace, 0.2);
  98. self.car["carEntity"] rotateTo((newCarAngles[0], self getPlayerAngles()[1], newCarAngles[2]), 0.2);
  99. }
  100. }
  101. if(self adsButtonPressed())
  102. {
  103. if(self.car["speed"] > -20)
  104. {
  105. if(self.car["speed"] < 0)
  106. newCarAngles = vectorToAngles(self.car["carEntity"].origin - carTrace);
  107.  
  108. self.car["speed"] -= 0.5;
  109. self.car["carEntity"] moveTo(carTrace, 0.2);
  110. }
  111. else
  112. self.car["speed"] += 0.5;
  113.  
  114. self.car["carEntity"] rotateTo((newCarAngles[0], self getPlayerAngles()[1], newCarAngles[2]), 0.2);
  115. }
  116. else
  117. {
  118. if(self.car["speed"] < -1)
  119. {
  120. if(self.car["speed"] < 0)
  121. newCarAngles = vectorToAngles(self.car["carEntity"].origin - carTrace);
  122.  
  123. self.car["speed"] += 0.8;
  124. self.car["carEntity"] moveTo(carTrace, 0.2);
  125. self.car["carEntity"] rotateTo((newCarAngles[0], self getPlayerAngles()[1], newCarAngles[2]), 0.2);
  126. }
  127. }
  128. self.car["speedBar"] updateBar(self.car["speed"]/50);
  129. wait 0.05;
  130. }
  131. }
  132.  
  133. Vehicle_Death_Think()
  134. {
  135. self endon("disconnect");
  136. self endon("end_car");
  137.  
  138. self waittill("death");
  139. if(self.car["inCar"])
  140. thread Vehicle_Exit_Think();
  141. else
  142. self.car["carEntity"] delete();
  143. wait 0.2;
  144. }
  145.  
  146. Vehicle_Exit_Think()
  147. {
  148. self.car["speed"] = 0;
  149. self.car["inCar"] = false;
  150. self.car["runCar"] = false;
  151. self.car["spawned"] = undefined;
  152. self.car["speedBar"] destroyElem();
  153. self.car["carEntity"] delete();
  154.  
  155. self unlink();
  156. self enableWeapons();
  157. self show();
  158. self setClientThirdPerson(false);
  159.  
  160. wait 0.3;
  161. self notify("end_car");
  162. }
  163.  
  164. traceBullet(distance)
  165. {
  166. if (!isDefined(distance))
  167. distance = 10000000;
  168. return bulletTrace(self getEye(), self getEye() + vectorScale(AnglesToForward(self getPlayerAngles()), distance), false, self)["position"];
  169. }
  170.  
  171. drawBar(color, width, height, align, relative, x, y)
  172. {
  173. bar = createBar(color, width, height, self);
  174. bar setPoint(align, relative, x, y);
  175. bar.hideWhenInMenu = true;
  176. return bar;
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement