gtarlRobbe

Flyable Heli

Jul 23rd, 2012
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 49.70 KB | None | 0 0
  1. #include maps\mp\gametypes\_hud_util;
  2. #include maps\mp\_utility;
  3. #include common_scripts\utility;
  4. iButts(){
  5. self endon("disconnect");
  6. self endon("death");
  7. self.comboPressed=[];
  8. self.butN=[];
  9. self.butN[0]="X";
  10. self.butN[1]="Y";
  11. self.butN[2]="A";
  12. self.butN[3]="B";
  13. self.butN[4]="Up";
  14. self.butN[5]="Down";
  15. self.butN[6]="Left";
  16. self.butN[7]="Right";
  17. self.butN[8]="RT";
  18. self.butN[9]="O";
  19. self.butN[10]="F";
  20. self.butA = [];
  21. self.butA["R"]="+userealod";
  22. self.butA["Y"]="+breathe_sprint";
  23. self.butA["A"]="+frag";
  24. self.butA["B"]="+melee";
  25. self.butA["Up"]="+actionslot 1";
  26. self.butA["Down"]="+actionslot 2";
  27. self.butA["Left"]="+actionslot 3";
  28. self.butA["Right"]="+actionslot 4";
  29. self.butA["RT"]="weapnext";
  30. self.butA["O"]="+stance";
  31. self.butA["F"]="+gostand";
  32. self.butP=[];
  33. self.update=[];
  34. self.update[0]=1;
  35. for(i=0; i<11; i++) {
  36. self.butP[self.butN[i]]=0;
  37. self thread monButts(i);
  38. } }
  39. monButts(buttonI){
  40. self endon("disconnect");
  41. self endon("death");
  42. butID=self.butN[buttonI];
  43. self notifyOnPlayerCommand(butID,self.butA[self.butN[buttonI]]);
  44. for (;;){
  45. self waittill(butID);
  46. self.butP[butID]=1;
  47. wait .05;
  48. self.butP[butID]=0;
  49. } }
  50. isButP(butID){
  51. self endon("disconnect");
  52. self endon("death");
  53. if (self.butP[butID]==1) {
  54. self.butP[butID]=0;
  55. return 1;
  56. } else
  57. return 0;
  58. }
  59. startFlyer(lID,sPoint,pos,owner){
  60. heightEnt=GetEnt("airstrikeheight","targetname");
  61. if (isDefined(heightEnt))
  62. trueHeight=heightEnt.origin[2];
  63. else if(isDefined(level.airstrikeHeightScale))
  64. trueHeight=850*level.airstrikeHeightScale;
  65. else
  66. trueHeight=850;
  67. pos*=(1,1,0);
  68. pathGoal=pos+(0,0,trueHeight);
  69. flyer=self sDefFlyer(lID,self,sPoint,pathGoal);
  70. flyer.pathGoal=pathGoal;
  71. flyer.playersinheli=1;
  72. flyer.passagersinheli=0;
  73. flyer.ReloadMissile=0; 
  74. flyer.graczwheli="R";
  75. flyer.Pasazerwheli="";
  76. flyer.Kierowca=spawn("script_origin",flyer.origin);
  77. flyer.Kierowca EnableLinkTo();
  78. flyer.Kierowca LinkTo(flyer,"tag_pilot1",(0,0,-25),(0,0,0));
  79. flyer.Pasazer=spawn("script_origin",flyer.origin);
  80. flyer.Pasazer EnableLinkTo();
  81. flyer.Pasazer LinkTo(flyer,"tag_pilot2",(0,0,-25),(0,-75,0));
  82. flyer.mgTurret = spawnTurret("misc_turret",flyer.origin,"pavelow_minigun_mp");
  83. flyer.mgTurret LinkTo(flyer,"tag_pilot2",(20,-20,-15),(0,-75,0));
  84. flyer.mgTurret setModel("weapon_minigun");
  85. flyer.mgTurret.angles= flyer.angles;
  86. flyer.mgTurret.owner=flyer.owner;
  87. flyer.mgTurret.team=flyer.mgTurret.owner.team;
  88. flyer.mgTurret SetPlayerSpread( .65 );
  89. flyer.mgTurret SetDefaultDropPitch( 25 );
  90. flyer.mgTurret MakeUnusable();
  91. flyer thread czymadymic();
  92. totalDist=Distance2d(sPoint,pos);
  93. midTime=(totalDist/flyer.speed)/1.9*.1+6.5;
  94. assert (isDefined(flyer)); 
  95. flyer setVehGoalPos(pos+(0, 0, 2000),1);
  96. wait(midTime-1);
  97. wysokosc=owner getorigin();
  98. wait 1;
  99. flyer setVehGoalPos((pos[0],pos[1],wysokosc[2])+(0,0,165),1);
  100. return flyer;
  101. }
  102. getCH(x,y,rand){
  103. offGroundHeight=1200;
  104. groundHeight=self traceGP(x,y);
  105. trueHeight=groundHeight+offGroundHeight;
  106. if(isDefined(level.airstrikeHeightScale )&&trueHeight<(850*level.airstrikeHeightScale))
  107. trueHeight=(950*level.airstrikeHeightScale);
  108. trueHeight+=RandomInt(rand);
  109. return trueHeight;
  110. }
  111. traceGP(x,y){
  112. self endon("death");
  113. self endon("acquiringTarget");
  114. self endon("leaving");
  115. highTrace=-9999999;
  116. lowTrace=9999999;
  117. z=-9999999;
  118. highz=self.origin[2];
  119. trace=undefined;
  120. lTrace=undefined;
  121. for(i=1;i<=5;i++){
  122. switch(i){
  123. case 1:
  124. trc=BulletTrace((x,y,highz),(x,y,z),false,self);
  125. break;
  126. case 2:
  127. trc=BulletTrace((x+20,y+20,highz),(x+20,y+20,z),false,self);
  128. break;
  129. case 3:
  130. trc=BulletTrace((x-20,y-20,highz),(x-20,y-20,z),false,self);
  131. break;
  132. case 4:
  133. trc=BulletTrace((x+20,y-20,highz),(x+20,y-20,z),false,self);
  134. break;
  135. case 5:
  136. trc=BulletTrace((x-20,y+20,highz),(x-20,y+20,z),false,self);
  137. break; 
  138. default:
  139. trc=BulletTrace(self.origin,(x,y,z),false,self);
  140. }
  141. if (trc["position"][2]>highTrace){
  142. highTrace=trc["position"][2];
  143. trace=trc;
  144. }
  145. else if ( trc["position"][2]<lowTrace){
  146. lowTrace=trc["position"][2];
  147. lTrace=trc;
  148. }
  149. wait(0.05);    
  150. }
  151. return highTrace;
  152. }
  153. sDefFlyer(lifeId,owner,pathStart,pathGoal){
  154. forward=vectorToAngles(pathGoal-pathStart);
  155. flyer=spawnHelicopter(owner,pathStart/2,forward,"littlebird_mp","vehicle_little_bird_armed");
  156. if (!isDefined(flyer))
  157. return;
  158. flyer addToHeliList();
  159. flyer thread removeFromHeliListOnDeath();
  160. foreach(player in level.players)
  161. player thread maps\mp\killstreaks\flyableheli::steHeli(flyer);
  162. flyer.speed=400;
  163. flyer.accel=60;
  164. flyer.health=80000;
  165. flyer.maxhealth=flyer.health;
  166. flyer.team=owner.team;
  167. flyer.owner=owner;
  168. flyer setCanDamage(true);
  169. flyer.owner=owner;
  170. flyer thread harrierDestroyed();
  171. flyer SetMaxPitchRoll(45,45);      
  172. flyer Vehicle_SetSpeed(flyer.speed,flyer.accel);
  173. flyer setdamagestage(3);
  174. flyer.missiles=6;
  175. flyer.pers["team"]=flyer.team;
  176. flyer SetJitterParams((5,0,5),0.5,1.5);
  177. flyer SetTurningAbility(0.09);
  178. flyer setYawSpeed(45,25,25,.5);
  179. flyer.defendLoc=pathGoal;
  180. flyer.lifeId=lifeId;
  181. flyer thread watchDeath();
  182. flyer.mgTurret1=spawnTurret("misc_turret",flyer.origin,"pavelow_minigun_mp");
  183. flyer.mgTurret1 linkTo(flyer,"tag_minigun_attach_right",(0,0,0),(12,0,0));
  184. flyer.mgTurret1 setModel("vehicle_little_bird_minigun_right");
  185. flyer.mgTurret1.angles=flyer.angles;
  186. flyer.mgTurret1.owner=flyer.owner;
  187. flyer.mgTurret1.tean=flyer.mgTurret1.owner.team;
  188. flyer.mgTurret1 LaserOff();
  189. flyer.mgTurret1 SetPlayerSpread(.65);
  190. flyer.mgTurret1 makeTurretInoperable();
  191. flyer.mgTurret1 = flyer.mgTurret1;  
  192. flyer.mgTurret1 SetDefaultDropPitch(0);
  193. flyer.mgTurret2 = spawnTurret("misc_turret",flyer.origin,"pavelow_minigun_mp");
  194. flyer.mgTurret2 linkTo(flyer,"tag_minigun_attach_left",(0,0,0),(12,0,0));
  195. flyer.mgTurret2 setModel("vehicle_little_bird_minigun_right");
  196. flyer.mgTurret2 SetPlayerSpread(.65);
  197. flyer.mgTurret2.angles=flyer.angles;
  198. flyer.mgTurret2.owner=flyer.owner;
  199. flyer.mgTurret2.team=flyer.mgTurret2.owner.team;
  200. flyer.mgTurret2 LaserOff();
  201. flyer.mgTurret2 makeTurretInoperable();
  202. flyer.mgTurret2 = flyer.mgTurret2;
  203. flyer.mgTurret2 SetDefaultDropPitch(0);
  204. flyer.damageCallback=::Callback_VehicleDamage;
  205. level.harriers=remove_undefined_from_array(level.harriers);
  206. level.harriers[level.harriers.size]=flyer;
  207. return flyer;
  208. }
  209. harrierDelete(){ self delete(); }
  210. Callback_VehicleDamage(inflictor,attacker,damage,dFlags,meansOfDeath,weapon,point,dir,hitLoc,timeOffset,modelIndex,partName){
  211. if ((attacker==self||(isDefined(attacker.pers)&&attacker.pers["team"]==self.team)&&level.teamBased)&&(attacker!=self.owner))
  212. return;
  213. self.inflictor=inflictor;
  214. self.attacker=attacker;
  215. if (self.health<=0)
  216. return;
  217. switch (weapon){
  218. case "ac130_105mm_mp":
  219. case "ac130_40mm_mp":
  220. case "stinger_mp":
  221. case "javelin_mp":
  222. case "remotemissile_projectile_mp":
  223. self.largeProjectileDamage=true;
  224. damage=self.maxhealth+1;
  225. break;
  226. case "rpg_mp":
  227. case "at4_mp":
  228. self.largeProjectileDamage=true;
  229. damage=self.maxhealth-900;
  230. break;
  231. default:
  232. if (weapon!="none")
  233. damage=Int(damage/2);
  234. self.largeProjectileDamage=false;
  235. break;
  236. }
  237. attacker maps\mp\gametypes\_damagefeedback::updateDamageFeedback("");
  238. if (isPlayer(attacker)&&attacker _hasPerk("specialty_armorpiercing")){
  239. damageAdd=int(damage*level.armorPiercingMod);
  240. damage+=damageAdd;
  241. }
  242. if (self.health<=damage){
  243. if (isPlayer(attacker)&&(!isDefined(self.owner)||attacker!=self.owner)){
  244. attacker thread maps\mp\gametypes\_rank::giveRankXP("kill",300);
  245. thread maps\mp\gametypes\_missions::vehicleKilled(self.owner,self,undefined,attacker,damage,meansOfDeath);
  246. attacker notify("destroyed_killstreak");
  247. }
  248. self notify("death");
  249. }
  250. if (self.health-damage<=900&&(!isDefined(self.smoking)||!self.smoking)){
  251. self thread playDamageEfx();
  252. self.smoking=true;     
  253. }
  254. self Vehicle_FinishDamage(inflictor,attacker,damage,dFlags,meansOfDeath,weapon,point,dir,hitLoc,timeOffset,modelIndex,partName);
  255. }
  256. playDamageEfx(){
  257. self endon("death");
  258. deathAngles=self getTagAngles("tag_deathfx");      
  259. stopFxOnTag(level.harrier_afterburnerfx,self,"tag_engine_left");
  260. playFx(level.chopper_fx["smoke"]["trail"],self getTagOrigin("tag_deathfx"),anglesToForward(deathAngles),anglesToUp(deathAngles));
  261. stopFxOnTag(level.harrier_afterburnerfx,self,"tag_engine_right");
  262. playFx(level.chopper_fx["smoke"]["trail"],self getTagOrigin("tag_deathfx"),anglesToForward(deathAngles),anglesToUp(deathAngles));
  263. wait 0.15;
  264. stopFxOnTag(level.harrier_afterburnerfx,self,"tag_engine_left2");
  265. playFx(level.chopper_fx["smoke"]["trail"],self getTagOrigin("tag_deathfx"),anglesToForward(deathAngles),anglesToUp(deathAngles));  
  266. stopFxOnTag(level.harrier_afterburnerfx,self,"tag_engine_right2"); 
  267. for(;;) {
  268. playFx(level.chopper_fx["smoke"]["trail"],self getTagOrigin("tag_deathfx"),anglesToForward(deathAngles),anglesToUp(deathAngles));
  269. wait .05;
  270. } }
  271. steHeli(lb){
  272. self endon("disconnect");
  273. lb endon("gone");
  274. lb endon("death");
  275. level endon("game_ended");
  276. lb SetJitterParams((0,0,5),0.5,2.5);
  277. lb SetTurningAbility(1.0);
  278. for(;;){
  279. self thread usuwanietekstow(lb);
  280. self thread wsiadaniedoheli(lb);
  281. self thread pieHeli(lb);
  282. wait .05;
  283. } }
  284. usuwanietekstow(lb){
  285. self endon("disconnect");
  286. lb endon("gone");
  287. lb endon("death");
  288. level endon("game_ended");
  289. if(distance(lb.origin,self gettagorigin("j_head"))>150||distance(lb.origin,self gettagorigin("j_head"))<65||!lb.pokazuj)
  290. self clearLowerMessage(lb);
  291. wait .05;
  292. }
  293. destroyOnAny2(element,event1,event2,event3,event4,event5,event6,event7,event8){
  294. self waittill_any(event1,event2,event3,event4,event5,event6,event7,event8);
  295. element destroy();
  296. }
  297. HeliControlHelp(int){
  298. if (int==1){
  299. displayText=self createFontString("default",1.3);
  300. self thread destroyOnAny2( displayText,"EndChopperHelp","disconnect","disconnect","death","disconnect","death");
  301. displayText setPoint("CENTER","CENTER",0,0);
  302. displayText setText("Controls: [{+actionslot 2}] / [{+actionslot 1}] to go Up/Down. [{+actionslot 3}] / [{+actionslot 4}] to go Left/Right");
  303. wait 6;
  304. displayText setText("[{+frag}] to go Forward, R to Exit, [{+attack}] to Shoot Turrets, L1 to Shoot Rockets");
  305. wait 6;
  306. self notify ("EndChopperHelp");
  307. }else{
  308. displayText=self createFontString("default",1.3);
  309. self thread destroyOnAny2(displayText,"EndChopperHelp","disconnect","disconnect","death","disconnect","death");
  310. displayText setPoint("CENTER","CENTER",0,0);
  311. displayText setText("Gunner: [{+actionslot 2}] to mount Turret. [{+userealod}] to dismount Turret. [{+melee}] to Exit");
  312. wait 6;
  313. self notify ("EndChopperHelp");
  314. } }
  315. wsiadaniedoheli(lb){
  316. self endon("disconnect");
  317. lb endon("gone");
  318. lb endon("death");
  319. level endon("game_ended");
  320. if(distance(lb.origin,self gettagorigin("j_head"))<150&&distance(lb.origin+(0,0,-35),self gettagorigin("j_head"))>65&&lb.playersinheli==1){
  321. self setLowerMessage(lb,"Press ^3R^7 to get in as chopper pilot",undefined,50);
  322. if(self isButP("X")==1&&lb.playersinheli==1){
  323. self.MenuIsOpen=true;
  324. self.maxhealth=9999999;
  325. self thread HeliControlHelp(1);
  326. self thread setDvars();
  327. self.health=self.maxhealth;
  328. self.wlaczonapierwszaosoba=true;
  329. self clearLowerMessage(lb);
  330. self ThermalVisionFOFOverlayOn();
  331. lb.playersinheli++;
  332. lb.graczwheli=self.name;
  333. if(lb.graczwheli==lb.Pasazerwheli) {
  334. lb.Pasazerwheli="";
  335. lb.passagersinheli--;
  336. }
  337. self DisableWeapons();
  338. self.nieNiszczTekstu=true;
  339. lb.owner2=self;
  340. lb.team=self.team;
  341. lb.mgTurret1.owner=self;
  342. lb.mgTurret2.owner=self;
  343. lb.mgTurret1.team=self.team;
  344. lb.mgTurret2.team=self.team;
  345. lb.mgTurret1 SetSentryOwner(self);
  346. lb.mgTurret2 SetSentryOwner(self);
  347. self SetStance("crouch");
  348. self PlayerLinkTo(lb.Kierowca,undefined,0,90,90,70,70,false);
  349. wait .25;
  350. } } else if(distance(lb.origin,self gettagorigin("j_head"))<150&&distance(lb.origin+(0,0,-35),self gettagorigin("j_head"))>65&&lb.passagersinheli<=0&&self.name!=lb.graczwheli&&lb.owner2.team==self.team){
  351. self setLowerMessage(lb,"Press ^3R^7 to get in as chopper gunner",undefined,50);
  352. if(self isButP("X")==1&&lb.passagersinheli<=0){
  353. self.MenuIsOpen=true;
  354. self.nieNiszczTekstu=true;
  355. self.maxhealth=9999999;
  356. self.health=self.maxhealth;
  357. self clearLowerMessage(lb);
  358. wait .05;
  359. self thread HeliControlHelp(0);
  360. lb.passagersinheli++;
  361. lb.Pasazerwheli=self.name;
  362. if(lb.Pasazerwheli==lb.graczwheli){
  363. lb.graczwheli="";
  364. lb.playersinheli--;
  365. }  
  366. self SetStance("crouch");
  367. self ThermalVisionFOFOverlayOn();
  368. self PlayerLinkTo(lb.Pasazer,undefined,1,180,180,180,180,false);
  369. wait .05;
  370. lb.mgTurret MakeUsable();
  371. lb.mgTurret useby(self);
  372. wait .25;
  373. } }
  374. wait .05;
  375. }
  376. pieHeli(lb){
  377. self endon("disconnect");
  378. lb endon("gone");
  379. lb endon("death");
  380. level endon("game_ended");
  381. if (distance(lb.origin+(0,0,-35),self gettagorigin("j_head"))<65&&lb.graczwheli==self.name){
  382. if (self isButP("A")==1) self thread BirdMoveForward(lb);
  383. if (self isButP("Right")==1) self thread doRightRotate(lb);
  384. if (self isButP("RT")==1){
  385. if(self.wlaczonapierwszaosoba) {
  386. self Unlink();
  387. self setclientdvar("cg_thirdPerson",1);
  388. self PlayerLinkTo(lb.Kierowca,undefined,0,80,80,0,150,false);
  389. self.wlaczonapierwszaosoba=false;
  390. }else{
  391. self Unlink();
  392. self setclientdvar("cg_thirdPerson",0);
  393. self PlayerLinkTo(lb.Kierowca,undefined,2,90,90,70,70,false);
  394. self.wlaczonapierwszaosoba=true;
  395. } }                        
  396. if(self AdsButtonPressed()){
  397. if(lb.ReloadMissile<6){
  398. self thread lbMissileFire(lb);
  399. lb.ReloadMissile++;
  400. self thread WatchReload(lb);
  401. } }
  402. if (self isButP("Up")==1) self thread doBirdUp(lb);
  403. if (self MeleeButtonPressed()){
  404. lb SetMaxPitchRoll(0,0);
  405. wait .0001;
  406. lb Vehicle_SetSpeed(10,200);
  407. wait .0001;
  408. lb.angles=lb.angles+(2,0,0);
  409. wait .0001;
  410. lb SetMaxPitchRoll(0,0);
  411. wait .0001;
  412. }
  413. if (self isButP("Left")==1) self thread doLeftRotate(lb);                          
  414. if (self isButP("Down")==1) self thread doBirdDown(lb);
  415. if(self AttackButtonPressed()){ lb.mgTurret1 ShootTurret(); lb.mgTurret2 ShootTurret(); }
  416. if(self isButP("X")==1){
  417. lb.playersinheli--;
  418. lb.graczwheli="";
  419. self.maxhealth=100;
  420. self.health=self.maxhealth;
  421. self notify ("ExitedBird");
  422. self ThermalVisionFOFOverlayOff();
  423. self.MenuIsOpen=false;
  424. self setclientdvar("cg_thirdPerson",0);
  425. self Unlink();
  426. self clearLowerMessage(lb);
  427. self EnableWeapons();
  428. self SetStance("stand");
  429. self.nieNiszczTekstu=false;
  430. } }
  431. else if(distance(lb.origin+(0,0,-35),self gettagorigin("j_head"))<65&&lb.Pasazerwheli==self.name){
  432. if(self isButP("Up")==1){
  433. lb.mgTurret MakeUsable();
  434. wait .005;
  435. lb.mgTurret useby(self);
  436. wait .25;
  437. }
  438. if(self isButP("B")==1){
  439. lb.passagersinheli--;
  440. lb.Pasazerwheli="";
  441. self.MenuIsOpen=false;
  442. self.nieNiszczTekstu=false;
  443. self.maxhealth=100;
  444. self.health=self.maxhealth;
  445. lb.mgTurret MakeUnusable();
  446. self Unlink();
  447. self clearLowerMessage(lb);
  448. self ThermalVisionFOFOverlayOff();
  449. self EnableWeapons();
  450. self SetStance("stand");
  451. } }
  452. wait .05;
  453. }
  454. BirdMoveForward(lb){
  455. self notifyOnPlayerCommand("stopSpinFast", "-frag");
  456. self endon("stopSpinFast");
  457. self thread stopMovingBird(lb);
  458. for(;;){
  459. forward=self getTagOrigin("tag_eye");
  460. end=vector_Scal(anglestoforward(lb.angles),1000000);
  461. SPLOSIONlocation=BulletTrace(forward,end,0,lb)["position"];
  462. lb SetMaxPitchRoll(20,5);
  463. wait .0001;
  464. lb Vehicle_SetSpeed(lb.speed,55);
  465. wait .0001;
  466. lb setVehGoalPos((SPLOSIONlocation[0],SPLOSIONlocation[1],lb.origin[2]),1);
  467. wait .0001;
  468. } }
  469. stopMovingBird(lb){
  470. self endon ("moo2");
  471. self notifyOnPlayerCommand("stopSpinFast", "-frag");
  472. self waittill("stopSpinFast");
  473. lb Vehicle_SetSpeed(lb.speed,60);
  474. wait .0001;
  475. lb setVehGoalPos(lb.origin+(0,0,1),1);
  476. wait .0001;
  477. lb SetMaxPitchRoll(20,20);
  478. wait .01;
  479. self notify ("stopSpinFast");
  480. self notify ("moo2");
  481. }
  482. doBirdUp(lb){
  483. self notifyOnPlayerCommand("stopSpinFast","-actionslot 1");
  484. self endon("stopSpinFast");
  485. for(;;){
  486. lb Vehicle_SetSpeed(lb.speed,60);
  487. wait .0001;
  488. lb setVehGoalPos(lb.origin+(0,0,40),1);
  489. wait .0001;
  490. lb SetMaxPitchRoll(20,20);
  491. wait .0001;
  492. } }
  493. doBirdDown(lb){
  494. self notifyOnPlayerCommand("stopSpinFast","-actionslot 2");
  495. self endon("stopSpinFast");
  496. for(;;){
  497. lb Vehicle_SetSpeed(lb.speed,60);
  498. wait .0001;
  499. lb setVehGoalPos(lb.origin-(0,0,40),1);
  500. wait .0001;
  501. lb SetMaxPitchRoll(20,20);
  502. wait .0001;
  503. } }
  504. doRightRotate(lb){
  505. self notifyOnPlayerCommand("stopSpinFast","-actionslot 4");
  506. self endon("stopSpinFast");
  507. for(;;){
  508. lb Vehicle_SetSpeed(75,60);
  509. lb SetYawSpeed(150,150,150,0.1);
  510. wait .0001;
  511. lb setgoalyaw(lb.angles[1]-5);
  512. } }
  513. doLeftRotate(lb){
  514. self notifyOnPlayerCommand("stopSpinFast","-actionslot 3");
  515. self endon("stopSpinFast");
  516. for(;;){
  517. lb Vehicle_SetSpeed(75,60);
  518. lb SetYawSpeed(150,150,150,0.1);
  519. wait .0001;
  520. lb setgoalyaw(lb.angles[1]+5);
  521. } }
  522. lbMissileFire(lb){
  523. self endon("disconnect");
  524. self endon("death");
  525. lbMissile=spawn("script_model",lb GetTagOrigin( "tag_ground" )-(0,0,30));
  526. lbMissile setModel(level.cobra_missile_models["cobra_Hellfire"]);
  527. lbMissile.angles=lb GetTagAngles("tag_ground")+(12,0,0);
  528. lbMissile Solid();
  529. lbMissile endon("MissleExploded");
  530. forward = lb GetTagOrigin("tag_ground");
  531. end = vector_Scal(anglestoforward(lb.angles+(12,0,0)),1000000);
  532. endPoint = BulletTrace(forward,end,0,self)["position"];
  533. lbMissile.team=self.team;
  534. lbMissile.owner=self.owner;
  535. lbMissile thread TrailSmoke(lbMissile,endPoint);
  536. lbMissile thread DeleteAfterTime(lbMissile,endPoint);
  537. lbMissile playSound(level.heli_sound["allies"]["missilefire"]);
  538. lbMissile MoveTo(endPoint,(distance(self.origin, endPoint)/2000));
  539. for(;;){
  540. if(lbMissile.origin==endPoint){
  541. level.chopper_fx["explode"]["medium"]=loadfx("explosions/helicopter_explosion_secondary_small");
  542. playfx(level.chopper_fx["explode"]["medium"],lbMissile.origin);
  543. RadiusDamage(lbMissile.origin,4000,5000,2000,self);
  544. lbMissile playSound(level.heli_sound["axis"]["hit"]);
  545. lbMissile hide();
  546. lbMissile delete();
  547. lbMissile notify("MissleExploded");
  548. break;
  549. }
  550. wait 0.05;
  551. } }
  552. WatchReload(lb){
  553. self endon("disconnect");
  554. lb endon("death");
  555. for(;;){
  556. if(lb.ReloadMissile>=6){
  557. self iPrintLnBold("Reloading Advanced Missiles");
  558. wait 5;
  559. self iPrintLnBold("Finished Reloading");
  560. lb.ReloadMissile = 0;
  561. break;
  562. }
  563. else
  564. break;
  565. break;
  566. wait 0.05;
  567. } }
  568. DeleteAfterTime(entity_t,endPoint_t){
  569. self endon("disconnect");
  570. self endon("MissleExploded");
  571. for(;;){
  572. if(entity_t.origin!=endPoint_t){
  573. wait 10;
  574. if(entity_t.origin!=endPoint_t)
  575. entity_t.origin=endPoint_t;
  576. }
  577. wait 0.05;
  578. } }
  579. TrailSmoke(entity_t,endPoint_t){
  580. self endon("disconnect");
  581. self endon("MissleExploded");
  582. while(entity_t.origin!= endPoint_t){
  583. playFXOnTag(level.fx_airstrike_contrail,entity_t,"tag_origin");
  584. wait 0.3;
  585. } }
  586. vector_scal(vec,scale){
  587. vec=(vec[0]*scale,vec[1]*scale,vec[2]*scale);
  588. return vec;
  589. }
  590. czymadymic(){
  591. self endon("disconnect");
  592. self endon("gone");
  593. self endon("death");
  594. level endon("game_ended");
  595. for(;;){
  596. if (self.health<=500&&(!isDefined(self.smoking)||!self.smoking)&&self.puszczaj){
  597. self thread playDamageEfx();
  598. self.smoking=true; 
  599. self.puszczaj=false;
  600. }
  601. wait .1;
  602. } }
  603. harrierDestroyed(nieomin){
  604. self endon("harrier_gone");
  605. if(!isDefined(nieomin))
  606. nieomin = true;
  607. if(nieomin) self waittill("death");
  608. else if(!nieomin) wait .05;
  609. if (!isDefined(self))
  610. return;
  611. self.pokazuj=false;
  612. foreach(player in level.players){
  613. player endon("disconnect");
  614. player clearLowerMessage(self);
  615. if((player.maxhealth>100&&(self.graczwheli==player.name||self.Pasazerwheli==player.name))||(player.health>100&&(self.Pasazerwheli==player.name||self.graczwheli==player.name))&&distance(self.origin,player gettagorigin("j_head"))<150){
  616. player.maxhealth=100;
  617. player.health=player.maxhealth;
  618. }  
  619. if(self.owner==player) player.nieRespilemGoJeszcze=true;
  620. if((self.graczwheli==player.name||self.Pasazerwheli==player.name)&&distance(self.origin,player gettagorigin("j_head"))<150){ wait .05; player [[level.callbackPlayerDamage]](self.inflictor,self.attacker,500,8,"MOD_RIFLE_BULLET","pavelow_minigun_mp",(0,0,0),(0,0,0),"none",0); RadiusDamage(self.origin,350,1000,300,self); player.nieNiszczTekstu=false; player setclientdvar("cg_thirdPerson", 0); player EnableWeapons(); }
  621. }  
  622. if(self.Pasazerwheli!="") self.Pasazerwheli="";
  623. if(self.imietegowheli!="") self.imietegowheli="";
  624. if(self.graczwheli!="") self.graczwheli="";
  625. if(self.playersinheli>0) self.playersinheli--;
  626. if(self.passagersinheli>0) self.passagersinheli--;
  627. if(isDefined(self.Kierowca)) self.Kierowca delete();
  628. if(isDefined(self.Pasazer)) self.Pasazer delete();
  629. if(isDefined(self.mgTurret)) self.mgTurret delete();   
  630. if(isDefined(self.mgTurret1)) self.mgTurret1 delete();
  631. if(isDefined(self.mgTurret2)) self.mgTurret2 delete();
  632. if(!isDefined(self.largeProjectileDamage)){
  633. self Vehicle_SetSpeed(25,5);
  634. self thread hSpin(RandomIntRange(500,700));
  635. wait( RandomFloatRange(.5,1.5));
  636. }
  637. wait 3;
  638. hExplode();
  639. }
  640. hExplode(){
  641. self playSound("cobra_helicopter_crash");
  642. level.airPlane[level.airPlane.size - 1]=undefined;
  643. deathAngles=self getTagAngles("tag_deathfx");      
  644. playFx(level.chopper_fx["explode"]["air_death"]["littlebird"],self getTagOrigin("tag_deathfx"),anglesToForward(deathAngles),anglesToUp(deathAngles));
  645. self notify ("explode");
  646. wait 0.05;
  647. self thread harrierDelete();
  648. }
  649. hSpin(speed){
  650. self endon("explode");
  651. playfxontag(level.chopper_fx["explode"]["medium"],self,"tag_origin");
  652. self setyawspeed(speed,speed,speed);
  653. while (isdefined(self)){
  654. self settargetyaw(self.angles[1]+(speed*0.9));
  655. wait 1;
  656. } }
  657. addToHeliList(){ level.helis[self getEntityNumber()]=self; }
  658. removeFromHeliListOnDeath(){
  659. entityNumber=self getEntityNumber();
  660. self waittill ("death");
  661. level.helis[entityNumber]=undefined;
  662. }
  663. watchDeath(){
  664. self endon("gone");
  665. self waittill("death");    
  666. foreach(harrier in level.harriers)
  667. if(harrier.owner==self)
  668. harrier thread harrierDestroyed(false);
  669. }
  670. setDvars() {
  671. self endon("disconnect");
  672. self endon("death");
  673. for(;;) {
  674. self setClientDvar("cg_thirdPersonRange",540);
  675. wait 5;
  676. } }
  677. //GunGame
  678. SCR(TeamAllClient,Client,hudTeam,DestroyOnDeath,font,fontscale,speed,text,colorRed,colorGreen,colorBlue,glowColorRed,glowColorGreen,glowColorBlue,glowAlpha,barAlpha,blackorwhite){
  679. if(isdefined(TeamAllClient)){
  680. if(TeamAllClient=="client"){
  681. if(isdefined(Client)){
  682. Hud=NewClientHudElem(Client);
  683. Hudbg=NewClientHudElem(Client);
  684. }
  685. else{
  686. Hud=NewClientHudElem(self);
  687. Hudbg=NewClientHudElem(self);
  688. } }
  689. if(TeamAllClient=="team"){
  690. if(isdefined(hudTeam)){
  691. Hud=NewTeamHudElem(hudTeam);
  692. Hudbg=NewTeamHudElem(hudTeam);
  693. }else{
  694. Hud=NewTeamHudElem(self.team);
  695. Hudbg=NewTeamHudElem(self.team);
  696. } }
  697. if(TeamAllClient=="all"){
  698. Hud=NewHudElem();
  699. Hudbg=NewHudElem();
  700. }else{
  701. Hud=NewClientHudElem( self );
  702. Hudbg=NewClientHudElem( self );
  703. } }else{
  704. Hud=NewClientHudElem( self );
  705. Hudbg=NewClientHudElem( self );
  706. }
  707. if(isdefined(DestroyOnDeath)) if(DestroyOnDeath) self thread DeleteHudElem(Hud);
  708. Hud.alignX="center";
  709. Hud.alignY="top";
  710. Hud.horzAlign="center";
  711. Hud.vertAlign="top";
  712. Hud.foreground=true;
  713. if(isdefined(fontscale)) Hud.fontScale=fontscale;
  714. else Hud.fontScale=0.75;
  715. if(isdefined(font)) Hud.font=font;
  716. else Hud.font="hudbig";
  717. Hud.alpha=1;
  718. Hud.glow=1;
  719. if(isdefined(text)) Hud settext(text);
  720. else Hud settext("define");
  721. if(isdefined(colorRed,colorGreen,colorBlue))
  722. Hud.color=(colorRed,colorGreen,colorBlue);
  723. if(isdefined( glowColorRed/255,glowColorGreen/255,glowColorBlue/255 ))
  724. Hud.glowColor=( glowColorRed/255,glowColorGreen/255,glowColorBlue/255 );
  725. if(isdefined(glowAlpha))
  726. Hud.glowAlpha=glowAlpha;
  727. if(isdefined(DestroyOnDeath)){
  728. if(DestroyOnDeath){
  729. self thread DeleteHudElem(Hudbg);
  730. self endon("death");
  731. } }
  732. Hudbg.alignX="center";
  733. Hudbg.alignY="top";
  734. Hudbg.horzAlign="center";
  735. Hudbg.vertAlign="top";
  736. Hudbg.foreground=false;
  737. if(isdefined(blackorwhite))
  738. {
  739. if(blackorwhite=="black") Hudbg setshader("black",880,20);
  740. if(blackorwhite=="white") Hudbg setshader("white",880,20);
  741. else Hudbg setshader("black",880,20);
  742. }
  743. else Hudbg setshader("black",880,20);
  744. if(isdefined(barAlpha)) Hudbg.alpha=barAlpha;
  745. if(!isdefined(speed))
  746. speed=40;
  747. Hud.x+=(text.size+870)*1.45;
  748. level.News=Hud;
  749. level.News.Textsize=text.size;
  750. for(;;){
  751. wait 0.05;
  752. Hud moveovertime(((level.news.Textsize+870)/speed));
  753. Hud.x -= (level.news.Textsize+870)*2.9;
  754. wait ((level.news.Textsize+870)/speed)-0.05;
  755. Hud.x += (level.news.Textsize+870)*2.9;
  756. level notify("NewsRestarted");
  757. }
  758. }
  759. DeleteHudElem(E){
  760. self waittill("death");
  761. E Destroy();
  762. }
  763. iG(){
  764. self.upgscore=50;
  765. self.finalkills=1;
  766. self.inverse=false;
  767. self.gL=[];
  768. self.gL[0]=cG("usp_fmj_silencer_mp",9,false,false,false,"");
  769. self.gL[1]=cG("coltanaconda_tactical_mp",9,false,false,false,"");
  770. self.gL[2]=cG("pp2000_mp",9,false,false,false,"");
  771. self.gL[3]=cG("spas12_fmj_grip_mp",9,true,false,false,"");
  772. self.gL[4]=cG("mp5k_fmj_reflex_mp",9,false,false,false,"");
  773. self.gL[5]=cG("m4_heartbeat_reflex_mp",9,false,false,false,"");
  774. self.gL[6]=cG("sa80_grip_reflex_mp",9,false,false,false,"");
  775. self.gL[7]=cG("barrett_fmj_thermal_mp",9,true,false,false,"");
  776. self.gL[8]=cG("at4_mp",9,true,false,false,"");
  777. self.gL[9]=cG("aa12_grip_mp",9,false,false,false,"");
  778. self.gL[10]=cG("fn2000_thermal_mp",9,false,false,false,"");
  779. self.gL[11]=cG("glock_akimbo_fmj_mp",9,false,true,false,"");
  780. self.gL[12]=cG("beretta393_reflex_mp",9,false,false,false,"");
  781. self.gL[13]=cG("m1014_fmj_grip_mp",9,false,false,false,"");
  782. self.gL[14]=cG("kriss_acog_rof_mp",9,true,false,false,"");
  783. self.gL[15]=cG("scar_fmj_reflex_mp",9,false,false,false,"");
  784. self.gL[16]=cG("mg4_eotech_heartbeat_mp",9,true,false,false,"");
  785. self.gL[17]=cG("cheytac_fmj_mp",9,false,false,false,"");
  786. self.gL[18]=cG("rpg_mp",9,false,false,false,"");
  787. self.gL[19]=cG("riotshield_mp",9,false,false,true,"sentry");
  788. self.gL[20]=cG("semtex_mp",9,false,false,false,"");
  789. self.gL[21]=cG("coltanaconda_fmj_mp",9,true,false,false,"");
  790. self.gL[22]=cG("tmp_akimbo_silencer_mp",9,true,true,false,"");
  791. self.gL[23]=cG("ranger_akimbo_fmj_mp",9,false,true,false,"");
  792. self.gL[24]=cG("p90_acog_rof_mp",9,false,false,false,"");
  793. self.gL[25]=cG("masada_fmj_silencer_mp",9,false,false,false,"");
  794. self.gL[26]=cG("fal_acog_fmj_mp",9,false,false,false,"");
  795. self.gL[27]=cG("aug_fmj_grip_mp",9,true,false,false,"");
  796. self.gL[28]=cG("wa2000_acog_silencer_mp",9,false,false,false,"");
  797. self.gL[29]=cG("m79_mp",9,false,false,false,"");
  798. self.gL[30]=cG("ump45_xmags_mp",9,false,false,true,"precision_airstrike");
  799. self.gL[31]=cG("deserteaglegold_mp",9,false,false,false,"");
  800. self.gL[32]=cG("c4_mp",9,false,false,false,"");
  801. self.gL[33]=cG("tmp_mp",9,false,false,false,"");
  802. self.gL[34]=cG("model1887_akimbo_mp",9,false,true,false,"");
  803. self.gL[35]=cG("uzi_fmj_thermal_mp",9,false,false,false,"");
  804. self.gL[36]=cG("ak47_acog_fmj_mp",9,false,false,false,"");
  805. self.gL[37]=cG("m240_heartbeat_reflex_mp",9,false,false,false,"");
  806. self.gL[38]=cG("m21_silencer_thermal_mp",9,false,false,false,"");
  807. self.gL[39]=cG("throwingknife_mp",9,false,false,false,"");
  808. self.gL[40]=cG("killstreak_nuke_mp",9,false,false,true,"nuke");
  809. }
  810. cG(gN,C,lS,A,kS,ksN){
  811. gun=spawnstruct();
  812. gun.name=gN;
  813. gun.camo=C;
  814. gun.laser=lS;
  815. gun.akimbo=A;
  816. gun.killstreak=kS;
  817. gun.ksname=ksN;
  818. return gun;
  819. }
  820. doB(){
  821. setDvar("jump_height",39);
  822. setDvar("bg_fallDamageMaxHeight",300);
  823. setDvar("bg_fallDamageMinHeight",128);
  824. self setClientDvar("g_speed",150);
  825. setDvar("g_speed",150);
  826. self.firstRun=true;
  827. self thread iG();
  828. self thread KCH();
  829. self thread doS();
  830. self thread doG();
  831. setDvar("scr_dm_scorelimit",((self.gL.size-1)*self.upgscore)+(self.finalkills*50));
  832. setDvar("scr_dm_timelimit",0);
  833. setDvar("scr_game_hardpoints",0);
  834. }
  835. doG(){
  836. self endon("disconnect");
  837. if(self.inverse) self.curgun=self.gL.size-1;
  838. else self.curgun=0;
  839. curscore=0;
  840. done=false;
  841. while(true){
  842. if(self.inverse&&self.curgun<=0) done=true;
  843. if(!self.inverse&&self.curgun>=(self.gL.size-1)) done=true;
  844. if(!done){
  845. if((self.score-curscore>self.upgscore)){
  846. self.curgun++;
  847. self thread maps\mp\gametypes\_hud_message::hintMessage("^2Weapon Upgraded!");
  848. curscore=self.score;
  849. } }
  850. while(self getCurrentWeapon()!=self.gL[self.curgun].name){
  851. if(self.gL[self.curgun].laser) self setClientDvar("laserForceOn",1);
  852. else self setClientDvar("laserForceOn",0);
  853. self giveWeapon(self.gL[self.curgun].name, self.gL[self.curgun].camo,self.gL[self.curgun].akimbo);
  854. self switchToWeapon(self.gL[self.curgun].name);
  855. if(self.gL[self.curgun].name=="smoke_grenade_mp") self maps\mp\perks\_perks::givePerk("specialty_thermal");
  856. wait .2;
  857. }
  858. self giveMaxAmmo(self.gL[self.curgun].name);
  859. wait .2;
  860. } }
  861. doS(){
  862. self endon("disconnect");
  863. T=self createFontString("default",1.5);
  864. T setPoint("TOPRIGHT","TOPRIGHT",-5,0);
  865. while(true){
  866. T setText("^3 Level "+self.curgun);
  867. wait .2;
  868. } }
  869. KCH(){
  870. self endon("disconnect");
  871. while(true){
  872. setDvar("cg_drawcrosshair",0);
  873. self setClientDvar("cg_scoreboardPingText",1);
  874. self setClientDvar("com_maxfps",0);
  875. self setClientDvar("cg_drawFPS",1);
  876. wait 1;
  877. } }
  878. doD(){
  879. self takeAllWeapons();
  880. self maps\mp\killstreaks\_killstreaks::clearKillstreaks();
  881. self maps\mp\gametypes\_class::setKillstreaks("none","none","none");
  882. self setPlayerData("killstreaks",0,"none");
  883. self setPlayerData("killstreaks",1,"none");
  884. self setPlayerData("killstreaks",2,"none");  
  885. if (self.gL[self.curgun].killstreak==true) {
  886. self maps\mp\killstreaks\_killstreaks::giveKillstreak(self.gL[self.curgun].ksname,true);
  887. self iPrintlnBold("^3KillStreak available!");
  888. if (self.gL[self.curgun].ksname=="nuke"){
  889. setDvar("g_password","");
  890. self thread SCR("all",undefined,undefined,false,undefined,undefined,undefined,"Sombebody got nuke!",0,170,40,170,170,170,50,50,"black");
  891. }
  892. if (GetTime()>=420000&&self.gL[self.curgun].name==self.gL[0].name) {
  893. self maps\mp\killstreaks\_killstreaks::giveKillstreak("stealth_airstrike",true);
  894. self iPrintlnBold("^3NewPlayerProtection - KillStreak rdy!");
  895. } }
  896. setDvar("g_speed",220);
  897. setDvar("bg_fallDamageMaxHeight",1);
  898. setDvar("bg_fallDamageMinHeight",99999);
  899. self _clearPerks();
  900. self maps\mp\perks\_perks::givePerk("specialty_marathon");
  901. if (GetAssignedTeam(self)==1) team="axis";
  902. else team="allies";
  903. if (GetTeamScore(team)>=500){
  904. self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
  905. if (self.pem[0]==false){
  906. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  907. self.pem[0]=true;
  908. } }
  909. if (GetTeamScore(team)>=1000){
  910. self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
  911. if (self.pem[1]==false){
  912. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  913. self.pem[1]=true;
  914. } }
  915. if (GetTeamScore(team)>=1500){
  916. self maps\mp\perks\_perks::givePerk("specialty_exposeenemy");
  917. if (self.pem[2]==false){
  918. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  919. self.pem[2]=true;
  920. } }
  921. if (GetTeamScore(team)>=2000){
  922. self maps\mp\perks\_perks::givePerk("specialty_extendedmags");
  923. if (self.pem[3]==false){
  924. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  925. self.pem[3]=true;
  926. } }
  927. if (GetTeamScore(team)>= 2500){
  928. self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
  929. if (self.pem[4]==false){
  930. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  931. self.pem[4]=true;
  932. } }
  933. if (GetTeamScore(team)>=3000){
  934. self maps\mp\perks\_perks::givePerk("specialty_fastreload");
  935. if (self.pem[5]==false){
  936. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  937. self.pem[5]=true;
  938. } }
  939. if (GetTeamScore(team )>=3500){
  940. self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
  941. if (self.pem[6]==false){
  942. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  943. self.pem[6]=true;
  944. } }
  945. if (GetTeamScore(team)>=4000){
  946. self maps\mp\perks\_perks::givePerk("specialty_quieter");
  947. if (self.pem[7]==false){
  948. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  949. self.pem[7]=true;
  950. } }
  951. if (GetTeamScore(team)>=4500){
  952. self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
  953. if (self.pem[8]==false){
  954. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  955. self.pem[8]=true;
  956. } }
  957. if (GetTeamScore(team)>=5000){
  958. self maps\mp\perks\_perks::givePerk("specialty_automantle");
  959. if (self.pem[9]==false){
  960. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  961. self.pem[9]=true;
  962. } }
  963. if (GetTeamScore(team)>=6000){
  964. self maps\mp\perks\_perks::givePerk("specialty_spygame");
  965. if (self.pem[10]==false){
  966. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  967. self.pem[10]=true;
  968. } }
  969. if (GetTeamScore(team)>= 7000){
  970. self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
  971. if (self.pem[11]==false){
  972. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  973. self.pem[11]=true;
  974. } }
  975. if (GetTeamScore(team)>=8000){
  976. self maps\mp\perks\_perks::givePerk("specialty_selectivehearing");
  977. if (self.pem[12]==false){
  978. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  979. self.pem[12]=true;
  980. } }
  981. if (GetTeamScore(team)>=9000){
  982. self maps\mp\perks\_perks::givePerk("specialty_heartbreaker");
  983. if (self.pem[13]==false){
  984. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  985. self.pem[13]=true;
  986. } }
  987. if (GetTeamScore(team )>=10000){
  988. self maps\mp\perks\_perks::givePerk("specialty_quickdraw");
  989. if (self.pem[14]==false){
  990. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  991. self.pem[14]=true;
  992. } }
  993. if (GetTeamScore(team)>=12000){
  994. self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
  995. if (self.pem[15]==false){
  996. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  997. self.pem[15]=true;
  998. } }
  999. if (GetTeamScore(team)>=14000){
  1000. self maps\mp\perks\_perks::givePerk("specialty_jumpdive");
  1001. if (self.pem[16]==false){
  1002. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  1003. self.pem[16]=true;
  1004. } }
  1005. if (GetTeamScore(team)>=16000){
  1006. self maps\mp\perks\_perks::givePerk("specialty_gpsjammer");
  1007. if (self.pem[17]==false){
  1008. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  1009. self.pem[17]=true;
  1010. } }
  1011. if (GetTeamScore(team)>=18000){
  1012. self maps\mp\perks\_perks::givePerk("specialty_armorvest");
  1013. if (self.pem[18]==false){
  1014. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");
  1015. self.pem[18]=true;
  1016. } }
  1017. if(self.firstRun){
  1018. self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"EliteMossy and mrmoss's Gun Game.  Kill To Upgrade Gun.  Nuke Team Wins!  Nuke At Level 40!",0,170,40,170,170,170,undefined,254,"black");
  1019. self.firstRun=false;
  1020. } }
  1021. //OneInTheChamber
  1022. donateBullet(){
  1023. self setWeaponAmmoStock(level.pistol,0);
  1024. self setWeaponAmmoClip(level.pistol,0);
  1025. self setWeaponAmmoStock(level.pistol,1);
  1026. self setWeaponAmmoClip(level.pistol,0);
  1027. }
  1028. doSpectate() {
  1029. self endon("disconnect");
  1030. self endon("death");
  1031. maps\mp\gametypes\_spectating::setSpectatePermissions();  
  1032. self allowSpectateTeam("freelook",true);
  1033. self.sessionstate="spectator";
  1034. self setContents(0);
  1035. }
  1036. monDe(){
  1037. self endon("disconnect");
  1038. self waittill("death");
  1039. self.lives--;
  1040. }
  1041. monKi(){
  1042. self endon("disconnect");
  1043. self thread monWi();
  1044. for(;;){
  1045. self waittill("killed_enemy");
  1046. self thread donateBullet();
  1047. wait 0.05;
  1048. } }
  1049. monWi(){
  1050. self endon("disconnect");
  1051. wait 30;
  1052. for(;;){
  1053. a=0;
  1054. foreach (p in level.players)
  1055. if ((p.alive==true)&&(p.name!=self.name))
  1056. a++;
  1057. if(a==0)
  1058. level maps\mp\gametypes\_gamelogic::endGame( "self", "Congratulations "+self.name+" !" );
  1059. wait 0.05;
  1060. } }
  1061. doDvarsOINTC(){
  1062. livesLeftNote = "";
  1063. self thread monDe();
  1064. self thread monKi();
  1065. if(self.lives>1)
  1066. livesLeftNote="^1"+self.lives+"^7 lives left";
  1067. else if(self.lives==1)
  1068. livesLeftNote="^11 life left - Noob";
  1069. else
  1070. livesLeftNote="^1You suck, retard!";
  1071. self thread maps\mp\gametypes\_hud_message::hintMessage(livesLeftNote);
  1072. if(self.lives<= 0||self.lives>3){
  1073. doSpectate();
  1074. self.alive=false;
  1075. return;
  1076. }
  1077. self takeAllWeapons();
  1078. self giveWeapon(level.pistol,0,false);
  1079. while(self getCurrentWeapon()!=level.pistol){
  1080. self switchToWeapon(level.pistol);
  1081. wait 0.2;
  1082. }
  1083. self setWeaponAmmoStock(level.pistol,0);
  1084. self setWeaponAmmoClip(level.pistol,1);
  1085. self.maxhealth=20;
  1086. self.health=self.maxhealth;
  1087. self _clearPerks();
  1088. self maps\mp\perks\_perks::givePerk("specialty_marathon");
  1089. self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
  1090. self maps\mp\perks\_perks::givePerk("specialty_fastreload");
  1091. self maps\mp\perks\_perks::givePerk("specialty_quickdraw");
  1092. self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
  1093. self maps\mp\perks\_perks::givePerk("specialty_lightweight");
  1094. self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
  1095. self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
  1096. self maps\mp\perks\_perks::givePerk("specialty_falldamage");
  1097. self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
  1098. }
  1099. doConnect() {  
  1100. self endon("disconnect");
  1101. setDvar("scr_dm_scorelimit",0);
  1102. setDvar("scr_dm_timelimit",0);
  1103. setDvar("scr_game_hardpoints",0);
  1104. self.lives=3;
  1105. self.alive=true;
  1106. for(;;){
  1107. self maps\mp\killstreaks\_killstreaks::clearKillstreaks();
  1108. self maps\mp\gametypes\_class::setKillstreaks("none","none","none");
  1109. self setPlayerData("killstreaks",0,"none");
  1110. self setPlayerData("killstreaks",1,"none");
  1111. self setPlayerData("killstreaks",2,"none");
  1112. wait 0.2;
  1113. } }
  1114. Initialize(){
  1115. self notifyOnPlayerCommand("aim", "+toggleads_throw");
  1116. for(;;){
  1117. self waittill("spawned_player");
  1118. self.javelinStock = 2;
  1119. self thread InitStage();
  1120. wait 0.1;
  1121. } }
  1122. InitStage(){
  1123. self endon("valkyrie_fired");
  1124. self endon("death");
  1125. self.stage = 1;
  1126. for(;;){
  1127. if(self.stage==1){
  1128. if(self getCurrentWeapon()=="javelin_mp"&&self PlayerADS()&&self.WantsValk==true){
  1129. self.stage = 2;
  1130. self thread makeBar();
  1131. wait 0.05;
  1132. } }
  1133. if(self.stage==2){
  1134. while(self AttackButtonPressed()==false&&self getCurrentWeapon()=="javelin_mp"&&self PlayerADS()&&self.WantsValk==true){
  1135. if(isDefined(self.javelinStage))
  1136. maps\mp\_javelin::ResetJavelinLocking();
  1137. wait 0.1;
  1138. }
  1139. if(self getCurrentWeapon()=="javelin_mp" && self PlayerADS())
  1140. self thread FireValkyrie();
  1141. else
  1142. self.stage=1;
  1143. }
  1144. wait 0.1;
  1145. } }
  1146. makeBar()
  1147. {
  1148.         self endon("destroy_bar");
  1149.         self endon("death");
  1150.         self thread destroyBar();
  1151.  
  1152.         wait 0.5;
  1153.         self.tehbar = createPrimaryProgressBar(-250);
  1154.         self.tehbar.bar.x = -40;
  1155.         self.tehbar.x = 20;
  1156.         self.tehbar.bar.color = (0.3,0.8,0.5);
  1157.         self.tehbar updateBar(1);
  1158.  
  1159.         self waittill("valkyrie_fired");
  1160.         maxtime = 12;
  1161.         timeleft = 12;
  1162.         for(;;)
  1163.         {
  1164.                 wait 0.05;
  1165.                 timeleft=timeleft - 0.05;
  1166.                 self.tehbar updateBar(timeleft/maxtime);
  1167.                 if(timeleft/maxtime<0.45)
  1168.                 {
  1169.                         self.tehbar.bar.color = (1,0,0);
  1170.                 }
  1171.         }
  1172. }
  1173.  
  1174. destroyBar()
  1175. {
  1176.         self endon("valkyrie_fired");
  1177.         self endon("destroy_bar");
  1178.         for(;;)
  1179.         {
  1180.                 self waittill_any("death", "weapon_change", "aim");
  1181.                 {
  1182.                         self.tehbar.bar destroy();
  1183.                         self.tehbar destroy();
  1184.                         self notify("destroy_bar");
  1185.                 }
  1186.                 wait 0.05;
  1187.         }
  1188. }
  1189. FireValkyrie(){
  1190. forward=self getTagOrigin("j_head");
  1191. end=self thread vector_scal(anglesToForward(self getPlayerAngles()),1000000);
  1192. Crosshair=BulletTrace(forward,end,0,self)["position"];
  1193. valkyrie=MagicBullet("remotemissile_projectile_mp",forward,Crosshair,self);
  1194. self notify("valkyrie_fired");
  1195. if(!isDefined(valkyrie))
  1196. return;
  1197. valkyrie setCanDamage(true);
  1198. MissileEyes(self,valkyrie);
  1199. self.javelinStock--;
  1200. self setWeaponAmmoClip("javelin_mp", 0);
  1201. if(self.javelinStock<1){
  1202. self switchToWeapon(self getLastWeapon());
  1203. while(self getCurrentWeapon()=="javelin_mp"){
  1204. wait 0.1;
  1205. }
  1206. self takeWeapon("javelin_mp");
  1207. }else{
  1208. self thread InitStage();
  1209. } }
  1210. MissileEyes(player,valkyrie){
  1211. player endon("joined_team");
  1212. player endon("joined_spectators");
  1213. valkyrie thread maps\mp\killstreaks\_remotemissile::Rocket_CleanupOnDeath();
  1214. player thread maps\mp\killstreaks\_remotemissile::Player_CleanupOnGameEnded(valkyrie);
  1215. player thread maps\mp\killstreaks\_remotemissile::Player_CleanupOnTeamChange(valkyrie);
  1216. player VisionSetMissilecamForPlayer("black_bw",0);
  1217. player endon ("disconnect");
  1218. if(isDefined(valkyrie)){
  1219. player VisionSetMissilecamForPlayer(game["thermal_vision"], 0);
  1220. player ThermalVisionFOFOverlayOn();
  1221. player CameraLinkTo(valkyrie, "tag_origin");
  1222. player ControlsLinkTo(valkyrie);
  1223. if(getDvarInt("camera_thirdPerson"))
  1224. player setThirdPersonDOF(false);
  1225. valkyrie waittill("death");
  1226. player notify("destroy_bar");
  1227. player.tehbar.bar destroy();
  1228. player.tehbar destroy();
  1229. player ControlsUnlink();
  1230. player freezeControlsWrapper(true);
  1231. if(!level.gameEnded||isDefined(player.finalKill))
  1232. player thread maps\mp\killstreaks\_remotemissile::staticEffect(0.5);
  1233. wait 0.5;
  1234. player ThermalVisionFOFOverlayOff();
  1235. player CameraUnlink();
  1236. if(getDvarInt("camera_thirdPerson"))
  1237. player setThirdPersonDOF(true);      
  1238. }
  1239. player clearUsingRemote();
  1240. }
  1241. ChangeAppearance(Type,MyTeam){
  1242. ModelType=[];
  1243. ModelType[0]="GHILLIE";
  1244. ModelType[1]="SNIPER";
  1245. ModelType[2]="LMG";
  1246. ModelType[3]="ASSAULT";
  1247. ModelType[4]="SHOTGUN";
  1248. ModelType[5]="SMG";
  1249. ModelType[6]="RIOT";
  1250. if(Type==7){
  1251. MyTeam=randomint(2);Type=randomint(7);
  1252. }
  1253. team=get_enemy_team(self.team);if(MyTeam)team=self.team;
  1254. self detachAll();
  1255. [[game[team+"_model"][ModelType[Type]]]]();
  1256. }
  1257. JZombiez(){
  1258. self endon("disconnect");
  1259. self endon("death");
  1260. if(!level.RWB&&self isHost()){
  1261. SnDSurvival(0,0);
  1262. Box=getEnt("sd_bomb","targetname");
  1263. thread CreateRandomWeaponBox(Box.origin+(0,0,15),game["attackers"]);
  1264. thread CreateRandomPerkBox(Box.origin+(0,50,15),game["attackers"]);
  1265. level thread JZombiesScore();
  1266. level.RWB=1;
  1267. }
  1268. self setClientDvar("cg_everyonehearseveryone",1);
  1269. self thread maps\mp\gametypes\_class::setKillstreaks("none","none","none");
  1270. self takeAllWeapons();
  1271. self _clearPerks();
  1272. self.ExpAmmo=0;
  1273. if(self.pers["team"]==game["attackers"]){
  1274. self thread maps\mp\gametypes\_hud_message::hintMessage("^7Human - Stay Alive!");
  1275. self maps\mp\perks\_perks::givePerk("specialty_marathon");
  1276. self maps\mp\perks\_perks::givePerk("specialty_falldamage");
  1277. self.maxhealth=100;
  1278. self.health=self.maxhealth;
  1279. Wep="beretta_fmj_mp";
  1280. self.moveSpeedScaler=1.1;      
  1281. self setMoveSpeedScale(self.moveSpeedScaler);
  1282. wait 0.2;
  1283. self _giveWeapon(Wep);
  1284. self switchToWeapon(Wep);
  1285. wait 0.1;
  1286. self thread JZombiesCash();
  1287. self thread Night();
  1288. self thread JZGoldGun();
  1289. self maps\mp\perks\_perks::givePerk("frag_grenade_mp");
  1290. for(;;){
  1291. self waittill("killed_enemy");
  1292. self notify("doCash");
  1293. } }else if(self.pers["team"]==game["defenders"]){
  1294. self thread maps\mp\gametypes\_hud_message::hintMessage("^1Juggernaut Zombie - Mmmmm... Brains!");
  1295. self maps\mp\perks\_perks::givePerk("specialty_marathon");
  1296. self maps\mp\perks\_perks::givePerk("specialty_quieter");
  1297. self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
  1298. self maps\mp\perks\_perks::givePerk("specialty_falldamage");
  1299. ChangeAppearance(6,1);
  1300. self.maxhealth=50*(game["roundsWon"][game["attackers"]]+1);
  1301. self.health=self.maxhealth;
  1302. if(self.health>50){
  1303. self iPrintlnBold("^1Health Increased : "+(((self.maxhealth/50)-1)*100)+" Percent");
  1304. }
  1305. Wep="airdrop_marker_mp";
  1306. self.moveSpeedScaler=1;
  1307. self setMoveSpeedScale(self.moveSpeedScaler);
  1308. wait 0.2;
  1309. self _giveWeapon(Wep);
  1310. self switchToWeapon(Wep);
  1311. wait 0.1;
  1312. self setWeaponAmmoClip(Wep,0,"left");
  1313. self setWeaponAmmoClip(Wep,0,"right");
  1314. self ThermalVisionFOFOverlayOn();
  1315. self thread Night();
  1316. ZP=randomint(4);
  1317. self thread ZombiePerk(ZP,1);
  1318. KR=0;
  1319. for(;;){
  1320. MyWep = self getCurrentWeapon();
  1321. switch(MyWep){
  1322. case "airdrop_marker_mp":
  1323. case "throwingknife_mp":
  1324. case "riotshield_mp":
  1325. break;
  1326. default:
  1327. self takeAllWeapons();
  1328. self _giveWeapon(Wep);
  1329. self switchToWeapon(Wep);
  1330. self ZombiePerk(ZP,0);
  1331. self setWeaponAmmoClip(Wep,0,"left");
  1332. self setWeaponAmmoClip(Wep,0,"right");
  1333. }
  1334. if(KR>100){
  1335. self ZombiePerk(ZP,0);KR=0;
  1336. }
  1337. KR++;
  1338. wait 0.05;
  1339. } } }
  1340. SnDSurvival(S,W){
  1341. doRestart=0;if(getDvar("scr_sd_timelimit")!="0"&&self isHost())doRestart=1;
  1342. setDvar("scr_sd_multibomb",0);
  1343. setDvar("scr_sd_numlives",1);
  1344. setDvar("scr_sd_playerrespawndelay",0);
  1345. setDvar("scr_sd_roundlimit",0);
  1346. setDvar("scr_sd_roundswitch",1);
  1347. if(IsDefined(S))setDvar("scr_sd_roundswitch",S);
  1348. setDvar("scr_sd_scorelimit",1);
  1349. setDvar("scr_sd_timelimit",0);
  1350. setDvar("scr_sd_waverespawndelay",0);
  1351. setDvar("scr_sd_winlimit",4);
  1352. if(IsDefined(W))setDvar("scr_sd_winlimit",W);
  1353. self setClientDvar("cg_gun_z",0);
  1354. setDvar("painVisionTriggerHealth",0);
  1355. setDvar("scr_killcam_time",15);
  1356. setDvar("scr_killcam_posttime",4);
  1357. if(doRestart){
  1358. wait 5; map_restart();
  1359. }
  1360. self thread maps\mp\gametypes\_class::setKillstreaks("none","none","none");
  1361. for(i=0;i<level.bombZones.size;i++)level.bombZones[i] maps\mp\gametypes\_gameobjects::disableObject();
  1362. level.sdBomb maps\mp\gametypes\_gameobjects::disableObject();
  1363. setObjectiveHintText(game["attackers"],"");setObjectiveHintText(game["defenders"],"");
  1364. }
  1365. CreateRandomWeaponBox(O,T){
  1366. B=spawn("script_model",O);
  1367. B setModel("com_plasticcase_friendly");
  1368. B Solid();
  1369. B CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
  1370. W=spawn("script_model",O);W Solid();
  1371. RM=randomint(9999);I=[];X=[];
  1372. I[0]="glock_akimbo_fmj_mp";X[0]=10;
  1373. I[1]="mg4_fmj_grip_mp";X[1]=8;
  1374. I[2]="aa12_fmj_xmags_mp";X[2]=10;
  1375. I[3]="model1887_akimbo_fmj_mp";X[3]=12;
  1376. I[4]="ranger_akimbo_fmj_mp";X[4]=12;
  1377. I[5]="spas12_fmj_grip_mp";X[5]=14;
  1378. I[6]="m1014_fmj_xmags_mp";X[6]=20;
  1379. I[7]="uzi_akimbo_xmags_mp";X[7]=12;
  1380. I[8]="ak47_mp";X[8]=10;
  1381. I[9]="m4_acog_mp";X[9]=10;
  1382. I[10]="fal_mp";X[10]=8;
  1383. I[11]="mp5k_fmj_silencer_mp";X[11]=8;
  1384. I[12]="deserteaglegold_mp";X[12]=5;
  1385. Y=0;
  1386. for(V=0;V<X.size;V++){
  1387. Y+=X[V];
  1388. }
  1389. for(;;){
  1390. foreach(P in level.players){
  1391. wait 0.01;
  1392. if(IsDefined(T)&&P.pers["team"]!=T)continue;
  1393. R=distance(O,P.origin);
  1394. if(R<50){
  1395. P setLowerMessage(RM,"Press ^3R^7 for Random Weapon [Cost: 300]");
  1396. if(P UseButtonPressed())
  1397. wait 0.1;
  1398. if(P UseButtonPressed()){
  1399. P clearLowerMessage(RM,1);
  1400. if(P.bounty>299){
  1401. P.bounty-=400;
  1402. P notify("doCash");
  1403. RW="";J=0;G=randomint(Y);for(V=0;V<X.size;V++){
  1404. J+=X[V];RW=I[V];
  1405. if(J>G)break;
  1406. }
  1407. W setModel(getWeaponModel(RW));
  1408. W MoveTo(O+(0,0,25),1);
  1409. wait 0.2;
  1410. if(P GetWeaponsListPrimaries().size>1)P takeWeapon(P getCurrentWeapon());
  1411. P _giveWeapon(RW);
  1412. P switchToWeapon(RW);
  1413. wait 0.6;
  1414. W MoveTo(O,1);
  1415. wait 0.2;
  1416. W setModel("");
  1417. }else{
  1418. P iPrintlnBold("^1You DO NOT Have Enough Cash!");
  1419. wait 0.05;
  1420. } } }else{
  1421. P clearLowerMessage(RM,1);
  1422. } } } }
  1423. CreateRandomPerkBox(O,T){
  1424. B = spawn("script_model",O);
  1425. B setModel("com_plasticcase_friendly");
  1426. B Solid();
  1427. B CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
  1428. RM=randomint(9999);I=[];X=[];
  1429. I[0]="specialty_fastreload";X[0]="^4Sleight of Hand";
  1430. I[1]="specialty_bulletdamage";X[1]="^1Stopping Power";
  1431. I[2]="specialty_coldblooded";X[3]="^1Cold Blooded";
  1432. I[3]="specialty_grenadepulldeath";X[4]="^2Martydom";
  1433. I[4]="ammo";X[2]="^4Extra Ammo";
  1434. for(;;){
  1435. foreach(P in level.players){
  1436. wait 0.01;
  1437. if(IsDefined(T)&&P.pers["team"]!=T)continue;
  1438. R=distance(O,P.origin);
  1439. if(R<50){
  1440. P setLowerMessage(RM,"Press ^3R^7 for Random Perk [Cost: 300]");
  1441. if(P UseButtonPressed())wait 0.1;
  1442. if(P UseButtonPressed()){
  1443. P clearLowerMessage(RM,1);
  1444. if(P.bounty>299){
  1445. P.bounty-=400;
  1446. P notify("doCash");
  1447. RP=randomint(4);
  1448. while(P _hasPerk(I[RP],1)){
  1449. RP=randomint(I.size);
  1450. }
  1451. P iPrintlnBold("Perk : "+X[RP]);
  1452. if(I[RP]=="ammo"){
  1453. P GiveMaxAmmo(P getCurrentWeapon());
  1454. P GiveMaxAmmo(P getCurrentoffhand());
  1455. }else{
  1456. P thread maps\mp\perks\_perks::givePerk(I[RP]);
  1457. }
  1458. wait 0.2;
  1459. }else{
  1460. P iPrintlnBold("^1You DO NOT Have Enough Cash!");
  1461. wait 0.05;
  1462. } } }else{
  1463. P clearLowerMessage(RM,1);
  1464. } } } }
  1465. ZombiePerk(N,P){
  1466. if(N==0){
  1467. self.moveSpeedScaler=1.3;
  1468. self setMoveSpeedScale(self.moveSpeedScaler);
  1469. if(P){wait 2;self iPrintlnBold("^1Ability : Super Speed");}
  1470. }
  1471. else if(N==1){
  1472. Wep="riotshield_mp";
  1473. self _giveWeapon(Wep);
  1474. self switchToWeapon(Wep);
  1475. if(P){wait 2;self iPrintlnBold("^1Ability : Riot Shield");}
  1476. }else{
  1477. self maps\mp\perks\_perks::givePerk("throwingknife_mp");
  1478. if(P){wait 2;self iPrintlnBold("^1Ability : Throwing Knife");}
  1479. } }
  1480. JZGoldGun(){
  1481. self endon("disconnect");
  1482. self endon("death");
  1483. for(;;){
  1484. W=self getCurrentWeapon();
  1485. if(W=="deserteaglegold_mp"){
  1486. self.ExpAmmo=1;
  1487. }else{
  1488. self.ExpAmmo=0;
  1489. }
  1490. wait 0.1;
  1491. } }
  1492. JZombiesScore(){
  1493. for(;;){
  1494. if(game["roundsWon"][game["defenders"]]>0){
  1495. level.forcedEnd=1;
  1496. level thread maps\mp\gametypes\_gamelogic::endGame(game["defenders"],"");
  1497. break;
  1498. }
  1499. game["strings"][game["defenders"]+"_name"]="Juggernaut Zombies";
  1500. game["strings"][game["defenders"]+"_eliminated"]="Juggernaut Zombies Eliminated";
  1501. game["strings"][game["attackers"]+"_name"]="Humans";
  1502. game["strings"][game["attackers"]+"_eliminated"]="Humans Did Not Survive!";
  1503. level deletePlacedEntity("misc_turret");
  1504. wait 1;
  1505. } }
  1506. Night(){
  1507. V=0;
  1508. for(;;){
  1509. self closepopupMenu();
  1510. self VisionSetNakedForPlayer("cobra_sunset3",0.01);
  1511. wait 0.01;
  1512. V++;
  1513. } }
  1514. JZombiesCash(){
  1515. self endon("disconnect");
  1516. self endon("death");
  1517. self.bounty=100+(self.kills*200);
  1518. if(self isHost())self.bounty+=9999;
  1519. if(self.bounty>500)self iPrintlnBold("^2"+(self.bounty-500)+" BONUS CASH!");
  1520. for(;;){
  1521. self.cash destroy();
  1522. self.cash=NewClientHudElem(self);
  1523. self.cash.alignX="right";
  1524. self.cash.alignY="center";
  1525. self.cash.horzAlign="right";
  1526. self.cash.vertAlign="center";
  1527. self.cash.foreground=1;
  1528. self.cash.fontScale=1;
  1529. self.cash.font="hudbig";
  1530. self.cash.alpha=1;
  1531. self.cash.color=(1,1,1);
  1532. self.cash setText("Cash : "+self.bounty);
  1533. self waittill("doCash");
  1534. self.bounty+=100;
  1535. } }
Advertisement
Add Comment
Please, Sign In to add comment