Advertisement
Rendflex

Untitled

Aug 25th, 2012
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.25 KB | None | 0 0
  1. #include maps\mp\_utility;
  2. #include maps\mp\gametypes\_hud_util;
  3. main()
  4. {
  5. precachemodel("t5_veh_helo_huey_mp_light");
  6. precachemodel("collision_geo_mc_4x156x190");
  7. precachevehicle("heli_zombie_mp");
  8.  
  9. if(GetDvar( #"mapname") == "mp_background")
  10. return;
  11.  
  12. maps\mp\gametypes\_globallogic::init();
  13. maps\mp\gametypes\_callbacksetup::SetupCallbacks();
  14. maps\mp\gametypes\_globallogic::SetupCallbacks();
  15. maps\mp\gametypes\_globallogic_utils::registerTimeLimitDvar( "tdm", 10, 0, 1440 );
  16. maps\mp\gametypes\_globallogic_utils::registerScoreLimitDvar( "tdm", 7500, 0, 50000 );
  17. maps\mp\gametypes\_globallogic_utils::registerRoundLimitDvar( "tdm", 1, 0, 10 );
  18. maps\mp\gametypes\_globallogic_utils::registerRoundWinLimitDvar( "tdm", 0, 0, 10 );
  19. maps\mp\gametypes\_globallogic_utils::registerNumLivesDvar( "tdm", 0, 0, 10 );
  20. maps\mp\gametypes\_weapons::registerGrenadeLauncherDudDvar( level.gameType, 10, 0, 1440 );
  21. maps\mp\gametypes\_weapons::registerThrownGrenadeDudDvar( level.gameType, 0, 0, 1440 );
  22. maps\mp\gametypes\_weapons::registerKillstreakDelay( level.gameType, 0, 0, 1440 );
  23. maps\mp\gametypes\_globallogic::registerFriendlyFireDelay( level.gameType, 15, 0, 1440 );
  24. level.scoreRoundBased = true;
  25. level.teamBased = true;
  26. level.onStartGameType = ::onStartGameType;
  27. level.onSpawnPlayer = ::onSpawnPlayer;
  28. level.onSpawnPlayerUnified = ::onSpawnPlayerUnified;
  29. level.onRoundEndGame = ::onRoundEndGame;
  30. level.onPrecacheGameType = ::onPrecacheGameType;
  31. game["dialog"]["gametype"] = "tdm_start";
  32. game["dialog"]["gametype_hardcore"] = "hctdm_start";
  33. game["dialog"]["offense_obj"] = "generic_boost";
  34. game["dialog"]["defense_obj"] = "generic_boost";
  35.  
  36. if ( GetDvar( #"koth_autodestroytime") == "" )
  37. setdvar("koth_autodestroytime", "60");
  38. level.hqAutoDestroyTime = GetDvarInt( #"koth_autodestroytime");
  39.  
  40. if ( GetDvar( #"koth_spawntime") == "" )
  41. setdvar("koth_spawntime", "45");
  42. level.hqSpawnTime = GetDvarInt( #"koth_spawntime");
  43.  
  44. if ( GetDvar( #"koth_kothmode") == "" )
  45. setdvar("koth_kothmode", "1");
  46. level.kothMode = GetDvarInt( #"koth_kothmode");
  47. if ( GetDvar( #"koth_captureTime") == "" )
  48. setdvar("koth_captureTime", "20");
  49. //level.captureTime = GetDvarInt( #"koth_captureTime");
  50. level.captureTime = 1;
  51. if ( GetDvar( #"koth_destroyTime") == "" )
  52. setdvar("koth_destroyTime", "10");
  53. level.destroyTime = GetDvarInt( #"koth_destroyTime");
  54.  
  55. if ( GetDvar( #"koth_delayPlayer") == "" )
  56. setdvar("koth_delayPlayer", 1);
  57. level.delayPlayer = GetDvarInt( #"koth_delayPlayer");
  58. if ( GetDvar( #"koth_spawnDelay") == "" )
  59. setdvar("koth_spawnDelay", 0);
  60. level.spawnDelay = GetDvarInt( #"koth_spawnDelay");
  61.  
  62. setscoreboardcolumns( "kills", "deaths", "kdratio", "assists" );
  63. }
  64.  
  65. onPrecacheGameType()
  66. {
  67.  
  68. precachemenu("newclass");
  69.  
  70. precacheShader( "compass_waypoint_captureneutral" );
  71. precacheShader( "compass_waypoint_defend" );
  72.  
  73. level.chopper_defs["zombie"] = "heli_zombie_mp";
  74. level.chopper_death_models["zombie"]["allies"] = "t5_veh_helo_hind_dead";
  75. level.chopper_death_models["zombie"]["axis"] = "t5_veh_helo_hind_dead";
  76. level.chopper_sounds["zombie"]["allies"] = "mpl_kls_cobra_helicopter";
  77. level.chopper_sounds["zombie"]["axis"] = "mpl_kls_hind_helicopter";
  78. }
  79.  
  80. onStartGameType()
  81. {
  82. setClientNameMode("auto_change");
  83. maps\mp\gametypes\_globallogic_ui::setObjectiveText( "allies", &"OBJECTIVES_TDM" );
  84. maps\mp\gametypes\_globallogic_ui::setObjectiveText( "axis", &"OBJECTIVES_TDM" );
  85.  
  86. if ( level.splitscreen )
  87. {
  88. maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_TDM" );
  89. maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_TDM" );
  90. }
  91. else
  92. {
  93. maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_TDM_SCORE" );
  94. maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_TDM_SCORE" );
  95. }
  96. maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "allies", &"OBJECTIVES_TDM_HINT" );
  97. maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "axis", &"OBJECTIVES_TDM_HINT" );
  98.  
  99. level.spawnMins = ( 0, 0, 0 );
  100. level.spawnMaxs = ( 0, 0, 0 );
  101. maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_tdm_spawn_allies_start" );
  102. maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_tdm_spawn_axis_start" );
  103. maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_tdm_spawn" );
  104. maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_tdm_spawn" );
  105. maps\mp\gametypes\_spawning::updateAllSpawnPoints();
  106. level.spawn_axis_start= maps\mp\gametypes\_spawnlogic::getSpawnpointArray("mp_tdm_spawn_axis_start");
  107. level.spawn_allies_start= maps\mp\gametypes\_spawnlogic::getSpawnpointArray("mp_tdm_spawn_allies_start");
  108.  
  109. level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
  110. setMapCenter( level.mapCenter );
  111. spawnpoint = maps\mp\gametypes\_spawnlogic::getRandomIntermissionPoint();
  112. setDemoIntermissionPoint( spawnpoint.origin, spawnpoint.angles );
  113.  
  114. allowed[0] = "tdm";
  115. allowed[1] = "hq";
  116. allowed[2] = "dom";
  117. allowed[3] = "ctf";
  118. //allowed[4] = "gun";
  119. level.displayRoundEndText = false;
  120. maps\mp\gametypes\_gameobjects::main(allowed);
  121.  
  122.  
  123. maps\mp\gametypes\_spawning::create_map_placed_influencers();
  124.  
  125.  
  126.  
  127. if ( !isOneRound() )
  128. {
  129. level.displayRoundEndText = true;
  130. if( isScoreRoundBased() )
  131. {
  132. maps\mp\gametypes\_globallogic_score::resetTeamScores();
  133. }
  134. }
  135. //setdvar("scr_dog_max_at_once", "8");
  136. //setdvar("scr_dog_time", "99999");
  137.  
  138. setdvar("timescale", "1");
  139. level.wagerMapsZom = 1;
  140.  
  141. thread maps\mp\_dogs::dog_manager_spawn_dogs("axis", "allies", 10);
  142. thread vision();
  143. thread setupHQs();
  144. }
  145.  
  146. vision()
  147. {
  148.  
  149.  
  150. setvolfog(10, 60, 200, 1, 0, 0, 0, 0.4);
  151.  
  152. for(;;)
  153. {
  154. //VisionSetNaked( "camera_spike_mp", 0 );
  155. setvolfog(10, 60, 200, 1, 0, 0, 0, 0.4);
  156. wait 1;
  157. }
  158.  
  159. }
  160.  
  161. array_combine( array1, array2 )
  162. {
  163. array3 = [];
  164. for( i = 0; i <= array1.size; i++)
  165. {
  166. array3[ array3.size ] = array1[i];
  167. }
  168. for( p = 0; p <= array2.size; p++)
  169. {
  170. array3[ array3.size ] = array2[p];
  171. }
  172. return array3;
  173. }
  174.  
  175. spawn_ending_heli()
  176. {
  177.  
  178. level endon("everyone_on_board");
  179.  
  180. radios = getentarray( "hq_hardpoint", "targetname" );
  181. primaryFlags = getentarray("flag_primary", "targetname");
  182. secondaryFlags = getentarray("flag_secondary", "targetname");
  183. flag_zones = getEntArray( "ctf_flag_zone_trig", "targetname" );
  184. domFlags = array_combine(primaryFlags, secondaryFlags);
  185. flags = array_combine(domFlags, flag_zones);
  186. path_start = getentarray( "heli_start", "targetname" );
  187. random_path = path_start[randomint(path_start.size)];
  188.  
  189. guy = level.players[randomint(level.players.size)];
  190.  
  191.  
  192. for( i = 0; i <= level.players.size; i++)
  193. {
  194. if((isdefined(level.players[i].pers["team"])) && (level.players[i].pers["team"] == "allies"))
  195. {
  196. guy = level.players[i];
  197. }
  198. }
  199.  
  200. guy openmenu("newclass");
  201.  
  202. //guy enableberserker(1);
  203.  
  204. /*
  205. guyTestVeh = SpawnVehicle( "t5_veh_rcbomb_allies", "rcbomb", "rc_car_medium_mp", guy.origin + (0, 0, 200), guy.angles );
  206. guyTestVeh usevehicle(guy, 0);
  207.  
  208. carModel = spawn("script_origin", guyTestVeh.origin);
  209. carModel linkto(guyTestVeh, "tag_player", (0, 0, 200), (0, 0, 0));
  210.  
  211. guy playerlinktodelta(carModel);
  212. */
  213.  
  214. //heli = spawnVehicle("t5_veh_helo_huey_mp_light", "ending_heli", "heli_ai_mp", (0, 0, 3000), (0, 0, 0));
  215. heli = spawnHelicopter( guy, random_path.origin, (0, 0, 0), "heli_zombie_mp", "t5_veh_helo_huey_mp_light" );
  216. heli SetVehicleTeam( "allies" );
  217. heli setspeed( 60, 25 );
  218. heli setyawspeed( 75, 45, 45 );
  219. heli setmaxpitchroll( 30, 30 );
  220. heli setturningability(0.9);
  221. heli setvehweapon("cobra_20mm_mp");
  222.  
  223.  
  224. //heliCol solid();
  225.  
  226. wait 0.2;
  227.  
  228.  
  229. /*
  230. //guy setclientdvar( "r_lightGridEnableTweaks", 1 );
  231. //guy setclientdvar( "r_lightGridIntensity", 1.45 );
  232. //guy setclientdvar( "r_lightGridContrast", 0.15 );
  233. guy setclientdvar("r_lightTweakSunLight", 0.01);
  234. guy setclientdvar("r_skyColorTemp", 1 );
  235. guy setActionSlot( 4, "nightvision");
  236. */
  237.  
  238. heli setvehgoalpos(heli GetBestLandingSpot(flags) + (0, 0, 2000), 1);
  239. heli waittill( "goal" );
  240.  
  241. /*
  242. heli PlayLoopSound( "wpn_hind_pilot_fire_loop_npc" );
  243.  
  244. //magicbullet("rpg_mp", heli.origin - (0, 0, 400), (heli.origin - (0, 0, 6000)), 0);
  245. magicbullet("rpg_mp", heli.origin - (0, 0, 400), (heli.origin - (0, 0, 6000)));
  246.  
  247. for( i = 0; i <= 4; i++)
  248. {
  249. //heli fireweapon("snd_under_body", guy.origin, 2);
  250. magicbullet("rpg_mp", heli.origin - (0, 0, 400), (heli.origin - (0, 0, 6000)) + (randomint(20), randomint(20), 0));
  251. //heli fireweapon();
  252. //heli fireWeapon( "tag_flash" );
  253. //heli PlayLoopSound( "wpn_hind_pilot_fire_loop_npc" );
  254. wait 0.05;
  255. }
  256.  
  257. heli stoploopsound();
  258. */
  259.  
  260. wait 1;
  261. heli vehicle_landvehicle();
  262.  
  263. wait 0.4;
  264.  
  265.  
  266. heliCol = spawn("script_model", heli.origin);
  267. heliCol setmodel("mp_supplydrop_ally");
  268. heliCol linkto(heli, "tag_origin", (0, 0, -145), (0, 0, 0));
  269. heliCol hide();
  270. heliCol2 = spawn("script_model", heli.origin);
  271. heliCol2 setmodel("mp_supplydrop_ally");
  272. heliCol2 linkto(heli, "tag_origin", (30, 0, -145), (0, 0, 0));
  273. heliCol2 hide();
  274. heliCol3 = spawn("script_model", heli.origin);
  275. heliCol3 setmodel("mp_supplydrop_ally");
  276. heliCol3 linkto(heli, "tag_origin", (70, 0, -145), (0, 0, 0));
  277. heliCol3 hide();
  278. heliCol4 = spawn("script_model", heli.origin);
  279. heliCol4 setmodel("mp_supplydrop_ally");
  280. heliCol4 linkto(heli, "tag_origin", (0, 0, 0), (0, 90, 0));
  281. //heliCol4 hide();
  282.  
  283. alliesInsideHeli = 0;
  284.  
  285. for(;;)
  286. {
  287.  
  288. alliesCount = maps\mp\gametypes\_teams::CountPlayers();
  289. /*
  290. for( a = 0; a <= alliesCount["allies"]; a++)
  291. {
  292. if(isdefined(player.insideEndHeli))
  293. {
  294. alliesInsideHeli++;
  295. }
  296. }
  297. */
  298. //if(isdefined(heli.playersInside) && heli.playersInside == alliesCount["allies"])
  299. //for( a = 0; a <= level.players.size
  300. //{
  301. //heli thread heli_leave();
  302. //level notify("everyone_on_board");
  303. //}
  304.  
  305. for(i = 0; i <= level.players.size; i++)
  306. {
  307. player = level.players[i];
  308.  
  309. player iprintlnbold(alliesCount["allies"]);
  310.  
  311. if(distance(player.origin, heli.origin) <= 150 && !isdefined(player.insideEndHeli))
  312. {
  313.  
  314. if(!isdefined(player.enterVehicleString))
  315. {
  316. player setLowerMessage( "Press and hold ^3[{+activate}]^7 to enter the helicopter" );
  317. player.enterVehicleString = 1;
  318. }
  319.  
  320.  
  321. if(player usebuttonpressed())
  322. {
  323.  
  324. //alliesInsideHeli++;
  325. if(isdefined(heli.playersInside))
  326. {
  327. player playerlinktodelta(heli, "tag_origin", 1);
  328. heli.playersInside += 1;
  329. }
  330.  
  331. else {
  332. heli usevehicle(player, 1);
  333. //heli.playersInside++;
  334. player.insideEndHeli = 1;
  335. }
  336.  
  337.  
  338.  
  339. //heli.playersInside++;
  340. }
  341.  
  342. }
  343.  
  344. else {
  345. if(isdefined(player.enterVehicleString))
  346. {
  347. player.enterVehicleString = undefined;
  348. player clearLowerMessage();
  349. }
  350. }
  351. wait 0.05;
  352. }
  353.  
  354. if(isdefined(alliesInsideHeli) && alliesInsideHeli == alliesCount["allies"] && alliesInsideHeli > 0)
  355. {
  356. heli thread heli_leave();
  357. level notify("everyone_on_board");
  358. }
  359.  
  360. wait 0.2;
  361. }
  362.  
  363. }
  364.  
  365. delete_trig()
  366. {
  367. self delete();
  368. }
  369.  
  370. heli_leave()
  371. {
  372. trigger_hurts = getentarray("trigger_hurt", "classname");
  373.  
  374. for( i = 0; i <= trigger_hurts.size; i++)
  375. {
  376. trigger_hurts[i] delete();
  377. }
  378.  
  379.  
  380. leave_nodes = getentarray( "heli_leave", "targetname" );
  381. random_leave = leave_nodes[randomint(leave_nodes.size)];
  382. self SetHoverParams( 50, 100, 50);
  383. //self setvehgoalpos((self.origin + (0, 0, (1000 + randomint(1000)))), 0);
  384. self setvehgoalpos(self.origin + (0, 0, 2000), 0);
  385.  
  386. self waittill( "goal" );
  387. self setvehgoalpos(random_leave.origin, 1);
  388.  
  389.  
  390. wait 4;
  391.  
  392. //level thread maps\mp\gametypes\_killcam::startLastKillcam();
  393. thread maps\mp\gametypes\_globallogic::endGame( "allies", "Survivors escaped!" );
  394. }
  395.  
  396. vehicle_landvehicle()
  397. {
  398. //self setNearGoalNotifyDist( 2 );
  399. self sethoverparams( 0, 0, 0 );
  400. self cleargoalyaw();
  401. self settargetyaw( flat_angle( self.angles )[ 1 ] );
  402. self setvehgoalpos( groundpos( self.origin ) + (0, 0, 150), 1 );
  403. self waittill( "goal" );
  404. }
  405.  
  406. groundpos( origin )
  407. {
  408. return bullettrace( origin, ( origin + ( 0, 0, -100000 ) ), 0, self )[ "position" ];
  409. }
  410.  
  411. flat_angle( angle )
  412. {
  413. rangle = ( 0, angle[ 1 ], 0 );
  414. return rangle;
  415. }
  416.  
  417. GetBestLandingSpot(flags)
  418. {
  419.  
  420. for(i = 0; i <= 2; i++)
  421. {
  422.  
  423. if(BulletTracePassed( (flags[i].origin + (0, 0, 2000)), flags[i].origin + (0, 0, 150), false, self ))
  424. {
  425.  
  426. return (flags[i].origin);
  427.  
  428. }
  429.  
  430. }
  431.  
  432. return false;
  433.  
  434. }
  435.  
  436. setupHQs()
  437. {
  438. radios = getentarray( "hq_hardpoint", "targetname" );
  439. trigs = getentarray("radiotrigger", "targetname");
  440.  
  441. maperrors = [];
  442.  
  443. //locationObjID = maps\mp\gametypes\_gameobjects::getNextObjID();
  444.  
  445. //objective_add( locationObjID, "invisible", (0,0,0) );
  446.  
  447. //nextObjPoint = maps\mp\gametypes\_objpoints::createTeamObjpoint( "objpoint_next_hq", radio.origin + level.iconoffset, "all", "waypoint_targetneutral" );
  448. //nextObjPoint setWayPoint( true, "waypoint_targetneutral" );
  449. //objective_position( locationObjID, (0, 0, 0) );
  450. //objective_icon( locationObjID, "waypoint_targetneutral" );
  451. //objective_state( locationObjID, "active" );
  452.  
  453. wait 5;
  454.  
  455. thread spawn_ending_heli();
  456.  
  457. //interior_model = spawn("script_model", flags[1].origin);
  458. //interior_model setmodel("t5_veh_helo_huey_mp_light");
  459. //interior_model linkto(heli, "tag_origin", (0,0,0), (0,0,0) );
  460.  
  461. for ( i = 0; i < radios.size; i++ )
  462. {
  463. errored = false;
  464. radio = radios[i];
  465. radio.trig = undefined;
  466. for ( j = 0; j < trigs.size; j++ )
  467. {
  468.  
  469. if ( radio istouching( trigs[j] ) )
  470. {
  471. if ( isdefined( radio.trig ) )
  472. {
  473. maperrors[maperrors.size] = "Radio at " + radio.origin + " is touching more than one \"radiotrigger\" trigger";
  474. errored = true;
  475. break;
  476. }
  477. radio.trig = trigs[j];
  478. break;
  479. }
  480. }
  481.  
  482. if ( !isdefined( radio.trig ) )
  483. {
  484. if ( !errored )
  485. {
  486. maperrors[maperrors.size] = "Radio at " + radio.origin + " is not inside any \"radiotrigger\" trigger";
  487. continue;
  488. }
  489.  
  490.  
  491.  
  492.  
  493. }
  494. visuals = [];
  495. visuals[0] = radio;
  496.  
  497. otherVisuals = getEntArray( radio.target, "targetname" );
  498. for ( j = 0; j < otherVisuals.size; j++ )
  499. {
  500. visuals[visuals.size] = otherVisuals[j];
  501. }
  502.  
  503.  
  504. radio.gameObject = maps\mp\gametypes\_gameobjects::createUseObject( "axis", radio.trig, visuals, (radio.origin - radio.trigorigin) + level.iconoffset );
  505. radio.gameObject maps\mp\gametypes\_gameobjects::disableObject();
  506. radio.gameObject maps\mp\gametypes\_gameobjects::setModelVisibility( true );
  507. playSoundOnPlayers( "mpl_hq_cap_us" );
  508. radio.gameObject maps\mp\gametypes\_gameobjects::enableObject();
  509.  
  510. radio.gameobject maps\mp\gametypes\_gameobjects::allowUse( "enemy" );
  511. radio.gameobject maps\mp\gametypes\_gameobjects::setUseTime( level.captureTime );
  512. radio.gameobject maps\mp\gametypes\_gameobjects::setUseText( &"MP_CAPTURING_HQ" );
  513.  
  514. //objective_icon( locationObjID, "compass_waypoint_captureneutral" );
  515. radio.gameobject maps\mp\gametypes\_gameobjects::set2DIcon( "enemy", "compass_waypoint_captureneutral" );
  516. radio.gameobject maps\mp\gametypes\_gameobjects::set3DIcon( "enemy", "waypoint_captureneutral" );
  517.  
  518. radio.gameobject maps\mp\gametypes\_gameobjects::set2DIcon( "friendly", "compass_waypoint_defend" );
  519. radio.gameobject maps\mp\gametypes\_gameobjects::set3DIcon( "friendly", "waypoint_defend" );
  520.  
  521. radio.gameobject maps\mp\gametypes\_gameobjects::setVisibleTeam( "any" );
  522. radio.gameobject maps\mp\gametypes\_gameobjects::setModelVisibility( true );
  523.  
  524. radio.gameobject.onUse = ::onRadioCapture;
  525. radio.gameobject.onBeginUse = ::onBeginUse;
  526. radio.gameobject.onEndUse = ::onEndUse;
  527.  
  528. //objective_position( locationObjID, radio.gameobject.origin );
  529.  
  530.  
  531. interior_model = spawn("script_model", radio.gameobject.origin);
  532. interior_model setmodel(level.chopper_interior_models["player_firstperson"]["allies"]);
  533.  
  534.  
  535. level waittill( "hq_captured" );
  536.  
  537. radio.gameobject maps\mp\gametypes\_gameobjects::disableObject();
  538. radio.gameobject maps\mp\gametypes\_gameobjects::allowUse( "none" );
  539. radio.gameobject maps\mp\gametypes\_gameobjects::setOwnerTeam( "neutral" );
  540. radio.gameobject maps\mp\gametypes\_gameobjects::setModelVisibility( false );
  541.  
  542. }
  543.  
  544. }
  545.  
  546. onRadioCapture( player )
  547. {
  548. team = player.pers["team"];
  549. //player logString( "radio captured" );
  550. string = &"MP_HQ_CAPTURED_BY";
  551. //thread give_capture_credit( self.touchList[team], string );
  552. oldTeam = maps\mp\gametypes\_gameobjects::getOwnerTeam();
  553. self maps\mp\gametypes\_gameobjects::setOwnerTeam( team );
  554. self maps\mp\gametypes\_gameobjects::setUseTime( level.destroyTime );
  555.  
  556. otherTeam = "axis";
  557.  
  558. //thread printOnTeamArg( &"MP_HQ_CAPTURED_BY", team, player );
  559. //thread printOnTeam( &"MP_HQ_CAPTURED_BY_ENEMY", otherTeam );
  560. maps\mp\gametypes\_globallogic_audio::leaderDialog( "hq_secured", team );
  561.  
  562. maps\mp\gametypes\_globallogic_audio::leaderDialog( "hq_enemy_captured", otherTeam );
  563. thread playSoundOnPlayers( "mp_war_objective_taken", team );
  564. thread playSoundOnPlayers( "mp_war_objective_lost", otherTeam );
  565.  
  566. level notify( "hq_captured" );
  567. player notify( "event_ended" );
  568. }
  569.  
  570. onEndUse( team, player, success )
  571. {
  572. self.objPoints["allies"] thread maps\mp\gametypes\_objpoints::stopFlashing();
  573. self.objPoints["axis"] thread maps\mp\gametypes\_objpoints::stopFlashing();
  574. player notify( "event_ended" );
  575. }
  576.  
  577. onBeginUse( player )
  578. {
  579. ownerTeam = self maps\mp\gametypes\_gameobjects::getOwnerTeam();
  580.  
  581. self.objPoints["allies"] thread maps\mp\gametypes\_objpoints::startFlashing();
  582. self.objPoints["axis"] thread maps\mp\gametypes\_objpoints::startFlashing();
  583. player thread maps\mp\gametypes\_battlechatter_mp::gametypeSpecificBattleChatter( "hq_protect", player.pers["team"] );
  584. }
  585.  
  586. onSpawnPlayerUnified()
  587. {
  588. self.usingObj = undefined;
  589.  
  590. if ( level.useStartSpawns && !level.inGracePeriod )
  591. {
  592. level.useStartSpawns = false;
  593. }
  594.  
  595. maps\mp\gametypes\_spawning::onSpawnPlayer_Unified();
  596. }
  597. onSpawnPlayer()
  598. {
  599. pixbeginevent("TDM:onSpawnPlayer");
  600. self.usingObj = undefined;
  601. if ( level.inGracePeriod )
  602. {
  603. spawnPoints = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_tdm_spawn_" + self.pers["team"] + "_start" );
  604.  
  605. if ( !spawnPoints.size )
  606. spawnPoints = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_sab_spawn_" + self.pers["team"] + "_start" );
  607.  
  608. if ( !spawnPoints.size )
  609. {
  610. spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( self.pers["team"] );
  611. spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam( spawnPoints );
  612. }
  613. else
  614. {
  615. spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random( spawnPoints );
  616. }
  617. }
  618. else
  619. {
  620. spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( self.pers["team"] );
  621. spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam( spawnPoints );
  622. }
  623.  
  624. self spawn( spawnPoint.origin, spawnPoint.angles, "tdm" );
  625. pixendevent();
  626. self freezeControls( false );
  627.  
  628. interior_model = spawn("script_model", self.origin);
  629. interior_model setmodel("t5_veh_helo_huey_mp_light");
  630. }
  631. onEndGame( winningTeam )
  632. {
  633. if ( isdefined( winningTeam ) && (winningTeam == "allies" || winningTeam == "axis") )
  634. [[level._setTeamScore]]( winningTeam, [[level._getTeamScore]]( winningTeam ) + 1 );
  635. }
  636. onRoundEndGame( roundWinner )
  637. {
  638. if ( game["roundswon"]["allies"] == game["roundswon"]["axis"] )
  639. winner = "tie";
  640. else if ( game["roundswon"]["axis"] > game["roundswon"]["allies"] )
  641. winner = "axis";
  642. else
  643. winner = "allies";
  644.  
  645. return winner;
  646. }
  647. onScoreCloseMusic()
  648. {
  649. while( !level.gameEnded )
  650. {
  651. axisScore = [[level._getTeamScore]]( "axis" );
  652. alliedScore = [[level._getTeamScore]]( "allies" );
  653. scoreLimit = level.scoreLimit;
  654. scoreThreshold = scoreLimit * .1;
  655. scoreDif = abs(axisScore - alliedScore);
  656. scoreThresholdStart = abs(scoreLimit - scoreThreshold);
  657. scoreLimitCheck = scoreLimit - 10;
  658.  
  659. if (alliedScore > axisScore)
  660. {
  661. currentScore = alliedScore;
  662. }
  663. else
  664. {
  665. currentScore = axisScore;
  666. }
  667.  
  668. if ( scoreDif <= scoreThreshold && scoreThresholdStart <= currentScore )
  669. {
  670.  
  671. thread maps\mp\gametypes\_globallogic_audio::set_music_on_team( "TIME_OUT", "both" );
  672. thread maps\mp\gametypes\_globallogic_audio::actionMusicSet();
  673. return;
  674. }
  675.  
  676. wait(.5);
  677. }
  678. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement