PC Darkstar One - Modding

Norbert

Moderator
Teammitglied
Einbinden und Aktivieren eigener Musik in den Missionen

So, hier die versprochene Beschreibung zum Einbinden eigener Musik.

Bei der hier beschriebenen Vorgehensweise wird der Zugriff auf die Musikstücke global installiert, gelten also für das gesamte Spiel und für jede beliebige darin installierte Mod. Ich halte das für einfacher und ist mit weniger Arbeit verbunden, als wenn man für jede einzelne Mod erst umständlich eine "user_sounds.xml" mit zugehöriger Verzeichnisstruktur über den KlangKollektor erstellen würde. Siehe hierzu auch das Modding Guide, Punkt 6 "Eigene Sounds".


Als erstes wird im Installationsverzeichnis der DSO ein neuer Ordner namens "grp_USER" im Unterverzeichnis "\sound\music(stream)\" angelegt.
Der vollständige Pfad lautet somit z.B.:
E:\Darkstar One\sound\music(stream)\grp_USER\
Den Ordner "E:\Darkstar One" hier entsprechend dem eigenen PC anpassen.
In diesen Ordner werden alle Musikstücke kopiert, die man im Spiel verwenden möchte, vorzugsweise im mp3-Format. Andere Formate müssten auch gehen, habe ich aber bisher außer .wav noch nicht probiert.

Als nächstes sucht ihr im Hauptverzeichnis der DSO die Datei "KlangErzeugerDefault.xml" und öffnet sie mit einem Texteditor (nicht Word o.ä.!). Dort wird am Ende der Datei die neue Gruppe USER eingetragen und darin dann die Streams aller Musikstücke.
Der Stream hat die folgenden Parameter:
  • Name= Der Name kann beliebig gewählt werden, er muss jedoch eindeutig sein und darf nur einmal in der Datei vorkommen. Mit diesem Namen wird später der Musiktitel aufgerufen.
  • Resrc= Relativer Pfad und Dateiname mit Erweiterung (z.B. .mp3, Pfad ohne den Namen vom Installationsordner)
  • Channels= Kanäle, "1" = Mono, "2" = Stereo
  • Duration= Dauer der Musik, Wert entspricht der Samplingrate * Länge in Sekunden
  • Freq= Samplingrate des Stücks
Ist man sich über Länge, Kanäle und Abtastrate (Samplingrate) des Stücks nicht sicher, kann man das einfach in den Eigenschaften der Datei herausfinden (siehe Bild).
Rechter Mausklick auf die Musikdatei im Dateimanager -> Eigenschaften -> Dateiinfo -> Button "Erweitert >>".
Die Abtastrate 44 kHz entspricht dabei dem genauen Wert von 44100 (Hz) für den Parameter Freq.

Und so sieht das dann aus, ist einfacher, als die lange Beschreibung oben vermuten lässt (Auszug aus der KlangErzeugerDefault.xml):
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ASE_Database>
  ...
  <Group Name="USER" Volume="1.6" Wet="0.0">
    <Stream Name="TangerineDream_Hyperborea" Resrc="sound\music(stream)\grp_USER\TangerineDream_Hyperborea.mp3" Channels="2" Duration=":23351890" Freq="44100" />
    <Stream Name="Loveparade2002" Resrc="sound\music(stream)\grp_USER\Loveparade2002.mp3" Channels="2" Duration=":9132534" Freq="44100" />
  </Group>
</ASE_Database>


In der Einstellungsdatei Options.lua im Ordner "scripts" der Mod findet ihr die Tabelle CUSTOM_MUSIC_LIST:
Code:
CUSTOM_MUSIC_LIST = {
	[1] = "USER.TangerineDream_Hyperborea",
	[2] = "USER.Loveparade2002",
	[3] = "USER.Meine_Lieblingsmusik",
}
Hier werden nun alle gewünschten Namen der in der KlangErzeugerDefault.xml eingetragenen Musiktitel zwischen den geschweiften Klammern eingetragen. Achtet dabei auf die exakte Schreibweise: Groß-/Kleinschreibung ist nicht egal, der Name muss genau mit dem in der KlangErzeugerDefault.xml eingetragenen übereinstimmen. Auch nicht das Komma am Ende vergessen, sonst Absturz. Beim Namen des Musiktitels zwischen den Anführungszeichen ist ein Schreibfehler dagegen nicht weiter schlimm, der Titel existiert dann für das Programm einfach nicht und es passiert weiter nichts. Dasselbe auch, wenn das angegebene Musikstück tatsächlich nicht vorhanden ist, wie das zu 100% bei euch mit der mitgelieferten Options.lua und den beiden Einträgen darin der Fall sein dürfte. Könnt ihr ja gleich mal anpassen, sobald die weiter oben stehenden Schritte ausgeführt wurden.

