View Single Post
Old 04-02-10, 02:43 PM   #5
Ruby2000
Officer
 
Join Date: Sep 2005
Posts: 240
Downloads: 71
Uploads: 0
Default

Hi,

das Abrufen von Textdialogen und dazu gehörenden Audio-Dateien sind wie folgt aufgebaut:

Die Textdialoge stehen in data\UPCDataGE\UPCLocalization\dialogs.tsr
und nicht in data\LngGameData\Texts\German\data\UPCDataGE\UPCLo calization\dialogs.tsr

Die dialogs.tsr sind in beiden Verzeichnissen identisch, aber nur die Datei im oberen Verz. wird genutzt. Der geänderte Text ist im Spiel sofort ersichtlich.

Die Dateien data\cfg\dialogs.cfg und data\cfg\Sounds.cdg kann man in die Tonne hauen.
In der dialogs.cfg kann man zwar annähernd erkennen welcher Text und Audio-datei zusammen gehört. Aber bewirken tut es nichts wenn man etwas ändert. Ihr könnt die Datei auch umbenennen, es passiert nichts, die Datei wird anscheinend überhaupt nicht benutzt.

Die sounds.cfg ist totaler Müll. Mal steht da ein / oder ein \ und die Verzeichnisse sind meistens falsch. Diese Datei wird ebenfalls nicht benutzt.

Die Steuerung der Ausgabetexte und der Audio-Dateien finden in den jeweiligen aix Script-Dateien statt.

Beispiel-Watchoffizier in Kampagne Total germany
data\Campaigns\CampaignProjects\Total_Germany\Scri pts\AI\Dialogs\DT_Watch_Total_Germany.aix

Hieraus ein Auszug aus dem Skript

Code:
strategy DialogLine_RootDialog_WATCH_Total_Germany_787_Init(Dialog)
{
 precond
 {
  Dialog:IsDialogLineClicked( "DialogLine_RootDialog_WATCH_Total_Germany_787" ) == 0 and Dialog:IsDialogLineLocked( "787" ) == 0 and Dialog:IsCurrentDateHigherThen( "1.11.1939" ) == 1 
 }
 action
 {
  Dialog:AddDialogLine( "Text_Dialog_788" );
  Dialog:SetDialogLineClickId( "DialogLine_RootDialog_WATCH_Total_Germany_787" );
  Dialog:SetRunScript( "Dialog_3_WATCH_Total_Germany" );
 }
}
strategy DialogLine_RootDialog_WATCH_Total_Germany_787_Click(Dialog)
{
 precond
 {
  Dialog:IsDialogLineClicked( "DialogLine_RootDialog_WATCH_Total_Germany_787" ) == 1
 }
 action
 {
  Dialog:PlaySound( "WatchOfficer_slash_", "PD_QRF_WATCH_D03_A", 0 );
  Dialog:LockDialogLine( "785" );
  Dialog:PlayAnimation( "PD_QRF_WATCH_D03_A" );
  Dialog:AddMorale( 1.0 );
 }
}
 
....
 
 
strategy Dialog_3_WATCH_Total_Germany(Dialog)
{
 strategies
 {
  DialogTitle_Dialog_3_WATCH_Total_Germany_788,
  DialogLine_Dialog_3_WATCH_Total_Germany_789
 }
}
 
strategy DialogTitle_Dialog_3_WATCH_Total_Germany_788(Dialog)
{
 strategies
 {
  DialogTitle_Dialog_3_WATCH_Total_Germany_788_Init
 }
}
strategy DialogTitle_Dialog_3_WATCH_Total_Germany_788_Init(Dialog)
{
 action
 {
  Dialog:SetDialogTitle( "Text_Dialog_789" );
 }
}
 
 
strategy DialogLine_Dialog_3_WATCH_Total_Germany_789(Dialog)
{
 strategies
 {
  DialogLine_Dialog_3_WATCH_Total_Germany_789_Click,
  DialogLine_Dialog_3_WATCH_Total_Germany_789_Init
 }
}
strategy DialogLine_Dialog_3_WATCH_Total_Germany_789_Init(Dialog)
{
 action
 {
  Dialog:AddDialogLine( "Text_Dialog_790" );
  Dialog:SetDialogLineClickId( "DialogLine_Dialog_3_WATCH_Total_Germany_789" );
  Dialog:SetRunScript( "Dialog_4_WATCH_Total_Germany" );
 }
}
strategy DialogLine_Dialog_3_WATCH_Total_Germany_789_Click(Dialog)
{
 precond
 {
  Dialog:IsDialogLineClicked( "DialogLine_Dialog_3_WATCH_Total_Germany_789" ) == 1
 }
 action
 {
  Dialog:PlaySound( "WatchOfficer_slash_", "PD_QRF_WATCH_D03_B", 0 );
  Dialog:PlayAnimation( "PD_CR_SO_D03_B" );
 }
}
Im Init wird die Dialogbox aufgebaut. Wobei die Init eine weitere Funktion Dialog_3_WATCH_Total_Germany aufruft. Die wiederum ruft ebenfalls einige Funktionen auf.

Der Textdialog "Text_Dialog_788" ist die Textausgabe in der Dialogbox des Kaleuns und lautet: (aus dialogs.tsr)
Text_Dialog_788=Ich weiß, Sie spielen anderen gerne Streiche, aber lassen Sie den 1. Wachoffizier in Ruhe, der mag das nicht.

Wird der DialogText 788 in der Dialogbox angeklickt erhält man als Antwort: Text_Dialog_789 aus Dialog_3_WATCH_Total_Germany
Text_Dialog_789=Der Kerl ist so steif, an den könnte man ein Ruder klemmen und ihn dann als Torpedo verwenden. (Pause) Gut, ich lasse ihn in Ruhe, aber jemand muss ihm dringend diesen Stock aus dem ...

und dazu die Audiodatei

data\Sound\Speech\WatchOfficer\Normal\PD_QRF_WATCH _D03_A.ogg


ja und so gehts natürlich weiter....

Alle Textdialoge und die dazu gehörenden Audiodateien können beliebig angepasst/verändert werden.


Alle Kommunikationsdialoge mit jedem Besatzungsmitglied sind modbar! Man kann in dem Skript sogar die Moral beeinflussen.


Gruß Ruby

Last edited by Ruby2000; 04-02-10 at 03:43 PM.
Ruby2000 is offline   Reply With Quote