Page 1 of 8

Mission Director Grundlagen und Installation

Posted: Wed, 2. Jan 08, 18:10
by CBJ
Ab X³: Reunion 2.5 steht der Mission Director allen interessierten Moddern zur Verfügung. Der Mission Director ist ausschließlich in modifizierten Spielständen verfügbar, daher muss entweder der Script Editor aktiviert oder ein Mod geladen sein.

Was ist der Mission Director
Der Mission Director, oder kurz MD, ist ein neues Hilfsmittel zum Erstellen von Missionen in X³: Reunion. Er nutzt ein XML basiertes Framework, das außerhalb des Spiels bearbeitet werden kann, und funktioniert ähnlich wie ein Plug-In. Der MD ist keine Programmiersprache. Programmierer werden möglicherweise feststellen, daß sie ein klein wenig umdenken müssen um Missionen zu erstellen, während Anfänger es leichter haben werden als beim Erlernen einer kompletten Programmiersprache. Wenn du dich mit der Struktur des X-Universums auskennst, ist der Code vermutlich selbsterklärend.

Vergleich des Mission Directors mit dem Script Editor
Du fragst dich vielleicht, was den Mission Director vom Script Editor bzw. anderen Programmiersprachen unterscheidet. Du wirst feststellen, daß einige Aktionen im MD einigen Kommandos des Script Editors sehr ähneln. Abgesehen von einigen logischen Grundlagen enden damit aber auch schon die Gemeinsamkeiten. Wenn du je versucht hast mit dem Script Editor eine Mission zu erstellen wirst du schnell an Grenzen gestossen sein, die die Entwicklung entweder unmöglich oder zumindest äußerst zeitraubend gemacht haben. Die einfache Antwort ist, daß der Script Editor nicht zum Entwickeln von Missionen entworfen wurde.

Der aktuelle Status des Mission Director
Der Mission Director steht dir, ähnlich wie die Skripte und Mods, zur Entwicklung und Verbeitung innerhalb der Modding Community zur Verfügung. In der aktuellen Entwicklungsphase wird der Mission Director nicht von Egosoft supported. Unterstützung steht dank einiger Freiwilliger über die Foren zur Verfügung. Probleme im Programmcode oder den XML Schemata werden allerdings nicht behoben. Es gibt eine Reihe kleinerer, bekannter Probleme, von denen jedoch keines die Nutzung des Mission Directors nachhaltig beeinflussen sollte.

Wie wird der Mission Director installiert
Die Mission Director Dateien können hier heruntergeladen werden: X³: Reunion Mission Director support files

Der Ordner 'director' gehört in das X³: Reunion Verzeichnis. Dieser Ordner enthält vorerst keine Missionen, jedoch sind im Ordner 'sample' einige Beispiele vorhanden. Diese müssen in den 'director' Ordner verschoben werden, um sie im Spiel nutzen zu können.

Wie werden Missionen bearbeitet
Genau wie Scripts sind Missionen XML-Dateien. Anders als Scripte werden sie jedoch außerhalb des Spiels bearbeitet, daher wird ein XML-Editor benötigt. Wir empfehlen insbesondere die kostenlos verfügbare Microsoft Visual Web Developer 2008 Express Edition. Genauso gut können aber auch Visual Studio.NET 2005/2008 und Visual Web Developer 2005 genutzt werden, falls diese bereits vorhanden sind.

Die zur Verfügung gestellten Mission Director Schema Dateien helfen bei der Erzeugung der XML Datei, indem alle verfügbaren Knoten und Attribute während der Bearbeitung angezeigt werden. Diese Funktion steht nur zur Verfügung, wenn sich die Schema Dateien im selben Verzeichnis wie die gerade bearbeitete XML Datei befinden.

Die Datei 'director.htm' kann mit jedem Browser geöffnet werden, wobei sich allerdings der IE, aufgrund von Einschränkungen der XML- und javasscript-Unterstützung in anderen Browsern, am besten eignet. Dadurch wird die Dokumentation aller Bedingungen, Aktionen und Variablen ebenso angezeigt wie Auflistungen verfügbarer Soundeffekte, Piloten-Gesichter, Stimmen und anderer nützlicher Dinge.

Im Ordner 'director' steht ein PDF-Leitfaden zur Verfügung. Dieser enthält eine komplette Auflistung der Ziele, Eigenschaften und Funktionen des Mission Directors.

Posted: Wed, 2. Jan 08, 18:48
by UniTrader
*die neuen Infos in die Totorial- und Tool-Sammlung einarbeitet*


Vielen dank CBJ :)

