Basically Cloth, Light, Medium, Heavy, Power, and Science type armors.
This is done by adding all armors in the game to one of these 6 Formlists, then setting the Formlists as Conditions in the various perk/abilites.
But thats not compatible with the OTHER Armor mods out there, and i want to change that.
So my thought is this, if the player is wearing an armor from the game it activates or shuts off by FormList, BUT if the armor is not in any of the formlists it goes simply by DT.
So i needed NVSE for the DT since the GECK has no functions that checks for DT on its own.
Here is the script for the Light Armors.:
scn exoLightArmorSCRIPTref exoVariableCBegin GameModeset exoVariableC to Player.GetEquippedObject 2 if (( Player.GetEquipped exoPerkLightArmor == 1 ) || (( exoVariableC.GetArmorDT >= 9 ) && ( exoVariableC.GetArmorDT <= 19 ))) && (( Player.GetEquipped exoPerkClothArmor == 0 ) && ( Player.GetEquipped exoPerkMediumArmor == 0 ) && ( Player.GetEquipped exoPerkHeavyArmor == 0 ) && ( Player.GetEquipped exoPerkPowerArmor == 0 ) && ( Player.GetEquipped exoPerkScienceArmor2 == 0 )) Player.AddPerk exoLightArmorINVIS1endifif ( Player.GetEquipped exoPerkLightArmor == 0 ) && (( exoVariableC.GetArmorDT < 9 ) || ( exoVariableC.GetArmorDT > 19 ) || ( Player.GetEquipped exoPerkClothArmor == 1 ) || ( Player.GetEquipped exoPerkMediumArmor == 1 ) || ( Player.GetEquipped exoPerkHeavyArmor == 1 ) || ( Player.GetEquipped exoPerkPowerArmor == 1 ) || ( Player.GetEquipped exoPerkScienceArmor2 == 1 )) Player.RemovePerk exoLightArmorINVIS1endifend
What happens is it still only works on armors that is in the game, any armor from the outside will REMOVE the perk, no matter their DT
So I tried adding some elseif statements instead to make it cleaner.
scn exoLightArmorSCRIPTref exoVariableCBegin GameModeset exoVariableC to Player.GetEquippedObject 2 if ( Player.GetEquipped exoPerkLightArmor == 1 ) && (( Player.GetEquipped exoPerkClothArmor == 0 ) && ( Player.GetEquipped exoPerkMediumArmor == 0 ) && ( Player.GetEquipped exoPerkHeavyArmor == 0 ) && ( Player.GetEquipped exoPerkPowerArmor == 0 ) && ( Player.GetEquipped exoPerkScienceArmor2 == 0 )) Player.AddPerk exoLightArmorINVIS1 elseif exoVariableC.GetArmorDT >= 9 && exoVariableC.GetArmorDT <= 19 Player.AddPerk exoLightArmorINVIS1endifif ( Player.GetEquipped exoPerkLightArmor == 0 ) && (( Player.GetEquipped exoPerkClothArmor == 1 ) || ( Player.GetEquipped exoPerkMediumArmor == 1 ) || ( Player.GetEquipped exoPerkHeavyArmor == 1 ) || ( Player.GetEquipped exoPerkPowerArmor == 1 ) || ( Player.GetEquipped exoPerkScienceArmor2 == 1 )) Player.RemovePerk exoLightArmorINVIS1 elseif exoVariableC.GetArmorDT < 9 || exoVariableC.GetArmorDT > 19 Player.RemovePerk exoLightArmorINVIS1endifend
But this wont even save.
Im sure im missing something obvious, but I cant see it.
-Exo