* NEUHEIT * Sprachausgabe bei Stationswaren!

Hier ist der ideale Ort um über Scripts und Mods für X²: Die Bedrohung zu diskutieren.

Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators

Post Reply
User avatar
SpaceTycoon
Posts: 1190
Joined: Wed, 6. Nov 02, 20:31
x4

* NEUHEIT * Sprachausgabe bei Stationswaren!

Post by SpaceTycoon » Tue, 13. Apr 04, 00:11

Hallo Mitleidende,
ich bin seit Tagen auch am scripten und will's perfekt haben :)

Und da bin ich dann nach langer Suche :gruebel: drauf gekommen, wie die Sprachausgabe (und parallele Textausgabe unten rechts im Bildschirm) bei Stationswaren funktioniert. :D

Anmerkung:
@Alle Autoren der Beiträge die das Einbinden von Scripten und Sprachdateien erklärten, sollten vielleicht Ihre Beiträge ergänzen/ändern. :wink:

Und so sieht das aus:

Bisher ist in allen Tutorials zu lesen, man solle die Sprachdateien 49xxxx.xml/44xxxx.xml im Verzeichnis \t so aufbauen (Beispiel für eine Schiffsausrüstung für 1572 Credits in einem Ausrüstungsdock):

Code: Select all

- <language id="49">
- <page id="17" title="Boardcomp. objects" descr="Produktname">
  <t id="5793">Irgendeine neue Schiffsausrüstung</t> 
  </page>
Nachdem ich die entpackte 490001.xml aus der 04.dat mal genauer unter die Lupe nahm ist mir aufgefallen:

Im Abschnitt Page ID 17 dieser Datei ist dort jede Ware aufgeführt, die in irgendeiner Fabrik zu kaufen ist. Einmal mit ihrer Bezeichnung, so wie man sie in der Fabrik/Dock in der Liste sieht und darunter mit nächst höherer Nummer steht der Text, welcher bei Markierung der Ware in Dock oder Fabrik vorgelesen wird und rechts unten erscheint.
Insofern: Wenn obiger Code in einer eigenen 49xxxx.xml wie folgt ergänzt wird:

Code: Select all

- <language id="49">
- <page id="17" title="Boardcomp. objects" descr="Produktname">
  <t id="5793">Irgendeine neue Schiffsausrüstung</t> 
  <t id="5794">{17,5665}</t> 
  </page>
bekommt man vom Computer per Sprachausgabe in der Fabrik/Dock den Text angesagt sowie unten rechts angezeigt, der in der Originaldatei 490001.xml bzw. 440001.xml unter Page ID 17, Text ID 5665 eingetragen ist. Text ID {17,5665} in 490001.xml ist übrigens (müßt nicht nachschauen):

Code: Select all

<t id="5665">Dies ist eine Softwareerweiterung für alle gängigen Schiffscomputer Modelle. Erweiterte Kommandos werden durch ihre Installation der Kommandokonsole eines Schiffs hinzugefügt.</t> 
Würde man in seiner eigenen Sprachdatei 49xxxx.xml unter Page ID 17 Boardcomp. objects statt der im obigen Beispiel zu sehenden
<t id="5794">{17,5665}</t>
die Nummer {17,9002} eintragen, käme in der Fabrik bei Markierung der Ware zum Beispiel der Text und die Sprachausgabe

Code: Select all

<t id="9002">Über dieses Objekt sind in der Datenbank des Bordcomputers keine Daten verfügbar.</t> 
D.h. - Sprachausgabe innerhalb einer Fabrik bei Warenein-/verkauf wird über die Sprachdatei im \t-Verzeichnis gesteuert - nicht im Scriptcode.
Die obige Nummer 5794 gibt es übrigens im ganzen X2-Programm nicht. Ich hab sie einfach "erfunden". Da in der originalen "490001.xml" der Sprachtext immer eine Nummer höher ist als die Nummer der Warenbezeichnung, habe ich das in der eigenen Sprachdatei (sh. obiges Beispiel) einfach mal genauso gemacht - und siehe da - es klappt. Das heißt, alle freien Artikelnummern von 17-57xx bis 17-59xx können mit einer vorhandenen Sprachausgabe aus der 490001.xml belegt werden, wenn man dafür einfach so vorgeht wie oben zu sehen.

-------------------------------

