ubi.com    Ubi.com Foren  Springen zu Forum Kategorie  The Elder Scrolls  Springen zu Foren  The Elder Scrolls 3: Editor- und Construction-Set    Script zu einer "Landungskapsel"
Start
Neu
Suche
Benachrichtigen
Werkzeuge
Antwort
  
  Anmelden/Beitreten 
Bild von Syst_Leve
Geschrieben am
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 Bag
Ich hoffe das ihr in etwa vestehen könnt, was ich meine Confused und evt ideen habt wie ich es umsetzten kann.

Vielen dank schonmal, solltet ihr euch die mühe machen das zu lesen ^^




"Verbanne das, was du fürchtest, in den Spiegel.
Fange mit dem an, der dort steht, dann lächle."
 
Beiträge: 72 | Registriert: 06.08.2007Mit Zitat antwortenBeitrag editieren oder löschen
Bild von Astaroth66605
Geschrieben am Beitrag ausblenden
beim script kann ich dir leider nicht helfen (total unfähig was scripten angeht xDD)

aber mal ne frage, wo hast du die schaltflächen her ? Big Grin

und die idee is auch cool whisper
 
Beiträge: 15780 | Registriert: 04.08.2005Mit Zitat antwortenBeitrag editieren oder löschen
Bild von Syst_Leve
Geschrieben am Beitrag ausblenden
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!




"Verbanne das, was du fürchtest, in den Spiegel.
Fange mit dem an, der dort steht, dann lächle."
 
Beiträge: 72 | Registriert: 06.08.2007Mit Zitat antwortenBeitrag editieren oder löschen
The Elder Scrolls
Moderator
Bild von Teridan
Geschrieben am Beitrag ausblenden
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. Wink

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,
 
Beiträge: 5373 | Registriert: 29.12.2004Mit Zitat antwortenBeitrag editieren oder löschen
Bild von Syst_Leve
Geschrieben am Beitrag ausblenden
Dann müsste jeder Button etwa so aussehen oder:

if ( button == 1 )
; Ruine 1
MessageBox "Zur Ruine 1"
Player->Position, X-Pos, Y-Pos, Z-Pos, Z-Rot, „Cell-ID der 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,




"Verbanne das, was du fürchtest, in den Spiegel.
Fange mit dem an, der dort steht, dann lächle."
 
Beiträge: 72 | Registriert: 06.08.2007Mit Zitat antwortenBeitrag editieren oder löschen
The Elder Scrolls
Moderator
Bild von Teridan
Geschrieben am Beitrag ausblenden
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. Bag Big Grin
 
Beiträge: 5373 | Registriert: 29.12.2004Mit Zitat antwortenBeitrag editieren oder löschen
Bild von Syst_Leve
Geschrieben am Beitrag ausblenden
quote:
Zitat von Teridan:
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.
Big Grin

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,




"Verbanne das, was du fürchtest, in den Spiegel.
Fange mit dem an, der dort steht, dann lächle."
 
Beiträge: 72 | Registriert: 06.08.2007Mit Zitat antwortenBeitrag editieren oder löschen
The Elder Scrolls
Moderator
Bild von Teridan
Geschrieben am Beitrag ausblenden
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. Big Grin Aber ich hoffe, das es halbwegs so funktioniert. Deine Methode würde aber mehr aufwand bedeuten, so wie ich das sehe.

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.
 
Beiträge: 5373 | Registriert: 29.12.2004Mit Zitat antwortenBeitrag editieren oder löschen
  Powered by Eve Community  
 

ubi.com    Ubi.com Foren  Springen zu Forum Kategorie  The Elder Scrolls  Springen zu Foren  The Elder Scrolls 3: Editor- und Construction-Set    Script zu einer "Landungskapsel"

Terms of Use