Den laufenden Index ([1]= usw.) am Anfang könnte man zwar weglassen, dient jedoch der besseren Übersicht. Bei vielen Einträgen muss man so nicht erst abzählen, an welcher Stelle dieser Tabelle ein gewünschter Eintrag steht. Auch hier bitte darauf achten, dass der Index nicht doppelt vorkommt. Dieser Index wird dann bei der entsprechenden Option einer Mission eingetragen. Am Besten kopiert ihr für neue Einträge einfach eine der vorhandenen Zeilen und passt anschließend Index und Titel an.

Momentan unterstützen zwei der Missionen diese neue Option, die "Camera Tutorial 1" und die "Camera Tutorial 3":
Code:
SCRIPT_TUTCAM_MUSIC = 2
SCRIPT_TUTCAM3_MUSIC = 1
Für die anderen Missionen macht das z.Z. noch wenig Sinn.


Nochmal der Hinweis zur Erinnerung:

Die Einstellungsdatei Options.lua ist ein echtes ausführbares Lua-Skript, also ein richtiges Programmteil, auch wenn hier nur Variablen definiert sind. Schreibfehler und nicht mit 2 Bindestrichen auskommentierte Texte darin nennt man auch Syntaxfehler und führen in den meisten Fällen zum Absturz des Spiels. Überprüft also bitte vorgenommene Änderungen immer genau, dass sie auch korrekt sind.
 

Anhänge

  • Dateieigenschaften.jpg
    Dateieigenschaften.jpg
    56,5 KB · Aufrufe: 209
Zuletzt bearbeitet:

TornadoX1

treuer Stammgast
Danke für das Update Norbert. Zum spielen werde ich wohl erst nächste Woche kommen, aber dann mal richtig von vorne mit allen drum und dran.

Und wie immer habe ich auch meinen FAQ aktualisiert. Link findet ihr in meiner Signatur.

Dann wünsch ich euch allen noch ein schönes Wochenende:)
 

Norbert

Moderator
Teammitglied
Hallo Tornado!

Deinen FAQ-Thread betreffend, könntest du der Vollständigkeit halber eigentlich auch einen Link auf die grafische Mod von @Mag dort setzen:
Darkstar One - Grafik-Mods (PC-Version)
Du brauchst die Mods ja nicht bei dir hochladen, da sie von Mario bereits über Rapidshare zum Download angeboten werden.

Dir und allen anderen wünsche ich auch ein schönes WE :)
 

Ares227

bekommt Übersicht
Hallo erstmal,

erstens, vielen Dank an Norbert für diese super Mod. Hat mich wirklich Lust gegeben DSO nochmal zu spielen.
Nun leider habe ich ein Problem mit der Hauptstory.
Ich bin noch ziemlich am Anfang der Story. Eona ist gerade in meinen Schiff eingestiegen und wir fliegen von Anomi nach Kalima im Barnard System. Dann tauchen ein paar Gegner auf aber sind weder auf der Liste noch sind sie rot. Ich kann sie nicht mal anvisieren. Ich schiesse sie dennoch ab und fliege nach Yankvalla wo eine Sequenz ankommender feindlichen Schiffe erscheint. Nachdem ich sie abgeschossen habe fliege ich nach Sol System wo ich Delano auf der Handelsstation treffen soll aber er ist weder auf der HS noch irgendwo im System und die mission geht nicht weiter.

Meine Installation:
DSO DVD Ger ungepatcht von Ubisoft. (glaube war die erste Version von damals)
Patch 1.3 Ger
Versteckte Cluster Mod 1.3.

PS: war sogar ein bisschen weiter mit der Story bevor ich diese Mod installiert habe und lief noch einwandfrei.
Den Installationsanweisungen der Mod bin ich gefolgt. Ich habe auch kein Flak patch verwendet.

Zum testen habe ich ein save hochgeladen.
 

Anhänge

  • test.zip
    179,5 KB · Aufrufe: 106

Norbert

Moderator
Teammitglied
Hallo und herzlich Willkommen im Forum, Ares227! :)

Das mit den im Zielcomputer unsichtbaren und nicht anwählbaren Gegnern ist eine der neuen Zufallsmissionen im Spiel. Sie soll dem Spieler durch Übung ein Gefühl für den richtigen Vorhaltewinkel beim Schießen geben, ohne dass er dabei vom Zielcomputer unterstützt wird. Falls du schon Geschütztürme hast, wirst du auch bemerken, dass die wegen den fehlenden Zielmarkierungen nicht zu schießen anfangen. Die Gegner sind kaum gefährlich, es soll nur eine kleine Geschicklichkeitsübung sein.

