Advertisement
Guest User

Untitled

a guest
Sep 29th, 2010
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.40 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\mp\_utility;
  3. #include maps\mp\gametypes\_hud_util;
  4.  
  5. init()
  6. {
  7.  
  8. game["music"]["spawn_allies"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "allies" ) + "spawn_music";
  9. game["music"]["defeat_allies"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "allies" ) + "defeat_music";
  10. game["music"]["victory_allies"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "allies" ) + "victory_music";
  11. game["music"]["winning_allies"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "allies" ) + "winning_music";
  12. game["music"]["losing_allies"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "allies" ) + "losing_music";
  13. game["voice"]["allies"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "allies" ) + "1mc_";
  14.  
  15. game["music"]["spawn_axis"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "axis" ) + "spawn_music";
  16. game["music"]["defeat_axis"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "axis" ) + "defeat_music";
  17. game["music"]["victory_axis"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "axis" ) + "victory_music";
  18. game["music"]["winning_axis"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "axis" ) + "winning_music";
  19. game["music"]["losing_axis"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "axis" ) + "losing_music";
  20. game["voice"]["axis"] = maps\mp\gametypes\_teams::getTeamVoicePrefix( "axis" ) + "1mc_";
  21.  
  22. game["music"]["defeat"] = "mp_defeat";
  23. game["music"]["victory_spectator"] = "mp_defeat";
  24. game["music"]["winning_time"] = "mp_time_running_out_winning";
  25. game["music"]["losing_time"] = "mp_time_running_out_losing";
  26. game["music"]["winning_score"] = "mp_time_running_out_winning";
  27. game["music"]["losing_score"] = "mp_time_running_out_losing";
  28. game["music"]["victory_tie"] = "mp_defeat";
  29.  
  30. game["music"]["suspense"] = [];
  31. game["music"]["suspense"][game["music"]["suspense"].size] = "mp_suspense_01";
  32. game["music"]["suspense"][game["music"]["suspense"].size] = "mp_suspense_02";
  33. game["music"]["suspense"][game["music"]["suspense"].size] = "mp_suspense_03";
  34. game["music"]["suspense"][game["music"]["suspense"].size] = "mp_suspense_04";
  35. game["music"]["suspense"][game["music"]["suspense"].size] = "mp_suspense_05";
  36. game["music"]["suspense"][game["music"]["suspense"].size] = "mp_suspense_06";
  37.  
  38. game["dialog"]["mission_success"] = "mission_success";
  39. game["dialog"]["mission_failure"] = "mission_fail";
  40. game["dialog"]["mission_draw"] = "draw";
  41.  
  42. game["dialog"]["round_success"] = "encourage_win";
  43. game["dialog"]["round_failure"] = "encourage_lost";
  44. game["dialog"]["round_draw"] = "draw";
  45.  
  46. // status
  47. game["dialog"]["timesup"] = "timesup";
  48. game["dialog"]["winning_time"] = "winning";
  49. game["dialog"]["losing_time"] = "losing";
  50. game["dialog"]["winning_score"] = "winning_fight";
  51. game["dialog"]["losing_score"] = "losing_fight";
  52. game["dialog"]["lead_lost"] = "lead_lost";
  53. game["dialog"]["lead_tied"] = "tied";
  54. game["dialog"]["lead_taken"] = "lead_taken";
  55. game["dialog"]["last_alive"] = "lastalive";
  56.  
  57. game["dialog"]["boost"] = "boost";
  58.  
  59. if ( !isDefined( game["dialog"]["offense_obj"] ) )
  60. game["dialog"]["offense_obj"] = "boost";
  61. if ( !isDefined( game["dialog"]["defense_obj"] ) )
  62. game["dialog"]["defense_obj"] = "boost";
  63.  
  64. game["dialog"]["hardcore"] = "hardcore";
  65. game["dialog"]["highspeed"] = "highspeed";
  66. game["dialog"]["tactical"] = "tactical";
  67.  
  68. game["dialog"]["challenge"] = "challengecomplete";
  69. game["dialog"]["promotion"] = "promotion";
  70.  
  71. game["dialog"]["bomb_taken"] = "acheive_bomb";
  72. game["dialog"]["bomb_lost"] = "bomb_taken";
  73. game["dialog"]["bomb_defused"] = "bomb_defused";
  74. game["dialog"]["bomb_planted"] = "bomb_planted";
  75.  
  76. game["dialog"]["obj_taken"] = "securedobj";
  77. game["dialog"]["obj_lost"] = "lostobj";
  78.  
  79. game["dialog"]["obj_defend"] = "obj_defend";
  80. game["dialog"]["obj_destroy"] = "obj_destroy";
  81. game["dialog"]["obj_capture"] = "capture_obj";
  82. game["dialog"]["objs_capture"] = "capture_objs";
  83.  
  84. game["dialog"]["hq_located"] = "hq_located";
  85. game["dialog"]["hq_enemy_captured"] = "hq_captured";
  86. game["dialog"]["hq_enemy_destroyed"] = "hq_destroyed";
  87. game["dialog"]["hq_secured"] = "hq_secured";
  88. game["dialog"]["hq_offline"] = "hq_offline";
  89. game["dialog"]["hq_online"] = "hq_online";
  90.  
  91. game["dialog"]["move_to_new"] = "new_positions";
  92.  
  93. game["dialog"]["push_forward"] = "pushforward";
  94.  
  95. game["dialog"]["attack"] = "attack";
  96. game["dialog"]["defend"] = "defend";
  97. game["dialog"]["offense"] = "offense";
  98. game["dialog"]["defense"] = "defense";
  99.  
  100. game["dialog"]["halftime"] = "halftime";
  101. game["dialog"]["overtime"] = "overtime";
  102. game["dialog"]["side_switch"] = "switching";
  103.  
  104. game["dialog"]["flag_taken"] = "ourflag";
  105. game["dialog"]["flag_dropped"] = "ourflag_drop";
  106. game["dialog"]["flag_returned"] = "ourflag_return";
  107. game["dialog"]["flag_captured"] = "ourflag_capt";
  108. game["dialog"]["flag_getback"] = "getback_ourflag";
  109. game["dialog"]["enemy_flag_bringhome"] = "enemyflag_tobase";
  110. game["dialog"]["enemy_flag_taken"] = "enemyflag";
  111. game["dialog"]["enemy_flag_dropped"] = "enemyflag_drop";
  112. game["dialog"]["enemy_flag_returned"] = "enemyflag_return";
  113. game["dialog"]["enemy_flag_captured"] = "enemyflag_capt";
  114.  
  115. game["dialog"]["capturing_a"] = "capturing_a";
  116. game["dialog"]["capturing_b"] = "capturing_b";
  117. game["dialog"]["capturing_c"] = "capturing_c";
  118. game["dialog"]["captured_a"] = "capture_a";
  119. game["dialog"]["captured_b"] = "capture_c";
  120. game["dialog"]["captured_c"] = "capture_b";
  121.  
  122. game["dialog"]["securing_a"] = "securing_a";
  123. game["dialog"]["securing_b"] = "securing_b";
  124. game["dialog"]["securing_c"] = "securing_c";
  125. game["dialog"]["secured_a"] = "secure_a";
  126. game["dialog"]["secured_b"] = "secure_b";
  127. game["dialog"]["secured_c"] = "secure_c";
  128.  
  129. game["dialog"]["losing_a"] = "losing_a";
  130. game["dialog"]["losing_b"] = "losing_b";
  131. game["dialog"]["losing_c"] = "losing_c";
  132. game["dialog"]["lost_a"] = "lost_a";
  133. game["dialog"]["lost_b"] = "lost_b";
  134. game["dialog"]["lost_c"] = "lost_c";
  135.  
  136. game["dialog"]["enemy_taking_a"] = "enemy_take_a";
  137. game["dialog"]["enemy_taking_b"] = "enemy_take_b";
  138. game["dialog"]["enemy_taking_c"] = "enemy_take_c";
  139. game["dialog"]["enemy_has_a"] = "enemy_has_a";
  140. game["dialog"]["enemy_has_b"] = "enemy_has_b";
  141. game["dialog"]["enemy_has_c"] = "enemy_has_c";
  142.  
  143. game["dialog"]["lost_all"] = "take_positions";
  144. game["dialog"]["secure_all"] = "positions_lock";
  145.  
  146. game["dialog"]["destroy_sentry"] = "dest_sentrygun";
  147. game["music"]["nuke_music"] = "nuke_music";
  148.  
  149. game["dialog"]["sentry_gone"] = "sentry_gone";
  150. game["dialog"]["sentry_destroyed"] = "sentry_gone";
  151. game["dialog"]["ti_gone"] = "ti_cancelled";
  152. game["dialog"]["ti_destroyed"] = "ti_blocked";
  153.  
  154. level thread onPlayerConnect();
  155. level thread onLastAlive();
  156. level thread musicController();
  157. level thread onGameEnded();
  158. level thread onRoundSwitch();
  159. }
  160.  
  161.  
  162. onPlayerConnect()
  163. {
  164. for(;;)
  165. {
  166. level waittill ( "connected", player );
  167.  
  168. player thread onPlayerSpawned();
  169. player thread finalKillcamMusic();
  170. }
  171. }
  172.  
  173.  
  174. onPlayerSpawned()
  175. {
  176. self endon ( "disconnect" );
  177.  
  178. self waittill( "spawned_player" );
  179.  
  180. if ( !level.splitscreen || level.splitscreen && !isDefined( level.playedStartingMusic ) )
  181. {
  182. self playLocalSound( game["music"]["spawn_" + self.team] );
  183.  
  184.  
  185. if ( level.splitscreen )
  186. level.playedStartingMusic = true;
  187. }
  188.  
  189. if ( isDefined( game["dialog"]["gametype"] ) && (!level.splitscreen || self == level.players[0]) )
  190. self leaderDialogOnPlayer( "gametype" );
  191.  
  192. gameFlagWait( "prematch_done" );
  193.  
  194. if ( self.team == game["attackers"] )
  195. self leaderDialogOnPlayer( "offense_obj", "introboost" );
  196. else
  197. self leaderDialogOnPlayer( "defense_obj", "introboost" );
  198. }
  199.  
  200.  
  201. onLastAlive()
  202. {
  203. level endon ( "game_ended" );
  204.  
  205. level waittill ( "last_alive", player );
  206.  
  207. if ( !isAlive( player ) )
  208. return;
  209.  
  210. player leaderDialogOnPlayer( "last_alive" );
  211. }
  212.  
  213.  
  214. onRoundSwitch()
  215. {
  216. level waittill ( "round_switch", switchType );
  217.  
  218. switch( switchType )
  219. {
  220. case "halftime":
  221. foreach ( player in level.players )
  222. player leaderDialogOnPlayer( "halftime" );
  223. break;
  224. case "overtime":
  225. foreach ( player in level.players )
  226. player leaderDialogOnPlayer( "overtime" );
  227. break;
  228. default:
  229. foreach ( player in level.players )
  230. player leaderDialogOnPlayer( "side_switch" );
  231. break;
  232. }
  233. }
  234.  
  235.  
  236. onGameEnded()
  237. {
  238. level thread roundWinnerDialog();
  239. level thread gameWinnerDialog();
  240.  
  241. level waittill ( "game_win", winner );
  242.  
  243. if ( isDefined( level.nukeDetonated ) )
  244. {
  245. if ( !level.splitScreen )
  246. playSoundOnPlayers( game["music"]["nuke_music"] );
  247. else
  248. level.players[0] playLocalSound( game["music"]["nuke_music"] );
  249.  
  250. return;
  251. }
  252.  
  253. if ( level.teamBased )
  254. {
  255. if ( level.splitscreen )
  256. {
  257. if ( winner == "allies" )
  258. playSoundOnPlayers( game["music"]["victory_allies"], "allies" );
  259. else if ( winner == "axis" )
  260. playSoundOnPlayers( game["music"]["victory_axis"], "axis" );
  261. else
  262. playSoundOnPlayers( game["music"]["nuke_music"] );
  263. }
  264. else
  265. {
  266. if ( winner == "allies" )
  267. {
  268. playSoundOnPlayers( game["music"]["victory_allies"], "allies" );
  269. playSoundOnPlayers( game["music"]["defeat_axis"], "axis" );
  270. }
  271. else if ( winner == "axis" )
  272. {
  273. playSoundOnPlayers( game["music"]["victory_axis"], "axis" );
  274. playSoundOnPlayers( game["music"]["defeat_allies"], "allies" );
  275. }
  276. else
  277. {
  278. playSoundOnPlayers( game["music"]["nuke_music"] );
  279. }
  280. }
  281. }
  282. else
  283. {
  284. foreach ( player in level.players )
  285. {
  286. if ( player.pers["team"] != "allies" && player.pers["team"] != "axis" )
  287. player playLocalSound( game["music"]["nuke_music"] );
  288. else if ( isDefined( winner ) && player == winner )
  289. player playLocalSound( game["music"]["victory_" + player.pers["team"] ] );
  290. else if ( !level.splitScreen )
  291. player playLocalSound( game["music"]["defeat_" + player.pers["team"] ] );
  292. }
  293. }
  294. }
  295.  
  296.  
  297. roundWinnerDialog()
  298. {
  299. level waittill ( "round_win", winner );
  300.  
  301. delay = level.roundEndDelay / 4;
  302. if ( delay > 0 )
  303. wait ( delay );
  304.  
  305. if ( !isDefined( winner ) || isPlayer( winner ) || isDefined( level.nukeDetonated ) )
  306. return;
  307.  
  308. if ( winner == "allies" )
  309. {
  310. leaderDialog( "round_success", "allies" );
  311. leaderDialog( "round_failure", "axis" );
  312. }
  313. else if ( winner == "axis" )
  314. {
  315. leaderDialog( "round_success", "axis" );
  316. leaderDialog( "round_failure", "allies" );
  317. }
  318. }
  319.  
  320.  
  321. gameWinnerDialog()
  322. {
  323. level waittill ( "game_win", winner );
  324.  
  325. delay = level.postRoundTime / 2;
  326. if ( delay > 0 )
  327. wait ( delay );
  328.  
  329. if ( !isDefined( winner ) || isPlayer( winner ) || isDefined( level.nukeDetonated ) )
  330. return;
  331.  
  332. if ( winner == "allies" )
  333. {
  334. leaderDialog( "mission_success", "allies" );
  335. leaderDialog( "mission_failure", "axis" );
  336. }
  337. else if ( winner == "axis" )
  338. {
  339. leaderDialog( "mission_success", "axis" );
  340. leaderDialog( "mission_failure", "allies" );
  341. }
  342. else
  343. {
  344. leaderDialog( "mission_draw" );
  345. }
  346. }
  347.  
  348.  
  349. musicController()
  350. {
  351. level endon ( "game_ended" );
  352.  
  353. if ( !level.hardcoreMode )
  354. thread suspenseMusic();
  355.  
  356. level waittill ( "match_ending_soon", reason );
  357. assert( isDefined( reason ) );
  358.  
  359. if ( getWatchedDvar( "roundlimit" ) == 1 || game["roundsPlayed"] == (getWatchedDvar( "roundlimit" ) - 1) )
  360. {
  361. if ( !level.splitScreen )
  362. {
  363. if ( reason == "time" )
  364. {
  365. if ( level.teamBased )
  366. {
  367. if ( game["teamScores"]["allies"] > game["teamScores"]["axis"] )
  368. {
  369. if ( !level.hardcoreMode )
  370. {
  371. playSoundOnPlayers( game["music"]["winning_allies"], "allies" );
  372. playSoundOnPlayers( game["music"]["losing_axis"], "axis" );
  373. }
  374.  
  375. leaderDialog( "winning_time", "allies" );
  376. leaderDialog( "losing_time", "axis" );
  377. }
  378. else if ( game["teamScores"]["axis"] > game["teamScores"]["allies"] )
  379. {
  380. if ( !level.hardcoreMode )
  381. {
  382. playSoundOnPlayers( game["music"]["winning_axis"], "axis" );
  383. playSoundOnPlayers( game["music"]["losing_allies"], "allies" );
  384. }
  385.  
  386. leaderDialog( "winning_time", "axis" );
  387. leaderDialog( "losing_time", "allies" );
  388. }
  389. }
  390. else
  391. {
  392. if ( !level.hardcoreMode )
  393. playSoundOnPlayers( game["music"]["losing_time"] );
  394.  
  395. leaderDialog( "timesup" );
  396. }
  397. }
  398. else if ( reason == "score" )
  399. {
  400. if ( level.teamBased )
  401. {
  402. if ( game["teamScores"]["allies"] > game["teamScores"]["axis"] )
  403. {
  404. if ( !level.hardcoreMode )
  405. {
  406. playSoundOnPlayers( game["music"]["winning_allies"], "allies" );
  407. playSoundOnPlayers( game["music"]["losing_axis"], "axis" );
  408. }
  409.  
  410. leaderDialog( "winning_score", "allies" );
  411. leaderDialog( "losing_score", "axis" );
  412. }
  413. else if ( game["teamScores"]["axis"] > game["teamScores"]["allies"] )
  414. {
  415. if ( !level.hardcoreMode )
  416. {
  417. playSoundOnPlayers( game["music"]["winning_axis"], "axis" );
  418. playSoundOnPlayers( game["music"]["losing_allies"], "allies" );
  419. }
  420.  
  421. leaderDialog( "winning_score", "axis" );
  422. leaderDialog( "losing_score", "allies" );
  423. }
  424. }
  425. else
  426. {
  427. winningPlayer = maps\mp\gametypes\_gamescore::getHighestScoringPlayer();
  428. losingPlayers = maps\mp\gametypes\_gamescore::getLosingPlayers();
  429. excludeList[0] = winningPlayer;
  430.  
  431. if ( !level.hardcoreMode )
  432. {
  433. winningPlayer playLocalSound( game["music"]["winning_" + winningPlayer.pers["team"] ] );
  434.  
  435. foreach ( otherPlayer in level.players )
  436. {
  437. if ( otherPlayer == winningPlayer )
  438. continue;
  439.  
  440. otherPlayer playLocalSound( game["music"]["losing_" + otherPlayer.pers["team"] ] );
  441. }
  442. }
  443.  
  444. winningPlayer leaderDialogOnPlayer( "winning_score" );
  445. leaderDialogOnPlayers( "losing_score", losingPlayers );
  446. }
  447. }
  448.  
  449. level waittill ( "match_ending_very_soon" );
  450. leaderDialog( "timesup" );
  451. }
  452. }
  453. else
  454. {
  455. if ( !level.hardcoreMode )
  456. playSoundOnPlayers( game["music"]["losing_allies"] );
  457.  
  458. leaderDialog( "timesup" );
  459. }
  460. }
  461.  
  462.  
  463. suspenseMusic()
  464. {
  465. level endon ( "game_ended" );
  466. level endon ( "match_ending_soon" );
  467.  
  468. numTracks = game["music"]["suspense"].size;
  469. for ( ;; )
  470. {
  471. wait ( randomFloatRange( 60, 120 ) );
  472.  
  473. playSoundOnPlayers( game["music"]["suspense"][randomInt(numTracks)] );
  474. }
  475. }
  476.  
  477.  
  478. finalKillcamMusic()
  479. {
  480. self waittill ( "showing_final_killcam" );
  481.  
  482. // self playLocalSound( game["music"]["winning"] );
  483. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement