![]() |
![]() |
Ubi.com Foren
The Elder Scrolls
The Elder Scrolls 3: Editor- und Construction-Set
Script zu einer "Landungskapsel"|
Start
![]() |
Neu
![]() |
Suche
![]() |
Benachrichtigen
![]() |
Werkzeuge
![]() |
Antwort
![]() |
|
|
|
Ich bräucht mal wieder Hilfe bei einem Script.
Ich bin gerade dabei mir ein Dwemer Luftschiff zusammenzubasteln, nun würd ich gern eine art "Landekapsel" erstellen, sie besteht im äußeren aus mehreren Meshes (Statics & door) (Ich weiß, sieht etwas "froschig" aus^^) und hat eine Interior Cell "Landungskapsel". Man betritt sie das erste mal vom Luftschiff aus und hat dort eine Steuerkonsole, die mit einem Script belegt ist. Das Script soll einem die Auswahlmöglichkeit geben, die Kapsel an jede Dwemerruine zu steuer. Dies will ich erreichen indem man erst die Zieladresse auswählt (Buttons, so wie bei vielen Teleringen), und daraufhin die Teile der Landungskapsel im Luftschiff disabelt und am Zielpunkt enabled wird. Gleichzeitig wird die Tür in der Kapsel (Die zum Luftschiff führte) disabled und eine Tür enabled, die zum Zielort führt. (Dies funktioniert dann logischerweise zu jedem Zielort von überall hin... Sollte ich mal so schlau sein, den Ort anzuwählen, an dem ich schon bin, sollte ein Textfeld kommen... oder auch gar nix...) Komplizierter konnt ichs leider nicht ausdrücken Ich hoffe das ihr in etwa vestehen könnt, was ich meine Vielen dank schonmal, solltet ihr euch die mühe machen das zu lesen ^^ |
||
|
![]() |
|
|||
|
|
|
Die Schaltfläche ist aus Tribunal (in_sotha_lab_panel00), Passt eig immer wenn man mal was elektronisches steuern will^^
Ich wollt halt mal nicht eine Telekammer (Bei Dwemern eh unrealistisch) oder einen Typen haben der dich irg. hinteleportiert (Der kann nur 4Ziele haben und gefällt mir auch nicht so) oder einen Telering (Zu mobil) So eine Kapsel bringt dich an dein Ziel, es passt zu den Dwemern (find ich) und sie ist auch nur dort wo du hingeflogen bist und nicht "überall" (unrealistisch, dh. das komplizierte Script) Ich hatte mir überlegt das es ja !in etwa! so aussehen müsste: Begin landungskapsel_script if (MenuMode == 0) return endif if ( OnActivate == 1 ) MessageBox "Wohin wollt ihr die Landungskapsel steuern? " "Zur Karstangz-Drung" "Nach Aleft " „Nach Arkngthand“ „Nach Arkngthunch-Sturdumz“ ect… set messageOn to 1 endif endif if ( messageOn == 1) set button to GetButtonPressed if ( button >= 0 ) set messageOn to 0 endif if ( button == 0 ) PlaySound "soundxyz" Player->Position, ... Disable dwrv_landungskapsel_schiff (Ich hab mir überlegt ob es möglich währe ein Script auf dwrv_landungskapsel_schiff zu legen, dass wenn dwrv_landungskapsel_schiff disabled wird, automatisch auch alle anderen teile der kapsel disabled werden. Währe das möglich? Würde viel schreibarbeit sparen.) Enable dwrv_landungskapsel_zielort (würde, wenn die idee mit dem sript aus der klammer zuvor realisierbar währe, dann automatisch den rest der kapsel mit enablen) Disable dwrv_door_kapsel_schiff Enable Dwrv_door_kapsel_zielort set reset to 1 elseif ( button == 1 ) PlaySound "soundxyz" Player->Position, ... Das selbe wie zuvor set reset to 1 ect... elseif ( button == x ) set reset to 1 return endif endif End Währe nur elendig viel schreibarbeit, wenn jemand eine bessere idee hat (Oder die erstmal korrigieren könnte, das ist nämlich einfach ein copy&past script ^^), währ ich echt dankbar! |
|||
|
|
The Elder Scrolls Moderator |
Leider bin ich auch ein Scriptlaie, aber ich kann dir ein Teleportscript geben und vielleicht können wir gemeinsam so lange daran rumschrauben, bis es klappt.
Zunächst mal muss jeder Gegenstand, den du Disablen willst, ein Activator sein, damit du ja das Script darauf legen kannst. Außerdem muss jeder Gegenstand einzigartig sein. Kreuze in dem Zusammenhang das Feld References Persist an. Eine wichtige Frage ist noch, ob die Landungskapsel in dem Ort verbleiben soll, also dort sichtbar ist, wo du als letztes ausgestiegen bist, oder sie anderweitig "gerufen" werden soll. Ersteres ist natürlich logisch, aber schwieriger umzusetzen. Hier nun das Teleportscript: begin RaumkapselScript short OnActivate short button short state if ( State == 0 ) return endif if ( OnActivate == 1 ) Set state to 1 Set OnActivate to 0 MessageBox "Zu welcher Dwemerruine wollt Ihr reisen?" "Abbrechen" "Ruine 1" "Ruine 2" "Ruine 3" endif if ( state == 1 ) Set button to GetButtonPressed if ( button == 0 ) ; Cancel Set state to 0 endif if ( button == 1 ) ; Ruine 1 MessageBox "Zur Ruine 1" Player->Position, X-Pos, Y-Pos, Z-Pos, Z-Rot, „Cell-ID der Ruine 1“ Set state to 0 endif if ( button == 2 ) ; Ruine 3 MessageBox "Zur Ruine 1" Player->Position, X-Pos, Y-Pos, Z-Pos, Z-Rot, „Cell-ID der Ruine 2“ Set state to 0 endif if ( button == 3 ) ; Ruine 3 MessageBox "Zur Ruine 3" Player->Position, X-Pos, Y-Pos, Z-Pos, Z-Rot, „Cell-ID der Ruine 3“ Set state to 0 endif endif end Ob das Script funktioniert weiß ich nicht und kann es heute auch nicht mehr testen. Aber es ist von einem Teleportscript abgeleitet. Was noch fehlt ist eine Variable, die steuert, welche Raumkapsel gerade sichtbar oder unsichtbar ist. Aber vielleicht kann ja noch jemand anders was ergänzen. Dieser Beitrag wurde editiert. Zuletzt editiert von: Teridan, |
|||
|
|
|
Dann müsste jeder Button etwa so aussehen oder:
if ( button == 1 ) ; Ruine 1 MessageBox "Zur Ruine 1" (Das kann weg, ich bleibe ja immer in der selben kapsel, nur da die ausgangstür ausgetauscht wurde und die kapsel woanders steht, ist es als währe ich da hingeflogen.) Disable dwrv_landungskapsel_schiff Enable dwrv_landungskapsel_zielort Disable dwrv_door_kapsel_schiff Enable dwrv_door_kapsel_zielort Set state to 0 endif Und auf die Landungskapsel hab ich mir sowas überlegt wie: begin checkstatuskapsel_schiff If "landungskapsel_schiff" -> GetDisabled disable "lk_teil_1_schiff" disable "lk_teil_1_schiff" disable "lk_teil_1_schiff" disable "lk_teil_1_schiff" else enable "lk_teil_1_schiff" enable "lk_teil_1_schiff" enable "lk_teil_1_schiff" enable "lk_teil_1_schiff" endif end Perfekt! währe es natürlich, wenn es die möglichkeit gäbe, Meshes (oder Activators), so wie PIs zu kombinieren! Dieser Beitrag wurde editiert. Zuletzt editiert von: Syst_Leve, |
|||
|
|
The Elder Scrolls Moderator |
Achja, du bleibst durch den Teleport in der gleichen Interiorzelle, was eine kluge Idee ist. Du brauchst aber auf jedem Teil der Landungskapsel ein Script, welches kontrolliert, ob es gerade sichtbar oder unsichtbar ist - je nachdem wo die Kapsel gerade stehen soll. Dabei würde ich mich an den Festungsscripts orientieren.
Deine letzte Frage habe ich nicht so ganz verstanden, glaube ich. Willst du aus mehreren Meshes eines machen? Das geht, aber nicht im Editor, sondern z.B. mit Nifskope oder mit Blender. Wie weiß ich aber nicht. |
|||
|
|
|
Wieso? Wenn ich einem Teil das schript gebe, das alle anderen disabled ist es doch egal ob sie enabled sind oder nicht, disabled bleibt disabled, glaub nicht das da was schiefgehen könnte... Das würde bedeuten, wenn ich zB nach Arkngthand reisen würde, müsste ich so einen block drin stehen haben würde: enable "landungskapsel_Arkngthand" disable "landungskapsel_Bthungthumz" disable "landungskapsel_Arkngthunch-Sturdumz" disable "landungskapsel_Nchuleft" disable "landungskapsel_Dagoth_Ur" disable "landungskapsel_Mzanchend " disable "landungskapsel_Aleft" disable "landungskapsel_Nchuleftingth" disable "landungskapsel_Nchardumz" disable "landungskapsel_Mzahnch" disable "landungskapsel_Grotto" disable "landungskapsel_Luftschiff" Und da auf jeder Kapsel ein Script liegt, dass alle anderen teile disabled, existiert nur die in Arkngthand. Ach ja und, Nifscope? Kann das nicht nur retexturieren? (Zummindestens ist das alles wofür ich es bisher genutzt habe... das jedoch oft ^^) Dieser Beitrag wurde editiert. Zuletzt editiert von: Syst_Leve, |
|||
|
|
The Elder Scrolls Moderator |
Naja, es ist einfacher das Script auf den zu disablenden Gegenstand zu legen. Da musst du nur eine Variable reinsetzen, andernfalls musst du in das Script der Schaltfläche jeden Gegenstand einzeln aufrufen.
Ich denke, das Schaltflächenscript muss so aussehen: begin RaumkapselScript short OnActivate short button short state short switch if ( State == 0 ) return endif if ( OnActivate == 1 ) Set state to 1 Set OnActivate to 0 MessageBox "Zu welcher Dwemerruine wollt Ihr reisen?" "Abbrechen" "Ruine 1" "Ruine 2" "Ruine 3" endif if ( state == 1 ) Set button to GetButtonPressed if ( button == 0 ) ; Cancel Set state to 0 endif if ( button == 1 ) ; Ruine 1 MessageBox "Zur Ruine 1" Set Switch to 1 Set state to 0 endif if ( button == 2 ) ; Ruine 3 MessageBox "Zur Ruine 1" Set Switch to 2 Set state to 0 endif if ( button == 3 ) ; Ruine 3 MessageBox "Zur Ruine 3" Set Switch to 3 Set state to 0 endif endif end Damit das funktioniert, musst du eine globale Variable erstellen (bei mir heißt sie Switch). Das geht über Gameplay -> Globals... Das Disablescript, welches du auf die Tür und auf alle Teile der Landungskapsel legen musst, müsste dann so aussehen: begin Ruine1Script if ( Switch == 1 ) if ( GetDisabled == 1 ) enable endif else if ( GetDisabled == 0 ) disable endif endif End Beim Scripten muss man logisch denken und das ist nicht so meine Stärke. Was Nifskope angeht, damit kann man mehr machen als nur Retexturieren. Auch skalieren, drehen und so weiter. Ich meine, das man damit auch Meshes zusammenfügen kann, bin aber nicht hunderprozentig sicher. Mit Blender geht das aber garantiert. |
|||
|
| Powered by Eve Community |
| Bitte warten. Ihre Anfrage wird bearbeitet... |
|
Ubi.com Foren
The Elder Scrolls
The Elder Scrolls 3: Editor- und Construction-Set
Script zu einer "Landungskapsel"
