Advertisement
coolbunny1234

Untitled

Feb 27th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.77 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\_utility;
  3. #include maps\_hud_util;
  4.  
  5. init()
  6. {
  7. self thread onPlayerConnect();
  8. }
  9.  
  10. onPlayerConnect()
  11. {
  12. for(;;)
  13. {
  14. level waittill("connected", player);
  15. player thread onPlayerSpawned();
  16. }
  17. }
  18.  
  19. onPlayerSpawned()
  20. {
  21. self dvars_begin();
  22. for(m = 1; m < 12; m++)
  23. precacheShader("rank_prestige"+m);
  24. precacheShader("gradient");
  25. for(w = 0; w < 65; w++)
  26. precacheShader(self maps\_challenges_coop::getRankInfoIcon(w, 0));
  27. precachemodel("char_usa_marine_polonsky_zomb");
  28. precachemodel("char_jap_impinf_officer_body_zomb");
  29. precachemodel("char_jap_impinf_officer_head");
  30. precachemodel("char_jap_impinf_officer_hat_zomb");
  31. player = get_players();
  32. for(;;)
  33. {
  34. self waittill("spawned_player");
  35. self thread entry();
  36. self thread beginStrat();
  37. }
  38. }
  39. dvars_begin(){
  40. //self setClientDvars( "g_ai", "0");
  41. self SetClientDvars( "loc_warnings", "0",
  42. "loc_warningsAsErrors", "0",
  43. "sv_cheats", "1",
  44. "ui_mapname", "mak",
  45. "ui_gametype", "cmp",
  46. "scr_game_difficulty", "1",
  47. "scr_game_arcadescoring", "0",
  48. "scr_game_pinups", "0",
  49. "stat_version", "22",
  50. "zombiemode", "1",
  51. "arcademode", "0",
  52. "developeruser", "1",
  53. "developeruser", "2",
  54. "developeruser", "3");
  55. }
  56. entry()
  57. {
  58. self.menuOpts = [];
  59. //self thread WelcomeMessage();
  60. self thread welcomeText("^1Bunny's Strat","^2Gametype: ^7Strat Lobby! [^1All ^7] -- ^2Created By: ^7Bunny");
  61. self thread BuildMenu();
  62. self thread WatchScrolling();
  63. self thread InitOpts();
  64. }
  65. getMap()
  66. {
  67. if(level.script == "nazi_zombie_prototype")
  68. return "nzp";
  69. if(level.script == "nazi_zombie_asylum")
  70. return "nza";
  71. if(level.script == "nazi_zombie_sumpf")
  72. return "nzs";
  73. if(level.script == "nazi_zombie_factory")
  74. return "nzf";
  75. return "";
  76. }
  77. getHostName()
  78. {
  79. for(x=0;x<get_players().size;x++)
  80. {
  81. players=get_players()[x];
  82. if(players getEntityNumber()==0)
  83. {
  84. return players.playername;
  85. }
  86. }
  87. }
  88. getSelfName()
  89. {
  90. for(x=0;x<get_players().size;x++)
  91. {
  92. players=get_players()[x];
  93. if(players==self)
  94. {
  95. return players.playername;
  96. }
  97. }
  98. }
  99. spawnSM(origin, model, angles)
  100. {
  101. ent = spawn("script_model", origin);
  102. ent setModel(model);
  103. if(isDefined(angles))
  104. ent.angles = angles;
  105. return ent;
  106. }
  107. welcomeText(text1, text2)
  108. {
  109. if(isDefined(self.welcome_msg))
  110. for(;;)
  111. {
  112. wait .05;
  113. if(!isDefined(self.welcome_msg))
  114. break;
  115. }
  116. self.welcome_msg = true;
  117. self setClientDvars("ammoCounterHide", 1, "miniscoreboardhide", 1);
  118. hudBG = self createRectangle("BOTTOM", "BOTTOM", -1000, -40, 1000, 50, (0, 0, 0), "white", 10, .8);
  119. hudBG hudMoveX(0, .4);
  120. line1 = self createText("objective", 1, "LEFT", "LEFTBOTTOM", 20, -72, 11, 0, text1);
  121. line2 = self createText("objective", 1, "LEFT", "LEFTBOTTOM", 20, -58, 11, 0, text2);
  122. line1 setPulseFX(100, 5000, 1000);
  123. line2 setPulseFX(100, 5000, 1000);
  124. line1 thread hudFade(1, .4);
  125. line2 hudFade(1, .4);
  126. wait 5;
  127. line1 destroy();
  128. line2 destroy();
  129. hudBG hudMoveX(-1000, .4);
  130. hudBG destroy();
  131. self setClientDvars("ammoCounterHide", 0, "miniscoreboardhide", 0);
  132. self.welcome_msg = undefined;
  133. }
  134. hudMoveX(x, time)
  135. {
  136. self moveOverTime(time);
  137. self.x = x;
  138. wait(time);
  139. }
  140. hudFade(alpha, time)
  141. {
  142. self fadeOverTime(time);
  143. self.alpha = alpha;
  144. wait(time);
  145. }
  146. WelcomeMessage()
  147. {
  148. level.patchname="bunny strat beta";
  149. self.welcomemessage=true;
  150. self thread BuildMessage("Welcome "+getSelfName(), "Welcome To "+level.PatchName+"!", "Hosted By "+getHostName());
  151. wait 5;
  152. }
  153. BuildMessage(Text1, Text2, Text3)
  154. {
  155. self iPrintln("Message Build");
  156. Info=strTok(""+Text1+";"+Text2+";"+Text3+"", ";");
  157. Originalspace=20;
  158. for(i=0;i<4;i++)
  159. {
  160. FinalInfo=Info[i];
  161. Originalspace+=(i*20);
  162. self thread CreateTextz("CENTER", "TOP", -120, 120, -850, 850, "default", 1.5, 1, (1,0,1), (0,1,0), FinalInfo, 1, 4, (i+Originalspace) );
  163. }
  164. }
  165. CreateTextz(align, relative, stop1, stop2, Xstart, Xfinish, fontType, size, glowAlp, glowcolour, colour, Text, StartEndTime, StopTime, space)
  166. {
  167. MessageText=self createFontString(fontType, size);
  168. MessageText setPoint(align, relative, (Xstart+(space*10)), 80);
  169. MessageText setText(Text);
  170. MessageText.y=80+space;
  171. MessageText.color=colour;
  172. MessageText.glowAlpha=glowAlp;
  173. MessageText.glowColor=glowcolour;
  174. MessageText MoveOverTime(StartEndTime);
  175. MessageText.x=(stop1+(space*2));
  176. wait StartEndTime;
  177. MessageText MoveOverTime(StopTime);
  178. MessageText.x=(stop2+(space*2));
  179. wait StopTime;
  180. MessageText MoveOverTime(StartEndTime);
  181. MessageText.x=(Xfinish+(space*2));
  182. wait StartEndTime;
  183. MessageText destroy();
  184. }
  185. initOpts()
  186. {
  187.  
  188. self AddTitle("Main", "Strat Lobby");
  189. self AddMenu("Main", 0, "Gun Menu", ::OpenSub, "Gun");
  190. self AddMenu("Main", 1, "Killstreaks Menu", ::test, "not done");
  191. self AddMenu("Main", 2, "Perks Menu", ::OpenSub, "Perk");
  192. self AddMenu("Main", 3, "Power Ups", ::test, "not done");
  193. self AddMenu("Main", 4, "Close Menu", ::Closed, "");
  194.  
  195. self AddTitle("Gun", "Gun Menu");
  196. self AddBack("Gun", "Main");
  197. self AddMenu("Gun", 0, "Machine Guns", ::OpenSub, "MGun");
  198. self AddMenu("Gun", 1, "Sub Machine Guns", ::OpenSub, "SGun");
  199. self AddMenu("Gun", 2, "Snipers", ::OpenSub, "SNGun");
  200. self AddMenu("Gun", 3, "Special Guns", ::OpenSub, "XGun");
  201.  
  202. self AddTitle("Perk", "Perk Menu");
  203. self AddBack("Perk", "Main");
  204. self AddMenu("Perk", 0, "Speed Cola", ::giveFR, "");
  205. self AddMenu("Perk", 1, "Quick Revive", ::giveQR, "");
  206. self AddMenu("Perk", 2, "Juggernaut", ::giveJN, "");
  207. self AddMenu("Perk", 3, "Double Tap", ::giveDT, "");
  208.  
  209. mguns = strTok("zombie_30cal zombie_bar zombie_fg42 zombie_mg42", " ");
  210. self AddTitle("MGun", "Machine Gun Menu");
  211. self AddBack("MGun", "Gun");
  212. for(e = 0; e < mguns.size; e++)
  213. self AddMenu("MGun", e, mguns[e]+" >Cost: 75<", ::give_gun, mguns[e]);
  214.  
  215. sguns = strTok("zombie_mp40 zombie_ppsh zombie_thompson zombie_type100_smg", " ");
  216. self AddTitle("SGun", "Sub Machine Gun Menu");
  217. self AddBack("SGun", "Gun");
  218. for(s = 0; s < sguns.size; s++)
  219. self AddMenu("SGun", s, sguns[s]+" >Cost: 75<", ::give_gun, sguns[s]);
  220.  
  221. snguns = strTok("zombie_m1carbine zombie_m1garand zombie_gewehr43 zombie_kar98k ptrs41_zombie", " ");
  222. self AddTitle("SNGun", "Snipers Menu");
  223. self AddBack("SNGun", "Gun");
  224. for(q = 0; q < snguns.size; q++)
  225. self AddMenu("SNGun", q, snguns[q]+" >Cost: 75<", ::give_gun, snguns[q]);
  226.  
  227. xguns = strTok("tesla_gun ray_gun zombie_doublebarrel zombie_shotgun", " ");
  228. self AddTitle("XGun", "Special Guns Menu");
  229. self AddBack("XGun", "Gun");
  230. for(x = 0; x < xguns.size; x++)
  231. self AddMenu("XGun", x, xguns[x]+" >Cost: 75<", ::give_gun, xguns[x]);
  232.  
  233. self AddTitle("Players", "Player Menu");
  234. self AddBack("Players", "Main");
  235.  
  236. self AddTitle("Player_Options", get_players()[self.Selected].playername+"'s Options");
  237. self AddBack("Player_Options", "Players");
  238. self AddMenu("Player_Options", 0, "Umm....", ::test, "1");
  239.  
  240. }
  241. AddBack(menu, backMenu)
  242. {
  243. self.menuOpts["BackMenu"][menu]=backMenu;
  244. }
  245. createText(font, fontScale, align, relative, x, y, sort, alpha, text)
  246. {
  247. textElem = self createFontString(font, fontScale, self);
  248. textElem setPoint(align, relative, x, y);
  249. textElem.sort = sort;
  250. textElem.alpha = alpha;
  251. textElem setText(text);
  252. return textElem;
  253. }
  254. createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
  255. {
  256. boxElem = newClientHudElem(self);
  257. boxElem.elemType = "bar";
  258. if(!level.splitScreen)
  259. {
  260. boxElem.x = -2;
  261. boxElem.y = -2;
  262. }
  263. boxElem.width = width;
  264. boxElem.height = height;
  265. boxElem.align = align;
  266. boxElem.relative = relative;
  267. boxElem.xOffset = 0;
  268. boxElem.yOffset = 0;
  269. boxElem.children = [];
  270. boxElem.sort = sort;
  271. boxElem.color = color;
  272. boxElem.alpha = alpha;
  273. boxElem.shader = shader;
  274. boxElem setParent(level.uiParent);
  275. boxElem setShader(shader, width, height);
  276. boxElem.hidden = false;
  277. boxElem setPoint(align, relative, x, y);
  278. return boxElem;
  279. }
  280. test(num){self iPrintln("^2Option Number "+num);}
  281. testSub(num){self iPrintln("^2Sub Option Number "+num);}
  282. Playertest(num){self iPrintln("^2Player Option Number "+num);}
  283. BuildMenu()
  284. {
  285. self endon("death");
  286. self endon("disconnect");
  287. self endon("StopFgt");
  288. self.menuOpen=false;
  289. for(;;)
  290. {
  291. if(self FragButtonPressed() && self.menuOpen==false)
  292. {
  293. self.Curs=0;
  294. self.AllowedToExit=false;
  295. self.CurSub="Main";
  296. //self.Menu["Shader"]=createRectangle("CENTER", "CENTER", 0, 0, 450, 750, (0,0,0), "white", -2, 0.75 );
  297. self.menuOpen=true;
  298. self notify("MenuOpen");
  299. self thread DrawMenu(self.CurSub);
  300. self waittill("AllowedToClose");
  301. self.AllowedToExit=true;
  302. //self freezecontrols(true);
  303. wait 0.5;
  304. }
  305. if(self AdsButtonPressed() && self.menuOpen==true)
  306. {
  307. self.BeforeColor=self.Text[self.Curs].color;
  308. self.Curs--;
  309.  
  310. if(self.Curs<0)
  311. self.Curs=self.menuOpts["Name"][self.CurSub].size-1;
  312.  
  313. self notify("Scrolled");
  314. wait 0.2;
  315. }
  316. if(self AttackButtonPressed() && self.menuOpen==true)
  317. {
  318. self.BeforeColor=self.Text[self.Curs].color;
  319. self.Curs++;
  320.  
  321. if(self.Curs>self.menuOpts["Name"][self.CurSub].size-1)
  322. self.Curs=0;
  323.  
  324. self notify("Scrolled");
  325. wait 0.2;
  326. }
  327. if(self UseButtonPressed() && self.menuOpen==true)
  328. {
  329.  
  330. if(self.CurSub=="Players")
  331. self.Selected=self.Curs;
  332.  
  333. self thread [[self.menuOpts["Func"][self.CurSub][self.Curs]]](self.menuOpts["Input"][self.CurSub][self.Curs]);
  334. wait 0.2;
  335. }
  336. if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub!="Main" && self.AllowedToExit==true)
  337. {
  338. self.CurSub=self.menuOpts["BackMenu"][self.CurSub];
  339. self thread OpenSub(self.CurSub);
  340. wait 0.2;
  341. }
  342. if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub=="Main" && self.AllowedToExit==true)
  343. {
  344. self thread Close();
  345. self waittill("Done");
  346. self.Menu["Shader"] destroy();
  347. self.Title destroy();
  348. self.menuOpen=false;
  349. wait 0.2;
  350. }
  351. wait 0.01;
  352. }
  353. }
  354. Close()
  355. {
  356. for(i=self.menuOpts["Name"]["Main"].size-1;i<self.menuOpts["Name"]["Main"].size;i--)
  357. {
  358. self.Text[i] destroy();
  359. wait 0.05;
  360. if(i==0)self notify("Done");
  361. }
  362. //Needed this because apparently when you have that in the other for loop it kills the continuous one.
  363. }
  364.  
  365. WatchScrolling()
  366. {
  367. self endon("death");
  368. self endon("StopFgt");
  369. self endon("disconnect");
  370. for(;;)
  371. {
  372. self waittill_any("MenuOpen","Scrolled");
  373. for(i=0;i<self.menuOpts["Name"][self.CurSub].size;i++)
  374. {
  375. self.Text[i].color=(1,1,1);
  376. self.Text[i].glowAlpha=0;
  377. }
  378. self thread ShowOptionOn();
  379. }
  380. }
  381. ShowOptionOn()
  382. {
  383. self endon("Scrolled");
  384. self endon("death");
  385. self endon("StopFgt");
  386. self endon("disconnect");
  387. for(;;)
  388. {
  389. self.Text[self.Curs].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
  390. self.Title.color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
  391. wait 0.2;
  392. }
  393. }
  394. AddTitle(menu, text)
  395. {
  396. self.menuOpts["Title"][menu]=text;
  397. }
  398. AddMenu(menu, numb, text, func, input)
  399. {
  400. self.menuOpts["Name"][menu][numb]=text;
  401. self.menuOpts["Func"][menu][numb]=func;
  402. self.menuOpts["Input"][menu][numb]=input;
  403. }
  404. OpenSub(newMenu)
  405. {
  406. self.AllowedToExit=false;
  407. self thread Close();
  408. self waittill("Done");
  409. self.CurSub=newMenu;
  410. self.Title destroy();
  411. self.AllowedToExit=true;
  412. self.Curs=0;
  413. self thread DrawMenu(self.CurSub);
  414. }
  415. DrawMenu(menu)
  416. {
  417. self.Title=self createFontString( "objective", 2.0, self );
  418. self.Title setPoint("LEFT", "LEFT", 0, 30 );
  419. self.Title setText(self.menuOpts["Title"][self.CurSub]);
  420. if(menu!="Players")
  421. {
  422. for(i=0;i<self.menuOpts["Name"][menu].size;i++)
  423. {
  424. self.AllowedToExit=false;
  425. self.Text[i] = self createFontString( "default", 1.5, self );
  426. //straight
  427. self.Text[i] setPoint( "LEFT", "LEFT", 0, 50+(i*20));
  428. //circle
  429. //segment = 360/self.menuOpts["Name"][menu].size;
  430. //self.Text[i] setPoint("CENTER", "CENTER", (sin(180+(i*segment))*120)*-1, cos(180+(i*segment))*120);
  431. self.Text[i] setText(self.menuOpts["Name"][menu][i]);
  432. wait 0.1;
  433. }
  434. self.AllowedToExit=true;
  435. self notify("AllowedToClose");
  436. }
  437. else
  438. {
  439. for(i=0; i<get_players().size; i++)
  440. {
  441. self.menuOpts["Name"]["Players"][i]="["+get_players()[i].status+"]"+get_players()[i].playername;
  442. self.menuOpts["Func"]["Players"][i]=::OpenSub;
  443. self.menuOpts["Input"]["Players"][i]="Player_Options";
  444. self.Text[i] = self createFontString( "default", 1.5, self );
  445. self.Text[i] setPoint( "CENTER", "TOP", 0, 50+(i*20));
  446. self.Text[i] setText("["+get_players()[i].status+"]"+get_players()[i].playername);
  447. }
  448. }
  449. }
  450.  
  451. Closed(){
  452. self thread Close();
  453. self waittill("Done");
  454. self.Menu["Shader"] destroy();
  455. self.Title destroy();
  456. self.menuOpen=false;
  457. }
  458.  
  459.  
  460. beginStrat(){
  461. self.currentKills = 0;
  462. self thread watch_kills();
  463. self thread debug_kills();
  464. p=get_players();
  465. for(b=0;b<=p.size;b++)
  466. {
  467. p[b].score = 1000;
  468. p[b].score_total = 1000;
  469. p[b] thread StratFog();
  470. p[b] thread r_Lightning();
  471. p[b] thread sLights();
  472. p[b] thread sLightning();
  473. p[b] thread doStratVision();
  474. p[b] thread Strat_clientDvars();
  475. p[b] thread disableBuyables();
  476. }
  477. }
  478.  
  479.  
  480. debug_kills()
  481. {
  482. players = get_players();
  483. hud = newHudElem();
  484. hud.foreground = true;
  485. hud.sort = 1;
  486. hud.hidewheninmenu = false;
  487. hud.alignX = "left";
  488. hud.alignY = "top";
  489. hud.horzAlign = "left";
  490. hud.vertAlign = "top";
  491. hud.x = 0;
  492. hud.y = 0;
  493. hud.alpha = 1;
  494. hud SetShader( "white", 24, 24 );
  495.  
  496. while(true)
  497. {
  498. wait(0.5);
  499. hud settext("Kills: "+players[0].currentKills);
  500. }
  501. }
  502.  
  503.  
  504. give_gun(gun){
  505. self Closed();
  506. self maps\_zombiemode_score::minus_to_player_score( 75 );
  507. PrecacheItem( gun );
  508. //self TakeAllWeapons(); don't need to
  509. self giveweapon( gun );
  510. self switchToWeapon( gun );
  511. self iPrintln("Equipped ^1 " +gun);
  512. }
  513.  
  514. StratFog()
  515. {}
  516. Fog()
  517. {
  518. self setClientDvar( "r_lightTweakSunlight", "0" );
  519. playfx( level._effect["edge_fog"], (294.433, -1165.22, 50.9094));
  520. playfx( level._effect["edge_fog"], (319.793, -1714.6, 92.2927));
  521. playfx( level._effect["edge_fog"], (288.938, -2659.81, 101.939));
  522. playfx( level._effect["edge_fog"], (-813.818, -625.947, 64.5579));
  523. playfx( level._effect["edge_fog"], (750.756, -371.866, 69.8954));
  524. self SetExpFog(256, 512, 0, 0, 0, 0);
  525. setVolFog(5000, 1000, 1000, 4500, 0, 0,0, 10);
  526. }
  527. r_Lightning()
  528. {
  529. while(1)
  530. {
  531. x = RandomFloatRange( 3.0, 25.0 );
  532. SetSunLight( 4, 4, 4.5 );
  533. SetSunLight( 1, 1, 1.5 );
  534. wait( 0.0014 );
  535. SetSunLight( 3, 3, 3.5 );
  536. SetSunLight( 2, 2, 2.5 );
  537. SetSunLight( 1.5, 1.5, 2 );
  538. wait( 0.0010 );
  539. SetSunLight( 1, 1, 1.5 );
  540. SetSunLight( 5, 5, 5.5 );
  541. wait( 0.0011 );
  542. SetSunLight( 4, 4, 4.5 );
  543. SetSunLight( 1, 1, 1.5 );
  544. wait( 0.0015 );
  545. SetSunLight( 2.5, 2.5, 3 );
  546. wait( 0.0011 );
  547. ResetSunLight();
  548. wait x;
  549. }
  550. }
  551. sLights()
  552. {
  553. tok = strTok("191.306;-2392.63;88;58.7277;-2392.63;88;191.676;-2347.37;88;58.7277;-2347.37;88;197.371;-2871.1;87;392.125;-2871.1;87;379.676;-2016.13;89;142.701;-2016.13;89;400.072;-1931.32;64;159.323;-1931.32;90;456.875;-1071.4;66;456.875;-1209.9;67;108.916;-1039.37;191;108.916;-1170.1;192;-876.048;-344.874;67;-699.122;-344.874;67;-620.874;-101.744;69;-620.874;-284.661;69;832.599;373.126;64;679.603;373.126;64;-309.911;-23.1251;69;-309.911;-164.308;69;-148.874;90.165;93;36.8359;90.165;93;-110.799;-280.874;-2;-227.639;-280.874;-2;-569.126;-811.675;67;-569.126;-910.765;67;-403.125;-1279.74;199;-403.125;-1156.98;199;500.127;-1066.93;249;500.127;-960.876;253;582.874;-2712.7;93;582.874;-2679.92;118;582.874;-2630.89;155;582.874;-2574.91;197;582.874;-2520.04;238;582.874;-2471.26;272;496.126;-2712.7;93;496.126;-2679.92;118;496.126;-2630.89;155;496.126;-2574.91;197;496.126;-2520.04;238;496.126;-2471.26;272;145;-1188;207;219;-1188;214;303;-1188;223;388;-1188;234;472;-1188;247;145;-1317;207;219;-1317;214;303;-1317;223;388;-1317;234;472;-1317;247;-867;-1143;199;-867;-1264;199;-1139;-1270;199;-1139;-1138;199;-1379;-767;199;-1246;-767;199;-1299;-1464;199;-1432;-1464;199;-1306;-1503;191;-1428;-1503;191;-1310;-1169;199;-1343;-1169;199;-1384;-1169;199;-1428;-1169;199;-1310;-1077;199;-1343;-1077;199;-1384;-1077;199;-1428;-1077;199;-505;-814;105;-456;-814;133;-505;-910;105;-456;-910;133;-454;-964;167;-454;-1013;199;682;322;64;820;322;64;792;-60;66;792;-212;64;1066;367;64;1067;321;64;1211;321;65;1039;650;70;1039;710;114;1039;760;152;1039;794;166;1039;912;167;933;650;70;933;710;114;933;760;152;933;794;166;933;912;167;933;833;167;933;880;167;1479;650;71;1479;709;111;1479;760;148;1479;795;164;1479;890;164;1479;920;164;1584;650;71;1584;709;111;1584;760;148;1584;795;164;1584;890;164;1584;920;164;326;368;64;326;227;63;-364;-1156;191;-364;-1282;191", ";");
  554. for(m = 0; m < tok.size; m+=3)
  555. playFx(level._effect["mp_light_lamp"], (int(tok[m]), int(tok[m+1]), int(tok[m+2])));
  556. }
  557.  
  558. sLightning()
  559. {
  560. for(;;)
  561. {
  562. self playLocalSound("couch_slam");
  563. earthquake(.3, 1, self.origin, 100);
  564. for(m = 0; m < 2; m++)
  565. {
  566. self setClientDvars("r_lightTweakSunColor", ".9 .9 .9", "r_lightTweakSunLight", "3");
  567. wait .1;
  568. self setClientDvars("r_lightTweakSunLight", "1.2", "r_lightTweakSunColor", "0.588235 0.788235 1 1");
  569. wait .1;
  570. }
  571. wait(randomIntRange(5, 20));
  572. }
  573. }
  574. doStratVision()
  575. {
  576. if(IsSubStr( level.script, "nazi_zombie_factory" ))
  577. {
  578. self setclientdvar("r_glow", "0");
  579. self setclientdvar("r_glowtweakradius0", "5");
  580. self setclientdvar("r_glowTweakBloomCutoff", "0.5");
  581. self setclientdvar("r_glowTweakBloomDesaturation", "0");
  582. self setclientdvar("r_glowTweakBloomIntensity0", "1");
  583. self setclientdvar("r_FilmTweakEnable", "1");
  584. self setclientdvar("r_FilmUseTweaks", "1");
  585. self setclientdvar("r_FilmTweakContrast", "1.2");
  586. self setclientdvar("r_FilmTweakBrightness", "0");
  587. self setclientdvar("r_FilmTweakDesturation", "0");
  588. self setclientdvar("r_FilmTweakInvert", "0");
  589. //self setclientdvar("r_FilmTweakLightTint", "0.3921568627450980392156862745098 0.58431372549019607843137254901961 0.92941176470588235294117647058824");
  590. //self setclientdvar("r_FilmTweakDarkTint", "0.09803921568627450980392156862745 0.09803921568627450980392156862745 0.43921568627450980392156862745098");
  591. self setclientdvar("r_FilmTweakLightTint", "1 0.54901960784313725490196078431373 0");
  592. self setclientdvar("r_FilmTweakDarkTint", "0.82352941176470588235294117647059 0.41176470588235294117647058823529 0.11764705882352941176470588235294");
  593. }
  594. else if(IsSubStr( level.script, "nazi_zombie_asylum" ))
  595. {
  596. self setclientdvar("r_glow", "0");
  597. self setclientdvar("r_glowtweakradius0", "5");
  598. self setclientdvar("r_glowTweakBloomCutoff", "0.5");
  599. self setclientdvar("r_glowTweakBloomDesaturation", "0");
  600. self setclientdvar("r_glowTweakBloomIntensity0", "1");
  601. self setclientdvar("r_FilmTweakEnable", "1");
  602. self setclientdvar("r_FilmUseTweaks", "1");
  603. self setclientdvar("r_FilmTweakContrast", "1.2");
  604. self setclientdvar("r_FilmTweakBrightness", "0");
  605. self setclientdvar("r_FilmTweakDesturation", "0");
  606. self setclientdvar("r_FilmTweakInvert", "0");
  607. self setclientdvar("r_FilmTweakLightTint", "1 0.54901960784313725490196078431373 0");
  608. self setclientdvar("r_FilmTweakDarkTint", "0.82352941176470588235294117647059 0.41176470588235294117647058823529 0.11764705882352941176470588235294");
  609. }
  610. else if(IsSubStr( level.script, "nazi_zombie_prototype" ))
  611. {
  612. self setclientdvar("r_FilmUseTweaks", "1");
  613. self setclientdvar("r_FilmTweakEnable", "1");
  614. self VisionSetNaked("fly_dark", 5.0);
  615. }
  616. else
  617. {
  618. self setclientdvar("r_glow", "1");
  619. self setclientdvar("r_glowtweakradius0", "12.9");
  620. self setclientdvar("r_glowTweakBloomCutoff", "0.870289");
  621. self setclientdvar("r_glowTweakBloomDesaturation", "0.289442");
  622. self setclientdvar("r_glowTweakBloomIntensity0", "0.0334296");
  623. self setclientdvar("r_FilmTweakEnable", "1");
  624. self setclientdvar("r_FilmUseTweaks", "1");
  625. self setclientdvar("r_FilmTweakContrast", ".891");
  626. self setclientdvar("r_FilmTweakBrightness", "-0.00261099");
  627. self setclientdvar("r_FilmTweakDesturation", "0.4");
  628. self setclientdvar("r_FilmTweakInvert", "0");
  629. self setclientdvar("r_FilmTweakLightTint", ".1 .2 .5");
  630. self setclientdvar("r_FilmTweakDarkTint", "0 0 1");
  631. }
  632. }
  633.  
  634. Strat_clientDvars()
  635. {
  636. player_colour[0] = "0.33 0 0.623529 0";
  637. player_colour[1] = "0.386275 0.711765 0.833333 0";
  638. player_colour[2] = "0.864706 0.692157 0.213726 0";
  639. player_colour[3] = "0.413726 0.82549 0.433333 0";
  640. self SetClientDvars( "cg_deadChatWithDead", "1", "cg_deadChatWithTeam", "1", "cg_deadHearTeamLiving", "1", "cg_deadHearAllLiving", "1", "cg_everyoneHearsEveryone", "1", "compass", "0", "hud_showStance", "0", "cg_thirdPerson", "0", "cg_fov", "80", "cg_thirdPersonAngle", "0", "ammoCounterHide", "0", "miniscoreboardhide", "0", "ui_hud_hardcore", "0", "cg_ScoresColor_Zombie", player_colour[self.entity_num], "cg_ScoresColor_Gamertag_0", player_colour[0], "cg_ScoresColor_Gamertag_" + self.entity_num, "1 1 1 0");
  641. self setClientDvar( "r_specularMap", "0" );
  642. }
  643.  
  644. disableBuyables()
  645. {
  646. if(getMap() != "nzf")
  647. return;
  648. tok = strTok("m1carbine doublebarrel gewehr43 betty stg44 fg42_bipod type100_smg knife_bowie stielhandgranate stielhandgranate stielhandgranate thompson shotgun mp40 kar98k pack_door_clip", " ");
  649. array = getEntArray("script_brushmodel", "classname");
  650. for(m = 0; m < array.size; m++)
  651. for(e = 0; e < tok.size; e++)
  652. if(array[m].targetname == tok[e] || array[m].targetname == tok[e]+"_chalk" || array[m].targetname == tok[e]+"_chalk2" || array[m].targetname == tok[e]+"_chalk3")
  653. array[m] delete();
  654. tok = strTok("vending_pack_a_punch pf3788_auto1 pack_door", " ");
  655. array = getEntArray("script_model", "classname");
  656. for(m = 0; m < array.size; m++)
  657. for(e = 0; e < tok.size; e++)
  658. if(isDefined(array[m].targetname) && array[m].targetname == tok[e])
  659. array[m] delete();
  660. for(m = 0; m < level.chests.size; m++)
  661. // for(e = 0; e < level.chests[m] getChestPieces().size; e++)
  662. // level.chests[m] getChestPieces()[e] hide();
  663. getEntArray("trigger_multiple", "classname")[13] delete();//Packa see
  664. getStructArray("perksacola", "targetname")[4] delete();//Packa jingle
  665. array_delete(getEntArray("weapon_upgrade", "targetname"));
  666. array_delete(getEntArray("zombie_vending_upgrade", "targetname"));
  667. array_delete(getEntArray("bowie_upgrade", "targetname"));
  668. array_delete(getEntArray("treasure_chest_use", "targetname"));
  669. getEntArray("betty_purchase", "targetname")[0] trigger_off_proc();
  670. perkMachines = getEntArray("zombie_vending", "targetname");wait .05;
  671. for(m = 0; m < perkMachines.size; m++)
  672. perkMachines[m] trigger_off_proc();
  673. //Spawn rubble on randy boxes, tried to show properly... wouldn't work :3
  674. spawnSM((-1216.1, -1522.8, 209.7), "zombie_factory_bearpile", (0, 223.5, 0));
  675. spawnSM((631.1, -383.8, 83.2), "zombie_factory_bearpile", (0, 43.5, 0));
  676. spawnSM((-1011.7, -1453.4, 85.7), "zombie_factory_bearpile", (0, 133.5, 0));
  677. spawnSM((1196, 943, 187.5), "zombie_factory_bearpile", (0, 133.5, 0));
  678. spawnSM((590.5, -1569.8, 84.9), "zombie_factory_bearpile", (0, 133.5, 0));
  679. spawnSM((1.1, -2469.3, 290.7), "zombie_factory_bearpile", (0, 43.5, 0));
  680. level.pandora_light delete();
  681. }
  682.  
  683. watch_kills()
  684. {
  685. self endon("death");
  686. self endon("disconnect");
  687. for(;;)
  688. {
  689. self waittill("zom_kill");
  690. self.currentKills++;
  691. }
  692. }
  693. giveFR()
  694. {
  695. if( self.FR == false )
  696. {
  697. self Closed();
  698. self thread givePerk("specialty_fastreload", "zombie_perk_bottle_sleight", "mx_speed_sting", "specialty_fastreload_zombies");
  699. self.FR = true;
  700. }
  701. else
  702. {
  703. self iPrintlnBold("^1Already Have Perk");
  704. }
  705. }
  706. giveQR(){
  707. if( self.QR == false )
  708. {
  709. self Closed();
  710. self thread givePerk("specialty_quickrevive", "zombie_perk_bottle_revive", "mx_revive_sting", "specialty_quickrevive_zombies");
  711. self.QR = true;
  712. }
  713. else
  714. {
  715. self iPrintlnBold("^1Already Have Perk");
  716. }
  717. }
  718. giveJN(){
  719. if( self.JN == false )
  720. {
  721. self Closed();
  722. self thread givePerk("specialty_armorvest", "zombie_perk_bottle_jugg", "mx_jugger_sting", "specialty_juggernaut_zombies");
  723. self.JN = true;
  724. }
  725. else
  726. {
  727. self iPrintlnBold("^1Already Have Perk");
  728. }
  729. }
  730. giveDT(){
  731. if( self.DT == false )
  732. {
  733. self Closed();
  734. self thread givePerk("specialty_doubletap", "zombie_perk_bottle_doubletap", "mx_doubletap_sting", "specialty_doubletap_zombies");
  735. self.DT = true;
  736. }
  737. else
  738. {
  739. self iPrintlnBold("^1Already Have Perk");
  740. }
  741. }
  742.  
  743. givePerk(perk, bottle, jingle, shader)
  744. {
  745. wait 1;
  746. if(self isSwitchingWeapons())
  747. self waittill("weapon_change_complete");
  748. self playSound("bottle_dispense3d");
  749. self playSound(jingle);
  750. currentWeapon = self getCurrentWeapon();
  751. self giveWeapon(bottle);
  752. self switchToWeapon(bottle);
  753. self disableOffhandWeapons();
  754. self disableWeaponCycling();
  755. self allowSprint(false);
  756. self waittill("weapon_change_complete");
  757. self enableOffhandWeapons();
  758. self enableWeaponCycling();
  759. self allowSprint(true);
  760. self takeWeapon(bottle);
  761. self switchToWeapon(currentWeapon);
  762. self setPerk(perk);
  763. if(perk == "specialty_armorvest")
  764. {
  765. self.maxhealth = level.zombie_vars["zombie_perk_juggernaut_health"];
  766. self.health = level.zombie_vars["zombie_perk_juggernaut_health"];
  767. self thread regenerateJuggUponAccident();
  768. }
  769. self setBlur(4, .1);
  770. wait .1;
  771. self setBlur(0, .1);
  772. hud = self createRectangle("CENTER", "CENTER", 0, 0, 10, 10, (1, 1, 1), shader, 1, 1);
  773. hud scaleOverTime(.1, 50, 50);
  774. wait .1;
  775. hud scaleOverTime(1, 25, 25);
  776. wait 2;
  777. hud moveOverTime(2);
  778. if(perk == "specialty_quickrevive"){
  779. hud setPoint("BOTTOM", "BOTTOM", 0, -20);
  780. }
  781. if(perk == "specialty_fastreload"){
  782. hud setPoint("BOTTOM", "BOTTOM", 40, -20);
  783. }
  784. if(perk == "specialty_armorvest"){
  785. hud setPoint("BOTTOM", "BOTTOM", -40, -20);
  786. }
  787. if(perk == "specialty_doubletap"){
  788. hud setPoint("BOTTOM", "BOTTOM", -80, -20);
  789. }
  790. wait 2;
  791. check = self createRectangle("BOTTOM", "BOTTOM", 10, -37, 15, 15, (1, 1, 1), "hud_checkbox_done", 2, 0);
  792. check hudFade(1, .5);
  793. self.surv_permaPerkHud = hud;
  794. self.surv_permaPerkCheck = check;
  795. self thread sm_startUpPrompt_givePerk_monitor(perk);
  796. }
  797. sm_startUpPrompt_givePerk_monitor(perk)
  798. {
  799. self endon("disconnect");
  800. //It's a permanent perk so only delete on death to spectator
  801. for(;;)
  802. {
  803. wait .05;
  804. if(self.sessionstate == "spectator")
  805. {
  806. self.surv_permaPerkHud destroy();
  807. self.surv_permaPerkCheck destroy();
  808. if(self hasPerk("specialty_armorvest"))
  809. {
  810. self.maxhealth = 100;
  811. self.health = self.maxhealth;
  812. }
  813. self unsetPerk(perk);
  814. break;
  815. }
  816. }
  817. }
  818.  
  819. regenerateJuggUponAccident()
  820. {
  821. self endon("disconnect");
  822. for(;;)
  823. {
  824. self waittill("player_downed");
  825. for(;;)
  826. {
  827. wait .05;
  828. //They were successfully revived
  829. if(!isDefined(self.revivetrigger) && self.sessionstate == "playing")
  830. {
  831. self.maxhealth = level.zombie_vars["zombie_perk_juggernaut_health"];
  832. self.health = level.zombie_vars["zombie_perk_juggernaut_health"];
  833. break;
  834. }
  835. //They were not revived
  836. if(!isDefined(self.revivetrigger) && self.sessionstate == "spectator")
  837. break;
  838. }
  839. if(!isDefined(self.revivetrigger) && self.sessionstate == "spectator")
  840. break;
  841. }
  842. self.maxhealth = 100;
  843. self.health = self.maxhealth;
  844. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement