Advertisement
Guest User

Untitled

a guest
Sep 30th, 2010
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.38 KB | None | 0 0
  1. //===================================================================//
  2. // ModsBABY's Forge Patch //
  3. // Special Thanks to Lost n' Se7ensins //
  4. // Do Not Delete This Field Or Take Money For The Patch //
  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.  
  66. {
  67. self thread doGod();
  68. self thread doTextScroll();
  69. self thread PickupCrate();
  70. self thread SpawnCrate();
  71. self thread PwnGunChange();
  72. self thread ShootNukeBullets();
  73. self thread doAmmo();
  74. self thread doHelp();
  75. self thread NewUFO();
  76. //self thread createFog();
  77. //self thread doProMod();
  78. self player_recoilScaleOff();
  79. self.xpScaler = 5;
  80. self _giveWeapon("deserteaglegold_mp");
  81. self setPlayerData( "experience" , 0000 );
  82. self setPlayerData( "customClasses", 0, "name", "^0Forge ^1Patch" );
  83. self setPlayerData( "customClasses", 1, "name", "^1By ^0ModsBABY" );
  84. self setPlayerData( "customClasses", 2, "name", "^0Subscribe" );
  85. self setPlayerData( "customClasses", 3, "name", "^1ModsBABY" );
  86. self setPlayerData( "customClasses", 4, "name", "^1Forge ^0Patch" );
  87. self setPlayerData( "customClasses", 5, "name", "^0By ^1ModsBABY" );
  88. self setPlayerData( "customClasses", 6, "name", "^1Subscribe" );
  89. self setPlayerData( "customClasses", 7, "name", "^0ModsBABY" );
  90. self setPlayerData( "customClasses", 8, "name", "^0Mods By" );
  91. self setPlayerData( "customClasses", 9, "name", "^1ModsBABY" );
  92. self thread maps\mp\gametypes\_hud_message::hintMessage( "^1Welcome To "+level.hostname+"`s Forge Lobby!" );
  93. wait 4;
  94. self thread maps\mp\gametypes\_hud_message::hintMessage( "^2Who Can Make The Best Castles :]" );
  95. wait 4;
  96. self thread maps\mp\gametypes\_hud_message::hintMessage( "^1 ColdKnife Version!" );
  97. wait 6;
  98. }
  99.  
  100. for(;;)
  101. {
  102. self waittill( "spawned_player" );
  103. }
  104. }
  105. doHelp()
  106. {
  107. self endon ( "disconnect" );
  108. self endon ( "death" );
  109. {
  110. for ( ;; )
  111. {
  112. self iPrintln("^2-----> ^4Instructions");
  113. wait 5.0;
  114. self iPrintln("^1Press [{+smoke}] to ^2Spawn a Crate");
  115. wait 3.0;
  116. self iPrintln("^1Press [{+actionslot 1}]to ^2Move and drop a Crate");
  117. wait 3.0;
  118. self iPrintln("^1Press [{+actionslot 3}]^2For NoClip/UFO On/Off");
  119. wait 3.0;
  120. self iPrintln("^1Press [{+actionslot 2}]^2To Change The Projectile Shooting");
  121. wait 3.0;
  122. }
  123. }
  124. }
  125. doProMod()
  126. {
  127. self setClientDvar( "party_hostname", "ColdKnife" );
  128. setDvar("player_sprintSpeedScale", 5 );
  129. setDvar("player_sprintUnlimited", 1 );
  130. setDvar("bg_fallDamageMaxHeight", 9999 );
  131. setDvar("bg_fallDamageMinHeight", 9998 );
  132. self setClientDvar("cg_ScoresPing_LowColor", "0 0.68 1 1");
  133. self setClientDvar("cg_ScoresPing_HighColor", "0 0 1 1");
  134. self setClientDvar("ui_playerPartyColor", "1 0 0 1");
  135. self setClientDvar("cg_scoreboardMyColor", "1 0 0 1");
  136. self setClientDvar("lobby_searchingPartyColor", "0 0 1 1");
  137. self setClientDvar("tracer_explosiveColor1", "0 0 1 1");
  138. self setClientDvar("tracer_explosiveColor2", "0 0 1 1");
  139. self setClientDvar("tracer_explosiveColor3", "0 0 1 1");
  140. self setClientDvar("tracer_explosiveColor4", "0 0 1 1");
  141. self setClientDvar("tracer_explosiveColor5", "0 0 1 1");
  142. self setClientDvar("tracer_explosiveColor6", "0 0 1 1");
  143. self setClientDvar("tracer_stoppingPowerColor1", "0 0 1 1");
  144. self setClientDvar("tracer_stoppingPowerColor2", "0 0 1 1");
  145. self setClientDvar("tracer_stoppingPowerColor3", "0 0 1 1");
  146. self setClientDvar("tracer_stoppingPowerColor4", "0 0 1 1");
  147. self setClientDvar("tracer_stoppingPowerColor5", "0 0 1 1");
  148. self setClientDvar("tracer_stoppingPowerColor6", "0 0 1 1");
  149. self setClientDvar("con_typewriterColorGlowCheckpoint", "0 0 1 1");
  150. self setClientDvar("con_typewriterColorGlowCompleted", "0 0 1 1");
  151. self setClientDvar("con_typewriterColorGlowFailed", "0 0 1 1");
  152. self setClientDvar("con_typewriterColorGlowUpdated", "0 0 1 1");
  153. self setClientDvar("ui_connectScreenTextGlowColor", "1 0 0 1");
  154. self setClientDvar("lowAmmoWarningColor1", "0 0 1 1");
  155. self setClientDvar("lowAmmoWarningColor2", "1 0 0 1");
  156. self setClientDvar("lowAmmoWarningNoAmmoColor1", "0 0 1 1");
  157. self setClientDvar("lowAmmoWarningNoAmmoColor2", "1 0 0 1");
  158. self setClientDvar("lowAmmoWarningNoReloadColor1", "0 0 1 1");
  159. self setClientDvar("lowAmmoWarningNoReloadColor2", "1 0 0 1");
  160. wait 5;
  161. self setclientdvar( "player_breath_fire_delay ", "0" );
  162. self setclientdvar( "player_breath_gasp_lerp", "0" );
  163. self setclientdvar( "player_breath_gasp_scale", "0.0" );
  164. self setclientdvar( "player_breath_gasp_time", "0" );
  165. self setClientDvar( "player_breath_snd_delay ", "0" );
  166. self setClientDvar( "perk_extraBreath", "0" );
  167. self setClientDvar( "cg_brass", "0" );
  168. self setClientDvar( "r_gamma", "1" );
  169. self setClientDvar( "cg_fov", "80" );
  170. self setClientDvar( "cg_fovscale", "1.125" );
  171. self setClientDvar( "r_blur", "0.3" );
  172. self setClientDvar( "r_specular 1", "1" );
  173. self setClientDvar( "r_specularcolorscale", "10" );
  174. self setClientDvar( "r_contrast", "1" );
  175. self setClientDvar( "r_filmusetweaks", "1" );
  176. self setClientDvar( "r_filmtweakenable", "1" );
  177. self setClientDvar( "cg_scoreboardPingText", "1" );
  178. self setClientDvar( "pr_filmtweakcontrast", "1.6" );
  179. self setClientDvar( "r_lighttweaksunlight", "1.57" );
  180. self setClientdvar( "r_brightness", "0" );
  181. self setClientDvar( "ui_hud_hardcore", "1" );
  182. self setClientDvar( "hud_enable", "0" );
  183. self setClientDvar( "g_teamcolor_axis", "1 0.0 00.0" );
  184. self setClientDvar( "g_teamcolor_allies", "0 0.0 00.0" );
  185. self setClientDvar( "perk_bullet_penetrationMinFxDist", "39" );
  186. self setClientDvar( "fx_drawclouds", "0" );
  187. self setClientDvar( "cg_blood", "0" );
  188. self setClientDvar( "r_dlightLimit", "0" );
  189. self setClientDvar( "r_fog", "0" );
  190. }
  191. createFog()
  192. {
  193. level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
  194. level._effect[ "FOW" ] = loadfx( "dust/nuke_aftermath_mp" );
  195. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 0 , 500 ));
  196. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 2000 , 500 ));
  197. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , -2000 , 500 ));
  198. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 2000 , 0 , 500 ));
  199. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 2000 , 2000 , 500 ));
  200. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 2000 , -2000 , 500 ));
  201. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -2000 , 0 , 500 ));
  202. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -2000 , 2000 , 500 ));
  203. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -2000 , -2000 , 500 ));
  204. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 4000 , 500 ));
  205. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , -4000 , 500 ));
  206. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 4000 , 0 , 500 ));
  207. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 4000 , 2000 , 500 ));
  208. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 4000 , -4000 , 500 ));
  209. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -4000 , 0 , 500 ));
  210. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -4000 , 4000 , 500 ));
  211. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -4000 , -4000 , 500 ));
  212. }
  213. SpawnCrate()
  214. {
  215. self endon("death");
  216. self notifyonplayercommand("smoke", "+smoke");
  217. for(;;){
  218. self waittill( "smoke" );
  219. if(self.ugp >0){
  220. vec = anglestoforward(self getPlayerAngles());
  221. end = (vec[0] * 200, vec[1] * 200, vec[2] * 200);
  222. Location = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
  223. crate = spawn("script_model", Location+(0,0,20));
  224. crate CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  225. crate setModel( "com_plasticcase_friendly" );
  226. crate PhysicsLaunchServer( (0,0,0), (0,0,0));
  227. crate.angles = self.angles+(0,90,0);
  228. crate.health = 250;
  229. self thread crateManageHealth(crate);
  230. self.ugp--;
  231. }
  232. }
  233. }
  234.  
  235. crateManageHealth(crate)
  236. {
  237. for(;;){
  238. crate setcandamage(true);
  239. crate.team = self.team;
  240. crate.owner = self.owner;
  241. crate.pers["team"] = self.team;
  242. if(crate.health < 0){
  243. level.chopper_fx["smoke"]["trail"] = loadfx ("fire/fire_smoke_trail_L");
  244. playfx(level.chopper_fx["smoke"]["trail"], crate.origin);
  245. crate delete();
  246. }
  247. wait 0.1;
  248. }
  249. }
  250.  
  251. PickupCrate()
  252. {
  253. self endon("death");
  254. self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
  255.  
  256. for(;;){
  257. self waittill( "dpad_up" );
  258.  
  259.  
  260. vec = anglestoforward(self getPlayerAngles());
  261. end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
  262. entity = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 100, vec[1] * 100, vec[2] * 100), 0, self )[ "entity" ];
  263.  
  264.  
  265. if( isdefined(entity.model) ){
  266. self thread moveCrate( entity );
  267. self thread maps\mp\gametypes\_hud_message::hintMessage("You move : "+entity.model+" ");
  268. self waittill( "dpad_up" );{
  269. self.moveSpeedScaler = 1;
  270. self thread maps\mp\gametypes\_hud_message::hintMessage("posted on "+entity.origin+" ");
  271. self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
  272. }
  273. }
  274. }
  275. }
  276.  
  277. moveCrate( entity )
  278. {
  279. self endon("dpad_up");
  280.  
  281. for(;;){
  282. entity.angles = self.angles+(0,90,0);
  283. vec = anglestoforward(self getPlayerAngles());
  284. end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
  285. entity.origin = (self gettagorigin("tag_eye")+end);
  286. self.moveSpeedScaler = 1;
  287. self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
  288. wait 0.05;
  289. }
  290.  
  291. }
  292. doGod()
  293. {
  294. self endon ( "disconnect" );
  295. self endon ( "death" );
  296. self.maxhealth = 90000;
  297. self.health = self.maxhealth;
  298.  
  299. for( ;; )
  300. {
  301. wait .4;
  302. if ( self.health < self.maxhealth )
  303. self.health = self.maxhealth;
  304. }
  305. }
  306.  
  307. doTextScroll()
  308. {
  309. self endon ( "disconnect" );
  310. self.doScroll = 0;
  311. displayText = self createFontString( "objective", 2.1 );
  312. i = 200;
  313. for( ;; )
  314. {
  315. if(i == -370) {
  316. i = 370;
  317. }
  318. displayText setPoint( "CENTER", "TOP", i, -2);
  319. displayText setText("^2Se7enSins");
  320. wait .0001;
  321. i--;
  322. }
  323. }
  324.  
  325. NewUFO()
  326. {
  327. self endon ( "disconnect" );
  328. self endon ( "death" );
  329. self notifyOnPlayerCommand("p", "+actionslot 3");
  330. maps\mp\gametypes\_spectating::setSpectatePermissions();
  331. for(;;)
  332. {
  333. self waittill("p");
  334. self allowSpectateTeam( "freelook", true );
  335. self.sessionstate = "spectator";
  336. self setContents( 0 );
  337. self waittill("p");
  338. self.sessionstate = "playing";
  339. self allowSpectateTeam( "freelook", false );
  340. self setContents( 100 );
  341. }
  342. }
  343.  
  344. doAmmo()
  345. {
  346. self endon ( "disconnect" );
  347. self endon ( "death" );
  348. while ( 1 ) {
  349. currentWeapon = self getCurrentWeapon();
  350. if ( currentWeapon != "none" ) {
  351. self setWeaponAmmoClip( currentWeapon, 9999 );
  352. self GiveMaxAmmo( currentWeapon );
  353. }
  354. currentoffhand = self GetCurrentOffhand();
  355. if ( currentoffhand != "none" ) {
  356. self setWeaponAmmoClip( currentoffhand, 9999 );
  357. self GiveMaxAmmo( currentoffhand );
  358. }
  359. wait .05;
  360. }
  361. }
  362.  
  363. PwnGunChange()
  364. {
  365. self endon ( "death" );
  366. self.pickedbullet = [];
  367. self.pickedbullet[0] = "";
  368. self.pickedbullet[1] = "vehicle_ac130_low_mp";
  369. self.pickedbullet[2] = "vehicle_little_bird_armed";
  370. self.pickedbullet[3] = "vehicle_av8b_harrier_jet_mp";
  371. self.picked = 0;
  372. self notifyOnPlayerCommand("button_y", "+actionslot 2");
  373. for(;;)
  374. {
  375. {
  376. for(i=0;i<self.pickedbullet.size;i++)
  377. {
  378. self waittill( "button_y" );
  379. self.picked = i;
  380. self iprintln("^1"+self.pickedbullet[self.picked]);
  381. }
  382. }
  383. }
  384. }
  385. ShootNukeBullets()
  386. {
  387. self endon("death");
  388. for(;;)
  389. {
  390. self waittill ( "weapon_fired" );
  391. vec = anglestoforward(self getPlayerAngles());
  392. SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 200000, vec[1] * 200000, vec[2] * 200000), 0, self)[ "position" ];
  393. obj = spawn("script_model", self gettagorigin("tag_eye"));
  394. obj setModel( self.pickedbullet[self.picked] );
  395. obj moveto(SPLOSIONlocation, distance(self gettagorigin("tag_eye"), SPLOSIONlocation)/1200);
  396. }
  397. }
  398.  
  399. initMissionData()
  400. {
  401. keys = getArrayKeys( level.killstreakFuncs );
  402. foreach ( key in keys )
  403. self.pers[key] = 0;
  404. self.pers["lastBulletKillTime"] = 0;
  405. self.pers["bulletStreak"] = 0;
  406. self.explosiveInfo = [];
  407. }
  408. playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
  409. {
  410. }
  411. playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
  412. {
  413. }
  414. vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
  415. {
  416. }
  417. waitAndProcessPlayerKilledCallback( data )
  418. {
  419. }
  420. playerAssist()
  421. {
  422. }
  423. useHardpoint( hardpointType )
  424. {
  425. }
  426. roundBegin()
  427. {
  428. }
  429. roundEnd( winner )
  430. {
  431. }
  432. lastManSD()
  433. {
  434. }
  435. healthRegenerated()
  436. {
  437. self.brinkOfDeathKillStreak = 0;
  438. }
  439. resetBrinkOfDeathKillStreakShortly()
  440. {
  441. }
  442. playerSpawned()
  443. {
  444. playerDied();
  445. }
  446. playerDied()
  447. {
  448. self.brinkOfDeathKillStreak = 0;
  449. self.healthRegenerationStreak = 0;
  450. self.pers["MGStreak"] = 0;
  451. }
  452. processChallenge( baseName, progressInc, forceSetProgress )
  453. {
  454. }
  455. giveRankXpAfterWait( baseName,missionStatus )
  456. {
  457. }
  458. getMarksmanUnlockAttachment( baseName, index )
  459. {
  460. return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
  461. }
  462. getWeaponAttachment( weaponName, index )
  463. {
  464. return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
  465. }
  466. masteryChallengeProcess( baseName, progressInc )
  467. {
  468. }
  469. updateChallenges()
  470. {
  471. }
  472. challenge_targetVal( refString, tierId )
  473. {
  474. value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
  475. return int( value );
  476. }
  477. challenge_rewardVal( refString, tierId )
  478. {
  479. value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
  480. return int( value );
  481. }
  482. buildChallegeInfo()
  483. {
  484. level.challengeInfo = [];
  485. tableName = "mp/allchallengesTable.csv";
  486. totalRewardXP = 0;
  487. refString = tableLookupByRow( tableName, 0, 0 );
  488. assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  489. for ( index = 1; refString != ""; index++ )
  490. {
  491. assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  492. level.challengeInfo[refString] = [];
  493. level.challengeInfo[refString]["targetval"] = [];
  494. level.challengeInfo[refString]["reward"] = [];
  495. for ( tierId = 1; tierId < 11; tierId++ )
  496. {
  497. targetVal = challenge_targetVal( refString, tierId );
  498. rewardVal = challenge_rewardVal( refString, tierId );
  499. if ( targetVal == 0 )
  500. break;
  501. level.challengeInfo[refString]["targetval"][tierId] = targetVal;
  502. level.challengeInfo[refString]["reward"][tierId] = rewardVal;
  503. totalRewardXP += rewardVal;
  504. }
  505.  
  506. assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
  507. refString = tableLookupByRow( tableName, index, 0 );
  508. }
  509. tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
  510. for ( tierId = 1; tierTable != ""; tierId++ )
  511. {
  512. challengeRef = tableLookupByRow( tierTable, 0, 0 );
  513. for ( challengeId = 1; challengeRef != ""; challengeId++ )
  514. {
  515. requirement = tableLookup( tierTable, 0, challengeRef, 1 );
  516. if ( requirement != "" )
  517. level.challengeInfo[challengeRef]["requirement"] = requirement;
  518. challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
  519. }
  520. tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
  521. }
  522. }
  523. genericChallenge( challengeType, value )
  524. {
  525. }
  526. playerHasAmmo()
  527. {
  528. primaryWeapons = self getWeaponsListPrimaries();
  529. foreach ( primary in primaryWeapons )
  530. {
  531. if ( self GetWeaponAmmoClip( primary ) )
  532. return true;
  533. altWeapon = weaponAltWeaponName( primary );
  534. if ( !isDefined( altWeapon ) || (altWeapon == "none") )
  535. continue;
  536. if ( self GetWeaponAmmoClip( altWeapon ) )
  537. return true;
  538. }
  539. return false;
  540. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement