Mäh, keine Lust mehr.
Hier eine Eigenschaft-Verteil-Quest aus einem meiner Mods:

Code:
scn LPUSfEQuDistributionScript

;Global: short LPUSfEGlbEnableNPC						; set LPUSfEGlbEnableNPC to 0 if you want to deactivate the NPC-component of this Plugin
;Global: float LPUSfEGlfVersion							; Version of "Unarmored Skill for Everyone"
long lCount
long lNumber
float fQuestDelayTime
ref rCell
ref rNPC
ref rScript

Begin Gamemode
	set rScript to LPUSfEQuDistributionScript
;------------------------------------------------------------------------
; Conditions
;------------------------------------------------------------------------
	if ( LPUSfEGlfVersion == 0 ) || ( LPUSfEGlbEnableNPC == 0 ) || ( LPUSfEQuInitialization.iShutDown )
		Return
	endif
	if ( rCell != ( Player.GetParentCell ) )
		set rCell to ( Player.GetParentCell )
		set lNumber to -1
	endif
	if ( lNumber != ( GetNumRefs 35 1 ) )
		set lNumber to ( GetNumRefs 35 1 )
		set lCount to 0
		While ( lCount < lNumber )
			if ( lCount )
				set rNPC to ( GetNextRef )
			else
				set rNPC to ( GetFirstRef 35 1 )
			endif
			let lCount += 1
			if ( rNPC.GetDead )
				PrintD ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " " + ( rNPC.GetName ) + " (" + ( rNPC.GetFormIDString ) + ") is dead.%r" + ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " NPC " + ( ToString lCount ) + " / " + ( ToString lNumber )
			elseif ( rNPC.GetIsReference Player )
				PrintD ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " " + ( rNPC.GetName ) + " (" + ( rNPC.GetFormIDString ) + ") is the Player.%r" + ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " NPC " + ( ToString lCount ) + " / " + ( ToString lNumber )
			elseif ( rNPC.HasSpell LPUSfEAbMain )
				PrintD ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " " + ( rNPC.GetName ) + " (" + ( rNPC.GetFormIDString ) + ") already has the Unarmored Skill.%r" + ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " NPC " + ( ToString lCount ) + " / " + ( ToString lNumber )
			else
				rNPC.AddSpell LPUSfEAbMain
				PrintD ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " Added Unarmored Skill to " + ( rNPC.GetName ) + " (" + ( rNPC.GetFormIDString ) + ").%r" + ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " NPC " + ( ToString lCount ) + " / " + ( ToString lNumber )
			endif
		Loop
		PrintD ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " Cell " + ( GetName rCell ) + " (" + ( GetFormIDString rCell ) + ": %q" + ( GetEditorID rCell ) + "%q) tested.%r" + ( ASCIIToChar 2 ) + "LPUSfE (" + ( GetFormIDString rScript ) + "):" + ( ASCIIToChar 3 ) + " NPCs: " + ( ToString lNumber )
	endif
End

Begin Menumode
;------------------------------------------------------------------------
; Conditions
;------------------------------------------------------------------------
	if ( LPUSfEGlfVersion == 0 ) || ( LPUSfEGlbEnableNPC == 0 ) || ( LPUSfEQuInitialization.iShutDown )
		Return
	endif
	if ( IsPlayerMovingIntoNewSpace ) || ( rCell != ( Player.GetParentCell ) )
		set rCell to ( Player.GetParentCell )
		set lNumber to -1
	endif
End

Der Effekt der Eigenschaft wäre dann folgender:
Code:
scn aaarmorbrokenc

short next
short EquipDelay
long objecthealth
Begin ScriptEffectUpdate
	if ( GetEquipped aamodiamelion ) && ( next == 0 )
		if ( ( getEquippedCurrentHealth 2 ) / ( getObjectHealth aamodiamelion ) >= 0 ) && ( ( getEquippedCurrentHealth 2 ) / ( getObjectHealth aamodiamelion ) <= 0.75 )
			message "Rüstung ist beschädigt!"
			set next to 1
			set objecthealth to ( getEquppedCurrentHealth 2 )
			addItem aamodiamelionbroken 1
			set EquipDelay to 1
		endif
	elseif next == 1
		if EquipDelay >= 1
			set EquipDelay to EquipDelay - 1
		elseif EquipDelay == 0
			set next to 0
			UnEquipItem aamodiamelion
			EquipItem aamodiamelionbroken
			setEquippedCurrentHealth objecthealth 2
			RemoveItem aamodiamelion 1
		endif
	endif
end