Ich habe eine XML Datein im \t Verzeichnis, bei den Kommandomenüs wird auch der gewünschte text richtig angezeigt, die Datei ist also soweit Fehlerfrei.
Nun möchte ich aber im Skript, je nach Situation, dem Spieler ausgewählte Meldungen schicken. z.B. wenn das Skript seine arbeit erfolgreich machte, dann den Text mit der ID 501, bei einem fehler, den text mit der ID 502 usw.
Doch mit welchem Skriptbefehl, bekomme ich nun den Text der Sprachdatei, in eine Variable des Skripts?
Und mit welchem Skriptbefehl kann man einen String formatieren? Also z.B. zwei Strings aneinanderketten?
Beispiel:
In der Sprachdatei steht "Versuche Computer der Station zu hacken:"
Im Skript soll dann noch der Stationsname angehängt werden und dies dann dem Sppieler als nachrichtenmeldung gesendet werden. So das der Spieler dann zu lesen bekommt:
"Versuche Computer der Station zu hacken: Argon Prime - Schiffswerft"
Wie Texte aus XML Sprachdateien in Skripten nutzen bzw. Stringvariablen allgemein
Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum
-
- Posts: 62
- Joined: Sun, 12. Mar 06, 19:46
-
- Moderator (Script&Mod)
- Posts: 14571
- Joined: Sun, 20. Nov 05, 22:45
Für das auslesen aus so ner Sprachseite zum Speichern in ner Stringvariablen gibt es die Funktionoder so (müsste bei den General Commands sein; hab das jetzt aus dem Kopf geschrieben, der Befehl kann geringfügig anders heissen
)
PS Ich hab mich nur in X3 wirklich mit dem Scripten befasst, müsste aber auch für x2 gelten
PS2 hast du dir schon das MSCI-Handbook angesehen???
PS3 ach ja, hab die zweite Frage übersehen:
zum aneinanderketten von Strings reicht der Befehl, da kannst du mit "+" zwei Strings "Addieren"
Code: Select all
<Retvar/IF> = read text PageID = <Var/Num> , TextID= <Var/Num>

PS Ich hab mich nur in X3 wirklich mit dem Scripten befasst, müsste aber auch für x2 gelten

PS2 hast du dir schon das MSCI-Handbook angesehen???
PS3 ach ja, hab die zweite Frage übersehen:
zum aneinanderketten von Strings reicht der Befehl
Code: Select all
<RetVar/IF> = <Expression>
if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help

-
- Posts: 62
- Joined: Sun, 12. Mar 06, 19:46
Danke UniTrader 
Ich habe nun auch noch eine weitere Möglichkeit gefunden. Hier die erklärung, falls jemand mal das gleiche Problem hat...
Damit läst sich recht gut eine formatierte Ausgabe machen.
Für den Formatstring, kann ein String mit mehreren Platzhaltern (%s) angegeben werden, welche dann auf weitere Variablen zugreifen.
Blödes Beispiel *gg*
Für diejenigen die sprintf aus anderen Sprachen kennen, bei X2, werden hier wohl keine unterschiede zwischen Datentypen gemacht, mann muss also immer %s verwenden, egal ob die Variable einen Text oder eine Zahl enthält.

Ich habe nun auch noch eine weitere Möglichkeit gefunden. Hier die erklärung, falls jemand mal das gleiche Problem hat...
Code: Select all
<RetVar> = sprintf: fmt=<Var/String>,<Value>,<Value>,<Value>,<Value>,<Value>
<RetVar> = sprintf: pageid=<Var/Number> textid=<Var/Number>,<Value>,<Value>,<Value>,<Value>,<Value>
Für den Formatstring, kann ein String mit mehreren Platzhaltern (%s) angegeben werden, welche dann auf weitere Variablen zugreifen.
Blödes Beispiel *gg*
Code: Select all
001 $sTxtAusgabe = sprintf: fmt='Dein Schiff %s ist %s Credits wert.',$sSchiffsname,$iWert, null, null, null
002 send incoming message $sTxtAusgabe to player: display it=[TRUE]