Construction Set Physik einzelner Gegenstände ausschalten?

Könnte man den Zauber nicht auf die Zelle begrenzen und an die Tür einen Aktivator anhängen, der beim Betreten den Zauber einfügt und beim Verlassen wieder entfernt? Das Einfügen/Entfernen ist auf jeden Fall möglich, haben verschiedene Modder schon gemacht, indem sie bei Erreichen eines bestimmten Punktes z.B. die Skills erhöht haben. Siehe Druidenheim.
Die Umsetzung per Zauber würde ich vorziehen, weil sie aus meiner Sicht die wenigsten Eingriffe in die Mod erfordert. Natürlich, ein Aktivator muß so oder so eingebaut werden, aber kein extra Model (Schalter).

Gut, ich dachte mir schon, daß das Wasserablassen mit Animation problematisch sein dürfte. Drauf gekommen bin ich eigentlich durch eine Quest in Skyrim, wo man den Wasserstand verändern muß, um weiterzukommen. Aber hier ist Oblivion, da war das halt noch nicht erfunden.:D

Bye, Bbm.
 
Auch wenn ich hier schon eine Weile weg bin und schon ewig nicht mehr geskripted habe

Das sichtbare Wasserablassen ist möglich mit OBSE

Das skript müsste ungefähr so aussehen

Short Water1

begin OnActivate

While Water1 > (water min.) (minimaler Wasserstand in der Zelle)

SetCellWaterHeight (cell:ref) water1 -1 (-1 kann auch jeder andere Wert sein)

loop

end

Im Druidenheim ist es als Questscript gemacht.

Hinsichtlich der manequins ist festzustellen, das diese keine vollständigen Statics sind. Änderungen im Nifskope wären nötig um das Auftreiben zu verhindern.
 
  • Like
Reaktionen: Brom und Blaubeerman
Das klingt ja mal verteufelt gut, danke. Wenn man das als Zauber realisieren würde, müßte dieser dann praktisch als Umschalter funktionieren und das könnte dann ja über die Abfrage des momentanen Wasserstandes realisiert werden. Als Sicherheit könnte dann noch eine Abfrage des Wasserstandes bei Betätigung des Türaktivators dafür genutzt werden, daß das Becken beim Verlassen des Raumes automatisch wieder gefüllt wird. Damit würden dann auf jeden Fall Wasserstandsprobleme in der Umgebung vermieden werden. Muß der maximale Wasserstand eigentlich extra definiert werden, damit nur das Becken gefüllt wird und nicht der ganze Raum absäuft?

Bye, Bbm.
 
Sorry in dem skript ist mindestens ein Fehler. Ich hatte vergessen die Ausgangshöhe zu definieren.

Short Water1


begin OnActivate

water1 = ((Wasserstand in der Cell bei Start) wird im CS Cell Profil eingestellt)

While Water1 > (water min.) ((minimaler Wasserstand in der Zelle) im CS austesten eine verbleibende Pfütze ist auch nicht schlecht)

SetCellWaterHeight (cell:ref) water1 -1 (-1 kann auch jeder andere Wert sein)

loop

end

Ich hatte mir vorgestellt man baut an den Beckenrand einen Schalter auf den man dieses Skript legt eventuell die Vanilla Saftpumpe mit ein paar Röhren von Garacks. Aber es ist auch als Zauber zu verwirklichen. Ein Problem könnte sich aus der Geschwindigkeit mit der das Sript abgearbeitet wird ergeben. In der Regel hat man 60 Bilder pro Sekunde Monitorgeschwindigkeit. Wenn die FPS zu stark abstürzt könnte es ruckeln.

Ich hatte dieses Skript schon mal bei der Atlantis cell in Calenad im Kopf es aber da es sich dort um ein Exterior handelt verworfen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Blaubeerman
SetCellWaterHeight (cell:ref) water1 -1 (-1 kann auch jeder andere Wert sein)

Die -1 oder eben eine andere Zahl bestimmt dann die Geschwindigkeit der Absenkung, richtig?
Mir erscheint es einfacher, die Funktion als Zauber einzubinden, weil aus meiner Sicht damit nicht so viele Änderungen In der Zelle selbst gemacht werden müssen, ich möchte so wenig wie möglich dort ändern, um allzu viel Ärger aus dem Wege zu gehen.

Bye, Bbm.
 
Ja korrekt -1 ist die Absenkgeschwindigkeit.

Wenn du es auf einen Aktivator legst hast du keine Probleme zu erwarten. Es ist das einfachste überhaupt.

Bei einem Zauber hätte ich ein Problem, da ein Zauber skripttechnisch in 3 Teile zerfällt, Start, Loop und End, und mir nicht klar ist, ob ich eine von sich aus loopende Funktion wie das Absenken des Wasserspiegels auf den Start legen kann oder in die Loop-Phase legen muss.

Das Skript wie es da steht ist für einen Schalter gemacht, wobei jedes Statik-Objekt als Schalter eingebunden werden kann.

Ein Questzauber wie im Baumhaus bei der Erhöhung der Fähigkeiten ist zwar einfach erfordert aber 2 Schritte: Zauber und Quest.
 
  • Like
Reaktionen: Blaubeerman
Warum braucht der Zauber eine Schleife? Er soll doch lediglich eine Aktion triggern, die dann selbstständig weiterläuft, d.h., er braucht selbst keine Effekte zeigen und muß auch nicht eine bestimmte Zeit wirksam sein. Das sollte doch ohne Schleife möglich sein, oder? Wenn natürlich das System eine Schleife vorschreibt, könnte diese dann nicht mit einer leeren Funktion belegt werden, die keinerlei Auswirkungen hat?

Den Zauber würde ich mir so vorstellen:

Start - ausgelöst durch PC
Triggern des Wasserablassens - Ablaßscript starten
Ende.

Oder ist das zu einfach gedacht? Während das Wasser abläuft, muß der Zauber doch nicht mehr aktiv sein, dadurch würden dann auch nicht zwei Schleifen ineinander laufen, das soll ohnehin "ungesund" sein, wenn ich mich recht erinnere.

Bye, Bbm.
 
Ein wenig zu einfach. Ein Zauberskript hat diesen Aufbau damit es funktioniert


Scriptname ...............

short water1

Begin ScriptEffectStart


water1 = ((Wasserstand in der Cell bei Start) wird im CS Cell Profil eingestellt)


While Water1 > (water min.) ((minimaler Wasserstand in der Zelle) im CS austesten eine verbleibende Pfütze ist auch nicht schlecht)


SetCellWaterHeight (cell:ref) water1 -1 (-1 kann auch jeder andere Wert sein)


loop

End


Begin ScriptEffectUpdate


End


Begin ScriptEffectFinish


End

Ich vermute, dass es so funktionieren könnte. Es ist aber möglich, das die Skriptbefehle in den Begin ScriptEffectUpdate Bereich gehören und in Begin ScriptEffectStart ein sonstiger Befehl eingebracht werden müsste z.B. ein Lichtblitz oder sonst etwas. Die etwas komplizierte Struktur ergibt sich aus den aufwendigen Kampfzaubern, die aus Zauberwirken, Zaubertransport und Zaubereffekt ergeben. Insbesonderen bei Lähmungszaubern muss unter Begin ScriptEffectFinish der Ausgangszustand wieder hergestellt werden.

Wirke einen Feuerball lass ihn auf die Oberfläche fliegen und dann das Wasser verschwinden und Dampf erscheinen. Auch eine Möglichkeit, oder lass unter Begin ScriptEffectFinish den Zauber rückwärts laufen und definiere für die Updatephase eine Zeitdauer.

Sicher ein Skriptzauber bietet eine Menge, (binde ihn an eine Schriftrolle als Trägermedium), aber er ist schwieriger als ein einfaches Skript
 
  • Like
Reaktionen: Blaubeerman
Da wäre die Frage, ob unter ScriptEffektStart ein von der Engine vorgegebener optischer und/oder akustischer Effekt verwendet werden muß. Rein logisch gesehen soll ja bei einem Zauber etwas zu sehen und/oder zu hören sein und erst danach die Wirkung einsetzen. Unter Update, könnte ich mir vorstellen, wird die eigentliche Auswirkung auf die Umgebung generiert. Und Finish ist klar, damit wird letztendlich die zeitliche Dauer des Zaubers begrenzt. Da der Zauber aber als Umschalter funktionieren müßte, dürfte dort keine Begrenzung erfolgen. Man müßte es halt genau wissen, ich habe allerdings keine Ahnung, wo man soetwas nachlesen könnte. Gibts dafür nicht ein spezielles Handbuch?

Bye, Bbm.
 
Ein spezielles Handbuch gibt es nicht. Man fängt an und probiert.

Eine Einführung gibt es hier

http://www.ei-der-zeit.com/wiki/index.php/Oblivion:ScriptEffectStart

und die OBSE Dokumentation zu den Befehlen

http://obse.silverlock.org/obse_command_doc.html


braucht man um so etwas zu händeln, auch der Skript Thread hier und die Vanilla Skripte geben einiges her. Der Rest ist Erfahrung aus vergangenen Skripten, wobei ich da eher noch in der unteren Liga spiele. Top-Leute wie Quixx sind mir um einen Faktor 100 über.

wenn man es nicht braucht schreibt man eigentlich nur End hinein, aber das habe ich bisher noch nie bei Skript Effekt start gemacht. Vielleicht funktioniert es, vielleicht auch nicht.
 
  • Like
Reaktionen: Blaubeerman
Beim Durchforsten der Script-Abteilung hier bin ich über etwas gestolpert. Da gibt es doch die Funktion "SetRigidBodyMass" ( Quelle ). Laut Beschreibung soll doch SetRigidBodyMass = 0 verhindern, daß sich das damit belegte Objekt durch physische Einwirkungen von der Stelle bewegt. Kann man das nicht dazu benutzen, die Mannequins praktisch festzunageln? Und würde dann das Ausrüsten und das Posen noch funktionieren?

Bye, Bbm.