Nachdem ich heute eines meiner - einfacheren - Skripte ins CK Wiki rein gestellt habe (um zu sehen wie das mit der Wiki Software so funzt) habe ich mich dazu entschlossen dass doch besser in den Foren zu tun, wo ich mich sonst so herumtreibe.

Vielleicht hilft es ja jemandem weiter?

Ein einfaches Uhrzeitskript, dass über einen Magic Effekt aufgerufen werden kann.

Ein Lichtaktivator der automatisch die Innenbeleuchtung von Tag auf Nacht umschalten kann.

Ein einfaches Sortierskript. Ich habe dabei bewusst auf eine Formlist verzichtet, da man hiermit mehr Kontrolle über den Sortiervorgang hat.

Ein Transportabler Beutel. Dafür ist es allerdings notwendig, den in Skyrim vorhandenen statischen Beutelmesh - Clutter\Container\Pouch01.nif in eine Bookmesh oder ähnliches Misc Object hinein zu operieren.


Ein einfaches Uhrzeitskript, dass über einen Magic Effekt aufgerufen werden kann.

ScriptName NNWUhrzeitScript Extends ActiveMagicEffect Message Property NNWZeitAnzeigen Auto GlobalVariable Property GameHour Auto Float Function ZeigeZeit() Float Time = GameHour.GetValue() Int Std = Math.Floor(Time) ;Entfernt die Nachkommastelle der Float Variable um diese als Integer nutzen zu könen Time = Time - Std Time = ((Time / 5)*3) Time = Time + Std Return Time EndFunction Event OnEffectStart(Actor akTarget,Actor akCaster) NNWZeitAnzeigen.Show(ZeigeZeit()) EndEvent

zum Seitenanfang


Ein Lichtaktivator der automatisch die Innenbeleuchtung von Tag auf Nacht umschalten kann.

Scriptname NNWTagesLichtSkript extends ObjectReference GlobalVariable Property GameHour Auto Bool Property NNWweiter Auto Int Property Intervall = 60 Auto Keyword Property NNWTagesLichtQuelle Auto Keyword Property NNWLampenReferenz Auto ObjectReference Property TagesLicht Auto Hidden ObjectReference Property Lampe Auto Hidden Event OnInit() RegisterForSingleUpdate(10) TagesLicht = GetLinkedRef(NNWTagesLichtQuelle) Lampe = GetLinkedRef(NNWLampenReferenz) EndEvent Event OnUpdate() Float Zeit = GameHour.GetValue() Bool weiter = NNWweiter If(Zeit > 19 || Zeit < 7) Disable() TagesLicht.Disable(True) Lampe.Enable(True) Else EnableNoWait() TagesLicht.Enable() Lampe.Disable(True) EndIf If weiter RegisterForUpdate(Intervall) ;Debug.Trace("Ich werde alle " + Intervall + "Sekunden aufgerufen") ;Debug.Trace("Die Variable weiter enthaelt" + weiter) Else UnregisterForUpdate() ;Debug.Trace("Skript wird gestoppt") EndIf EndEvent

zum Seitenanfang


Ein einfaches Sortierskript. Ich habe dabei bewusst auf eine Formlist verzichtet, da man hiermit mehr Kontrolle über den Sortiervorgang hat.

