RPG2003 VisuGauge(%) Problem

There are 11 replies in this Thread which has previously been viewed 514 times. The latest Post (May 22, 2025 at 11:34 PM) was by Hammy.

  • Hey zusammen,
    ich wollte mit dem VisuGauge(%) Patch für den RPG Maker 2003 das Layout so abändern, dass es statt für vier nur für drei Battler ausgelegt ist. Also habe ich statt einem X-Delta von 80 eines von 103 Pixeln eingestellt. Das Problem ist, dass der Patch aus irgendeinem Grund nur Actor2-4 versetzt und Actor1 auf X = 0 bleibt. Der Patch hat keine Konfiguration für eben diese erste X-Position.
    Deswegen meine Frage an Cherry und KotatsuAkira: Ihr beide seid die einzigen, von denen ich weiß, dass sie noch aktiv sind und in der Lage wären, mir da eventuell auszuhelfen. Würde es euch etwas ausmachen, euch das Ganze mal anzusehen?
    Anbei noch die Konfiguration mittels DynQuickPatch, falls das die Arbeit eventuell erleichtert.
    Alles Liebe, Hammy!

  • Kannst du genauer beschreiben, worum es dir geht? Welches Battle Layout hast du eingestellt? Welches Fenster versuchst du zu verschieben? Ich kann dir nur empfehlen auf den Maniacs Patch zu wechseln (siehe einen Thread von mir). Dort kannst du mit Callbacks so viel steuern, dass du dir mit Pictures deine eigenen ATB, HP und MP Leisten bauen kannst, die über den Helden oder Gegner schweben. Je nach Battle Layout bleibt halt an einer Stelle im Befehlsauswahlmenü, was für einen eventuellen vierten Charakter offen gehalten wird...

  • MarcLAlso, der VisuGauge-Patch ist für das Layout 3 (Gauges) konzipiert.

    Das Fenster ist „winParty“, also das Party-Window.

    Als kleinen Workaround habe ich ein DynRPG-Plugin geschrieben, welches die X-Position von dem Fenster ändert.

    Das Problem, das ich damit noch habe, ist, dass ich den onBattleStatusWindowDrawn-Callback nutzen muss und dass jetzt das Fenster von X = 0 auf X = 17 sichtbar verschoben wird. (Ähnlich wie wenn man keinen NoAutoBattle Patch nutzt.)

    Der onDrawBattleStatusWindow-Callback geht dafür nicht, das Fenster bleibt auf X = 0, wenn ich das versuche.

    Kann man den Maniacs Patch mit der Version 1.08 nutzen?

    DynRPG ist nämlich ein wichtiger Bestandteil meines Projekts.

  • Ich weiß DynRPG ist eine feine Sache, hab ich für mein altes Projekt (Legend of the Silverstone) genutzt. Mittlerweile ziehe ich aber den Maniacs vor da ich nicht so fit bin was Programmieren betrifft und der Maniacs im Ausgangszustand mehr kann (9999 Bilder, Blending Modi, Zoom Funktion, Callbacks, Pictures auf allen Ebenen anzeigen, Screenshotfkt., Stringpictures, Stringvariablen und -Operation und höhere Auflösungen).

    Wenn du nicht gerade Kazesuis Mode7 Plugin oder ein Pathfinding Plugin nutzt, könnte es eine Alternative sein. Und dafür muss die Version 1.08 gepatcht werden und hat dann scheinbar nur noch sehr wenig mit der ursprünglichen Version zu tun. DynRPG läuft damit nicht :(

    PS: Bei dem Rest bin ich raus... Cherry hatte mir damals nur gezeigt wie ich das Befehls-Auswahlfenster verkleinern und verschieben kann, was ondrawBattleStatusWindow macht, weiß ich nicht mal...

    Edited once, last by MarcL (May 14, 2025 at 7:25 AM).

  • MarcL, ich müsste halt mehrere Plugins, die ich mir geschrieben habe, irgendwie in Maniacs umsetzen, wobei ich nicht weiß, inwiefern das überhaupt möglich ist.
    Ich benutze ein modifiziertes Animated_Monsters, welches checkt, wie viele Frames eine Animation hat, anstatt einfach fest für jedes Monster die gleiche Frame-Anzahl hardcoded zu nutzen.
    Auch können Angriffe und Skills als Animation dargestellt werden, was in der Originalversion nicht geht.
    Dann habe ich ein „Weak State“-Plugin geschrieben, welches es ermöglicht, eine LowHP-Pose zu nutzen, was ohne DynRPG nicht möglich ist.
    Ebenso nutze ich CortiCombatVisu, welches die Reihenfolge in Kämpfen darstellt.
    Dann müsste ich lernen, wie man die Callbacks nutzen kann etc., was mir ehrlich gesagt zu viel Aufwand wäre.
    Kann gut verstehen, wenn du keine Zeit oder Lust hast, dich mit dem ASM-Hacking auseinanderzusetzen.
    Ich hatte gehofft, dass Cherry oder KotatsuAkira sich das mal ansehen könnten.
    Von Cherry weiß ich, dass er eine Datenbank gepflegt hat mit allen möglichen Adressen und den ASM-Code auch teilweise auskommentiert und Functions/Variables benannt hatte.
    Kann gut sein, dass ich mich irre, aber das sollte ein Fünf-Minuten-Patch sein, wenn man weiß, was man tut.
    KotatsuAkira hat so viele Patches geupdatet und geportet, da sollte das Know-how auch ausreichend sein.
    Ich wüsste halt nicht, wen ich sonst fragen soll.

  • Quote

    MarcL, ich müsste halt mehrere Plugins, die ich mir geschrieben habe, irgendwie in Maniacs umsetzen, wobei ich nicht weiß, inwiefern das überhaupt möglich ist.

    Wenn das so ist, würde ich auch nicht mehr umsteigen. Damit ist meistens sehr viel Lebenszeit verbunden und meist kann man dann ganz viel über den Haufen werfen...

    Quote

    Ich benutze ein modifiziertes Animated_Monsters, welches checkt, wie viele Frames eine Animation hat, anstatt einfach fest für jedes Monster die gleiche Frame-Anzahl hardcoded zu nutzen.

    Ich habe es mit dem Maniacs so gelöst, dass die Gegner Spritesheets sind deren Einzelbilder ich mit einer Variable ansteuern kann. Eine Möglichkeit auszulesen, wie viele Frames eine Gegneranimation hat, weiß ich nicht...

    Quote

    Auch können Angriffe und Skills als Animation dargestellt werden, was in der Originalversion nicht geht.

    Das könnteste mit dem Maniacs auch über Spritesheets lösen, d.h. eine Animation darüber anzeigen. Mache ich so, ist aber trotzdem viel viel Aufwand....

    Quote

    Dann habe ich ein „Weak State“-Plugin geschrieben, welches es ermöglicht, eine LowHP-Pose zu nutzen, was ohne DynRPG nicht möglich ist.

    Kann ich nicht beurteilen. Ich habe den Weakstate glaue über eine normale Condition mit eigener BA gemacht.

    Quote

    Ebenso nutze ich CortiCombatVisu, welches die Reihenfolge in Kämpfen darstellt.

    Das könnte Maniacs auch machen: https://drive.google.com/file/d/1CTiKLX…jD6Xddjgtm/view

    Dann müsste ich lernen, wie man die Callbacks nutzen kann etc., was mir ehrlich gesagt zu viel Aufwand wäre.

    Verstehe ich vollkommen, man muss sich wirklich lange einarbeiten...

  • Hallo,

    ich kann dir bei deinem Problem jetzt leider auch nicht helfen, aber ich würde dir eher Empfehlen, im Atelier im DynRPG Thread nach Hilfe zu schauen als hier. Cherry war hier das letzte Mal am 7. Oktober 2023 aktiv. Im Atelier sind es hingegen ein paar Tage her. Ausserdem sind dort auch andere Nutzer von DynRPG dort, welche dir eventuell ebenfalls helfen könnten.

    lg Flip

    Hiermit signiere ich meine Beiträge am Ende.

  • FlipelyFlip Ich hatte es dort schon versucht, aber ich glaube, dass das @Username in dem uralten vBulletin nicht funktioniert. xD
    Ich kann ja mal versuchen, ihm eine PM zu schreiben.

    Andernfalls war ich nicht untätig.
    Ich habe den kommentierten Code für den Gauge Mode gefunden.
    Nur hilft mir das persönlich auch nicht weiter, weil der VisuGauge-Patch diesen komplett oder zu großen Teilen abändert.
    Ich habe mal eine ungepatchte und eine gepatchte exe in IDA Free geprüft und verglichen.
    Ich habe noch weitere Nachforschungen angestellt und man kann wohl eine sogenannte Code Cave einbauen.
    Dabei wird an einer Stelle in der exe, die nicht benötigt wird, in meinem Fall in den anderen Party-Window-Modes, einfach neuer Code eingefügt bzw. der nicht benötigte Code überschrieben.
    Dann muss man noch einen Jump an der richtigen Stelle platzieren, um den Code auszuführen und danach wieder zur eigentlichen Funktion zurückzuspringen.
    Das wird wohl nötig sein, da nicht genug Platz ist, um direkt zu sagen: Zeichne das erste Face mal auf x=17 statt x=0.
    Die Formel sieht wohl in High-Level Sprache so aus: actor_id * 16 * 5 (ungepatcht) oder actor_id * 80 (gepatcht), bzw. was immer man als x-Delta nutzen möchte.
    Anstelle dessen brauche ich da eine Abfrage, ob actor_id 0 ist, also der Actor auf Position 1, die dann dafür sorgt, dass anstelle von * 80 dort +17 draus wird.
    Klingt relativ simpel, nur ist das nicht Ruby, JS, Lua oder meinetwegen sogar C++, sondern Assembly...
    Naja, immerhin etwas Neues. Falls ich jemanden zu fassen bekomme, stehe ich nicht ganz mit leeren Händen da. ^^

  • Probier mal folgendes (ändere %0 entsprechend):

    Face(x)=4A6ADC,8345FC,4A6ADF,%0,4A6AE2,90

    Es gibt übrigens einen RPG Maker 2003 Discord-Server, da sind die ganzen Profis: https://discord.gg/QJ8Anm4jq7


    Notiz an mich selbst:

    Alt:

    004A6ADC      8BF2          MOV ESI, EDX
    004A6ADE      8BD8          MOV EBX, EAX
    004A6AE0      8B7CB3 20     MOV EDI, [EBX+ESI*4+20]

    Neu:

    004A6ADC      8345 FC 01    ADD DWORD PTR [EBP-4], 1
    004A6AE0      8B7C90 20     MOV EDI, [EAX+EDX*4+20]

    Edited once, last by Cherry (May 23, 2025 at 6:38 AM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!