Bei deinem Spielstand schau ich mir gleich mal an, wo es da klemmt und melde mich dann wieder.
PS: war sogar ein bisschen weiter mit der Story bevor ich diese Mod installiert habe und lief noch einwandfrei.
Könnte sein, dass es damit zusammenhängt, weil du einen Spielstand aus dem Originalspiel verwendet hast. Die sind oft inkompatibel mit der Mod.
 
Zuletzt bearbeitet:

Ares227

bekommt Übersicht
wow es ging schnell :)

also wenn s so ist dann bin ich erleichtert.

Könnte sein, dass es damit zusammenhängt, weil du einen Spielstand aus dem Originalspiel verwendet hast. Die sind oft inkompatibel mit der Mod.

Ich habe vergessen zu erwähnen dass ich extra für die Mod (ist doch eine Mod oder ??) ein neues Spiel angefangen habe. Ich wollte es von anfang an geniessen :)

Ich hoffe du wirdst den Fehler finden. Vielen Dank im voraus ;)
 

Norbert

Moderator
Teammitglied
Ok, ist behoben. Da war tatsächlich ein Fehler in der Mission durch einen Wortverdreher drin.
Zwei sehr ähnliche Funktionen hatte ich darin versehentlich verwechselt.
Da muss ich gleich mal schauen, dass das nicht noch irgendwo passiert ist.
Ich sollte zukünftig Änderungen in letzter Minute besser vermeiden. :angel

Anbei der neue Spielstand, du kannst aber auch die Mod nochmal herunterladen und die Datei user_scripts.bin austauschen. Die habe ich mit der korrigierten Version erneuert. Damit funktioniert auch dein Spielstand wieder.

Trotzdem lade ich dir hier den Spielstand nach der Landung im Solsystem mal mit hoch.

PS:
Ich habe vergessen zu erwähnen dass ich extra für die Mod (ist doch eine Mod oder ??) ein neues Spiel angefangen habe.
Ja, das sah mir auch danach aus. Ansonsten hätten nämlich die Positionen der Sternsysteme im Cluster Tau Ceti nicht gestimmt, die liegen im Original 5 Lichtjahre höher.
Und ja, das ist eine Mod. Die einzige auf der ganzen Welt, wie es scheint, welche neue Skripts und damit neue Missionen enthält. Alle anderen sind "nur" INI-Mods.

edit:
Ich habe auch kein Flak patch verwendet.
Den benötigst du in der Mod auch nicht mehr, dafür gibt es jetzt eine Reihe von Einstellmöglichkeiten in der Datei Options.lua.
 

Anhänge

  • Sol - Treffen mit Delano.zip
    182 KB · Aufrufe: 42
Zuletzt bearbeitet:

Ares227

bekommt Übersicht
Vielen Dank Norbert,

es hat mir weitergeholfen. Dennoch muss ich leider sagen dass ich ein weiteres Problem habe. Ich bin ein bisschen mit der Story weitergekommen und verteidige die Forschungsstation der Mortoks gegen die "Thuls".
Wenn ich bereits gegen die 2. Angrifswelle kämpfe stürzt das Spiel ab mit dem folgenden Bericht.

Error
--------------------------------
attempt to call a nil value
Executed script: 'STORY_005'

LUA callstack
--------------------------------
Called from (Lua) function '?^ in file `STORY_005.lua' defined in line 336
Called from (Lua) function '?^ in file `STORY_005.lua' defined in line 180

Source
--------------------------------
file `STORY_005.lua' in line 208

PS: Ich habe die Mod nochmal heruntergeladen und die Datei user_scripts.bin ausgetauscht. Ich spiele sonst weiter mit meinem vorhigen Save. Ansonsten nichts gemacht.
 

Norbert

Moderator
Teammitglied
Gerade diese Mission hatte ich bis zur Vergasung getestet, und trotzdem noch ein Fehler. :(
Da hat möglicherweise die Reihenfolge der lokalen Funktionen nicht gepasst.
Hab's mal geändert und lade dir das Skript hier hoch.
Du musst es nur in den Ordner "scripts" der Mod entpacken und den letzten Spielstand neu laden.

Ich baue das dann später in die Binärdatei ein, wenn es damit jetzt funktioniert.
Selber kann ich das gerade nicht testen, da ich momentan keinen passenden Spielstand dafür habe.
 

Anhänge

  • STORY_005.zip
    4,1 KB · Aufrufe: 38

Norbert

Moderator
Teammitglied
Fehlerbereinigung

Na, das freut mich auch.
Bin gerade dabei, zu überprüfen, ob sonst noch irgendwo so ähnliche Fehler stecken.
Hab's fast durch und sieht zum Glück gut aus. Morgen wird dann auch der große Download auf dem neuesten und hoffentlich fehlerlosen Stand sein.


edit:
So, "morgen" ist jetzt heute. :)
Die beiden von Ares227 berichteten Fehler sind korrigiert, die Datei user_scripts.bin wurde neu kompiliert und das Mod-Paket frisch im Startbeitrag hochgeladen. Es muss aber nicht die ganze Mod v1.3 neu installiert werden, ein Austausch der user_scripts.bin genügt. Ich habe sie daher nochmal zusätzlich als Einzeldownload oben mit angehängt.

Viel Spaß und hoffentlich keine Fehler mehr mit der neuen Mod. :)
 
Zuletzt bearbeitet:

Ares227

bekommt Übersicht
oh man aber echt. Kaum die nächste Mission angenommen stürzt das Spiel ab.

Error
--------------------------------
attempt to call field `SetStoryTarget' (a nil value)
Executed script: 'STORY_007_01'

