Eigene Cheat Datei erstellen

Antworten
Benutzeravatar
Frostie
Benutzer
Benutzer
Beiträge: 39
https://www.facebook.com/lodz.meble.kuchenne/
Registriert: 09.12.2024, 19:21
Motorradtyp:
Danksagung erhalten: 20 Mal
Germany

Eigene Cheat Datei erstellen

#1

Ungelesener Beitrag von Frostie »

Zum Erstellen der Cheat Datei empfehle ich erst einmal grundsätzlich den Editor "Notepad+", da er diversen Sprachen/Formate unterstützt. Stellt man nun ein, daß die Datei eine XML Datei ist, dann werden die einzelnen Tags farblich markiert und man hat einen besseren Überblick. Weil schon eine fehlende Klammer dazu führen kann, daß die Datei nicht funktioniert, man aber keine Fehlermeldung bekommt. Und dann beginnt das "Such Hasso, such" Spiel :o

Bevor man mit dem Cheat Editor irgendwas machen kann, braucht man erst einmal ein Grundgerüst und ein Verständnis, wie die XML Datei aufgebaut ist.

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>

<!--  Dies ist ein Kommentar -->

<FDL>
    <CAFD>
        <CODE>
            <ITEM>
                <!--  Hier stände dann der Inhalt des Items wie z.B. ein Menüpunkt -->
            </ITEM>

            <ITEM>
                <!--  Und hier der Inhalt des nächsten Menüpunkts -->
            </ITEM>
        </CODE>
    </CAFD>
</FDL>
Die erste Zeile sagt, daß dies eine XML Datei ist im UTF-8 Encoding. Diese muß immer als erstes stehen. Danach folgt das Tag <FDL> und ganz am Ende </FDL>

Die XML ist immer in einzelnen Blöcken aufgebaut, die mit einem TAG wie z.B. <FDL> beginnen und mit </FDL> aufhören. Also im obigen Beispiel <FDL> und </FDL>, <CAFD> und </CAFD> und so weiter. Wie das Ganze funktioniert wird an diesem Beispiel klar. Das sind die Einstellungen für die automatische Blinker Rückstellung im xBCO.

Code: Alles auswählen

<cafd id="00002A57" name="X_BCO" author="Frostie" series="">
    <code description="Automatische Blinker Rückstellung / Komfortblinken"        info="Schaltet die automatische Rückstellung der Blinker ein oder aus.">
        <item label="Rückstellung ein (Standard)">
            <group id="3000">
                <function start="163" end="163" mask="00000001b">01</function>
                <function start="163" end="163" mask="00000010b">01</function>
            </group>
            <group id="3005">
                <function start="103" end="103" mask="00000001b">01</function>
            </group>
        </item>
        <item label="Rückstellung aus">
            <group id="3000">
                <function start="163" end="163" mask="00000001b">00</function>
                <function start="163" end="163" mask="00000010b">00</function>
            </group>
            <group id="3005">
                <function start="103" end="103" mask="00000001b">00</function>
            </group>
        </item>
   
    </code>
</cafd>
Bild


Gehen wir dieses Beispiel mal der Reihe nach durch.
  • <cafd id="00002A57" name="X_BCO" author="Frostie" series=""> </cafd>
Diese Zeile sagt, daß dieser Block zwischen <cafd> und </cafd> nur für Steuergeräte mit der CAFD ID "00002A57" ist. Der Block kann einen Namen haben (hier X_BCO) und hat einen Author. Die letzten beiden Punkte sind aber nicht zwingend notwendig.

  • <code description="Automatische Blinker Rückstellung / Komfortblinken" info="Schaltet die automatische Rückstellung der Blinker ein oder aus."> </code>
Der CODE Block definiert eine Einstellung.Hier zum Beispiel die automatische Blinker Rückstellung.Der Text bei description ist das, was man später als Name in BU sieht. Und info definiert dann den Erklärungstext dahinter.

  • <item label="Rückstellung ein (Standard)"> </item>
Der Item Block definiert jetzt einen Menüpunkt in dem PullDown Menü. Hier also den ersten Menüpunkt mit "Rückstellung ein".

  • <group id="3000"> </group>
Definiert die Gruppe im Steuergerät, in welchem die Einstellung geschrieben wird bzw steht.
Die Einstellungen sind ja in Gruppen aufgeteilt. Da kommen wir später noch zu.
Bild


  • <function start="163" end="163" mask="00000001b">01 </function>
Dies ist jetzt eine Einstellung im Steuergerät, die gesetzt wird.


  • <group id="3005"> </group>
  • <function start="103" end="103" mask="00000001b">01 </function>
Hier wird die nächste Gruppe definiert, in welchem dann danach wieder über <function> eine Einstellung geändert wird.
Für die Blinker Rückstellung stehen zwei Werte in Gruppe 3000 und eine Einstellung in Gruppe 3005. Deswegen müssen beide Gruppen definiert werden.


Und so setzt sich das fort. Sind alle Menüpunkte mit den jeweiligen Einstellungen definiert, wird mit </code> diese Einstellung geschlossen und man kann die nächste mit <code> beginnen.
Hat man alle Einstellungen für dieses Steuergerät definiert, wird dieser Block mit </cafd> beendet.

Und dann kommt vielleicht der nächste Block für ein anderes Steuergerät.


Jetzt kommt natürlich die Frage, wo man die Werte für <cafd id="00002A57"> und <function start="163" end="163" mask="00000001b">01 herbekommt. Und da hilft jetzt der Cheat Editor.




