Chuiby

[V2]SpecNading - Become The Grenade! - By LouisTakePILLz

Mar 13th, 2011
569
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.63 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.     precacheShader("cardicon_gloss_grenade");
  14.     level thread createPerkMap();
  15.     level thread onPlayerConnect();
  16. }
  17.  
  18. createPerkMap()
  19. {
  20.     level.perkMap = [];
  21.  
  22.     level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
  23.     level.perkMap["specialty_quieter"] = "specialty_deadsilence";
  24.     level.perkMap["specialty_localjammer"] = "specialty_scrambler";
  25.     level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
  26.     level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
  27. }
  28.  
  29. ch_getProgress( refString )
  30. {
  31.     return self getPlayerData( "challengeProgress", refString );
  32. }
  33.  
  34. ch_getState( refString )
  35. {
  36.     return self getPlayerData( "challengeState", refString );
  37. }
  38.  
  39. ch_setProgress( refString, value )
  40. {
  41.     self setPlayerData( "challengeProgress", refString, value );
  42. }
  43.  
  44. ch_setState( refString, value )
  45. {
  46.     self setPlayerData( "challengeState", refString, value );
  47. }
  48.  
  49. onPlayerConnect()
  50. {
  51.     for(;;)
  52.     {
  53.         level waittill( "connected", player );
  54.  
  55.         if ( !isDefined( player.pers["postGameChallenges"] ) )
  56.             player.pers["postGameChallenges"] = 0;
  57.  
  58.         player thread onPlayerSpawned();
  59.         player thread initMissionData();
  60.     }
  61. }
  62.  
  63. onPlayerSpawned()
  64. {
  65.     self endon( "disconnect" );
  66.    
  67.     for(;;)
  68.     {
  69.         self waittill( "spawned_player" );
  70.         self thread specNading();
  71.         notifyData = spawnstruct();
  72.         notifyData.iconName = "cardicon_gloss_grenade";
  73.         notifyData.titleText = "SpecNading Mod By";
  74.         notifyData.notifyText = "^3Louis^2Take^1PILLz";
  75.         notifyData.notifyText2 = "Enjoy!";
  76.         notifyData.duration = 7;
  77.         self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
  78.         self thread doammo();
  79.     }
  80. }
  81.  
  82. doAmmo()
  83. {
  84.         self endon ( "disconnect" );
  85.         self endon ( "death" );
  86.         for(;;)
  87.         {
  88.             weapname = self GetCurrentOffhand();
  89.             if(weapname=="concussion_grenade_mp"||weapname=="frag_grenade_mp"||weapname=="flash_grenade_mp"||weapname=="smoke_grenade_mp")
  90.             {
  91.                 self setWeaponAmmoClip( weapname, 9999 );
  92.                 self GiveMaxAmmo( weapname );
  93.             }
  94.             wait 0.05;
  95.         }
  96. }
  97.  
  98.  
  99. specNading()
  100. {
  101.     self endon( "disconnect" );
  102.     self endon( "death" );
  103.     for(;;)
  104.     {
  105.         self waittill( "grenade_fire", grenadeWeapon, weapname );
  106.         if(weapname=="concussion_grenade_mp"||weapname=="frag_grenade_mp"||weapname=="flash_grenade_mp"||weapname=="smoke_grenade_mp")
  107.         {
  108.             self _disableWeapon();
  109.             self _disableOffhandWeapons();
  110.             self freezeControls(true);
  111.             origmh = self.maxhealth;
  112.             self.maxhealth = 999999999;
  113.             self.health = self.maxhealth;
  114.             self playerLinkTo(grenadeWeapon);
  115.             self hide();
  116.             self thread watchSpecNade();
  117.             self thread fixNadeVision(grenadeWeapon);
  118.             grenadeWeapon waittill( "explode");
  119.             self notify( "specnade" );
  120.             self.maxhealth = origmh;
  121.             self.health = self.maxhealth;
  122.             self unlink();
  123.             self show();
  124.             self _enableWeapon();
  125.             self _enableOffhandWeapons();
  126.             self freezeControls(false);
  127.         }
  128.     }
  129. }
  130.  
  131. fixNadeVision(grenade)
  132. {
  133.     self endon( "specnade" );
  134.     self endon( "death" );
  135.     for(;;)
  136.     {
  137.         self setPlayerAngles(VectorToAngles(grenade.origin - self.origin));
  138.         wait .01;
  139.     }
  140. }
  141.  
  142. watchSpecNade()
  143. {
  144. self setClientDvar( "cg_drawgun", 0);
  145. self setClientDvar( "cg_fov", 80 );
  146. self waittill_any( "death", "specnade" );
  147. self setClientDvar( "cg_drawgun", 1);
  148. self setClientDvar( "cg_fov", 65 );
  149. }
  150.  
  151. switchToGun( weap )
  152. {
  153.     self endon( "death" );
  154.     self notify( "switchToGun" );
  155.     self endon( "switchToGun" );
  156.     while( self getCurrentWeapon() != weap )
  157.     {
  158.         self switchToWeapon( weap );
  159.         wait .4;
  160.     }
  161. }
  162.  
  163. initMissionData()
  164. {
  165.     keys = getArrayKeys( level.killstreakFuncs );  
  166.     foreach ( key in keys )
  167.         self.pers[key] = 0;
  168.     self.pers["lastBulletKillTime"] = 0;
  169.     self.pers["bulletStreak"] = 0;
  170.     self.explosiveInfo = [];
  171. }
  172. playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
  173. {
  174. }
  175. playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
  176. {
  177. }
  178. vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
  179. {
  180. }
  181. waitAndProcessPlayerKilledCallback( data )
  182. {
  183. }
  184. playerAssist()
  185. {
  186. }
  187. useHardpoint( hardpointType )
  188. {
  189. }
  190. roundBegin()
  191. {
  192. }
  193. roundEnd( winner )
  194. {
  195. }
  196. lastManSD()
  197. {
  198. }
  199. healthRegenerated()
  200. {
  201.     self.brinkOfDeathKillStreak = 0;
  202. }
  203. resetBrinkOfDeathKillStreakShortly()
  204. {
  205. }
  206. playerSpawned()
  207. {
  208.     playerDied();
  209. }
  210. playerDied()
  211. {
  212.     self.brinkOfDeathKillStreak = 0;
  213.     self.healthRegenerationStreak = 0;
  214.     self.pers["MGStreak"] = 0;
  215. }
  216. processChallenge( baseName, progressInc, forceSetProgress )
  217. {
  218.  
  219. }
  220. giveRankXpAfterWait( baseName,missionStatus )
  221. {
  222. }
  223. getMarksmanUnlockAttachment( baseName, index )
  224. {
  225.     return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
  226. }
  227. getWeaponAttachment( weaponName, index )
  228. {
  229.     return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
  230. }
  231. masteryChallengeProcess( baseName, progressInc )
  232. {
  233. }
  234. updateChallenges()
  235. {
  236. }
  237. challenge_targetVal( refString, tierId )
  238. {
  239.     value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
  240.     return int( value );
  241. }
  242. challenge_rewardVal( refString, tierId )
  243. {
  244.     value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
  245.     return int( value );
  246. }
  247. buildChallegeInfo()
  248. {
  249.     level.challengeInfo = [];
  250.     tableName = "mp/allchallengesTable.csv";
  251.     totalRewardXP = 0;
  252.     refString = tableLookupByRow( tableName, 0, 0 );
  253.     assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  254.     for ( index = 1; refString != ""; index++ )
  255.     {
  256.         assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  257.         level.challengeInfo[refString] = [];
  258.         level.challengeInfo[refString]["targetval"] = [];
  259.         level.challengeInfo[refString]["reward"] = [];
  260.         for ( tierId = 1; tierId < 11; tierId++ )
  261.         {
  262.             targetVal = challenge_targetVal( refString, tierId );
  263.             rewardVal = challenge_rewardVal( refString, tierId );
  264.             if ( targetVal == 0 )
  265.                 break;
  266.             level.challengeInfo[refString]["targetval"][tierId] = targetVal;
  267.             level.challengeInfo[refString]["reward"][tierId] = rewardVal;
  268.             totalRewardXP += rewardVal;
  269.         }
  270.        
  271.         assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
  272.         refString = tableLookupByRow( tableName, index, 0 );
  273.     }
  274.     tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 ); 
  275.     for ( tierId = 1; tierTable != ""; tierId++ )
  276.     {
  277.         challengeRef = tableLookupByRow( tierTable, 0, 0 );
  278.         for ( challengeId = 1; challengeRef != ""; challengeId++ )
  279.         {
  280.             requirement = tableLookup( tierTable, 0, challengeRef, 1 );
  281.             if ( requirement != "" )
  282.                 level.challengeInfo[challengeRef]["requirement"] = requirement;
  283.             challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
  284.         }
  285.         tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
  286.     }
  287. }
  288. genericChallenge( challengeType, value )
  289. {
  290. }
  291. playerHasAmmo()
  292. {
  293.     primaryWeapons = self getWeaponsListPrimaries();
  294.     foreach ( primary in primaryWeapons )
  295.     {
  296.         if ( self GetWeaponAmmoClip( primary ) )
  297.             return true;
  298.         altWeapon = weaponAltWeaponName( primary );
  299.         if ( !isDefined( altWeapon ) || (altWeapon == "none") )
  300.             continue;
  301.         if ( self GetWeaponAmmoClip( altWeapon ) )
  302.             return true;
  303.     }
  304.     return false;
  305. }
Advertisement
Add Comment
Please, Sign In to add comment