Skriptthread zum Creation Kit

Hallo ich habe einen Zauber erstellt. Nun habe ich das Problem das wenn er ausgeführt wurde (klappt alles) das alle meine Waffen aus dem Inventar verschwinden. Auch wenn der Zauber vorbei ist kommen sie nicht wieder.

Hat jemand eine Idee warum das so ist und wie ich es lösen kann?

PHP:
scriptName Dark extends activemagiceffect

;-- Properties --------------------------------------
activator property PlacedActivator auto
Armor property Armor1 auto
Scene property RiseScene auto
Idle property IdleWerewolfTransformation auto
Idle property IdleStopLoose auto
Idle property IdlePlayer auto
Armor property Shield auto
Spell property Swordspell auto

;-- Variables ---------------------------------------
bool KeepUpdating = true
objectReference ActivatorRef
form TargetActor

;-- Functions ---------------------------------------

function OnEffectFinish(Actor Target, Actor Caster)

    Caster.removeitem(Armor1)
    Caster.removeitem(Shield)
    Caster.removespell(Swordspell)

endFunction

function OnEffectStart(Actor Target, Actor Caster)
 

    if Target.GetActorBase().GetSex() == 0
        Target.PlayIdle(IdleWerewolfTransformation)
        utility.wait(4 as float)
        Caster.additem(Armor1)
        Caster.equipItem(Armor1)
        Caster.additem(Shield)
        Caster.equipItem(Shield)
        Caster.addspell (Swordspell)
        Target.PlayIdle(IdleStopLoose)
    endIf
    if Target.GetActorBase().GetSex() == 1
        Target.PlayIdle(IdleWerewolfTransformation)
        utility.wait(4 as float)
        Caster.additem(Armor1)
        Caster.equipItem(Armor1)
        Caster.additem(Shield)
        Caster.equipItem(Shield)
        Caster.addspell (Swordspell)
        Target.PlayIdle(IdleStopLoose)
    endIf
endFunction
 
Zuletzt bearbeitet:
Ich meine die ganze Zeit, dass es sowas eigentlich geben müsste und ich das auch schon irgendwo gesehen habe im CKWiki, aber ich finde es einfach nicht mehr oder ich habe mich doch geirrt.
Ich suche eine Funktion, die mir das Objekt liefert, welches der Spieler gerade ansieht. Also das Objekt, von dem gerade die Informationen im HUD angezeigt werden und der Spieler mit dem Fadenkreuz draufzeigt.
 
Ah danke, genau was ich gesucht habe. Muss ich wohl die ganze Zeit überlesen haben, als ich in der Kategorie nachgeschaut habe. :D
 
Zuletzt bearbeitet:
Ich habe eine kleine Frage zu dem Befehl "resurrect": Wirkt der Befehl auch, wenn die Leiche des NPC's schon seit längerer Zeit verschwunden ist und wenn nein, wie kann ich einen solchen NPC per Script wiederbeleben?
 
Vielleicht hilft dir dieser LINK und dieses Zitat weiter;

Um einen verlorengegangenen Begleiter zu finden lade einfach einen alten Spielstand, öffne die Konsole und markiere die jeweilige Person mit der Maus.

Die ID des Begleiters wird nun angezeigt. Merke dir diese ID und lade nun den aktuellsten Spielstand.

Gebe prid Begleiter-Id in die Konsole ein. Der Charakter mit der spezifischen ID wird markiert.

Als letztes moveto player in die Konsole eingeben und ihr werdet zu eurem Begleiter teleportiert.

PS: Sollte der NPC nach seiner Wiederbelebung nur dämlich in der Gegend rumstehen einfach

disable
enable


in die Konsole eingeben. Dadurch wird die NPC-Routine resetted. (Kann manchmal 24 Stunden dauern bis der NPC seine Routine wieder aufnimmt)

Gruß
 
  • Like
Reaktionen: bjoernret
Die Konsole hilft mir leider nicht, da ich den Befehl in ein Script einbauen will. Den Befehl "prid" finde ich leider nicht unter den Script-Befehlen.
 
