Hallo Spezialisten,
brauche eure Hilfe!
Habe schon teilweise den Keller im Haus Benirus in Anvil umgestaltet. Jetzt wollte ich mir einen Teleportring basteln, der mich in die Mitte des Kellers transportiert.
Wie geht das? Hab es schon paar Mal versaut.
Den Keller ähnlich zu gestalten wie Flohs Rumpelkammer, ist mir auch nicht gelungen!
Stell in deinen Keller einen X-Heading-Marker (die nehm ich jedenfalls, prinzipiell geht auch ne Ratte, aber egal). Plaziere ihn so, wie du ankommen möchtest.
Jetzt den Marker doppelklicken, und oben einen Namen eingeben, den es nicht nochmal gibt, zB "RandulfsKeller". Achte außerdem darauf, dass "persistent reference" und "initially disabled" angehakt ist.
Jetzt schreibst du ein Script. (Gameplay -> Edit Scripts)
Oben rechts muss "Object" stehen.
Dieses Script stellst du dann bei deinem Teleportring (der in diesem Beispiel "RandulfsRing" heißt) ein.
Also um ein Script wirst du hier nicht rumkommen. Am sichersten wäre hier imho eine Verzauberung mit Scripteffekt auf dem Ring. Damit das funktoiniert würde ich empfehlen den Befehlt moveto (bzw. PositionCell) zu verwenden.
Empfehlen würde ich hier den ScriptEffectStart-Block zu verwenden um das ganze "unterzubringen".
Auf jeden Fall solltest du GSI auch mit einbauen, da es sonst mit anderen PIs zu sehr seltsamen Problemen kommen kann.
Edit @Grimoa:
das Unequip würde bei dir nicht funktionieren, da player.moveto wie Return wirkt (heißt: keiner der danach kommenden Befehle wird ausgeführt). Davor schreiben sollte das Problem aber beheben.
Allerdings hat deine Version auch noch das Problem, dass das Script bei verzaubern des Ringes verloren geht (lässt sich allerdings einfach durch ein Zuweisen einer leeren Verzauberung (Script-Effect ohne Script) verhindern).
--
Ich kam, sah, und konnte meinen Augen nicht trauen
@Grimoa:
das Unequip würde bei dir nicht funktionieren, da player.moveto wie Return wirkt
...
Okay, Korrektur:
Zitat von Low Post
Allerdings hat deine Version auch noch das Problem, dass das Script bei verzaubern des Ringes verloren geht (lässt sich allerdings einfach durch ein Zuweisen einer leeren Verzauberung (Script-Effect ohne Script) verhindern).
...
Hm, okay, mit den Feinheiten hab ich mich noch nicht so beschäftigt. Gut zu wissen.
Ich war einfach mal davon ausgegangen, dass man seinen Teleportring gar nicht versucht zu verzaubern. Gibt doch genug andere Ringe im Spiel.
Hallo und danke für die Antworten,
in der Zwischenzeit war ich auf Montage.
Habe heute das Script Probiert und es Funzt, aber irgendwas stimmt mit dem X-Heading-Marker nicht.
Player kommt zwar an der stelle an aber kann sie nicht verlassen.
Deswegen hatte ich ja (auf Low Posts Vorschlag hin) player.UnequipItem davor geschrieben, so dass der Ring ausgezogen wird, bevor das Script beendet wird. Dann dürfte es ja eigentlich nicht nochmal ausgelöst werden.
War mein Gedanke.
Warum das so ist, hat Low Post doch bereits erläutert. MoveTo in einem OnEquip-Script bedeutet, dass es nicht beendet werden kann und der Spieler immer wieder zum XMarker geschoben wird. Da kannst du machen, was du willst. Folgendes dürfte funktionieren:
Warum das so ist, hat Low Post doch bereits erläutert. MoveTo in einem OnEquip-Script bedeutet, dass es nicht beendet werden kann und der Spieler immer wieder zum XMarker geschoben wird. Da kannst du machen, was du willst. Folgendes dürfte funktionieren:
Edit @ Grimoa
Persistent Reference kann man bei einem XMarker(Heading) gar nicht einstellen; das ist von vornherein so. Und Initially disabled erübrigt sich, da man den XMarker a) in-game überhaupt nicht sehen kann und b) er in diesem Fall überhaupt nicht deaktiviert sein muss. Da hast du das mit der Ratte durcheinander gebracht. Eine Teleport-Ratte ist einem XMarker vorzuziehen, wenn der XMarker bzw. die Ratte selbst für einen Recall umher geschoben wird. Mit XMarkern gibt es Probleme, wenn es sich um Zellen außerhalb des Tamriel-Worldspaces handelt; Marker wird verschoben, die neue Location gespeichert, der Marker aber wieder zum Ursprungsort verschoben und der ganze Kram funktioniert plötzlich nicht mehr, ein Recall ist unmöglich. Stattdessen sollte man in dem Fall also NPCs oder Kreaturen benutzen, da sie von der Engine nicht zum Ausgangspunkt zurückgeschoben werden.
Edit 2: Hoppla, da ist mir Randulf aber in den Edit gerasselt.
Ah, jetzt sind die Beiträge ja ganz anders als eben...
@Katan: Auf persitent reference und initially disabled bin ich gekommen, weil ich bei meinem ersten versuch nicht einfach einen X-Heading-Marker genommen habe, sondern ein neues Objekt (neue ID) erzeugt habe, und dann ist das eben noch nicht ausgewählt. Das CS weigert sich, dsa Skript zu speichern, und der Marker ist ingame zu sehen.
@Randulf: "Der Marker ist mannshoch"? Also kannst du ihn ingame sehen?
Grimoa, ich mein's doch nicht böse. Ich dachte, vielleicht interessiert's dich, warum manchmal 'ne Ratte statt einem XMarker benutzt wird.
Bei 'nem XMarker ist Persistent Reference immer aktiviert, ist nämlich grau hinterlegt. Ob sich das ändert, wenn man dem eine neue ID gibt, weiß ich zugegeben nicht; habe ich nie probiert. Ist ja auch unnötig.
Dass er sich weigert, das Script zu speichern, mag daran liegen, dass statt XMarkerHeading die Referenz eingegeben werden muss. Deshalb ist es dick und rot markiert; hätte ich aber noch dazu schreiben können, damit's auch offensichtlich wird, da hast du Recht. Aber nein, ein XMarker ist definitiv nicht in-game zu sehen.
Wenn man einem X-Heading-Marker ne neue ID gibt, ist weder persistent reference noch initially disable ausgewählt. Weil die Referenz nicht persistent ist, weigert sich das CS das Script zu speichern, wenn man den Marker bei einem moveto Befehl benutzt. Und ingame zu sehen ist er natürlich, weil er nicht auf initially disabled steht.
Ich habs ausprobiert.
Das mit der Ratte ist durchaus interessant, ich hatte es irgendwo schon mal gelesen, wusste aber die Einzelheiten nicht mehr so genau. Habe es selbst auch noch nicht benutzt, was sich aber hoffentlich demnächst ändert.
Okay. Das musst du mir jetzt erklären. Warum gibst du einem XMarker eine neue EditorID? Du kannst einfach den bereits vorhandenen benutzen und in deine Zelle ziehen. Es geht schließlich nicht um die EditorID sondern um die Referenz. Warum sich unnötige Mehrarbeit machen?