SwitchOnMenuCall: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „{{Tool |name=SwitchOnMenuCall |bild= |webseite=- |ersteller=Akira |os=Windows |engine=RPG Maker 2000 1.07<br />RPG Maker 2000 1.61<br />RPG Mak…“) |
|||
Zeile 13: | Zeile 13: | ||
__NOTOC__ | __NOTOC__ | ||
'''SwitchOnMenuCall''' ist ein [[IPS-Patch]] für die [[RPG_RT.exe]], der die Engine-interne Funktion zum Öffnen des [[Standardmenü]]'s dahingehend ändert, einen [[Switch]] (standardmäßig #1017) zu aktivieren, statt die Szene zu wechseln. Dieser Switch kann dann von einem ([[CommonEvent|Common]])[[Event]] mit AutoStart-Trigger sofort abgefangen werden, um ein [[Eigenes Menü|eigenes Menü]] zu öffnen. | '''SwitchOnMenuCall''' ist ein [[IPS-Patch]] für die [[RPG_RT.exe]], der die Engine-interne Funktion zum Öffnen des [[Standardmenü]]'s dahingehend ändert, einen [[Switch]] (standardmäßig #1017) zu aktivieren, statt die Szene zu wechseln. Dieser Switch kann dann von einem ([[CommonEvent|Common]])[[Event]] mit AutoStart-Trigger sofort abgefangen werden, um ein [[Eigenes Menü|eigenes Menü]] zu öffnen. | ||
+ | |||
+ | Der Sourcecode vom Patch ''[[SwitchOnMenuCall: Sourcecode|ist hier einsehbar]]''. | ||
Der Switch (oder eine höhere ID) muss vor der ersten Gelegenheit, das Menü aufzurufen, einmal benutzt worden sein, damit die Werte im Speicher entsprechend initialisiert sind. | Der Switch (oder eine höhere ID) muss vor der ersten Gelegenheit, das Menü aufzurufen, einmal benutzt worden sein, damit die Werte im Speicher entsprechend initialisiert sind. |
Version vom 29. Juni 2016, 19:57 Uhr
SwitchOnMenuCall |
---|
Webseite | - |
Erstellt von | Akira |
Betriebssystem | Windows |
Für Maker/Engine | RPG Maker 2000 1.07 RPG Maker 2000 1.61 RPG Maker 2003 1.08 RPG Maker 2003 1.11 |
Sprache | - |
Aktuelle Version | rv100 |
Veröffentlichung | 29. Juni 2016 |
Herunterladen | Klick |
SwitchOnMenuCall ist ein IPS-Patch für die RPG_RT.exe, der die Engine-interne Funktion zum Öffnen des Standardmenü's dahingehend ändert, einen Switch (standardmäßig #1017) zu aktivieren, statt die Szene zu wechseln. Dieser Switch kann dann von einem (Common)Event mit AutoStart-Trigger sofort abgefangen werden, um ein eigenes Menü zu öffnen.
Der Sourcecode vom Patch ist hier einsehbar.
Der Switch (oder eine höhere ID) muss vor der ersten Gelegenheit, das Menü aufzurufen, einmal benutzt worden sein, damit die Werte im Speicher entsprechend initialisiert sind.
Der Eventcode sollte mit dem Blockieren des Menü's beginnen...
<>Game Menu: Disallow
...und mit der Wiederaktivierung enden.
<>Game Menu: Allow
Das eigene Menü kann durch den oben erwähnten Eventbefehl jederzeit problemlos genauso gesperrt werden wie der Standard und muss durch den automatisch umgelegten Switch nie manuell aufgerufen werden. Außerdem kann das Standardmenü weiterhin per Event verwendet werden, um beispielsweise die Vorzüge vom Direct Menu Patch zu genießen.
<>Call Game Menu
Problembehebungen
Diese Art, ein Menü aufzurufen, eliminiert alle bekannten Probleme, die beim Aufruf von eigenen Menüs weit verbreitet und auf andere Weise so gut wie nicht ausmerzbar sind, allem voran das Interagieren mit Events auf der Map im gleichen Moment wie der Aufruf vom Menü, was sehr vielfältige unschöne Folgen nach sich zieht. Diese Fälle werden von der Standardfunktion erkannt und der Aufruf ohne weiteren Aufwand im Keim erstickt.
Was hingegen mit dem Patch nicht behoben wird, sind Probleme mit ungünstig aufgebauten Events, die zum Aufrufzeitpunkt schon längst parallel laufen. Diese werden nicht angehalten, sondern gehen weiterhin ihren Code durch.
Modifikation
Nach Anwenden des Patches lässt sich die Nummer vom Switch an folgender Hex-Adresse verändern:
RPG2000 | 1.07 | 0x8CA4A |
1.61 | 0x86BDA | |
RPG2003 | 1.08 | 0xA8EAE |
1.11 | 0xBD796 |
Falls DynRPG im Falle des RPG Maker 2003 verwendet wird, kann der Wert der Adresse auch per QuickPatch-Funktion in der Datei DynRPG.ini geändert werden, ohne nochmal an der RPG_RT.exe herumzubasteln, indem man die hier angegebene Zahl hinter dem "#" austauscht:
[QuickPatches] SwitchOnMenuCall=4A9AAE,#1017