Problem (SSE) Hilfe für Script benötigt

E

Ehemaliger Benutzer 10376

Gast
Hallo,
Scripte sind für mich ja wie Chinesisch. Ich lese Zeichen, aber verststehe nichts.
Nun habe ich folgendes Problem, von dem ich vermute, dass es sich nur über ein kleines Script lösen lässt:

Mein NPC hat als Begleiter einen Chaurus-Flieger (gemacht mit Package "Follow")
Funktioniert auch hervorrangend, auch wenn der NPC mein Begleiter geworden ist.
Nur, wenn der NPC mir durch ein Portal folgt (konkret hier: von Welt Mountain King nach Welt Chanterelle oder nach Welt Skyrim), dann wird der Chaurus irgendwohin an den äußersten Rand der zum Portal entgegengesetzten Seite in Mountain King verfachtet und ist dann eingeforen.

Nun habe ich ausprobiert, ob sich das mit NPC Lookup Move to Player heben lässt, und das klappt auch. D.h. diese Abfolge geht also grundsätzlich: NPC folgt mir durchs Portal, Chaurus folgt dem NPC nicht. Ich aktiviere mit NPC Lookup Move to Player für den Chaurus (das ist wohl Chaurus Ref ID XX - prid XX - moveto player), und dann ist er da und folgt in Chanterelle auch dem NPC überall hin, bis zum nächsten Portal (nach Skyrim).

Mein Gedanke ist, dass per Script das Chaurus Ref ID XX - prid XX - moveto player immer dann für den aktiviert wird, wenn dessen Master, also mein NPC-Begleiter, durch ein Portal geht (also mir folgend in eine andere Welt).

Aber dazu reichen meine Kenntnisse nicht aus, oder gäbe es eine andere Lösung ohne Script?
Screenshot (597).jpg
 
Zuletzt bearbeitet von einem Moderator:
Um das Teleportieren mit MoveTo zu automatisieren brauchst du ein Skript. Dieses kannst du zum Beispiel direkt dem Chaurus zuweisen. Das Skript führt Aktionen aus, sobald ein bestimmtes Event (oder Ereignis) ausgelöst wird. In deinem Fall ist es das Event OnCellDetach. Dieses Event feuert, wenn der Spieler die Celle verlässt, in der sich die betreffende Spielfigur, also der Chaurus, befindet.

Das Skript könnte zum Beispiel so aussehen:

Code:
Scriptname ChaurusBegleiterSkript extends Actor

Event OnCellDetach()
; teleportiere Chaurus zum Spieler ("Game.GetPlayer()"):

    MoveTo(Game.GetPlayer())

EndEvent

Um die Performance des Skripts zu verbessern, ersetze Game.GetPlayer() durch eine Actor Property. Bitte denke daran, diese Property im Editor auch zu füllen. Das Zuweisen von Skripten sowie Anlegen und Füllen von Properties wird hier erklärt.

Das Skript mit Actor Property:

Code:
Scriptname ChaurusBegleiterSkript extends Actor

Actor Property PlayerRef Auto

Event OnCellDetach()
    MoveTo(PlayerRef)
EndEvent

Tipp: das Füllen der Property kannst du durch Klicken auf den "Auto-Fill All"-Button abkürzen (wenn der Name der Property mit der EditorID des zugewiesenen Objekts übereinstimmt)


Als Nächstes grenzen wir die Bedingungen ein, wann der Moveto-Befehl ausgelöst wird, also zum Beispiel nur dann, wenn sich die Spielfigur in einer bestimmten Fraktion (Faction im CK) befindet. Bei normalen Begleitern wäre das das die Current Follower Faction (EditorID: CurrentFollowerFaction). Aber da der Chaurus nicht dein Begleiter ist, sondern der Begleiter von deinem Begleiter, müssen wir uns etwas anderes einfallen lassen. Vielleicht über das Follower Package des Chaurus, genauer gesagt über das verwendete Package Template*.

