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. #1

    +++ DynRPG - Das RM2k3-Plugin-SDK +++

    DynRPG ist ein Plugin-SDK für den RPG Maker 2003. “SDK” bedeutet “Standard Development Kit”, und in diesem Fall heißt das dass jeder nun seine eigenen Erweiterungen für den RPG Maker erstellen kann, solange er C++ beherrscht. DynRPG bietet nicht nur dem Durchschnittsprogrammierer Zugang zu der Welt des “Patchens” sondern es stellt auch eine Basis für weitaus mächtigere Erweiterungen dar als all die “Patches” die für den RPG Maker bisher erstellt wurden.

    DynRPG funktioniert mithilfe von Plugins. Plugins können in C++ geschrieben werden, sie werden geladen wenn das Spiel startet und von bestimmten Ereignissen informiert (wie das Zeichnen eines neuen Frames, der Schreibzugriff auf eine Variable, usw.) und sie können auf diese Ereignisse reagieren.

    Was bisher “Patches” waren werden nun Plugins. Jedes Spiel welches DynRPG verwendet kann mit einem neuen Feature erweitert werden indem man einfach eine Plugindatei in einen Ordner namens "DynPlugins" kopiert. Das ist viel einfacher als “Patchen”, etwas wovor viele Spielemacher sogar Angst haben weil sie denken, es könnte ihrem Spiel schaden. Und wenn jemand ein bestimmtes Plugin nicht mag, braucht er es nur zu löschen.

    DynRPG nützt also sowohl Plugin-Erstellern als auch Spielemachern:

    - Plugin-Macher können eine einfache C++-Bibliothek verwenden um mächtige Plugins zu schreiben und diese anderen Spielemachern zu Verfügung zu stellen!
    - Spielemacher bekommen viele neue Möglichkeiten nur durch das Kopieren der Plugins in ihr Spiel!
    - Professionelle Spielemacher sind in der Lage, Plugins zu schreiben, die exakt auf die Bedürfnisse ihres Spiels abgestimmt sind, z.B. könnten sie einen Teil ihres Action-Kampfsystems in C++ schreiben, ein eigenes Design für das Standardkampfsystem erstellen, oder sie könnten sogar ein komplettes Minispiel mit DynRPG erstellen… Die Möglichkeiten sind unendlich!

    Es gibt auch eine komplette Dokumentation (in Englisch!), online und auch als CHM-Datei im Download.

    Features des Patches:
    - Der DynRPG-Patch ermöglicht die Verwendung der DynRPG-Plugins!
    - Der DynRPG-Patch erlaubt 2000 Pictures, wovon alle ab ID 1001 beim Mapwechsel nicht gelöscht werden.
    - Der DynRPG-Patch behebt einige Bugs des RPG Makers und verbessert einige Kleinigkeiten.
    Mehr Info hier: http://rpg-maker.cherrytree.at/dynrpg/patch.html

    Features des SDK:
    - Zugriff auf viele Spiel-Objekte, u.a.:
    --- Helden
    --- Monster (aktuelle Monstergruppe)
    --- Aktuelle Map
    --- Events
    --- Pictures
    --- Bildschirm (!!!)
    --- Switches und Variablen
    --- Systemeinstellungen
    --- Musik und Sound
    --- und mehr
    - Abfangen von Ereignissen und die Möglichkeit, darauf zu reagieren und u.U. den Standard zu unterbinden, u.a.:
    --- Beim Zeichnen eines Events
    --- Beim Zeichnen eines Pictures
    --- Beim Zeichnen von best. Fenstern im Kampf
    --- Beim Zeichnen von Helden und Monstern im Kampf
    --- Bei der Aktion eines Helden oder Monsters im Kampf
    --- Jedes Mal wenn des Bildschirm neu gezeichnet wird
    --- Beim Ausführen eines Eventbefehls
    --- und mehr

    Überlegt mal, was damit möglich ist! Anregungen:
    - Ein Alles-Anpointern-Plugin
    - Ein Größere-Charsets-Plugin
    - Ein Fast-Pixelmovement-Plugin
    - Ein Alphachannel-Plugin
    - Ein Eigenes-Statusfenster-im-Kampf-Plugin
    - und VIEL, VIEL mehr.

    Mehr Info, Dokumentation und Download:
    >>> http://rpg-maker.cherrytree.at/dynrpg <<<

    Richtig interessant und mächtig wird die Angelegenheit erst durch gute Plugins. Im Moment stehe ich noch ganz am Anfang damit, daher habt etwas Geduld bis nützliche Plugins entstehen!

    Es gibt bis jetzt ein kleines Beispiel-Plugin, welches Conditions im Kampf als Icons anzeigt. Es ist hier weiter unten beschrieben und zum Download verfügbar.

    mfG Cherry

    EDIT:

    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.

    EDIT: Quellcode ist jetzt verfügbar! https://github.com/CherryDT/DynRPG

    Geändert von Cherry (28.05.2021 um 00:29 Uhr)

Berechtigungen

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