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
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
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
-- Ich kam, sah, und konnte meinen Augen nicht trauen
Foren-Regeln