Nirn.de

Gast

Thema: Skript zum Kleiderwechsel  (Gelesen 3037 mal)

  • Fremdländer
    • Neuling
Hallo zusammen,
kennt jemand eine Mod oder hat sogar selbst eine erstellt, in der NPCs sich umziehen, wenn sie das Haus verlassen oder ein bestimmtes Package starten? Ich würde mir die entsprechenden Skripte nämlich gerne einmal ansehen. Meine Haushälterin soll sich etwas Wärmeres anziehen, wenn sie zum Holzhacken hinausgeht (nicht dass sie sich noch erkältet ;)), aber ich bin wahrlich kein Papyrus-Meister.
Danke schonmal und liebe Grüße
Sahara
Philosophie ist, wenn man trotzdem denkt!
  27.08.2012, 16:36
  • Offline


  • Graf
    • Adel
Das müsste mit EquipItem gehen.
  27.08.2012, 17:03
  • Offline
  • SCP-Wiki-DE


  • Fremdländer
    • Neuling
Erstmal danke für die Antwort.
Mein Problem ist aber weniger, dass ich nicht weiß, welche Befehle ich verwenden soll, als dass ich mit diesem ganzen Property- und Variablen-Kram nicht zurechtkomme.
Ich hatte mir schon den SetOutfit-Befehl ausgeguckt. (EquipItem hatte ich auch überlegt, aber die Optik des NPC wird ja vom Outfit bestimmt).
Ein erster (sehr naiver) Skript-Entwurf sah folgendermaßen aus:
Klappbox
Scriptname YharairaChangeClothesScript extends ReferenceAlias

if (YharRef.GetCurrentPackage() == YharHolzhacken)
   YharRef.SetOutfit(FineClothesOutfit02)
endif
end

Hat nicht geklappt, was mich aber auch nicht überrascht hat. Eine Fehlermeldung war "Missing EOF", eine andere war "no viable alternative for input" (o.ä.). Bei meinem Licht-An-Aus-Skript wusste ich ja wenigstens noch, womit ich eine Property verbinden musste, aber hier bin ich total überfragt. Ich habe es mit dem package versucht, aber das hat nicht funktioniert.
Deshalb hatte ich gehofft, es gäbe eine Mod mit entsprechendem Skript, dass ich für meinen NPC umschreiben kann.
Trotzdem danke und liebe Grüße
Sahara
« Letzte Änderung: 27.08.2012, 23:02 von Sahara »
Philosophie ist, wenn man trotzdem denkt!
  27.08.2012, 20:11
  • Offline


  • Fremdländer
    • Neuling
So, nachdem ich jetzt ein bisschen herumprobiert und dabei mehrfach vor Wut in meinen Schreibtisch gebissen habe, habe ich tatsächlich zwei Skripte zustande gebracht, die KEINE Fehlermeldung auslösten und zwar dieses
Klappbox
Scriptname YharChangeOutfitScript extends Form

Outfit Property Outfit02Prop  Auto
Package Property YharHHProp Auto
Actor Property YharProp Auto

Event OnPackageStart(Package YharHHProp)
   YharProp.setoutfit (Outfit02Prop)
endevent
und dieses
Klappbox
Scriptname YharChangeOutfitBackScript extends Form 

Outfit Property Outfit01Prop  Auto
Package Property YharHHProp Auto
Actor Property YharProp Auto

Event OnPackageEnd(Package YharHHProp)
   YharProp.setoutfit (Outfit01Prop)
endevent
Die Skripte habe ich dem NPC zugewiesen, die Property-Values sind logischweise die NPC-Ref, die Outfits und das Package. Leider haben die Skripte nur zur Folge, dass der NPC sich ständig umzieht und zwar nach jedem Lade- bzw. Wartevorgang, aber nicht abhängig vom Package. Liegt vermutlich daran, dass ja vor dem Package auch nach dem Package ist (haha). Also habe ich es mit diesem Skript versucht:
Klappbox
Scriptname YharUmZiehScript extends Form 

Outfit Property Outfit02Prop  Auto
Outfit Property Outfit01Prop  Auto
Package Property YharHHProp Auto
Actor Property YharProp Auto

If (DaggerYharProp.GetCurrentPackage() == YharHHProp)
   DaggerYharProp.setoutfit (FineClothesOutfit02Prop)
Else
   DaggerYharProp.setoutfit (BarClothes02Prop)
endIf
end
Das löst die Fehler-Meldung "missing EOF at 'If'" beim compile-Vorgang aus

Also habe ich eine Zeile (blau) hinzugefügt
Klappbox
Scriptname DaggerYharUmZiehScript extends Form 

Outfit Property FineClothesOutfit02Prop  Auto
Outfit Property BarClothes02Prop  Auto
Package Property YharHHProp Auto
Actor Property DaggerYharProp Auto
Package Function GetCurrentPackage() native

If (DaggerYharProp.GetCurrentPackage() == YharHHProp)
   DaggerYharProp.setoutfit (FineClothesOutfit02Prop)
Else
   DaggerYharProp.setoutfit (BarClothes02Prop)
endIf
end
Dann heißt es beim Kompilieren "no viable alternative at input 'If'"
Sorry, dass es jetzt soviel zu lesen ist, aber ich hoffe, dass es durch die Klappboxen halbwegs durchschaubar bleibt und jemand eine Idee hat, was ich falsch mache.
LG
Sahara
Philosophie ist, wenn man trotzdem denkt!
  29.08.2012, 15:00
  • Offline