Als erstes speichert man die NCD Datei für das Steuergerät, für welche man Cheats erstellen will, irgendwo auf der Platte ab. Entweder aus dem Ordner \files\ncd kopieren oder einfach ein Backup des gewünschten Steuergerätes machen.
Im Cheat Editor klickt man dann rechts unten auf CAFD File, dann oben auf den Ordner und öffnet die NCD Datei. Am Ende sieht es so aus wie der normale FDL Editor. Jetzt sucht man die Einstellung, für die man einen Cheat erstellen will und klickt rechts daneben auf das +. Damit wird diese Einstellung dem Cheat zugefügt.

Hier zum Beispiel in xBCO die Einstellung tns_comfortindicator
Bild

Das macht man mit allen Einstellungen die man ändern will, bis es z.B. so aussieht.
Achtung:
Die Anzeige rechts filtert nach dem, was man oben in der Suchzeile stehen hat. Steht da oben noch z.B. tns_comfort, dann werden in dem Function Fenster die Werte für DistDepend und TimeDepend nicht angezeigt.
Bild


Jetzt stellt man die Werte hier so ein, wie sie z.B. für den Menüpunkt "Blinker Rückstellung ein" sein sollen. Hier also alles "active". Und dann sieht man unten rechts den Output, den man einfach kopieren kann.
Bild


Das baut man jetzt in das Grundgerüst ein, fügst die Menüpunkt für das DropDown Menü ein und fertig.

Als Beispiel
So kommt die Datei aus dem Cheat Editor.

Code: Alles auswählen

<cafd id="00002A57" name="X_BCO" author="BimmerUtility" series="">
  <code description="Enter cheat description here.">
    <group id="3000">
      <function start="163" end="163" mask="00000001b">01</function>
      <function start="163" end="163" mask="00000010b">01</function>
    </group>
    <group id="3005">
      <function start="103" end="103" mask="00000001b">01</function>
    </group>
  </code>
</cafd>
Da baut man jetzt erst einmal den Rahmen drum mit der ersten Zeile <?xml...> und dem <FDL> und </FDL>. Und dann fügt man den ITEM Block ein und fasst damit alle GROUP Blocks.

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>

<FDL>

<cafd id="00002A57" name="X_BCO" author="BimmerUtility" series="">
  <code description="Enter cheat description here.">
  <item label="Name des ersten Menüpunkts">
    <group id="3000">
      <function start="163" end="163" mask="00000001b">01</function>
      <function start="163" end="163" mask="00000010b">01</function>
    </group>
    <group id="3005">
      <function start="103" end="103" mask="00000001b">01</function>
    </group>
   </item>

   <!--  Jetzt kopiere ich einfach den oberen ITEM Block nach unten, passe das Label und die Werte an und habe den zweiten Menüpunkt -->

   <item label="Name des zweiten Menüpunkts">
    <group id="3000">
      <function start="163" end="163" mask="00000001b">00</function>
      <function start="163" end="163" mask="00000010b">00</function>
    </group>
    <group id="3005">
      <function start="103" end="103" mask="00000001b">00</function>
    </group>
   </item>

   <!--  Am Ende den CODE Block abschließen und fertig ist die Einstellung für die automatische Blinker Rückstellung -->
  </code>

<!--  Hier könnte jetzt der nächste CODE Block kommen mit der nächsten Einstellung für dieses Steuergerät -->

</cafd>

<!--  Oder hier kommt der nächste CAFD Block mit den Einstellung für ein anderes Steuergerät -->

</FDL>
Wenn man die Struktur einmal verstanden hat und das Grundgerüst steht, dann ist das meiste Copy-Paste. Fleißarbeit halt.
Zuletzt geändert von Frostie am 06.03.2025, 20:43, insgesamt 1-mal geändert.

Benutzeravatar
Werner
Admin
Beiträge: 209
Registriert: 01.12.2024, 09:00
Motorradtyp: R 1250 GS TB
Hat sich bedankt: 21 Mal
Danksagung erhalten: 16 Mal
Austria

Re: Eigene Cheat Datei erstellen

#2

Ungelesener Beitrag von Werner »

Da hast aber was gepostet :daumen_o:

Eine Frage dazu:
z. B.:

Code: Alles auswählen

<item label="Rückstellung ein (Standard)">
Der Labeltext wird ja normalerweise in BU zentriert im Klappmenü dargestellt.
Wer meine CS kennt, sieht, daß ich umständlich das letzte " immer soweit nacht rechts verschiebe bis es den vorhergehenden Text nach links (also linksbündig) an den Rand verschiebt.
Dafür brauch ich mitunter länger als für den ganzen Cheat und ist extrem mühsam und unprofessionell :omg:

Gibts da einen Trick, um das eleganter zu lösen ?

Benutzeravatar
Frostie
Benutzer
Benutzer
Beiträge: 39
Registriert: 09.12.2024, 19:21
Motorradtyp:
Danksagung erhalten: 20 Mal
Germany

Re: Eigene Cheat Datei erstellen

#3

Ungelesener Beitrag von Frostie »

Meines Wissens nach nicht. XML ist ja keine Sprache zur Beschreibung eines Layouts, wie HTML, sondern definiert Strukturen.

Benutzeravatar
Werner
Admin
Beiträge: 209
Registriert: 01.12.2024, 09:00
Motorradtyp: R 1250 GS TB
Hat sich bedankt: 21 Mal
Danksagung erhalten: 16 Mal
Austria

Re: Eigene Cheat Datei erstellen

#4

Ungelesener Beitrag von Werner »

Frostie hat geschrieben: 06.03.2025, 20:54 Meines Wissens nach nicht. XML ist ja keine Sprache zur Beschreibung eines Layouts, wie HTML, sondern definiert Strukturen.
Jo, dachte ich mir schon. Danke. Ist auch nicht wirklich wichtig :D

Antworten