LUA callstack
--------------------------------
Called from (Lua) function '?^ in file `STORY_007_01.lua' defined in line 75

Source
--------------------------------
file `STORY_007_01.lua' in line 76
 

Norbert

Moderator
Teammitglied
Sorry, da hatte ich dieses Skript übersehen und vergessen anzupassen, als ich an zentraler Stelle eine Funktion geändert hatte. Ist korrigiert.

Selbiges wie vorgestern, Austausch der user_scripts.bin genügt, wenn die Mod-Version 1.3 bereits installiert ist.
 
Zuletzt bearbeitet:

Ares227

bekommt Übersicht
yeahh Danke für die rasche Reaktion. Ich werde mal heute Abend probieren :)
Wenn du soweiter machst kriegst du die Ehrenmedialle :D
 

Ares227

bekommt Übersicht
Hey Danke es läuft weiter.
Ich glaube ich habe einfach kein Glück. Ich nehme gerade einige Missionen an und bekomme einen Absturz später.

CMission::Create - Creation of 'PASSIVE_018' failed! OnInit returned 0!
 

TornadoX1

treuer Stammgast
Ich habe jetzt einen Absturz bei Annahme des Sidequest in Raptor Epsilon:
Code:
- <message>
- <![CDATA[ Error
--------------------------------
attempt to call field `SetAsMissionTarget' (a nil value)
Executed script: 'BAR_013'

LUA callstack
--------------------------------
Called from (Lua) function '?^ in file `BAR_013.lua' defined in line 278

Source
--------------------------------
file `BAR_013.lua' in line 280
  ]]> 
  </message>

PS: Du bist nicht allein;)
 

Norbert

Moderator
Teammitglied
So was Dummes aber auch, das muss aus Versehen bei einer der letzten Korrekturen passiert sein. :eek:
Die in der Fehlermeldung angezeigte Funktion gibt es in der MissionLibEx.lua, wo sie vom Skript aufgerufen wird, überhaupt nicht.
Der Test ist noch gar nicht lange her und da klappte noch alles.

Hab's berichtigt und alles neu hoch geschubst. :)

PS: Du bist nicht allein;)
Danke,(y) alleine lassen sich auch gar nicht alle Möglichkeiten testen.
Und gut, dass die Fehler gleich jetzt so ziemlich am Anfang zu Tage treten.


edit: Hoppla, Ares' Meldung hätte ich fast übersehen.

Diese Zufallsmissionen von Ascaron bringen mich noch zur Verzweiflung. Das ist wieder einer der Fehler, der nur ganz selten auftritt und kaum reproduzierbar ist. In den allermeisten Fällen ist er nach dem erneuten Laden des letzten Spielstands wieder weg. Ich selber hatte den während den ganzen letzten Tests und seit Monaten nicht mehr. Mittlerweile kann ich mir schon denken, warum der Hersteller deren Ausführung mit der DSO-Version 1.3 drastisch reduziert hat, die haben das wohl auch nicht gebacken gekriegt. Ich schau mir diese Missionen nochmal durch und sehe zu, was sich machen lässt.

So, fertig: user_scripts.bin und Mod-Paket sind auch erneuert.
 
Zuletzt bearbeitet:

TornadoX1

treuer Stammgast
Danke für den Fix, geht alles.

Aber ich glaube, dass die Nebenmission, wie gut sie auch sind, wohl am besten wieder entfernt werden. Das problem bei diesen Missionen ist, dass sehr viele mit einer Ingame Cutszene ausgeführt werden. Hat man aber einen Sideqauest oder einen Sotry Mission begonnen können diese Cutszens einen das Leben schwer machen. Mir ist es passiert bei der ersten Mission mit Hornblower. Im System angekommen und gleich 3 Zufallsmissionen getriggert. Ich stecke also in den Cutszenen fest und während dessen wurde mir mein Schiff zerschossen und so ging es mir auch bei anderen Missionen.

Ich weiß, dass viel Arbeit drin steckt, aber das diese Missionen deaktiviert wurden sind hat wohl einen Grund wie mein Problem oben beschrieben.
 
Zuletzt bearbeitet:
Oben