Und vielleicht noch zur Ergänzung, wie man passend zur üblichen "Verhaltensweise" von X2 einen Logbucheintrag gestalten sollte:

Code: Select all

001   play sample 1008
002  *Spielt das "Jingle" vor/bei Ansage "Eingehende Nachricht"
003  wait 500
004  * etwas Warten schadet bei Audiosachen nie sonst überschlägt sichs
005
006  play sample: incoming transmission [IncomingTransmission.Message], from object null
007  * Spricht eine von vier möglichen Sprachausgaben, die unter den
008  * Systemkonstanten (Select Constant - "Incoming..." aufgeführt sind
009  * in diesem Fall: "Eingehende Nachricht"
010
011   $nachricht = sprintf: pageid={DeineID} textid={DeineID}, [THIS], [ENVIRONMENT], null, null, null
012  * Die Nachricht, die aus Deinem Sprachfile 49xxxx.xml gelesen wird
013
014   send incoming message $nachricht to player: display it=[TRUE]
015  * Eintrag ins Log und gleichzeitige Anzeige
So läuft eine Lognachricht von einem Schiff an den Player genauso ab, wie es im Programm normal und üblich ist (abgesehen von der sofortigen Anzeige "display it=True").

Um die Sache komplett zu machen, hier die Textzeile, die in obiger Codezeile 11 aus der Sprachdatei im \t-Verzeichnis gelesen wird:

Code: Select all

<t id="1001">[author] Schiff [b]%s[/b][/author][text colwidth='500'][b]Ziel %s erreicht![/b] ...gehe in Bereitschaft...[/text]</t>
Das erste "%s" wird in der Nachricht durch [This] ersetzt, das zweite durch [Environment] und die b /b in eckigen Klammern schalten gelbe Schrift für den darin eingefaßten Textteil an bzw. aus.

Grüße und frohes Programmieren :D

ArcaJeth
Posts: 2245
Joined: Mon, 10. Nov 03, 18:22
x3tc

Post by ArcaJeth » Tue, 13. Apr 04, 00:31

Hallo,

also wie man die Beschreibung unten links hinbekommt hab ich auch schon mitbekommen - aber wirklich als Sprachausgabe kann man nix haben, was es noch nicht gibt. Dass es aber eine "allgemeingültige" Sprachstelle gibt war mir neu, das ist vielleicht ganz praktisch :)
So läuft eine Lognachricht von einem Schiff an den Player genauso ab, wie es im Programm normal und üblich ist (abgesehen von der sofortigen Anzeige "display it=True").
... dazu braucht man eigentlich auch nur das "send incoming message $nachricht to player: display it=[FLASE]" ... da kommt das "Palingpaling ... Eingehende Nachricht" und auch das kleine Symbol blinkt :) ... mit "display it=[TRUE]" kommt zwar keine akustische Meldung jedoch sieht man das ja ;)

Code: Select all

<t id="1001">[author] Schiff [b]%s[/b][/author][text colwidth='500'][b]Ziel %s erreicht![/b] ...gehe in Bereitschaft...[/text]</t>
Das erste "%s" wird in der Nachricht durch [This] ersetzt, das zweite durch [Environment] und die b /b in eckigen Klammern schalten gelbe Schrift für den darin eingefaßten Textteil an bzw. aus.
... nicht ganz, mit dem 'B' wird der Text fett dargestellt ;) ('I' wäre kursiv und 'U' unterstrichen) ... Gelb bekommst du das mit \033Y Text \033X :)

EDIT: ups :oops: b wird wirklich Gelb :-s und kursiv geht nicht - aber unterstrichen gibts *g*

User avatar
SpaceTycoon
Posts: 1190
Joined: Wed, 6. Nov 02, 20:31
x4

Post by SpaceTycoon » Tue, 13. Apr 04, 00:53

