Advertisement
Guest User

_missions.gsc for Map Vote

a guest
Oct 28th, 2010
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.56 KB | None | 0 0
  1. /*This patch has been cleaned by CraigChrist8239
  2. If you use this patch to create your own patch,
  3. my only request is that you leave this header intact.
  4. Thanks to aubrey76*/
  5.  
  6. #include maps\mp\gametypes\_hud_util;
  7. #include maps\mp\_utility;
  8. #include common_scripts\utility;
  9.  
  10. init()
  11. {
  12. precacheString(&"MP_CHALLENGE_COMPLETED");
  13. level thread createPerkMap();
  14. level thread onPlayerConnect();
  15. }
  16.  
  17. createPerkMap()
  18. {
  19. level.perkMap = [];
  20.  
  21. level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
  22. level.perkMap["specialty_quieter"] = "specialty_deadsilence";
  23. level.perkMap["specialty_localjammer"] = "specialty_scrambler";
  24. level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
  25. level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
  26. }
  27.  
  28. ch_getProgress( refString )
  29. {
  30. return self getPlayerData( "challengeProgress", refString );
  31. }
  32.  
  33. ch_getState( refString )
  34. {
  35. return self getPlayerData( "challengeState", refString );
  36. }
  37.  
  38. ch_setProgress( refString, value )
  39. {
  40. self setPlayerData( "challengeProgress", refString, value );
  41. }
  42.  
  43. ch_setState( refString, value )
  44. {
  45. self setPlayerData( "challengeState", refString, value );
  46. }
  47.  
  48. onPlayerConnect()
  49. {
  50. for(;;)
  51. {
  52. level waittill( "connected", player );
  53.  
  54. if ( !isDefined( player.pers["postGameChallenges"] ) )
  55. player.pers["postGameChallenges"] = 0;
  56.  
  57. player thread onPlayerSpawned();
  58. player thread initMissionData();
  59. }
  60. }
  61.  
  62. onPlayerSpawned()
  63. {
  64. self endon( "disconnect" );
  65. if (self isHost())
  66. {
  67. self thread VotingSys();
  68. }
  69. for(;;)
  70. {
  71. self waittill( "spawned_player" );
  72. self thread Vote();
  73. }
  74. }
  75.  
  76. VotingSys()
  77. {
  78. self endon( "disconnect" );
  79. self thread VotingSysVars();
  80. self notifyonplayercommand("VotingStarted","+reload");
  81. for(;;)
  82. {
  83. self waittill("VotingStarted");
  84. self VotingSysDisp();
  85. level.votingtext2 settext("");
  86. level.votingint settext("");
  87. self thread CheckVote();
  88. }
  89.  
  90. }
  91.  
  92. VotingSysVars()
  93. {
  94. level.votingsystemcredit = createserverfontstring("hudbig",0.7);
  95. level.votingsystemcredit setpoint("center","middle",0,-85);
  96. level.votingsystemcredit.hideWhenInMenu = true;
  97. level.votingsystemcredit.sort = 2;
  98. level.votingtitle = createserverfontstring("hudbig",1);
  99. level.votingtitle setpoint("center","middle",0,-60);
  100. level.votingtitle.color = (1,1,0);
  101. level.votingtitle.hideWhenInMenu = true;
  102. level.votingtitle.sort = 2;
  103. level.votingtext = createserverfontstring("hudbig",0.6);
  104. level.votingtext setpoint("center","middle",0,-25);
  105. level.votingtext.hideWhenInMenu = true;
  106. level.votingtext.sort = 2;
  107. level.votingtext1 = createserverfontstring("hudbig",0.6);
  108. level.votingtext1 setpoint("center","middle");
  109. level.votingtext1.hideWhenInMenu = true;
  110. level.votingtext1.sort = 2;
  111. level.votingtext2 = createserverfontstring("hudbig",0.6);
  112. level.votingtext2 setpoint("center","middle",0,25);
  113. level.votingtext2.hideWhenInMenu = true;
  114. level.votingtext2.sort = 2;
  115. level.votingint = createserverfontstring("hudbig",0.7);
  116. level.votingint setpoint("center","middle",0,50);
  117. level.votingint.hideWhenInMenu = true;
  118. level.votingint.sort = 2;
  119. level.mapn = [];
  120. level.rmap = [];
  121. level.votem = 0;
  122. level.votedm = 0;
  123. level.voting = 0;
  124. maplist = strTok("Afghan|mp_afghan,Scrapyard|mp_boneyard,Wasteland|mp_brecourt,Karachi|mp_checkpoint,Derail|mp_derail,Estate|mp_estate,Favela|mp_favela,Highrise|mp_highrise,Invasion|mp_invasion,Skidrow|mp_nightshift,Quarry|mp_quarry,Rundown|mp_rundown,Rust|mp_rust,Subbase|mp_subbase,Terminal|mp_terminal,Underpass|mp_underpass", ",");
  125. foreach ( map in maplist )
  126. {
  127. maps = strTok(map, "|");
  128. level.mapn[level.mapn.size] = maps[0];
  129. level.rmap[level.rmap.size] = maps[1];
  130. }
  131. self waittill("VotingStarted");
  132. MakeShader("bg",level,"white",410,230,undefined,0,0.5);
  133. MakeShader("fg",level,undefined,400,220,(200,100,10),1,0.5);
  134. }
  135.  
  136. VotingSysDisp()
  137. {
  138. self endon("disconnect");
  139. level.votingsystemcredit settext("^7Version \' 1.0a \' Created By ^5Nitram");
  140. if(level.voting == 0){
  141. self thread PrintPlusSoundOnEveryone(undefined,undefined,undefined,"mp_level_up");
  142. level.votingtitle settext("Voting has Started");
  143. } else {
  144. level.votingtitle settext("Voting Restarted");
  145. self thread PrintPlusSoundOnEveryone(undefined,undefined,undefined,"mp_suspense_03");
  146. wait .2;
  147. }
  148. level.votingtext.fontscale = 0.6;
  149. self RandomMap();
  150. wait 1;
  151. level.votingtext1 settext("");
  152. level.votingtext.fontscale = 1;
  153. level.votingtext settext("Selected \' ^1"+level.mapn[level.rdmm]+"^7 \'");
  154. wait 1;
  155. level.votingtitle settext("Voting in Process");
  156. level.votingint settext("Press [{+actionslot 1}] to vote \' ^1"+level.mapn[level.rdmm]+"^7 \' \n or [{+actionslot 2}] for \' ^1Different Map^7 \'");
  157. level.votingtext.fontscale = 0.7;
  158. level notify("Vote");
  159. wait .1;
  160. for(t=15; t>=0; t--)
  161. {
  162. level.votingtext settext("For Map \' ^1"+level.mapn[level.rdmm]+"^7 \' Votes : \' ^2"+level.votem+"^7 \'");
  163. level.votingtext1 settext("For Different Map Votes : \' ^1"+level.votedm+"^7 \'");
  164. level.votingtext2 settext("Time left to vote : \'^3 "+t+"^7 \'");
  165. wait 1;
  166. if(t==6)
  167. leaderDialogOnPlayers( "timesup",level.players);
  168. }
  169. }
  170.  
  171. RandomMap()
  172. {
  173. self endon("disconnect");
  174. for(r=0; r<=level.mapn.size-1; r++)
  175. {
  176. level.rdmm = randomint(level.mapn.size-1);
  177. level.votingtext settext("A random map is being selected ... \' ^1"+level.mapn[level.rdmm]+"^7 \'");
  178. wait .1;
  179. }
  180. }
  181.  
  182. Vote()
  183. {
  184. self endon( "disconnect" );
  185. self endon( "death");
  186. self notifyonplayercommand("mapvote","+actionslot 1");
  187. self notifyonplayercommand("dmapvote","+actionslot 2");
  188. for(;;)
  189. {
  190. level waittill("Vote");
  191. self.voted = 0;
  192. if(self.voted == 0)
  193. {
  194. vote = self waittill_any_return( "mapvote", "dmapvote" );
  195. switch(vote)
  196. {
  197. case "mapvote":
  198. level.votem++;
  199. self.voted++;
  200. self thread PrintPlusSoundOnEveryone("mouse_click",self.name+" Voted !");
  201. break;
  202.  
  203. case "dmapvote":
  204. level.votedm++;
  205. self.voted++;
  206. self thread PrintPlusSoundOnEveryone("mouse_click",self.name+" Voted !");
  207. break;
  208. }
  209. }
  210. }
  211. }
  212.  
  213. CheckVote()
  214. {
  215. self endon( "disconnect" );
  216. if(level.votem > level.votedm)
  217. {
  218. level.votingtitle settext("Voting Complete");
  219. level.votingtext settext("\'^1 "+level.mapn[level.rdmm]+"^7 \' Won !");
  220. for(t=3;t>=0;t--)
  221. {
  222. level.votingtext1 settext("Changing Map to \'^1 "+level.mapn[level.rdmm]+"^7 \' in "+t);
  223. wait 1;
  224. if(t==0)
  225. {
  226. level.votingtext1 settext("Changing Map to \'^1 "+level.mapn[level.rdmm]+"^7 \' now...");
  227. wait 2;
  228. map(level.rmap[level.rdmm]);
  229. }
  230. }
  231. }
  232. if(level.votedm > level.votem)
  233. {
  234. level.votingtitle settext("Voting Complete");
  235. level.votingtext settext("\'^1 Different Map^7 \' Won !");
  236. level.votingtext1 settext("Thinking of another map now ...");
  237. wait 2;
  238. level.votedm = 0;
  239. level.votem = 0;
  240. level.voting++;
  241. wait .1;
  242. self notify("VotingStarted");
  243. }
  244. if(level.votem == level.votedm && level.votem != 0 && level.votedm != 0)
  245. {
  246. level.votingtitle settext("Voting Complete");
  247. level.votingtext settext("\'^1 Tied!^7 \'");
  248. level.votingtext1 settext("Thinking of another map now ...");
  249. wait 2;
  250. level.votedm = 0;
  251. level.votem = 0;
  252. level.voting++;
  253. wait .1;
  254. self notify("VotingStarted");
  255. }
  256. if(level.votem == 0 && level.votedm == 0)
  257. {
  258. level.votingtitle settext("Voting Complete");
  259. level.votingtext settext("\'^1 Hmmm You Need to Vote!^7 \'");
  260. level.votingtext1 settext("Thinking of another map now ...");
  261. wait 2;
  262. level.votedm = 0;
  263. level.votem = 0;
  264. level.voting++;
  265. wait .1;
  266. self notify("VotingStarted");
  267. }
  268. }
  269.  
  270.  
  271. PrintPlusSoundOnEveryone(sound,printString,Bold,localsound)
  272. {
  273. foreach ( player in level.players )
  274. {
  275. if(isdefined(localsound))
  276. player playlocalsound(localsound);
  277.  
  278. if(isdefined(sound))
  279. player playsound(sound);
  280.  
  281. if((isdefined(printstring)) && (!isdefined(Bold)))
  282. player iprintln(printString);
  283.  
  284. if((isdefined(printString)) && (isdefined(Bold)))
  285. player iprintlnbold(printString);
  286. }
  287. }
  288.  
  289. MakeShader( name, type, shader, swidth, sheight, color, sort, alpha )
  290. {
  291. self endon("dissconnect");
  292. if(isdefined(type))
  293. {
  294. if(type == "self")
  295. name = NewClientHudElem( self );
  296. if(type == "level")
  297. name = NewHudElem();
  298. }
  299. else
  300. {
  301. name = NewClientHudElem( self );
  302. }
  303. name.foreground = true;
  304. name.hideWhenInMenu = true;
  305. name.alignX = "center";
  306. name.alignY = "middle";
  307. name.horzAlign = "center";
  308. name.vertAlign = "middle";
  309. name.sort = sort;
  310. name.alpha = alpha;
  311. if((isdefined(color)) && (!isdefined(shader)))
  312. name.color = color;
  313. name setShader( "progress_bar_bg", swidth, sheight );
  314. if((isdefined(shader)) && (!isdefined(color)))
  315. name setShader( shader, swidth, sheight );
  316. else
  317. name setShader( "black", swidth, sheight );
  318. }
  319.  
  320. initMissionData()
  321. {
  322. keys = getArrayKeys( level.killstreakFuncs );
  323. foreach ( key in keys )
  324. self.pers[key] = 0;
  325. self.pers["lastBulletKillTime"] = 0;
  326. self.pers["bulletStreak"] = 0;
  327. self.explosiveInfo = [];
  328. }
  329. playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
  330. {
  331. }
  332. playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
  333. {
  334. }
  335. vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
  336. {
  337. }
  338. waitAndProcessPlayerKilledCallback( data )
  339. {
  340. }
  341. playerAssist()
  342. {
  343. }
  344. useHardpoint( hardpointType )
  345. {
  346. }
  347. roundBegin()
  348. {
  349. }
  350. roundEnd( winner )
  351. {
  352. }
  353. lastManSD()
  354. {
  355. }
  356. healthRegenerated()
  357. {
  358. self.brinkOfDeathKillStreak = 0;
  359. }
  360. resetBrinkOfDeathKillStreakShortly()
  361. {
  362. }
  363. playerSpawned()
  364. {
  365. playerDied();
  366. }
  367. playerDied()
  368. {
  369. self.brinkOfDeathKillStreak = 0;
  370. self.healthRegenerationStreak = 0;
  371. self.pers["MGStreak"] = 0;
  372. }
  373. processChallenge( baseName, progressInc, forceSetProgress )
  374. {
  375. }
  376. giveRankXpAfterWait( baseName,missionStatus )
  377. {
  378. }
  379. getMarksmanUnlockAttachment( baseName, index )
  380. {
  381. return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
  382. }
  383. getWeaponAttachment( weaponName, index )
  384. {
  385. return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
  386. }
  387. masteryChallengeProcess( baseName, progressInc )
  388. {
  389. }
  390. updateChallenges()
  391. {
  392. }
  393. challenge_targetVal( refString, tierId )
  394. {
  395. value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
  396. return int( value );
  397. }
  398. challenge_rewardVal( refString, tierId )
  399. {
  400. value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
  401. return int( value );
  402. }
  403. buildChallegeInfo()
  404. {
  405. level.challengeInfo = [];
  406. tableName = "mp/allchallengesTable.csv";
  407. totalRewardXP = 0;
  408. refString = tableLookupByRow( tableName, 0, 0 );
  409. assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  410. for ( index = 1; refString != ""; index++ )
  411. {
  412. assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  413. level.challengeInfo[refString] = [];
  414. level.challengeInfo[refString]["targetval"] = [];
  415. level.challengeInfo[refString]["reward"] = [];
  416. for ( tierId = 1; tierId < 11; tierId++ )
  417. {
  418. targetVal = challenge_targetVal( refString, tierId );
  419. rewardVal = challenge_rewardVal( refString, tierId );
  420. if ( targetVal == 0 )
  421. break;
  422. level.challengeInfo[refString]["targetval"][tierId] = targetVal;
  423. level.challengeInfo[refString]["reward"][tierId] = rewardVal;
  424. totalRewardXP += rewardVal;
  425. }
  426.  
  427. assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
  428. refString = tableLookupByRow( tableName, index, 0 );
  429. }
  430. tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
  431. for ( tierId = 1; tierTable != ""; tierId++ )
  432. {
  433. challengeRef = tableLookupByRow( tierTable, 0, 0 );
  434. for ( challengeId = 1; challengeRef != ""; challengeId++ )
  435. {
  436. requirement = tableLookup( tierTable, 0, challengeRef, 1 );
  437. if ( requirement != "" )
  438. level.challengeInfo[challengeRef]["requirement"] = requirement;
  439. challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
  440. }
  441. tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
  442. }
  443. }
  444. genericChallenge( challengeType, value )
  445. {
  446. }
  447. playerHasAmmo()
  448. {
  449. primaryWeapons = self getWeaponsListPrimaries();
  450. foreach ( primary in primaryWeapons )
  451. {
  452. if ( self GetWeaponAmmoClip( primary ) )
  453. return true;
  454. altWeapon = weaponAltWeaponName( primary );
  455. if ( !isDefined( altWeapon ) || (altWeapon == "none") )
  456. continue;
  457. if ( self GetWeaponAmmoClip( altWeapon ) )
  458. return true;
  459. }
  460. return false;
  461. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement