Am I going to have to write a huge if statement that checks to see if every helmet in the game is equipped? This leaves modded armor out which isn't good. I know I can do it with SKSE using the slot masks, but I don't really want to use SKSE.
Bool bGrabHelmetBool bSleepingForm kLeftHandWeaponForm kRightHandWeaponForm kHelmetActor Property PlayerREF AutoEvent SomeEvent() ... If bSleeping kRightHandWeapon = Game.GetPlayer().GetEquippedWeapon() ; Right Hand Weapon If kRightHandWeapon PlayerREF.UnequipItem(kRightHandWeapon, False, True) EndIf kLeftHandWeapon = Game.GetPlayer().GetEquippedWeapon(True) ; Left Hand Weapon If kRightHandWeapon PlayerREF.UnequipItem(kLeftHandWeapon, False, True) EndIf bGrabHemlet = True PlayerREF.EquipItem(InvisiHelmARMO, False, True) Else PlayerREF.RemoveItem(InvisiHelmARMO, 1, True) If kRightHandWeapon PlayerREF.EquipItem(kRightHandWeapon, False, True) EndIf If kLeftHandWeapon PlayerREF.EquipItem(kLeftHandWeapon, False, True) EndIf If kHelmet PlayerREF.EquipItem(kHelmet, False, True) EndIf EndIf ...EndEventEvent OnObjectUnequipped(Form akBaseObject, ObjectReference akReference) If bGrabHemlet bGrabHemlet = False kHelmet = akBaseObject EndIfEndEvent
Armor Helmet = PlayerRef.GetWornForm(2) as ArmorPlayerRef.UnequipItem(Helmet)
With all that stuff set up on a player alias though, it ought to work out well (at least that's how I'd go about it).