Posted: Thu, 3. Jan 08, 03:40
by -Ford-
Ah endlich... Vielen Dank CBJ. :)

(Hoffe hier darf man posten?! Falls nicht vielmals Entschuldigung und bitte diesen Post löschen)

Posted: Thu, 3. Jan 08, 07:22
by UniTrader
türlich darf man hier Posten, sonst wär das Topic doch zu :roll:

PS ich nutz den Post gleich mal für nen Vorschlag: lasst uns dieses Topic nutzen, um alle zu beginn auftretenden Fragen zum Mission Director zu sammeln damit das Forum übersichtlich bleibt.. und die mods bitte ich, alle evtl. aufkommenden Topics mit allgemeinen Fragen zum MD hier rein zu verschieben.. :)

Posted: Thu, 3. Jan 08, 12:31
by 369
@UniTrader: vorschlag akzeptiert :D

hätte da auch gleich mal ne frage:

ich hab das mit der director.dmp irgendwie nicht ganz verstanden, glaub ich. das soll wohl ne art logfile im x3 root verzeichnis sein, aber muss man das erst irgendwo einstellen, oder kommt die von alleine? ich konnte bei mir nix finden.

Posted: Thu, 3. Jan 08, 13:08
by Moonraven
Soweit ich das verstanden habe, wird sie automatisch erzeugt.


Nun meine Frage :D


Hat es jemand schon geschafft, die Videos mit dem MD zum laufen zu bringen ?

Ich hab das einfach mal versucht mit dem 00800.dat-Video im MOV ordner. Es wird korrekt gefaded und er zeigt mir auch den Anfang an. Dann hört das Video auf, und die normale Game-Grafik ist zum Teufel.

Posted: Thu, 3. Jan 08, 13:17
by 369
Moonraven wrote:Soweit ich das verstanden habe, wird sie automatisch erzeugt.
das hab ich auch so verstanden, aber ich konnte keine director.dmp finden...

Posted: Thu, 3. Jan 08, 13:47
by Diamonddragon
Die director.dmp ist in der veröffentlichten 2.5 Version deaktiviert worden, da es Performanceprobleme gab.
Bzgl. dem movie: die action funktioniert nicht korrekt. Alternativ müsste es doch möglich sein das Video über ein Script zu starten, oder? Denn scripte kann man über den MD ja starten.

Posted: Thu, 3. Jan 08, 14:02
by SymTec ltd.
Dass man Movies per Script starten kann, wäre mir neu. :roll:

Posted: Thu, 3. Jan 08, 14:18
by 369
Diamonddragon wrote:Die director.dmp ist in der veröffentlichten 2.5 Version deaktiviert worden, da es Performanceprobleme gab.
:idea:

thx, Diamonddragon. wollte gerade x3 vanilla paralell installieren. meine festplatte wirds dir danken :D

Posted: Thu, 3. Jan 08, 15:18
by alles
Schade, die Anleitung ist ja nur auf Englisch :cry:

Da ich leider mit Englisch auf dem Kriegsfuß stehe, wollte ich doch mal vorsichtig anfragen, ob man auf eine deutsche Übersetzung hoffen kann?

cu
alles

Posted: Thu, 3. Jan 08, 15:19
by Moonraven
Danke Diamonddragon, anscheinend hab ich nen göttlichen Finger. Ich erwisch immer die Sachen die noch nicht so ganz funktionieren. :D

Videos kann man leider nicht über den Script-Editor abspielen.

Posted: Thu, 3. Jan 08, 15:44
by 369
nochmal ich :D

ich spiele gerade ein wenig mit den librarys rum. ist ja eigentlich ne tolle sache, aber:

muss eine library innerhalb des parent cues sein, oder kann man librarys auch in andere xml dateien auslagern? und wenn ja, wie?

:arrow: meine grundüberlegung wäre folgende: wenn man ein x-beliebiges szenario nimmt in dem eine gegnerflotte erstellt werden soll, dann könnte man eine lib mit vanilla schiffen nehmen und quasi als patch eine lib mit xtm schiffen zur verfügung stellen..

Posted: Thu, 3. Jan 08, 15:55
by XGamer
Im Grunde kannst du da jede entsprechende XML Datei im Ordner vom Spiel geladen wird die library cue in eine eigene Datei schreiben und von deiner Mission aus aufrufen... Daher muss auch darauf geachtet werden das die cue namen einzigartig sind, da ansonsten Probleme auftauchen können bei mehreren Missionen im Ordner.

Posted: Thu, 3. Jan 08, 16:00
by Diamonddragon
Du kannst libs in eine x-beliebige xml auslagern und diese in einer anderen XML aufrufen.
Die lib erstellst du ja einfach wie nen normalen cue, nur mit library="1". Dort dann die actions etc.