ScriptName NNWMaterialSortierSkript Extends ObjectReference Import Utility Keyword Property NNWErz Auto Keyword Property NNWBarren Auto Keyword Property NNWMaterial Auto ObjectReference Property ErzKiste Auto Hidden ObjectReference Property BarrenKiste Auto Hidden ObjectReference Property MaterialKiste Auto Hidden MiscObject[] Property MaterialListe Auto Actor Property PlayerRef Auto Int Menge = 0 Function MaterialEinlagern() ErzKiste = GetLinkedRef(NNWErz) BarrenKiste = GetLinkedRef(NNWBarren) MaterialKiste = GetLinkedRef(NNWMaterial) Menge = PlayerRef.GetItemCount(MaterialListe[0]) If(Menge >0) ErzKiste.Additem(MaterialListe[0], Menge) PlayerRef.RemoveItem(MaterialListe[0], Menge) endIf Menge = PlayerRef.GetItemCount(MaterialListe[1]) If(Menge > 0) ErzKiste.Additem(MaterialListe[1], Menge) PlayerRef.RemoveItem(MaterialListe[1], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[2]) If(Menge > 0) ErzKiste.Additem(MaterialListe[2], Menge) PlayerRef.RemoveItem(MaterialListe[2], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[3]) If(Menge > 0) ErzKiste.Additem(MaterialListe[3], Menge) PlayerRef.RemoveItem(MaterialListe[3], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[4]) If(Menge > 0) ErzKiste.Additem(MaterialListe[4], Menge) PlayerRef.RemoveItem(MaterialListe[4], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[5]) If(Menge > 0) ErzKiste.Additem(MaterialListe[5], Menge) PlayerRef.RemoveItem(MaterialListe[5], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[6]) If(Menge > 0) ErzKiste.Additem(MaterialListe[6], Menge) PlayerRef.RemoveItem(MaterialListe[6], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[7]) If(Menge > 0) ErzKiste.Additem(MaterialListe[7], Menge) PlayerRef.RemoveItem(MaterialListe[7], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[8]) If(Menge > 0) ErzKiste.Additem(MaterialListe[8], Menge) PlayerRef.RemoveItem(MaterialListe[8], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[9]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[9], Menge) PlayerRef.RemoveItem(MaterialListe[9], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[10]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[10], Menge) PlayerRef.RemoveItem(MaterialListe[10], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[11]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[11], Menge) PlayerRef.RemoveItem(MaterialListe[11], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[12]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[12], Menge) PlayerRef.RemoveItem(MaterialListe[12], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[13]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[13], Menge) PlayerRef.RemoveItem(MaterialListe[13], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[14]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[14], Menge) PlayerRef.RemoveItem(MaterialListe[14], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[14]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[14], Menge) PlayerRef.RemoveItem(MaterialListe[14], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[15]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[15], Menge) PlayerRef.RemoveItem(MaterialListe[15], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[16]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[16], Menge) PlayerRef.RemoveItem(MaterialListe[16], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[17]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[17], Menge) PlayerRef.RemoveItem(MaterialListe[17], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[18]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[18], Menge) PlayerRef.RemoveItem(MaterialListe[18], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[19]) If(Menge > 0) BarrenKiste.Additem(MaterialListe[19], Menge) PlayerRef.RemoveItem(MaterialListe[19], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[20]) If(Menge > 0) MaterialKiste.Additem(MaterialListe[20], Menge) PlayerRef.RemoveItem(MaterialListe[20], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[21]) If(Menge > 0) MaterialKiste.Additem(MaterialListe[21], Menge) PlayerRef.RemoveItem(MaterialListe[21], Menge) EndIf Menge = PlayerRef.GetItemCount(MaterialListe[22]) If(Menge > 0) MaterialKiste.Additem(MaterialListe[22], Menge) PlayerRef.RemoveItem(MaterialListe[22], Menge) EndIf EndFunction Event OnActivate(ObjectReference akActionRef) MaterialEinlagern() EndEvent

zum Seitenanfang


Ein Transportabler Beutel. Dafür ist es allerdings notwendig, den in Skyrim vorhandenen statischen Beutelmesh - Clutter\Container\Pouch01.nif in eine Bookmesh oder ähnliches Misc Object hinein zu operieren.

ScriptName NNWBeutelSkript extends ObjectReference ObjectReference Property NNWStatischeTruhe Auto MiscObject Property NNWBeutel Auto Sound Property KlapperKlapper Auto Message Property NNWTascheNachricht Auto ObjectReference Ich Actor Property PlayerRef Auto Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer) If(akOldContainer && !akNewContainer) Ich = (Self as ObjectReference) Ich.BlockActivation() ElseIf(akNewContainer == NNWStatischeTruhe) NNWTascheNachricht.Show() Utility.Wait(1) NNWStatischeTruhe.RemoveItem(NNWBeutel, 1, False) PlayerRef.AddItem(NNWBeutel, 1) EndIf EndEvent Event OnEquipped(Actor akActor) If(akActor == PlayerRef) Utility.Wait(1) KlapperKlapper.Play(PlayerRef) NNWStatischeTruhe.Activate(PlayerRef) EndIf EndEvent Event OnActivate(ObjectReference akActionRef) If(akActionRef == PlayerRef) If(PlayerRef.IsSneaking()) KlapperKlapper.Play(PlayerRef) NNWStatischeTruhe.Activate(PlayerRef) Else Ich.Activate(akActionRef, True) EndIf EndIf EndEvent

zum Seitenanfang