* das verwendete Template wird beim Package in der Dropdown-Liste neben dem Punkt "Package Template" angezeigt.

Beispielskript mit Package Template:

Code:
Scriptname ChaurusBegleiterSkript extends Actor


Actor Property PlayerRef Auto
Package Property FollowPackage Auto
; bitte weise der Package Property das verwendete Package Template zu (also nicht das originale Package des Chaurus)


Event OnCellDetach()
   Package CurrentPackage = GetCurrentPackage() ; das aktuelle Package
   If CurrentPackage.GetTemplate() == FollowPackage ; die Bedingung ist erfüllt, wenn das Template des aktuellen Packages mit dem Template des Chaurus-Follow-Packages übereinstimmt
       MoveTo(PlayerRef)
   Endif
EndEvent
 
Zuletzt bearbeitet:
danke erstmal, ist viel Neuland.
Die jetzige Konstruktion ist so:
Blondie hat eigene ESP und als extra-Factions: Player, Potential Follower, Potential Marriage,
und als Relationship nur Friend to Player und ALLY to Flieger 1
"Flieger 1" (der Chaurus) hat eigene ESP und als extra-Factions: Player, Potential Animal, Potential Follower, und als Relationship nur ALLY to Blondie

Dadurch kann ich Blondie einfach zu einem normalen Follower machen.
Flieger 1 wiederum hat nur das eine Paket "aaCHChaurusFliegerFOLLOW7"
=> Target to Follow = Blondie (ansonsten ist es das Vanilla Paket "Follow", ohne Accompany)

Das ist derzeitig alles. Funktioniert so, dass Flieger immer in der Nähe von Blondie ist und ihr bei Angriffen hilft, aber nicht bei der Jagd. Blondie, so lange nicht als Begleiter angeworben, läuft frei um, hat ihre Aufgaben, etc., nichts, das in Relation zum Spieler ist.

Wird sie nun als Begleiter angeworben, folgt Flieger 1 ihr immer noch (und ist gegenüber Spieler friedlich, da selbe Fraktion). In der Welt Mountain King klappt das auch alles ohne erkennbare Probleme, auch bei Schnellreise, wenn Blondie Begleiter ist, ist Flieger 1 auch immer da und folgt weiter. Nur halt bei Portalen nicht.

So weit ich mich einlesen konnte, wäre bei Konsole erst das prid XX notwendig, dann das moveto (aber eben nicht to player sondern to Blondie)

Die Abfrage müsste dann quasi endlos laufen und nur aktv werden (Aktion auslösen), wenn Flieger 1 Blondie nicht mehr "sieht", also die Paketbedingung von max Floating im Paket Follow nicht mehr gilt, sei es, weil Blodie weiter weg ist, als das Entfernungslimit lt. Paket Follow, oder eben weil sie durch ein Portal durch ist. In dem Fall müsste dann Flieger 1 zu Blondie teleportieren (egal, in welcher Welt sie sich befindet).

Das wäre n.m. Empfinden die Ideallösung.
 
Kannst du mir bitte das Chaurus-Begleiter-Plugin schicken, damit ich mir die Sache genauer anschauen kann? Vielleicht finde ich dadurch eine elegantere und/oder einfachere Lösung. Außerdem möchte ich herausfinden, wie die Portale in Chanterelle funktionieren bzw. eingebunden sind (d. h. ich schaue mir u.a. die Skripte dazu an, falls die Portale welche haben sollten); die könnten nämlich ebenfalls eine Stellschraube sein. Sind die Portale normale Türen, Trigger (man läuft in eine unsichtbare Box und wird teleportiert) oder Activator (dazu gehören z. B. Schalter)?
 