In dem cue wo du dann die lib aufrufst, nimmst du dann entweder das ref="cuename" Attribut im cue tag oder im <action> tag. Wenn du das im action tag machst, kannst du mit params der library Parameter übergeben.

Posted: Thu, 3. Jan 08, 16:08
by 369
genau so hab ichs gemacht, aber da ist wohl noch irgendwo n fehlerchen drin, weil funktioneieren tuts nicht... :gruebel:

EDIT:

habs gefunden: hatte aus versehen beim verschieben eines kommentar-end-tags die schließende klammer eines cues-tags mitverschoben. :shock:

jetzt klappts 8)

EDIT 2:

so klappts:

Code: Select all

<cue name="mission.single.369.testing.main">
      <condition>
        ....
      </condition>
      <cues>
        <cue ref="mission.lib.369.create.m6" />
      </cues>
</cue>
so nicht??

Code: Select all

<cue name="mission.single.369.testing.main">
      <condition>
        ....
      </condition>
     <action ref="mission.lib.369.create.m6" />
</cue>

Posted: Thu, 3. Jan 08, 16:42
by XGamer
Bei der zweiten Methode wird nur der Action part also alles was zwischen

Code: Select all

<action>
... und ....
</action>
steht kopiert und in deine aktuelle Cue übernommen und dann ausgeführt.


Bei der ersten Variante wird die komplette Library Cue in eine Subcue deiner aktuellen kopiert und dort werden dann nocheinmal die conditions der library cue überprüft (sofern diese welche hat) bevor die action ausgeführt wird.

Normalerweise müsste es in beiden Fällen wunderbar klappen...
Du könntest aber mal den Code der library Cue posten vlt. ist da ja ein Fehler der erklärt wieso es mit der zweiten Methode nicht funktioniert...

Posted: Thu, 3. Jan 08, 16:44
by 369
klar, hier die komplette lib:

Code: Select all

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="director.xsl" type="text/xsl" ?>
<director name="libs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="director.xsd">
    <documentation>
      <author name="369" alias="369" contact="369@layer-acht.net" />
      <content reference="Library" name="lib.369" description="MD Training Library" />
      <version number="1" date="today" status="testing" />
    </documentation>
  <cues>
    <!-- cues go here -->
    <cue name="mission.lib.369.create.xfs" library="1" comment="Creates a small Xenon fleet">
      <action>
        <do_all>
          <create_ship name="this.opp1" class="m6" race="xenon" typename="SS_SH_X_M6" racelogic="0">
            <position x="0" y="0" z="0"/>
            <sector x="13" y="4"/>
            <equipment loadout="maximum"/>
            <command command="killenemies" />
            <pilot name="UO" race="xenon"/>
          </create_ship>
          <create_ship name="this.opp2" class="m6" race="xenon" typename="SS_SH_X_M6" racelogic="0">
            <position x="0" y="0" z="0"/>
            <sector x="13" y="4"/>
            <equipment loadout="maximum"/>
            <command command="protect" commandobject="this.opp1" />
            <pilot name="UO" race="xenon"/>
          </create_ship>
        </do_all>
      </action>
    </cue>
  </cues>
</director>

Posted: Thu, 3. Jan 08, 16:54
by XGamer
Nun in diesem Falle wird keines deiner vorherigen Beispiele klappen da du eine cue referenzierst welche nicht existiert.

Zur Erinnerung: Du rufst auf: missison.lib.369.create.m6
aber definiert hast du: mission.lib.369.create.xfs

Desweiteren wirst du immer nur ein einziges Schiff (wenn überhaupt) erstellen da du innerhalb einer Millisekunde zwei Schiffe an exakt demselben Ort erstellst!!! Daher wird mindestens eines von beiden zerstört! Es ist empfehlenswert

Code: Select all

<position max="8km">
zu nutzen anstatt eine exakte Position anzugeben. Dann werden die Schiffe so positioniert das sie nicht ineinander stehen!

Desweiteren musst du nicht alle deine nodes angeben kannst dies aber natürlich machen. <pilot> zum Beispiel kannst du ohne weiteres weglassen...

Posted: Thu, 3. Jan 08, 17:02
by 369
@XGamer:

sry, hatte mittlerweile schon etwas weitergemacht. den lib namen hab ich natürlich in meiner referenzierenden cue ebenfalls geändert (nur halt impost oben nicht :D )

btw, beide schiffe an der selben stelle hat geklappt :o
ganz ohne beschädigungen sogar. ist aber bereits geändert (copy & paste halt)