Mh, leider nicht. Mir geht es nicht um einen Begleiter, sondern um einen Non-Essential-Vanilla-NPC. Ich spiele gerade mit dem CK rum und probiere verschiedene Sachen aus, um mich mit ihm vertraut zu machen. Wenn sich eine Quest auf einen Non-Essential-Vanilla-NPC bezieht wäre es ja blöd, wenn dieser NPC tot wäre, denn dann könnte man die Mod ja nicht spielen. Um dieses Problem zu lösen hab ich ein Script geschrieben, dass beim ersten Start den entsprechenden NPC auf Essential stellt. Nun kann es aber auch vorkommen, dass der entsprechende NPC schon längere Zeit tot ist und die Leiche schon "aufgeräumt" wurde. Nun möchte ich per Script diesen leichenlosen NPC wiederbeleben/wieder ins Spiel bringen, damit der Spieler die Mod trotzdem spielen kann. Daher meine Frage.

(Irgendwie ist das schwer zu beschreiben, selbst mir kommt mein Text etwas wirr vor :blink: )
 
Hallo, hab ein kleines Problem.

Ist eigentlich ganz simpel, einem Actor ein Package entfernen und dafür ein anderes hinzufügen. Leider habe ich noch nicht den richtigen Befehl oder die richtige Möglichkeit gefunden.
Das Einzige wäre "RemoveScriptPackage", aber der Befehl scheint der falsche zu sein (Kann mich irren).
 
Ich habe ein kleines Problem. Zwei besser gesagt:

Screenshots

Die Fehlermeldung im ersten Screenshot tritt auf, sobald ich auf Properties gehe.
Wenn ich dann auf "OK" im Error Fenster klicke kann ich scheinbar ganz normal meine Properties zum Script hinzufügen.
Die Fehlermeldung im zweiten Screenshot tritt auf, sobald ich ein Savegame fertig geladen habe, sobald ich auf "OK" geklickt habe, ist mein Widget ohne Probleme zu sehen.
Aber das kann ja so nicht richtig sein, dass da 'ne Fehlermeldung kommt.

Das dazu gehörige Script sieht folgendermaßen aus (es lässt sich ohne Fehlermeldung kompilieren):

Code:
Scriptname AttributeIconWidgetScript extends SKI_WidgetBase

string function GetWidgetSource()
 return "AIW/attribute_icon_widget.swf"
endFunction

string function GetWidgetType()
 return "AttributeIconWidgetScript"
endFunction

event OnWidgetReset()
 parent.OnWidgetReset()
endEvent

Ich hoffe, jemand kann mir bei diesen Problemen helfen.

Edit: Beide Probleme haben sich gelöst. Lösung zum ersten: Die kompilierten Scripte von SkyUI haben gefehlt. Lösung zum zweiten: Ich musste die Property "RequireExtend" auf false setzen.
 
Zuletzt bearbeitet:
Per Script den Actor Name ändern

Hi, ich benötige ein Script, dass den im Spiel angezeigten Namen eines Actors, wenn dieser von einem speziellen Zauberspruch getroffen wird, speichern soll.
Danach soll dieser Name dann einem anderen Actor zugewiesen werden. Weiß jemand von euch, wie man das anstellt?
mfg, TripleBlade
 
Genau da liegt mein Problem. Ich bin beim Scripten mit dem Creation Kit und SKSE ein ziemlicher Neuling.
Geht das in etwa so? Das Problem ist auch, dass ich einem zweiten NPC den Namen des ersten geben will.
Code:
Scriptname Renamertest extends ActiveMagicEffect

actorbase PROPERTY thebaseactor AUTO

thebaseactor =  akTarget.GetActorBase()
thebaseactor.GetBaseObject.SetName("Bob")
Also, in der Wiki heißt es ja, dass es mit einem Actor nicht geht, dafür aber mit einem BaseActor. Trotzdem gibt das Creation Kit mir beim kompilieren aus, dass SetName nicht existiert:
Code:
(32,14): SetName is not a function or does not exist
Was mache ich falsch?
 
Zuletzt bearbeitet:
Am besten fängst du mit ein paar Tutorials fürs Scripten an. Hier wird der Aufbau beschrieben. ;)

Was dein Script angeht:

Code:
[COLOR=#111111]Scriptname Renamertest extends ActiveMagicEffect
[/COLOR]
ActorBase Property name auto
ActorBase Property NPC auto

Event OnEffectStart(Actor akTarget, Actor akCaster)
name = akTarget.GetBaseObject().GetName()
akTarget.GetBaseObject().SetName("Neuer Name")
NPC.SetName(name)
EndEvent

Ich weiß nicht, ob das so richtig ist und funktioniert. Was das Scripten angeht, bin ich noch am lernen, aber es sollte als Basis dienen.
 
  • Like
Reaktionen: TripleBlade