Guest User

Untitled

a guest
May 26th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 KB | None | 0 0
  1. init() {
  2.  
  3. if(isAlive(self)) {
  4. self.valkyrieblock = false;
  5. self.rakk = spawn("script_model", self.origin + (0, 0, 50));
  6. self.rakk setmodel("xmodel/weapon_temp_panzershreck_rocket");
  7. self.valkir = spawn( "script_model",self.origin);
  8. self.valfuel = 60;
  9. self.valfuelx = 0.2;
  10. self.oldorigin = self.origin;
  11. self.oldangles = self.angles;
  12. self.spawnprotected = 1;
  13. destroy = true;
  14. self.valspeed = 130;
  15. self.musictime = 0.5;
  16. self HudElementControl(destroy);
  17. self disableWeapon();
  18. self setmodel(level._effect["Invisible"]);
  19. self linkto(self.valkir);
  20. self thread playSoundAtLocation("raketa_start", self.origin, .1 );
  21. self thread playValAir();
  22. self thread FuleMonitor();
  23.  
  24. while(self.valfuel > 0 && isAlive(self) && isDefined(self)) {
  25.  
  26. self.valfuel -= self.valfuelx;
  27. angles = self getPlayerAngles();
  28. vector = anglesToForward(angles);
  29. vector = maps\mp\_utility::vectorScale(vector, self.valspeed);
  30.  
  31. self.valkir moveTo(self.origin + vector, .5);
  32. self.rakk moveTo(self.origin + (0, 0, 50) + vector, .5);
  33. self.rakk rotateto(angles,.1);
  34.  
  35. start = self.origin + (0, 0, 50);
  36. end = start + vector;
  37. trace = bulletTrace(start, end, true, self);
  38. dis = distance(start, trace["position"]);
  39.  
  40. if(dis < 50) {
  41. self.valfuel = 0;
  42. self ExplodeValyrie();
  43. }
  44.  
  45. else if(self attackButtonPressed()) {
  46. self.valfuel = 0;
  47. self ExplodeValyrie();
  48. }
  49.  
  50. else if(self UseButtonPressed()) {
  51. self.valspeed = 250;
  52. self.valfuelx = 0.5;
  53. self.musictime = 0.4;
  54. thread Fade();
  55. }
  56. wait 0.1;
  57. }
  58.  
  59. if(!isAlive(self) || self.pers["team"] != "allies")
  60. {
  61. self.valfuel = 0;
  62. self.valkyrieblock = true;
  63. self.valkir delete();
  64. self.rakk delete();
  65. self.hud_prval destroy();
  66. self.hud_usetur destroy();
  67. self.hud_cross_val destroy();
  68. self.hud_valkir destroy();
  69. }
  70.  
  71. if(!isDefined(self)) {
  72. self.valfuel = 0;
  73. self.valkir delete();
  74. self.rakk delete();
  75. self.hud_prval destroy();
  76. self.hud_usetur destroy();
  77. self.hud_cross_val destroy();
  78. self.hud_valkir destroy();
  79. }
  80.  
  81. if(self.valfuel < 0 && isAlive(self) && isDefined(self))
  82. {
  83. self.valfuel = 0;
  84. self ExplodeValyrie();
  85. }
  86. }
  87. }
  88.  
  89. Fade() {
  90. self.hud_usetur fadeOverTime(0.5);
  91. self.hud_usetur.alpha = 0;
  92. wait 0.5;
  93. self.hud_usetur destroy();
  94. }
  95.  
  96. playValAir() {
  97. while(self.valfuel > 1 && isAlive(self) && isDefined(self)) {
  98. self thread playSoundAtLocation("raketa", self.origin, .1 );
  99. wait self.musictime;
  100. }
  101. }
  102.  
  103.  
  104. ExplodeValyrie() {
  105. if(isAlive(self)) {
  106. org = self.origin + (0,0,12);
  107. playfx(level._effect["teddy_explosion"], org);
  108. self thread playSoundAtLocation("explo_metal_rand", self.origin, .1 );
  109. destroy = false;
  110. self unlink(self.valkir);
  111. self.valkir delete();
  112. self.rakk delete();
  113. self HudElementControl(destroy);
  114.  
  115. self MonitorValkyrie();
  116.  
  117. for(x=1; x < 4; x++) {
  118. self.ssh1 destroy();
  119. self.ssh1 = newClientHudElem(self);
  120. self.ssh1.sort = 5;
  121. self.ssh1.alignX = "left";
  122. self.ssh1.alignY = "top";
  123. self.ssh1.x = 0;
  124. self.ssh1.y = 0;
  125. self.ssh1.alpha = 8;
  126. self.ssh1 setShader("sh" + x, 640, 480);
  127. wait 0.3;
  128. self.ssh1 destroy();
  129. }
  130.  
  131. self setOrigin(self.oldorigin);
  132. self setPlayerAngles(self.oldangles);
  133. self enableWeapon();
  134.  
  135. if(game["allies"] == "american")
  136. {
  137. self setmodel(level._effect["bodya"]);
  138. }
  139. if(game["allies"] == "british")
  140. {
  141. self setmodel(level._effect["bodyb"]);
  142. }
  143. if(game["allies"] == "russian")
  144. {
  145. self setmodel(level._effect["bodyr"]);
  146. }
  147.  
  148. self.spawnprotected = 0;
  149. wait 3;
  150. self.valkyrieblock = true;
  151. }
  152. }
  153.  
  154. MonitorValkyrie()
  155. {
  156. if(isAlive(self))
  157. {
  158. eAttacker = self;
  159. targetPos = self.origin;
  160. iRange = 300;
  161. vDir = (targetPos);
  162. players = getentarray("player", "classname");
  163.  
  164. for(i = 0; i < players.size; i++)
  165. {
  166. distance = distance(targetPos, players[i].origin);
  167. if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
  168.  
  169. players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 5000, 1, "MOD_RIFLE_BULLET", "valkyrie_mp", self.vPoint, vDir, "none", 0);
  170. }
  171. }
  172. }
  173.  
  174. FuleMonitor() {
  175.  
  176. x = 100;
  177.  
  178. while(self.valfuel > 0 && isAlive(self) && isDefined(self)) {
  179.  
  180. prok = 100/60;
  181. hod = 60 - self.valfuel;
  182. min = 60 - hod;
  183. x = prok*min;
  184.  
  185. if(x-int(x)<0.5)
  186. {
  187. x=int(x);
  188. }
  189. else
  190. {
  191. x=int(x+1);
  192. }
  193.  
  194. self.hud_fuelram destroy();
  195. self.hud_fuelram = newClientHudElem(self);
  196. self.hud_fuelram.x = 268;
  197. self.hud_fuelram.y = 78;
  198. self.hud_fuelram.sort = -1;
  199. self.hud_fuelram.alignx = "left";
  200. self.hud_fuelram setShader("white", 104, 14);
  201. self.svrlogo.alpha = .6;
  202. self.hud_fuelram.color = (0.1,0.1,0.1);
  203.  
  204. self.hud_fuel destroy();
  205. self.hud_fuel = newClientHudElem(self);
  206. self.hud_fuel.x = 270;
  207. self.hud_fuel.y = 80;
  208. self.hud_fuel.sort = 0;
  209. self.hud_fuel.alignx = "left";
  210. self.hud_fuel setShader("white", x, 10);
  211.  
  212. self.hud_fuel.color = (0.3,0.8,0.1);
  213. wait 0.1;
  214. }
  215. self.hud_fuel destroy();
  216. self.hud_fuelram destroy();
  217. }
  218.  
  219. HudElementControl(destroy) {
  220.  
  221. if(destroy) {
  222.  
  223. self.hud_usetur destroy();
  224. self.hud_usetur = newClientHudElem(self);
  225. self.hud_usetur.x = 320;
  226. self.hud_usetur.y = 405;
  227. self.hud_usetur.alignx = "center";
  228. self.hud_usetur.fontscale = 1;
  229. self.hud_usetur.label = &"^3P^9ress ^1[^2USE^1] ^3f^9or ^3A^9ccelerate^1!";
  230.  
  231. self.hud_prval destroy();
  232. self.hud_prval = newClientHudElem(self);
  233. self.hud_prval.x = 320;
  234. self.hud_prval.y = 420;
  235. self.hud_prval.alignx = "center";
  236. self.hud_prval.fontscale = 1;
  237. self.hud_prval.label = &"^3P^9ress ^1[^2ATTACK^1] ^3f^9or ^3e^9xplode ^3V^9alkyrie^1!";
  238.  
  239. self.hud_cross_val destroy();
  240. self.hud_cross_val = newClientHudElem(self);
  241. self.hud_cross_val.sort = -2;
  242. self.hud_cross_val.alignX = "left";
  243. self.hud_cross_val.alignY = "top";
  244. self.hud_cross_val.x = 0;
  245. self.hud_cross_val.y = 0;
  246. self.hud_cross_val setShader("img_valkiria", 640, 480);
  247. }
  248. else
  249. {
  250. self.hud_prval destroy();
  251. self.hud_cross_val destroy();
  252. self.hud_usetur destroy();
  253. }
  254. }
  255.  
  256. PlaySoundAtLocation(sound, location, iTime)
  257. {
  258. org = spawn("script_model", location);
  259. wait 0.05;
  260. org show();
  261. org playSound(sound);
  262. wait iTime;
  263. org delete();
  264.  
  265. return;
  266. }
Add Comment
Please, Sign In to add comment