Ergebnis 1 bis 20 von 505

Thema: +++ DynRPG - Das RM2k3-Plugin-SDK +++

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    Neuer DynLoader mit Direktpatch-Feature!

    Wird dann auch in die (hoffentlich bald mal kommende ) nächste DynRPG-Version integriert.

    http://share.cherrytree.at/showfile-10117/dynloader.dll << Die dynloader.dll im Projekt hiermit ersetzen.

    Erstens mal ist da auch das Problem mit dem Müll am Ende von Stringparametern von Comments gefixt, und zweitens gibt es jetzt zwei Arten von Direktpatches:

    1) IPS-Dateien
    Ganz simpel: Ihr legt einen Ordner "DynPatches" an und schmeißt da einfach alle IPS-Dateien rein. Die Patches werden dann ohne RPG_RT.exe-Modifikation "on-the-fly" angewendet, d.h. das Entfernen eines Patches ist ganz einfach - nur die Datei wieder löschen (oder die Dateiendung umbenennen)!

    Beispiel für eine sinnvolle Anwendung wäre z.B. BetterAEP als IPS-Datei: http://share.cherrytree.at/showfile-10054/betteraep.ips
    Der PicPointerPatch liegt beispielsweise schon von Haus aus als IPS-Datei vor, da reicht reinkopieren.

    2) "Quick Patches"
    Für ganz kleine Patches ist es fast zu viel verlangt, eine IPS-Datei zu erzeugen, außerdem gibt es ja solche wo der Benutzer einen Wert (z.B. eine Koordinate) selber einstellen können soll. Dazu gibt es Quick Patches. Diese werden in die Section "QuickPatches" in der DynRPG.ini geschrieben und haben folgendes Format:

    BeliebigerName=Adresse,Daten,Adresse,Daten,...

    Die Adresse ist eine hexadezimale VA, die Daten können drei Formen haben:
    a) Hexstring: Eine Aneinanderreihung von Bytes in Hexadezimalschreibweise (Leerzeichen werden ignoriert und können also zur Übersicht verwendet werden). Beispiel: 49E148,EB71 - schreibt die 2 Bytes EB 71 an Adressen 49E148 und 49E149.
    b) Dezimale Zahl mit %-Prefix: Schreibt ein Byte an die angegebene Adresse, die Zahl ist dabei nicht hexadezimal angegeben (negative Zahlen möglich). Beispiel: 49E0BC,%48 - schreibt ein Byte 30 an Adresse 49E0BC.
    c) Dezimale Zahl mit #-Prefix: Schreibt einen 32-Bit-Integer an die angegebene Adresse, die Zahl ist dabei nicht hexadezimal angegeben (negative Zahlen möglich). Beispiel: 49E1F1,#270 - schreibt die 4 Bytes 0E 01 00 00 an Adressen 49E1F1-49E1F4.

    b) und c) sind dafür gedacht dass man leicht selber Werte eintragen kann (also Expertenuser A gibt Ottonormaluser B so eine Patchzeile und User B braucht nur die Zahlen nach % bzw. # seinen Bedürfnissen anpassen ohne irgendwas hexadezimal umrechnen zu müssen, Bytes zu vertauschen oder sonstwas).

    Hier ein Beispiel wie sowas aussehen kann:

    Code:
    [QuickPatches]
    ; Versteckt die EXP im Hauptmenü und im Statusscreen
    VersteckeEXP=49E148,EB71,49F1CA,EB67,49F095,EB21
    ; Setzt die Koordinaten des Titelbildschirmfensters auf 144/56
    VerschiebeTitelbildschirmFenster=490821,#144,490828,#56
    (Hinweis zum Titelfensterbeispiel: Der Maker verwendet da die X-Koordinate für die Mitte des Fensters aber die Y-Koordinate für die obere Kante.)

    mfG Cherry

    PS: Wer Dateioffsets in virtuelle Adressen umrechnen will: Für Offsets 0 - 400 addieren wir 400000, für Offsets 400 - C9200 addieren wir 400C00, für Offsets C9200 - CD400 addieren wir 400E00. Also normalerweise braucht man nur 400C00 zu addieren.

    Geändert von Cherry (12.06.2013 um 12:06 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •