Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define ASSEMBLY_TIERS 3
- #define ASSEMBLY_AMOUNT 16
- #define EXOTICEFFECTS_MAX 38
- // Keep track of learned assemblies with these
- int DRLA_AssemblyState[MAX_PLAYERS][ASSEMBLY_AMOUNT * ASSEMBLY_TIERS],
- DRLA_OldAssemblyState[MAX_PLAYERS][ASSEMBLY_AMOUNT * ASSEMBLY_TIERS];
- // For exotics
- int DRLA_KnownSniperState[MAX_PLAYERS][EXOTICEFFECTS_MAX],
- DRLA_OldSniperState[MAX_PLAYERS][EXOTICEFFECTS_MAX],
- DRLA_KnownFirestormState[MAX_PLAYERS][EXOTICEFFECTS_MAX],
- DRLA_OldFirestormState[MAX_PLAYERS][EXOTICEFFECTS_MAX],
- DRLA_KnownNanoState[MAX_PLAYERS][EXOTICEFFECTS_MAX],
- DRLA_OldNanoState[MAX_PLAYERS][EXOTICEFFECTS_MAX];
- // Use this to fetch what's stored in the cvar.
- str DRLA_FetchStoredInfo[MAX_PLAYERS],
- DRLA_FetchSniperInfo[MAX_PLAYERS],
- DRLA_FetchFirestormInfo[MAX_PLAYERS],
- DRLA_FetchNanoInfo[MAX_PLAYERS];
- // Use this string to fetch all learned assemblies to write to ini
- str DRLA_CurrentAssemblerState[MAX_PLAYERS] = {"","","","","","","",""};
- str DRLA_CurrentSniperState[MAX_PLAYERS] = {"","","","","","","",""},
- DRLA_CurrentFirestormState[MAX_PLAYERS] = {"","","","","","","",""},
- DRLA_CurrentNanoState[MAX_PLAYERS] = {"","","","","","","",""};
- // When can we actually write? I have no pencil and I MUST WRITE
- bool DRLA_DoWrite = false;
- str DRLA_AssemblyTokens[ASSEMBLY_AMOUNT * ASSEMBLY_TIERS] =
- {
- // Basic
- "RLChainswordAssemblyLearntToken",
- "RLPiercingBladeAssemblyLearntToken",
- "RLSpeedloaderPistolAssemblyLearntToken",
- "RLSilencedPistolAssemblyLearntToken",
- "RLShredderPistolAssemblyLearntToken",
- "RLElephantGunAssemblyLearntToken",
- "RLGatlingGunAssemblyLearntToken",
- "RLMicroLauncherAssemblyLearntToken",
- "RLHighPowerWeaponAssemblyLearntToken",
- "RLTacticalShotgunAssemblyLearntToken",
- "RLPlasmaticShrapnelAssemblyLearntToken",
- "RLHeavyShotgunAssemblyLearntToken",
- "RLFlamethrowerAssemblyLearntToken",
- "RLShrapnelCannonAssemblyLearntToken",
- "RLSniperRifleAssemblyLearntToken",
- "null",
- // Advanced
- "RLDoubleChainsawAssemblyLearntToken",
- "RLTacticalRocketLauncherAssemblyLearntToken",
- "RLStormPistolAssemblyLearntToken",
- "RLPlasmaPistolAssemblyLearntToken",
- "RLAssaultRifleAssemblyLearntToken",
- "RLBurstCannonAssemblyLearntToken",
- "RLVBFG9000AssemblyLearntToken",
- "RLNanoShrapnelAssemblyLearntToken",
- "RLHyperblasterAssemblyLearntToken",
- "RLFocusedDoubleShotgunAssemblyLearntToken",
- "RLPlasmaRifleMkIIAssemblyLearntToken",
- "RLBulletstormChaingunAssemblyLearntToken",
- "RLMiniMissilePistolAssemblyLearntToken",
- "RLAutoshotgunAssemblyLearntToken",
- "RLGrenadeLauncherAssemblyLearntToken",
- "RLNuclearPlasmaShotgunAssemblyLearntToken",
- // Master
- "RLNanomanufactureAmmoAssemblyLearntToken",
- "RLDemolitionAmmoAssemblyLearntToken",
- "RLBiggestFuckingGunAssemblyLearntToken",
- "RLRipperAssemblyLearntToken",
- "RLPlasmaRefractorAssemblyLearntToken",
- "RLAutocannonAssemblyLearntToken",
- "RLMotherInLawAssemblyLearntToken",
- "RLMegatonShotgunAssemblyLearntToken",
- "RLVoltgunAssemblyLearntToken",
- "RLConquerorShotgunAssemblyLearntToken",
- "RLClusterBombLauncherAssemblyLearntToken",
- "RLGaussRifleAssemblyLearntToken",
- "RLAntiMaterielRifleAssemblyLearntToken",
- "RLZeusCannonAssemblyLearntToken",
- "RLPlasmaInfusionAssemblyLearntToken",
- "RLSuperMachinegunAssemblyLearntToken"
- };
- str DRLA_UniqueSniperEffects[EXOTICEFFECTS_MAX][2] =
- {
- // Uniques
- {"RLJackhammer", "RLJackhammerSniperLearntToken" },
- {"RLRailgun", "RLRailgunSniperLearntToken" },
- {"RLMysteriousMagnum", "RLMysteriousMagnumSniperLearntToken" },
- {"RLBFG10K", "RLBFG10KSniperLearntToken" },
- {"RLUnknownHerald", "RLUnknownHeraldSniperLearntToken" },
- {"RLFragShotgun", "RLFragShotgunSniperLearntToken" },
- {"RLQuadShotgun", "RLQuadShotgunSniperLearntToken" },
- {"RLLightweaver", "RLLightweaverSniperLearntToken" },
- {"RLTrigun", "RLTrigunSniperLearntToken" },
- {"RLGrammatonClericBeretta", "RLGrammatonClericBerettaSniperLearntToken" },
- {"RLAntiFreakJackal", "RLAntiFreakJackalSniperLearntToken" },
- {"RLHellsingARMSCasull", "RLHellsingARMSCasullSniperLearntToken" },
- {"RLTantrumCannon", "RLTantrumCannonSniperLearntToken" },
- {"RLRevenantsLauncher", "RLRevenantsLauncherSniperLearntToken" },
- {"RLNullPointer", "RLNullPointerSniperLearntToken" },
- {"RLParticleBeamCannon", "RLParticleBeamCannonSniperLearntToken" },
- {"RLPlasmaRedirectionCannon", "RLPlasmaRedirectionCannonSniperLearntToken" },
- {"RLSteelBeast", "RLSteelBeastSniperLearntToken" },
- {"RLSussGun", "RLSussGunSniperLearntToken" },
- {"RLMIRVLauncher", "RLMIRVLauncherSniperLearntToken" },
- {"RLMarathonAssaultRifle", "RLMarathonAssaultRifleSniperLearntToken" },
- {"RLMarathonShotguns", "RLMarathonShotgunsSniperLearntToken" },
- {"RLWidowmakerSMG", "RLWidowmakerSMGSniperLearntToken" },
- {"RLChameleonRifle", "RLChameleonRifleSniperLearntToken" },
- {"RLNanomachicArmamentGenerator", "RLNanomachicArmamentGeneratorSniperLearntToken" },
- {"RLNuclearOnslaught", "RLNuclearOnslaughtSniperLearntToken" },
- // Demonic
- {"RLDeathsGaze", "RLDeathsGazeSniperLearntToken" },
- {"RLHellsReign", "RLHellsReignSniperLearntToken" },
- {"RLSoulstormRifle", "RLSoulstormRifleSniperLearntToken" },
- {"RLUnmaker", "null" },
- // Legendary
- {"RLJudgeOfTheDead", "RLJudgeOfTheDeadSniperLearntToken" },
- {"RLHurricaneCannon", "RLHurricaneCannonSniperLearntToken" },
- {"RLNeuralStunner", "RLNeuralStunnerSniperLearntToken" },
- {"RLBaronBlaster", "RLBaronBlasterSniperLearntToken" },
- {"RLRealityDistortionArray", "RLRealityDistortionArraySniperLearntToken" },
- {"RLBFGInfinity", "RLBFGInfinitySniperLearntToken" },
- {"RLDuke2Rifle", "RLDuke2RifleSniperLearntToken" },
- {"null", "null" }
- };
- str DRLA_UniqueFirestormEFfects[EXOTICEFFECTS_MAX][2] =
- {
- // Uniques
- {"RLJackhammer", "RLJackhammerFirestormLearntToken" },
- {"RLRailgun", "RLRailgunFirestormLearntToken" },
- {"RLMysteriousMagnum", "RLMysteriousMagnumFirestormLearntToken" },
- {"RLBFG10K", "RLBFG10KFirestormLearntToken" },
- {"RLUnknownHerald", "RLUnknownHeraldFirestormLearntToken" },
- {"RLFragShotgun", "RLFragShotgunFirestormLearntToken" },
- {"RLQuadShotgun", "RLQuadShotgunFirestormLearntToken" },
- {"RLLightweaver", "RLLightweaverFirestormLearntToken" },
- {"RLTrigun", "RLTrigunFirestormLearntToken" },
- {"RLGrammatonClericBeretta", "RLGrammatonClericBerettaFirestormLearntToken" },
- {"RLAntiFreakJackal", "RLAntiFreakJackalFirestormLearntToken" },
- {"RLHellsingARMSCasull", "RLHellsingARMSCasullFirestormLearntToken" },
- {"RLTantrumCannon", "RLTantrumCannonFirestormLearntToken" },
- {"RLRevenantsLauncher", "RLRevenantsLauncherFirestormLearntToken" },
- {"RLNullPointer", "RLNullPointerFirestormLearntToken" },
- {"RLParticleBeamCannon", "RLParticleBeamCannonFirestormLearntToken" },
- {"RLPlasmaRedirectionCannon", "RLPlasmaRedirectionCannonFirestormLearntToken" },
- {"RLSteelBeast", "RLSteelBeastFirestormLearntToken" },
- {"RLSussGun", "RLSussGunFirestormLearntToken" },
- {"RLMIRVLauncher", "RLMIRVLauncherFirestormLearntToken" },
- {"RLMarathonAssaultRifle", "RLMarathonAssaultRifleFirestormLearntToken" },
- {"RLMarathonShotguns", "RLMarathonShotgunsFirestormLearntToken" },
- {"RLWidowmakerSMG", "RLWidowmakerSMGFirestormLearntToken" },
- {"RLChameleonRifle", "RLChameleonRifleFirestormLearntToken" },
- {"RLNanomachicArmamentGenerator", "RLNanomachicArmamentGeneratorFirestormLearntToken" },
- {"RLNuclearOnslaught", "RLNuclearOnslaughtFirestormLearntToken" },
- // Demonic
- {"RLDeathsGaze", "RLDeathsGazeFirestormLearntToken" },
- {"RLHellsReign", "RLHellsReignFirestormLearntToken" },
- {"RLSoulstormRifle", "RLSoulstormRifleFirestormLearntToken" },
- {"RLUnmaker", "null" },
- // Legendary
- {"RLJudgeOfTheDead", "RLJudgeOfTheDeadFirestormLearntToken" },
- {"RLHurricaneCannon", "RLHurricaneCannonFirestormLearntToken" },
- {"RLNeuralStunner", "RLNeuralStunnerFirestormLearntToken" },
- {"RLBaronBlaster", "RLBaronBlasterFirestormLearntToken" },
- {"RLRealityDistortionArray", "RLRealityDistortionArrayFirestormLearntToken" },
- {"RLBFGInfinity", "RLBFGInfinityFirestormLearntToken" },
- {"RLDuke2Rifle", "RLDuke2RifleFirestormLearntToken" },
- {"null", "null" }
- };
- str DRLA_UniqueNanoEffects[EXOTICEFFECTS_MAX][2] =
- {
- // Uniques
- {"RLJackhammer", "RLJackhammerNanoLearntToken" },
- {"RLRailgun", "RLRailgunNanoLearntToken" },
- {"RLMysteriousMagnum", "RLMysteriousMagnumNanoLearntToken" },
- {"RLBFG10K", "RLBFG10KNanoLearntToken" },
- {"RLUnknownHerald", "RLUnknownHeraldNanoLearntToken" },
- {"RLFragShotgun", "RLFragShotgunNanoLearntToken" },
- {"RLQuadShotgun", "RLQuadShotgunNanoLearntToken" },
- {"RLLightweaver", "RLLightweaverNanoLearntToken" },
- {"RLTrigun", "RLTrigunNanoLearntToken" },
- {"RLGrammatonClericBeretta", "RLGrammatonClericBerettaNanoLearntToken" },
- {"RLAntiFreakJackal", "RLAntiFreakJackalNanoLearntToken" },
- {"RLHellsingARMSCasull", "RLHellsingARMSCasullNanoLearntToken" },
- {"RLTantrumCannon", "RLTantrumCannonNanoLearntToken" },
- {"RLRevenantsLauncher", "RLRevenantsLauncherNanoLearntToken" },
- {"RLNullPointer", "RLNullPointerNanoLearntToken" },
- {"RLParticleBeamCannon", "RLParticleBeamCannonNanoLearntToken" },
- {"RLPlasmaRedirectionCannon", "RLPlasmaRedirectionCannonNanoLearntToken" },
- {"RLSteelBeast", "RLSteelBeastNanoLearntToken" },
- {"RLSussGun", "RLSussGunNanoLearntToken" },
- {"RLMIRVLauncher", "RLMIRVLauncherNanoLearntToken" },
- {"RLMarathonAssaultRifle", "RLMarathonAssaultRifleNanoLearntToken" },
- {"RLMarathonShotguns", "RLMarathonShotgunsNanoLearntToken" },
- {"RLWidowmakerSMG", "RLWidowmakerSMGNanoLearntToken" },
- {"RLChameleonRifle", "RLChameleonRifleNanoLearntToken" },
- {"RLNanomachicArmamentGenerator", "RLNanomachicArmamentGeneratorNanoLearntToken" },
- {"RLNuclearOnslaught", "RLNuclearOnslaughtNanoLearntToken" },
- // Demonic
- {"RLDeathsGaze", "RLDeathsGazeNanoLearntToken" },
- {"RLHellsReign", "RLHellsReignNanoLearntToken" },
- {"RLSoulstormRifle", "RLSoulstormRifleNanoLearntToken" },
- {"RLUnmaker", "null" },
- // Legendary
- {"RLJudgeOfTheDead", "RLJudgeOfTheDeadNanoLearntToken" },
- {"RLHurricaneCannon", "RLHurricaneCannonNanoLearntToken" },
- {"RLNeuralStunner", "RLNeuralStunnerNanoLearntToken" },
- {"RLBaronBlaster", "RLBaronBlasterNanoLearntToken" },
- {"RLRealityDistortionArray", "RLRealityDistortionArrayNanoLearntToken" },
- {"RLBFGInfinity", "RLBFGInfinityNanoLearntToken" },
- {"RLDuke2Rifle", "RLDuke2RifleNanoLearntToken" },
- {"null", "null" }
- };
- SCRIPT "DRLA_AssemblyGlobalizer" ENTER
- {
- int DRLA_AllAssemblies = ASSEMBLY_TIERS * ASSEMBLY_AMOUNT;
- int DRLA_AssemblyOffset;
- DRLA_FetchStoredInfo[PlayerNumber()] = GetUserCVarString(PlayerNumber(),"DRLA_knownassemblies");
- DRLA_FetchSniperInfo[PlayerNumber()] = GetUserCVarString(PlayerNumber(),"DRLA_knownsnipereffects");
- DRLA_FetchFirestormInfo[PlayerNumber()] = GetUserCVarString(PlayerNumber(),"DRLA_knownfirestormeffects");
- DRLA_FetchNanoInfo[PlayerNumber()] = GetUserCVarString(PlayerNumber(),"DRLA_knownnanoeffects");
- // READ --------------------------------------------------
- // ASSEMBLIES ---
- for(int assemblyIndex = 0; assemblyIndex < DRLA_AllAssemblies; assemblyIndex++)
- {
- // Read from the ini and give the player all the assemblies.
- if(StrCmp(DRLA_AssemblyTokens[assemblyIndex],"null") != 0)
- {
- if((GetChar(DRLA_FetchStoredInfo[PlayerNumber()],assemblyIndex) - 48) == 0)
- TakeActorInventory(playerTID[PlayerNumber()], DRLA_AssemblyTokens[assemblyIndex], 1);
- else
- GiveActorInventory(playerTID[PlayerNumber()], DRLA_AssemblyTokens[assemblyIndex], 1);
- }
- // Update old state with what was read from the ini. Any change afterwards will trigger an ini write.
- DRLA_OldAssemblyState[PlayerNumber()][assemblyIndex] = CheckActorInventory(playerTID[PlayerNumber()], DRLA_AssemblyTokens[assemblyIndex]);
- }
- // UNIQUE+ ---
- for(int effectIndex = 0; effectIndex < EXOTICEFFECTS_MAX; effectIndex++)
- {
- // Don't bother with data that's null, like Unmaker exotic effects or missing weapons
- // Sniper
- if( (StrCmp(DRLA_UniqueSniperEffects[effectIndex][1],"null") != 0))
- {
- if((GetChar(DRLA_FetchSniperInfo[PlayerNumber()],effectIndex) - 48) == 0)
- TakeActorInventory(playerTID[PlayerNumber()], DRLA_UniqueSniperEffects[effectIndex][1], 1);
- else
- GiveActorInventory(playerTID[PlayerNumber()], DRLA_UniqueSniperEffects[effectIndex][1], 1);
- }
- DRLA_OldSniperState[PlayerNumber()][effectIndex] = CheckActorInventory(playerTID[PlayerNumber()], DRLA_UniqueSniperEffects[effectIndex][1]);
- // Firestorm
- if((StrCmp(DRLA_UniqueFirestormEffects[effectIndex][1],"null") != 0))
- {
- if((GetChar(DRLA_FetchFirestormInfo[PlayerNumber()],effectIndex) - 48) == 0)
- TakeActorInventory(playerTID[PlayerNumber()], DRLA_UniqueFirestormEffects[effectIndex][1], 1);
- else
- GiveActorInventory(playerTID[PlayerNumber()], DRLA_UniqueFirestormEffects[effectIndex][1], 1);
- }
- DRLA_OldFirestormState[PlayerNumber()][effectIndex] = CheckActorInventory(playerTID[PlayerNumber()], DRLA_UniqueFirestormEffects[effectIndex][1]);
- // Nano
- if( (StrCmp(DRLA_UniqueNanoEffects[effectIndex][1],"null") != 0))
- {
- if((GetChar(DRLA_FetchNanoInfo[PlayerNumber()],effectIndex) - 48) == 0)
- TakeActorInventory(playerTID[PlayerNumber()], DRLA_UniqueNanoEffects[effectIndex][1], 1);
- else
- GiveActorInventory(playerTID[PlayerNumber()], DRLA_UniqueNanoEffects[effectIndex][1], 1);
- }
- DRLA_OldNanoState[PlayerNumber()][effectIndex] = CheckActorInventory(playerTID[PlayerNumber()], DRLA_UniqueNanoEffects[effectIndex][1]);
- }
- // UPDATE --------------------------------------------------
- while(true)
- {
- // Start checking for differences between New and Old states
- // ASSEMBLIES ---
- for(int assemblyIndex2 = 0; assemblyIndex2 < (ASSEMBLY_AMOUNT * ASSEMBLY_TIERS); assemblyIndex2++)
- {
- DRLA_AssemblyState[PlayerNumber()][assemblyIndex2] = CheckActorInventory(playerTID[PlayerNumber()], DRLA_AssemblyTokens[assemblyIndex2]);
- if(DRLA_AssemblyState[PlayerNumber()][assemblyIndex2] != DRLA_OldAssemblyState[PlayerNumber()][assemblyIndex2])
- DRLA_DoWrite = true;
- }
- // UNIQUE+ ---
- for(int effectIndex2 = 0; effectIndex2 < EXOTICEFFECTS_MAX; effectIndex2++)
- {
- DRLA_KnownSniperState[PlayerNumber()][effectIndex2] = CheckActorInventory(playerTID[PlayerNumber()], DRLA_UniqueSniperEffects[effectIndex2][1]);
- DRLA_KnownFirestormState[PlayerNumber()][effectIndex2] = CheckActorInventory(playerTID[PlayerNumber()], DRLA_UniqueFirestormEffects[effectIndex2][1]);
- DRLA_KnownNanoState[PlayerNumber()][effectIndex2] = CheckActorInventory(playerTID[PlayerNumber()], DRLA_UniqueNanoEffects[effectIndex2][1]);
- if( (DRLA_KnownSniperState[PlayerNumber()][effectIndex2] != DRLA_OldSniperState[PlayerNumber()][effectIndex2]) ||
- (DRLA_KnownFirestormState[PlayerNumber()][effectIndex2] != DRLA_OldFirestormState[PlayerNumber()][effectIndex2]) ||
- (DRLA_KnownNanoState[PlayerNumber()][effectIndex2] != DRLA_OldNanoState[PlayerNumber()][effectIndex2]))
- DRLA_DoWrite = true;
- }
- Delay(2);
- // WRITE --------------------------------------------------
- if(DRLA_DoWrite)
- {
- // ASSEMBLIES ---
- DRLA_CurrentAssemblerState[PlayerNumber()] = "";
- for(int i = 0; i < DRLA_AllAssemblies; i++)
- if(StrLen(DRLA_CurrentAssemblerState[PlayerNumber()]) <= DRLA_AllAssemblies)
- DRLA_CurrentAssemblerState[PlayerNumber()] = StrParam(s:DRLA_CurrentAssemblerState[PlayerNumber()],i:DRLA_AssemblyState[PlayerNumber()][i]);
- SetUserCVarString(PlayerNumber(),"DRLA_knownassemblies",DRLA_CurrentAssemblerState[PlayerNumber()]);
- // UNIQUE+ ---
- DRLA_CurrentSniperState[PlayerNumber()] = "";
- DRLA_CurrentFirestormState[PlayerNumber()] = "";
- DRLA_CurrentNanoState[PlayerNumber()] = "";
- for(int i5 = 0; i5 < EXOTICEFFECTS_MAX; i5++)
- {
- if(StrLen(DRLA_CurrentSniperState[PlayerNumber()]) <= EXOTICEFFECTS_MAX)
- DRLA_CurrentSniperState[PlayerNumber()] = StrParam(s:DRLA_CurrentSniperState[PlayerNumber()], i:DRLA_KnownSniperState[PlayerNumber()][i5]);
- if(StrLen(DRLA_CurrentFirestormState[PlayerNumber()]) <= EXOTICEFFECTS_MAX)
- DRLA_CurrentFirestormState[PlayerNumber()] = StrParam(s:DRLA_CurrentFirestormState[PlayerNumber()], i:DRLA_KnownFirestormState[PlayerNumber()][i5]);
- if(StrLen(DRLA_CurrentNanoState[PlayerNumber()]) <= EXOTICEFFECTS_MAX)
- DRLA_CurrentNanoState[PlayerNumber()] = StrParam(s:DRLA_CurrentNanoState[PlayerNumber()], i:DRLA_KnownNanoState[PlayerNumber()][i5]);
- }
- SetUserCVarString(PlayerNumber(),"DRLA_knownsnipereffects", DRLA_CurrentSniperState[PlayerNumber()]);
- SetUserCVarString(PlayerNumber(),"DRLA_knownfirestormeffects", DRLA_CurrentFirestormState[PlayerNumber()]);
- SetUserCVarString(PlayerNumber(),"DRLA_knownnanoeffects", DRLA_CurrentNanoState[PlayerNumber()]);
- // Sanity delay.
- DRLA_DoWrite = false;
- Delay(35*1);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement