Construction Set Skriptthread zum Construction Set

Ich nehme an, dass es daran liegt, dass das Musikstück jeden Frame neu gestartet wird, weshalb es nicht zu hören ist. Probier das:
Code:
scn scriptname

short doonce

begin gameMode

       if getDistance player < 700 && doonce == 0
            StreamMusic "data\music\..."
            set doonce to 1
       endif

end
 
  • Like
Reaktionen: Hoch-Ordinator
Zum Bewegungsscript: Ein Tor soll sich öffnen, wenn 4 verschiedene Gegenstände in 4 verschiedenen Kisten liegen. Sprich wie ein Puzzle. Das heißt die Gegenstände dürfen nicht irgendwie in in einer Kiste liegen, sondern Gegenstand 1 in Kiste 3, Gegenstand 2 in Kiste 1 etc.
 
/me needz a script^^
Ich will einfach das ein Stein, der auf aktivieren reagiert sich um einen bestimmten Wert nach rechts bewegt, und somit eine Falltür freilegt. Wenn man den Stein ein weiteres mal aktiviert, soll sich der Stein wieder um den vorherigen Wert nach links bewegen und die Falltür wieder verdecken... Leider habe ich null Ahnung was das Scripten im CS angeht, deswegen wärs schön wenn ihr mir helfen könntet... :)

Zexion
 
Also, für das Script, kannst du in diesen Post gucken:
http://www.scharesoft.de/joomla/forum/showpost.php?p=529461&postcount=3

(Dein Script findet regen Anklang Gildur^^)

Um den Stein aktivierbar zu machen, musst du ihn im CS neu einbinden.
Das heißt, du brauchst das Mesh des Steins.
Das musst du aus der .bsa-Datei entpacken.
(Das geht mit dem ModManager unter Utilities>bsaBrowser.)

Dann deponierst das im data-Ordner unter Meshes.

So, dann gehst du im CS zu Activator.
Dort suchst du etwas aus, klickst doppelt drauf und änderst die ID und die nif (da halt das Mesh zuweisen).
Dann schaust du, was du noch so verändern willst.
Zum beispiel, ob du den Sound haben willst, der eventuell noch da ist.

Dann klickst du ok und bestätigst "create new form" mit "yes".

Bei dem Script musst du halt einstellen, wie viel sich der Stein bewegen soll, wie schnell und auf welcher Achse.
Dazu einfach den Stein auf der einen Position doppelt anklicken, die Werte notieren und dann den Stein auf die andere Position schieben und dort die Werte überprüfen.
Dann weißt du, was du im Script angeben musst.

Dann noch den Stein platzieren und das Script drauflegen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Zexion
Ich bin ja nicht auf Danke aus.
Ich möchte nur, dass sich auch die bedanken, denen es geholfen hat. Ich weiß zwar nicht genau, ob dich das mit einschließt, aber du musst dich nicht bedanken, wenn es dir nicht hilft. Auch wenn es nett ist. ;)

btw.: Zexion, ich habe das Script für deine Zwecke erweitert.
 
Ich habe da mal eine Frage zur Optimierung der Scripte.

Vorgeschichte:
Ich hatte mal ein Spiel auf dem PC das relativ scriptlastig war. Der Hersteller (JOWOOD) brachte dann dazu eine Optimierungsprogramm heraus, das einzig und alleine nur dazu gedacht war alle unnötigen Leerzeilen in einem Script zu entfernen.
Resultat:
Die Speicherbelastung des Spieles war um einiges geringer, da das Datenaufkommen im MB-Größenbereich minimiert wurde.

Jetzt meine Frage:

Gibt es so etwas für Oblivion auch? Natürlich kompatibel mit der DV (GOTY).

Es kann natürlich auch sein, das bestimmte Leerzeilen in einem Script enthalten sein müssen weil es sonst nicht läuft.

Wer hat eine Antwort?

Danke schon mal
 
Es kann natürlich auch sein, das bestimmte Leerzeilen in einem Script enthalten sein müssen weil es sonst nicht läuft.

Ich glaube nicht, dass im TES-Script bestimmte Leerzeilen existieren müssen. Ist generell unüblich, dass eine Leerzeile quasi zur Syntax gehört. Die Leerzeilen macht man ja nur der Gliederung der Anweisungen und der Übersichtlichkeit wegen.

Ein entsprechendes Tool kenn ich nicht und auch Wrye Bash und Tes4Gecko beinhalten keine solche Funktion. Wobei es sein könnte, dass Gecko beim cleanen die Leerzeilen entfernt, glaube ich aber eher nicht.

Vielleicht wendest du dich damit mal an Wrye. Der kann das mit Sicherheit umsetzen.
 
  • Like
Reaktionen: 1 Person
Das Script geht immer noch net:

Code:
scn scriptname

short doonce

begin gameMode

       if getDistance player < 700 && doonce == 0
            StreamMusic "data\music\..."
            set doonce to 1
       endif

end
 
Hi!

Wie kann ich eigentlich von einem Script aus auf Variablen zugreifen, die in einem Quest Script angelegt wurden? Laut CS-Wiki geht's, aber ich hab nicht gefunden wie genau.

CS-Wiki schrieb:
Quest variables can still be accessed and modified when the quest is not running. When a quest is stopped, its script is not being processed, but it still exists and the state of the variables remains intact.

Bedeutet das gleichzeitig, dass im Quest eigentlich gar keine Queststages brauche wenn ich alles über das Script regeln kann?
 
Zuletzt bearbeitet:
Ich denke schon, dass du Stages brauchst.

Das heißt ja grob übersetzt das:
"Auf Questvariablen kann man immer noch zugreifen und sie verändern, wenn die Quest nicht läuft. Wenn eine Quest gestoppt ist, läuft ihr Script nicht weiter, aber es ist weiterhin vorhanden und die Werte der Variablen bleiben erhalten."


Wenn die Quest also gestoppt wird (Befehl "StopQuest"), wird das Script ja nicht gelöscht und auch die Werte der Variablen bleiben erhalten.
Ist die Quest gestoppt, kann man sie entweder über StartQuest oder SetStage wieder starten oder weiterlaufen lassen.

Wie du mit einem Script auf eine Variable aus einem Questscript zugreifen kannst, steht auf der Seite, von der du zitiert hast:
fQuestDelayTime may be set from another script by addressing the quest, e.g. set MyQuest.fQuestDelayTime to 0.01.

Das sollte auch für die anderen Variablen funktionieren.
Von der Form her also so:
Code:
set [Quest-ID].[Variable] to [Wert]
 
  • Like
Reaktionen: T-Rip
Danke!

Ich hab mich etwas unglücklich ausgedrückt. Ich hätte ne Variable aus nem Quest abfragen wollen. Das scheint nämlich nicht zu funktionieren. Also z.B.
Code:
set variable to quest.variable

Wenn das gar nicht geht, dann mach ich halt ne Globale oder speicher den Wert einfach in dem anderen Script, statt im Quest-Script.
 
Ich bräuchte auch mal ein Skript.

Damit jede Kreatur, jeder Npc mir folgt auf dem das Skript liegt.
Also damit sich eine MessageBox mit "Folgen, Warten usw." öffnet wenn ich mit dem Npc, der Kreatur "Rede".

Also ein Begleiter Skript. Für Kreaturen und Npcs.

Wie würde das dann aussehen ?


Mfg Master of Worlds
 
Danke, hat mir schon einmal geholfen.

Nun bräuchte ich gerade noch etwas.

Der Spieler soll beim töten eines Nps einschlafen. Dann soll er wo anders wieder aufwachen und zwar Ohne Items.
Dann auch noch ein zweites Skript, damit der Spieler seine Gegenstände wiederzurück bekommt.

Also ist der anfang richtig ? Wie geht es dann weiter ?

Code:
scn WQGA

begin onDeath

endif
end

begin Gamemode
WakeUpPc
player.removeallitems [Kisten Reference]
player.saa 0.4
player.pms GhostEffect
player.additem [Objekt-ID einer Robe]
player.additem [Objekt-ID von einem paar Schuhen]
endif
end



Mfg Master of Worlds