https://workupload.com/file/Fc2SGGzKrEh (sind drei 7z drin, wg. Abhängigkeiten in den ESP)
aber das Chaurus- und das Begleiterpaket dürften kaum eine Erhellung bringen.
Die Portale sind normale Türen bzw. optisch Tore. (ich denke, das ist in so weit dasselbe)
Scripte für die Portale scheinen keine drin zu sein.
 
  • Like
Reaktionen: darklady310187
Wenn das Portal eine normale Tür ist, dann liegt das Problem sehr wahrscheinlich an der Chaurusflieger-Rasse selbst. Aufgrund des Flags "Can't Open Doors" kann die keine Türen öffnen. Auf die Idee mit dem Flag brachte mich übrigens dieser Thread über einen Fuchs-Begleiter, der nicht durch die Tür wollte. Nachdem der Benutzer den betreffenden Flag entfernte, war das Problem gelöst. Wenn du keine Änderungen an der originalen Rasse vornehmen möchtest, brauchst du doch ein Duplikat. Bei deinem Versuch die Chaurusflieger-Rasse zu duplizieren war der Chaurus unsichtbar. Inzwischen habe ich eine Theorie, woran es gelegen haben könnte. Die Rasse hat eine Rüstung an, die ihre Haut bzw. den Körper bildet. Im Rüstungseintrag kann man festlegen, welche Rasse die Rüstung tragen darf. Die Rüstung verweist aber auf die originale Chaurusflieger-Rasse (EditorID DLC1ChaurusHunterRace). Daher bräuchtest du ebenfalls ein Duplikat der Rüstung (EditorID der originalen Rüstung: SkinChaurusFlyer), bei der du die festgelegte Rasse durch die duplizierte Rasse (EditorID DLC1ChaurusHunterRaceDUPLICATE002) ersetzt. Zum Schluss ersetzt du die festgelegte Rüstung im Menü der Rasse durch die duplizierte Rüstung.
 
mein Chaurus ist ein Duplikat, bzw. ein Dupikat, das ich umbenannt habe, so dass eigene ID und keine Abhängigkeit. Ich versuchs mal mit Wegnehmen des Flags und teste das mal mit anderen Türen (in Mountain King gibt es keine, ich nehm den Chaurus und Blondie mal mit nach Skyrim, hab ich bislang noch nicht ausprobiert) und dann mit Duplikat der Chaurus-Rüstung.
(Übrigens hatte ich da schon versucht, die Chaurus-Rasse zu duplizieren, aber wegen dem "Dialog", das war fruchtlos, weil "Dialog" trotzdem nicht ging, aber das jetzt ist ein neuer Aspekt, also nochmal versuchen. Irgendwie muss der Chaurus doch dressierbar sein ;-) )
 
Duplikat von Rasse und Armor gemacht, aber hier nun auch unsichtbar. Mit schwant, dass noch mehr zu Duplikaten gemacht werden muss??
Aktualisierung: Hab auch noch das Modell duplizieren gemusst, aber nun ist er sichtbar. Weitere Tests, wenn ich geschlafen habe.
 

Anhänge

  • 004.jpg
    004.jpg
    133,3 KB · Aufrufe: 57
  • 003.jpg
    003.jpg
    140,3 KB · Aufrufe: 50
  • 002.jpg
    002.jpg
    65,8 KB · Aufrufe: 61
  • 001.jpg
    001.jpg
    71,5 KB · Aufrufe: 66
  • Screenshot (616).jpg
    Screenshot (616).jpg
    26,4 KB · Aufrufe: 54
Zuletzt bearbeitet von einem Moderator:
Nix Schlafen, das hat mir keine Ruhe gelassen, und ...
Screenshot (617).jpg


es klappt. Der Vogel folgt ihr, auch durchs Portal von MK zur Chanterelle Welt. Tusch! Danke!
(Wobei mir da der Gedanke kommt, dass ich das evtl. auch als standalone-Lösung, unabhängig von Chanterelle, also für überall nutzbar, machen könnte. Ein Chaurus als Follower :D