Teil 3: OffGame Macro-Editing und SoR XML-Einführung
Vielleicht haben Dich meine ersten zwei Guides ein wenig motivieren können und Du hast nun ein paar Macros erstellt. Genauer gesagt, Du hast "zu viele" erstellt. Irgendwie haben die Devs nämlich im Macro Fenster den Scrollbalken vergessen (hab ich schon per Ticket gemeldet) und sobald Du mehr als 16 Stück erstellst, kannst Du die untersten nicht mehr ändern oder löschen. Außerdem kannst Du Deine fertigen Macros nicht in der Reihenfolge ändern.
Dies sind auch gleich unsere zwei Probleme, welche wir im dritten Teil dieses Guides lösen wollen.
Die lesbare Version mit Bildern direkt im Beitrag und hervorgehobenen Farben auf weißem Hintergrund findest Du hier.
Voraussetzung: Du hast die ersten beiden Teile gelesen und verstanden. Du kannst mit einem (beliebigen) Editor umgehen. Du kannst einigermassen analytisch denken und weisst, wie (und dass!) man stets Backup-Kopien von zu ändernden Dateien erstellt.
Ich übernehme keinerlei Verantwortung, wenn Du nach falschem Bearbeiten Deiner XML-Dateien das Spiel nicht mehr starten kannst, weil Du keine Sicherungskopien angelegt hast!
Programme: Zum Bearbeiten von XML-Dateien reicht im Notfall Wordpad (nicht Notepad - das könnte Zeilenumbrüche beschädigen!).
Englisch-Grundkenntnisse vorausgesetzt empfehle ich jedoch die kostenlose Version von "Altova XMLSpy® 2004 Home Edition",
welche Du hier bekommst.
Falls Du es noch nicht hast, lade Dir auch gleich das
MSXML 4.0 Service Pack 2 herunter und installiere es.
Installiere XMLSpy, starte es und führe die Registrierungsprozedur durch (Adresse wird nicht geprüft...ähem...).
Klicke
File -> Open
Suche den Ordner "
save" in Deinem Ryzom-Installationsverzeichnis
Wähle die Datei "
keys_DEINSPIELERNAME.xml" und öffne sie
Kann man bissl schlecht lesen, wa? Ändern wir jetzt.
Klicke auf
Tools -> Options
Im Reiter "
Text fonts" findest Du die benötigten Einstellungen
Ich empfehle für Code immer die Schriftart Courier New auf Größe 9.
Nachdem Du das Programm nun nach Deinen Vorstellungen konfiguriert hast, schauen wir uns mal dieses ganze Kauderwelsch in der Datei an.
Scrolle mal fast nach ganz unten, bis Du den Namen für das Notfall-Macro aus dem ersten Guide wiederfindest:
So, das nehmen wir jetzt mal auseinander.
Das
Braune sind sogenannte "
Tags" und nichts weiter als XML-Anweisungen, die einem Programm beschreiben, was es machen soll.
Es gibt hier zwei verschiedene Arten von Tags, solche die ein Anfangs- und ein End-Tag haben:
<macro> -
</macro>
...und solche, die noch in der selben Zeile in sich selbst abgeschlossen werden:
<command/>
Du hast es sicher schon erraten, ein Schrägstrich
/ gibt immer das Ende eines Tags an.
Das
Rote sind die
Parameter für die Tags und das
Schwarze sind die
Werte für die Parameter. Werte gehören immer zwischen zwei Anführungszeichen und es ist auf Groß-/Kleinschreibung zu achten.
Im Gegensatz zu HTML ist bei striktem XML
<color="blue"
> NICHT das selbe wie
<color="Blue"
>. So eine Verwechslung würde eine Fehlermeldung ausgeben!
Die Namen der Tags und Parameter sind hier selbsterklärend, was einen guten Programmierstil kennzeichnet. *nevraxzuzwinker*
<macro> -
</macro> Definiert immer ein ganzes Macro, alle
<command/> Tags, die dawzischen stehen, werden in diesem Macro ausgeführt.
______________________________________________________________________
Parameter eines
<macro> Tags und deren Werte:
name: Die Bezeichnung des Macros in deinem Macro-Fenster im Spiel. Wenn Du diesen hier ändern willst, achte darauf, nicht mehr als
19 Buchstaben/Zahlen und auf gar keinen Fall Sonderzeichen zu verwenden. Wenn Du unsicher bist, ändere den Namen nur im Spiel
id: Definiert den Stellenwert des Macros und ist gleichzeitig die indirekte Referenz für dessen Tastenbelegung (dazu später). Das oberste, erste Macro in Deinem Macro Fenster im Spiel hat die id 0 (NULL) und der letzte sichtbare, sechzehnte hat die id 15.
Ja, Programmierer fangen nicht bei 1 zu zählen an, sondern bei 0....deswegen soll es auch schon vorgekommen sein, dass Coder mit dem Fahrstuhl öfter mal eine Etage tiefer landen, als sie eigentlich wollen (das musst Du jetzt nicht verstehen
).
Ok, wenn Du also die Reihenfolge Deiner Macros tauschen willst, so tausche den Wert für die
id von zwei Macros aus.
Und wenn Du es ganz sauber machen möchtest, so tausche auch noch die Reihenfolge des
<macro> -
</macro> Blocks der zwei Macros in der XML-Datei aus. Dies dient der Übersichtlichkeit; ist aber nicht zwingend notwendig.
Vergiss aber bei dieser Änderung eines nicht: Die Tastenbelegung wird mit getauscht! Kontrolliere also später, wenn Du das Spiel gestartet hast, welche Taste nun welches Macro ausführt.
back: ID für die Hintergrundfarbe des Macro-Icons. Uninteressant.
icon: Icon-ID für das Macro. Uninteressant.
over: ID für die Vordergrundfarbe des Macro-Icons. Uninteressant.
text: Beschriftung des Icons des Macros. Relativ uninteressant - Beispiel:
Bei mir steht also in meinem Add-Shout-Macro z.B.:
text="v-add"
______________________________________________________________________
Die
Parameter eines
<command> Tags und deren Werte änderst Du bitte nicht, es sei denn, Du weisst ganz genau, was Du tust.
Dies sind nämlich spezielle Anweisungen, welche dem Spiel mitteilen, was das Macro macht. Ein Fehler hier drin und das Macro ist futsch. Du kannst das zwar im Spiel durch Neu-Erstellung korrigieren aber wie anfangs erwähnt, geht es hier hauptsächlich um die Macros, an die man im Spiel nicht mehr rankommt.
Siehe dazu auch das letzte Bild: Mein Shout-Add-Macro ist bereits abgeschnitten. Die nachfolgenden kann ich im Spiel nicht mehr ändern/löschen.
______________________________________________________________________
Tastenbelegung (hochscrollen im Editor):
Selbes Schema wie oben.
<key/> ist genau so ein in sich selbst geschlossener Tag wie
<command/>
Die
Parameter eines
<key> Tags und deren Werte:
name: Die spiel-interne Bezeichnung der entsprechenden Taste auf dem Keyboard. Ändere diesen Wert nur, wenn Du das Benennungssystem verstanden hast und nachvollziehen kannst.
action: Die Aktion, welche diese Taste ausführen soll. "macro_exec" führt, wie man sich denken kann, ein Macro aus.
params: Stellenwert des Macros, welches durch Drücken dieser Taste ausgeführt werden soll. Das ist NICHT gleich der ID eines Macros!
Sondern, fiktives Beispiel:
______________________________________________________________________
<macro name="Macro1" id="0">
<command/>
</macro>
<macro name="Macro2" id="3">
<command/>
</macro>
<macro name="Macro3" id="7">
<command/>
</macro>
<key name="KeySPACE" action="macro_exec" params="2"/>
______________________________________________________________________
Welches Macro würde die Leertaste ausführen? Macro 2? Falsch.
Wir fangen bei 0 an zu zählen. Macro1 ist 0, Macro2 ist 1, Macro3 ist 2. Die Taste mit params="2" würde also Macro3 ausführen, da dies in der Reihenfolge an dritter Stelle kommt.
Im Gegensatz dazu würde die Taste mit params="0" das Macro1 ausführen.
Ja ich weiss, es ist sehr gewöhnungsbedürftig, bei Null zum Zählen anzufangen aber dennoch praktisch, da man eine Stelle mehr zur Verfügung hat.
War ein sicher etwas schwierigerer Teil aber deshalb auch erst an dritter Stelle. Wenn Du fragen hast, frag ruhig....ansonsten viel Spass beim Rumprobieren. Sicherheitskopie nicht vergessen!