If you want to play some code once when a piece of armour is equipped, it'd be easiest to use a scripted object effect with a condition of "target http://geck.gamesas.com/index.php/IsSneaking != 0". That way, the script just needs to be this:
Begin ScriptEffectStart player PlaySound CloakEnd
The same concept applies for running code when armour is equipped or unequipped to change the player's scale:
Begin ScriptEffectStart SetScale 1.2EndBegin ScriptEffectFinish SetScale 1End
If you want to use a http://geck.gamesas.com/index.php/GameMode block in an object script though, it would be more efficient to use a structure like this:
int bSneakingBegin GameMode if player.IsSneaking != bSneaking set bSneaking to player.IsSneaking if bSneaking PlaySound Cloak endif endifEnd
If the item can be in an inventory without being equipped by the player, you'll need extra checks for that as well.
Cipscis