Archiv verlassen und diese Seite im Standarddesign anzeigen : Teleport Ring
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!
Ha! moveto, meine neue Lieblingsfunktion.
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.
scn RandulfsKellerTransport
Begin OnEquip
player.moveto RandulfsKeller ;Der Spieler wird zu deinem Marker transportiert
player.UnequipItem RandulfsRing ;Der Ring wird automatisch wieder abgelegt (Das hab ich bisher noch nicht selbst geteste, müsste aber klappen)
end
Dieses Script stellst du dann bei deinem Teleportring (der in diesem Beispiel "RandulfsRing" heißt) ein.
So müsste es klappen.
Low Post
04.03.2008, 17:28
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 (http://cs.elderscrolls.com/constwiki/index.php/MoveTo) (bzw. PositionCell (http://cs.elderscrolls.com/constwiki/index.php/PositionCell)) zu verwenden.
Empfehlen würde ich hier den ScriptEffectStart-Block zu verwenden um das ganze "unterzubringen".
Auf jeden Fall solltest du GSI (http://tes.newraven.net/downloads/oblivion/newraven.net-plugins/global-settings-interface-gsi.html) 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).
@Grimoa:
das Unequip würde bei dir nicht funktionieren, da player.moveto wie Return wirkt
http://www.multimediaxis.de/images/smilies/old/pff.gif Okay, Korrektur:
scn RandulfsKellerTransport
Begin OnEquip
player.UnequipItem RandulfsRing ;Der Ring wird automatisch wieder abgelegt (Das hab ich bisher noch nicht selbst geteste, müsste aber klappen)
player.moveto RandulfsKeller ;Der Spieler wird zu deinem Marker transportiert
end
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.
Wird der Ring wieder ausgezogen, gleich nachdem du ihn equipped hast?
Das Problem klingt für mich grade so, als wenn du immer weider zu der Stelle mit dem X-Marker teleportiert wirst, deswegen kommst du da nicht weg.
Wird der Ring wieder ausgezogen, gleich nachdem du ihn equipped hast?
Das Problem klingt für mich grade so, als wenn du immer weider zu der Stelle mit dem X-Marker teleportiert wirst, deswegen kommst du da nicht weg.
Der Ring wird abgelegt, der X-Heading-Marker ist Manns Hoch und in dem hängt er fest.
Er kann sich nicht mal drehen.
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.
Aber wenn dein Script funktioniert, umso besser. :)
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:
scn TeleportRingScript
short teleportieren
Begin OnEquip Player
set teleportieren to 1
End
Begin GameMode
if ( teleportieren == 1 )
set teleportieren to 0
player.MoveToMarker XMarkerHeading
endif
End
Werde es gleich versuchen.
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:
scn TeleportRingScript
short teleportieren
Begin OnEquip Player
set teleportieren to 1
End
Begin GameMode
if ( teleportieren == 1 )
set teleportieren to 0
player.MoveToMarker XMarkerHeading
endif
End
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. :D
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.
Ich nehm gar nichts böse :)
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? http://www.multimediaxis.de/images/smilies/old/szuck.gif
Ja, inzwischen mache ich das auch nicht mehr. Das war der erste Versuch. :D
Ich hatte noch nicht raus, dass sich die Marker nachher anhand der Referenz eindeutig unterscheiden lassen. Da hab ich gedacht, ich geh auf Nummer sicher, und mach mir mal meinen eigenen.
Und es Funzt - Jetzt aber bleibt der Ring angezogen!
Wird nicht automatisch abgelegt.
Das kriegt ihr doch auch noch hin
scn RandulfsKellerTransport
short teleportieren
Begin OnEquip Player
set teleportieren to 1
End
Begin GameMode
if ( teleportieren == 1 )
set teleportieren to 0
player.MoveToMarker RandulfsKeller
endif
end
Ja, steht ja auch nicht mehr drin, dass der Ring ausgezogen werden soll ;)
scn RandulfsKellerTransport
short teleportieren
Begin OnEquip Player
set teleportieren to 1
End
Begin GameMode
if ( teleportieren == 1 )
player.unequipItem RandulfsRing
set teleportieren to 0
player.MoveToMarker RandulfsKeller
endif
end
@ Randulf
Wenn du weiter in diesem Bereich modden möchtest, bietet es sich an, dass du Scripte zu verstehen versuchst statt andere anzufeuern das für dich zu machen. ;) Also mal bei CS Wiki (http://cs.elderscrolls.com) vorbeischauen, dir das hier (http://theelderscrolls.info/?go=4editorscripten) durchlesen und/oder einfach nachfragen, warum was so und so gemacht wird. Das nur als Tipp.
Juhu Funzt Affen Titten Geil http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif
Ohne euch? Im Leben nicht.
Scripten ist schon starker Tobak.
@Katan
Da war ich schon, nur kapiert hab ich es nicht (siehe ersten Post)
Kann zwar nicht behaupten das ich es jetzt verstanden habe, aber ich bin weiter.
Zitat:
Mach nie einen Dummen schlau! Man bekommt ihn nie wieder dumm.
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.