ArcaJeth[D6a] wrote:Hallo,
also wie man die Beschreibung unten links hinbekommt hab ich auch schon mitbekommen - aber wirklich als Sprachausgabe kann man nix haben, was es noch nicht gibt. Dass es aber eine "allgemeingültige" Sprachstelle gibt war mir neu, das ist vielleicht ganz praktisch :)
Natürlich kann man nur das als Sprachausgabe bekommen, was im Game hinterlegt ist und nicht vollkommen neue Texte gesprochen bekommen.
Aber die Texte in der 490001.xml unter Page ID 17 sind ja als Audio hinterlegt - diese bekommt man auf diese Weise aus dem Lautsprecher :)
ArcaJeth[D6a] wrote: ... nicht ganz, mit dem 'B' wird der Text fett dargestellt ;) ('I' wäre kursiv und 'U' unterstrichen) ... Gelb bekommst du das mit \033Y Text \033X :)
Bei mir ist's mit b gelb im Log. Wenn mir ein Screenshot von X2 gelingen würde, hätte ich einen verlinkt.
(Wie könnte ich das hinbekommen?)

Edit: Hupps, hast's ja schon richtig gestellt... :)

Edit2: Ach ja, weiß jemand, was unter dem Gravidar ganz rechts eigentlich dieses Zeichen (die komische Vase da) bedeutet?
Last edited by SpaceTycoon on Tue, 13. Apr 04, 01:03, edited 1 time in total.

User avatar
BurnIt!
EGOSOFT
EGOSOFT
Posts: 5073
Joined: Wed, 6. Nov 02, 20:31
x4

Post by BurnIt! » Tue, 13. Apr 04, 00:58

Nicht nötig - es stimmt [b] wird gelb - das liegt daran, dass die verwendete Schriftart bei Fettschrift Probleme machen würde (nicht mehr gut lesbar, Text an manchen Stellen unter Umständen breiter als der Platz dafür etc.)
Da [b] den Zweck hat Text hervorzuheben und das gelbe Farbe genauso tut - bewirkt [b] das gleiche wie \033Y
(neben Y gibt's da noch G, B, R, W und A müsste es auch noch geben) X wird für das löschen das Fabrattributs verwendet (d.h. danach geht's mit der Standard-Farbe weiter)
BurnIt!
In der Ruhe liegt die Kraft. / In peace lies strength.

User avatar
SpaceTycoon
Posts: 1190
Joined: Wed, 6. Nov 02, 20:31
x4

Post by SpaceTycoon » Tue, 13. Apr 04, 01:09

BurnIt! wrote:Nicht nötig - es stimmt wird gelb - das liegt daran, dass die verwendete Schriftart bei Fettschrift Probleme machen würde


Danke. Bei Eurer Handelssoftware MK3 wird in den Ausrüstungsdocks auch noch nichts gesprochen oder angezeigt. Für das Patch 1.4 solltet Ihr vielleicht diesen kleinen Schönheitsfehler korrigieren und in die 490001.xml (und in die englische) unter Page ID 17 bei Eurem Tag
<t id="5873">Handelssoftware MK3</t> vielleicht noch den Tag <t id="5874">{17,5665}</t> druntersetzen.

Beste Grüße

ArcaJeth
Posts: 2245
Joined: Mon, 10. Nov 03, 18:22
x3tc

Post by ArcaJeth » Tue, 13. Apr 04, 01:10

... bereite gradmal eine Formatierungsliste vor :)
Da kommt dann mit Beispiel all das rein, was ich schon rausgefunden habe *g*

Die 'komische Vase' ist das Symbol für die Ansicht, schalte mal mit F1 durch die Ansichten und schau wie sich das ändert :)

User avatar
Moonraven
Posts: 968
Joined: Wed, 27. Aug 03, 11:13
x3

Post by Moonraven » Tue, 13. Apr 04, 09:37

Theoretisch ist es sogar möglich neue Elemente (akustische Sprachausgabe) hinzuzufügen.

Was man dafür braucht ist ein Programm mit dem man WMA-Datei bearbeiten kann. Im Verzeichnis MOV befindet sich eine 00149.dat. Das ist nix anderes als eine WMA-Datei, in der alle Texte die gesprochen werden, drinn ist. Wenn man hier Sprachausgabe anhängt, muß man nur noch in der 00049.XML das ganze mit Position und Länge hinterlegen und müßte es dann eigentlich Einbinden können.

Bisher hab ich das allerdings noch nicht ausprobiert. Zum einen hab ich kein Prog mit dem man WMA bearbeiten kann, zum anderen noch ein paar andere Sachen zu tun :D.
Gruß Moonraven
Wer lesen kann, ist ganz klar im Vorteil.
[ external image ]

Post Reply

Return to “X²: Die Bedrohung - Scripts und Modding”