Revolution Patch

Aus Makerpendium.de
Version vom 13. Dezember 2023, 14:12 Uhr von MagiAkira (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Revolution Patch
Kein Bild verfügbar
Erstellt von Cherry
Betriebssystem Windows
Für Maker/Engine RPG Maker 2003 1.08
Sprache -
Aktuelle Version
Veröffentlichung 6. Juni 2011
13. Juni 2013 (patch.asm)
Herunterladen Vorabversion
Originaler Assemblercode
Anderer revmsgedit-Build
revhelper-Sourcecode

Revolution Patch ist eine von Cherry modifizierte, jedoch nie fertiggestellte RPG_RT.exe vom RPG Maker 2003 1.08, die eine Vielzahl neuer Features hinzufügt, die teilweise über Switches (#3361~4100) und Variablen (#3371~3400) gesteuert werden. Damit das Programm lauffähig ist, wird revhelper.dll im Spielordner benötigt.

Zu Beginn der Entwicklung entstand mit TBBPatch eine Version, die vor allem dazu diente, dem Kampfsystem einen rundenbasierten Ablauf zu spendieren. Eine frühe Vorabversion des Revolution Patch zum Testen erschien am 6. Juni 2011, nach kurzer Zeit folgte mit Debug Addon for RM2k3 eine Auskopplung, die sich nur auf Debugging-Features konzentrierte. Der Ersteller selbst bezeichnete den Patch einige Zeit später als falschen Ansatz und widmete sich anschließend der Entwicklung des Pluginsystems DynRPG, ebenfalls für die gleiche Makerversion.

Darstellungsreihenfolge

Der Reihenfolge, in der in jedem Frame verschiedene Arten von Grafiken auf den Bildschirm gezeichnet werden, werden zwischen den einzelnen Kategorien eine Reihe festgelegter Bereiche aus Picture-IDs hinzugefügt. Als beständig gekennzeichnete Picture-Bereiche werden bei einem Mapwechsel nicht gelöscht.

Auf dem Mapbildschirm

  • Das Panorama
  • Tiles unterhalb sowie auf Höhe der Spielerfigur
  • Pictures #0127~0999 (beständig ab #0500)
  • Eventoide Objekte unterhalb der Spielerfigur
  • Pictures #1000~1999 (beständig ab #1500)
  • Eventoide Objekte auf Höhe der Spielerfigur
  • Pictures #2000~2999 (beständig ab #2500)
  • Tiles oberhalb der Spielerfigur
  • Pictures #3000~3999 (beständig ab #3500)
  • Eventoide Objekte oberhalb der Spielerfigur
  • Pictures #4000~4999 (beständig ab #4500)
  • Wettereffekte
  • Pictures #0001~0126 (weiterhin nur flüchtig)
  • Pictures #5000~5999 (beständig ab #5500)
  • Animation
  • Pictures #6000~6999 (beständig ab #6500)
  • Systemgrafik-Fenster (bspw. die Nachrichtentextbox)
  • Pictures #7000~7999 (beständig ab #7500)
  • Momentan laufende Timer

Auf dem Kampfbildschirm

  • Backdrop oder sonstige Terrain-abhängige Hintergrundgrafiken
  • Pictures #8000~8499
  • Helden- und Gegnergrafiken
  • Animationen
  • Pictures #8500~8999
  • Wettereffekte
  • Pictures #9000~9499
  • Systemgrafik-Fenster
  • Pictures #9500~9999
  • Momentan laufende Timer

Spezielle Switches

  • Switch #3366 pausiert sämtliche Bewegungsrouten auf eventoiden Objekten.
  • Switch #3369 blockiert die manuelle Steuerung der Spielerfigur.
  • Switch #3370 ist immer ON, solange die Nachrichtentextbox offen ist.
  • Switch #3371 erzwingt die Darstellung von Nachrichtentexten ohne Fenster, auch wenn die Einstellung dafür aus ist.
  • Switch #3372 deaktiviert die kleine zusätzliche Texteinrückung von Auswahlmöglichkeiten.
  • Switch #3373 reduziert die Breite des Rahmens von Auswahlmöglichkeiten auf das Nötigste.

Tastatur und Maus

Wird Variable #3371 durch den entsprechenden Eventbefehl auf 0 gesetzt, wird daraufhin ermittelt, ob derzeit eine Taste auf der Tastatur gedrückt wird, und - falls dies der Fall ist - selbige Variable mit der erstbesten, dazugehörigen VirtualKey-ID überschrieben. Zu den möglichen Werten gehören dabei unter anderem auch die Maustasten (Links: 1, Mitte: 4, Rechts: 2).

Wird die gleiche Variable stattdessen auf einen positiven Wert gesetzt, gilt diese Überprüfung nur für die Taste mit der entsprechenden VirtualKey-ID. Falls die Taste nicht gedrückt wird, wird der Variable der Wert 0 zugewiesen.

Die aktuelle Position des Mauszeigers relativ zum Spielfenster wird dauerhaft in den Variablen #3372 (X) und #3373 (Y) hinterlegt und kann darüber abgefragt werden.

Textüberwachung

Variable #3391 und #3392 enthalten den Bytecode der je nach Tempo bis zu zwei im aktuellen Frame ins Nachrichtentextfenster hinzugefügten Zeichen (0 falls nicht zutreffend). Die Variablen #3393 und #3394 geben an, in welcher Zeile und Spalte sich der Nachrichtentext-Prozess derzeit befindet. Variable #3395 enthält die horizontale Position der Zeichen (relativ zum linken Rand der Textbox), #3396 die zuletzt genutzte Textfarbe, #3397 das Schreibetempo.

Sonstige Anpassungen

  • Sobald ein Fehler auftritt, wird das Spiel nicht geschlossen, sondern resettet.
  • Falls eine angeforderte Grafikdatei nicht vorhanden ist, wird ein Dummy generiert, auf dem der Dateiname geschrieben steht.
  • F11 öffnet jederzeit im TestPlay-Modus das Dateimenü im Speichermodus.
  • Picture-Befehle können auch benutzt werden, während die Nachrichtentextbox geöffnet ist.
  • Der Befehl zum Eingeben einer Zahl, die anschließend in einer Variable gespeichert wird, zeigt zu Beginn den derzeitigen Wert der gewählten Variable an.
  • Nachrichtentexte und Auswahlmöglichkeiten können mehr als vier Zeilen enthalten (revmsgedit.exe wird benötigt).
  • Wird versucht, eine Auswahl abzubrechen, für die kein Abbruchsfall definiert wurde, ertönt der Buzzer-Sound.

Fensterverwaltung

Mit den Funktionen (siehe "Funktionsaufrufe") #21~37 sowie dafür definierten Variablenbereichen können 50 eigene Systemgrafik-Fenster erstellt, befüllt, angezeigt und verwaltet werden.

Der Variablenbereich, in dem jedes Fenster zwei Einträge verbraucht, umfasst #3401~3500 (#3401 und #3402 stehen bspw. für den Anzeigemodus und den Pointer auf den Variablenblock zum ersten Fenster). Die gleichen Anpassungen gelten auch für die Nachrichtentextbox, für dieses werden immer die Variablen ab #3901 genutzt.

Fensterdefinition (am Beispiel von #3901)
Inhalt
3901~3904 Position (X, Y) sowie Größe (Breite, Höhe)
3905 Eventoid, an dessen Position das Fenster angeheftet wird.
(0: Keiner; Negativ: Am oberen Rand; Positiv: Auf dem Objekt)
3906~3912 Erste Textdefinition (bestehend aus sieben Variablen)
3913~ Weitere Texte (0: Kein weiterer Text)
Fenstertextdefinition (am Beispiel von #3906)
Inhalt
3906 Stringtyp (siehe "Funktionsaufrufe")
3907 String-ID
3908~3909 Zwei Pointer auf Zahlenplatzhalter-Variablen
3910 Textfarbe zwischen 1 und 20
3911~3912 Position (X, Y)

In Datenbereichen, die ab Variable #3501 (Hauptauswahl im Menü), #3601 (Menü-Partystatus), #3701 (Geldanzeige im Menü), #3801 (Zielwahl im Menü) und #4001 (Kampf-Partystatus) beginnen, können einige weitere Fenster manipuliert werden. Wird bei diesen die dazugehörige Variable auf Index 5 (z.B. #3705 bei der Geldanzeige), die normalerweise für ein Event steht, auf 1 gesetzt, wird der Standardinhalt des Fensters entfernt.

Beispiele für Zahlenplatzhalter
%6d Bis zu sechsstellige Zahl (rechtsbündig)
(1234 =   1234)
%-6d Bis zu sechsstellige Zahl (linksbündig)
(1234 = 1234  )
%.6d Immer mindestens sechsstellige Zahl
(1234 = 001234)
Fensterinteraktions-Modi
0 Das Fenster wird statisch angezeigt.
1 Bereitschaft zur Bestätigung mit blinkendem Pfeil.
2 Auswahl, die sich im Fokus befindet. Auswahlrahmen blinkt.
3 Auswahl, die inaktiv ist. Rahmen ist statisch.
4 Statische Anzeige mit doppelter Höhenskalierung.

Funktionsaufrufe

Wenn Variable #3361 auf einen Wert gesetzt wird, wird eine Funktion ausgelöst, die an diesen Wert gekoppelt ist. Je nach gewählter Funktion ist eine zuvor durchgeführte Angabe von bis zu neun Parametern in Variablen ab #3362 notwendig.

Einige Funktionen arbeiten mit Kommazahlen, die in zwei Parameter-Variablen aufgeteilt werden. Dabei gibt die erste den Teil vor, die zweite den hinter dem Komma an. Auf beiden Seiten sind jeweils bis zu 7 Stellen möglich (123 und 4567000 bspw. würden zusammen 123,4567 ergeben).

Stringtypen
1 Heldenname
2 Skillname
3 Skillbeschreibung
4 Itemname
5 Itembeschreibung
7 Höchst priorisierter Heldenzustand
Spezielle Eventoid-IDs
10001 Spielerfigur
10002 Boot
10003 Schiff
10004 Flugschiff
10005 Aktuelles Event
Kampfteilnehmer
1~4 Heldengruppe
-1~-8 Gegnergruppe
Funktionsname Auswirkung und Anmerkungen
1 GetTurn Speichert den allgemeinen Kampfrundenzähler in Variable #3362.
2 SetTurn Ändert den Kampfrundenzähler des Kampfteilnehmers aus Variable #3362 auf den Wert von #3363.
3 GetTurnUsedFlag Speichert in Variable #3363, ob der ATB-Wert des Kampfteilnehmers aus #3362 mindestens 295000 beträgt.
4 SetTurnUsedFlag Ändert den ATB-Wert des Kampfteilnehmers aus Variable #3362, je nach Angabe in #3363, auf 0 oder 300001.
5 SetBattleLayout Ändert die Kampfbildschirmlayout-Einstellung auf den Wert aus Variable #3362.
6 SetWindowSize Ändert die Fenstergrößen-Einstellung im Kampfbildschirm auf den Wert aus Variable #3362.
7 SetWindowTransparency Ändert die Einstellung für Fensterdurchlässigkeit auf den Wert aus Variable #3362.
8 GetPartyMember Speichert die ID des Helden im PartySlot aus Variable #3362 in #3363.
9 GetATBValue Speichert den Wert der ATB-Leiste des Helden aus Variable #3362 in #3363.
10 SetATBValue Ändert den Wert der ATB-Leiste des Helden aus Variable #3362 auf den Wert aus #3363.
11 GetEnemyID Speichert die ID des Gegners im TroopSlot aus Variable #3362 in #3363.
12 GetFullScreenFlag Speichert in Variable #3362, ob der Vollbildmodus aktiv ist oder nicht.
13 GetLargeWindowFlag Speichert in Variable #3362, ob die Spielfenstergröße auf einfach oder doppelt eingestellt ist.
14 GetTotalPlayingTime Speichert die bisher gemessene Spielzeit (bzw. den FrameCounter) in Variable #3362.
15 SetKeyAssignment Ändert die dem GameButton in Variable #3363 zugewiesene Taste auf den Wert aus #3362.
16 GetATBMode Speichert die ATB-Modus-Einstellung in Variable #3362.
17 SetATBMode Ändert die ATB-Modus-Einstellung auf den Wert aus Variable #3362.
18 GetSkillMP Speichert den MP-Verbrauch des Skills aus Variable #3362 in #3363.
19 SkipMessage Überspringt den momentanen Nachrichtentext, falls vorhanden.
20 GetStringLength Speichert in Variable #3364 die Länge der angegebenen Zeichenkette vom Typ aus #3362 mit der ID aus #3363.
21 OpenCustomWindow Öffnet das Fenster mit der ID aus Variable #3362 im Modus (0/1: Mit Grafik, 2/3: Ohne Grafik, 0/2: Sofort, 1/3: Aufklappen) aus #3363.
22 CloseCustomWindow Schließt das Fenster mit der ID aus Variable #3362.
23 ClearCustomWindow Erzwingt im Fenster mit der ID aus Variable #3362 die Auffrischung der Textanzeige.
24 IsCustomWindowOpen Speichert in Variable #3363, ob das Fenster mit der ID aus #3362 derzeit offen oder zumindest am Öffnen ist.
25 HasCustomWindowOpeningFinished Speichert in Variable #3363, ob das Fenster mit der ID aus #3362 vollständig geöffnet ist.
26 SetCustomWindowMode Ändert den Interaktionsmodus des Fensters mit der ID aus Variable #3362 auf den Wert aus #3363.
27 SetCustomWindowBackgroundTransparency Stellt je nach Wert von Variable #3363 ein, ob der Rahmen und Hintergrund vom Fenster mit der ID aus #3362 sichtbar sind.
28 SetCustomWindowChoicesCount Ändert die Größe der Auswahl im Fenster mit der ID aus Variable #3362 auf den Wert aus #3363.
29 SetCustomWindowChoicesColumns Ändert die Anzahl an Spalten, die die Auswahl im Fenster mit der ID aus Variable #3362 pro Zeile zulässt, auf den Wert aus #3363.
30 SetCustomWindowChoicesPerPage Definiert über Variable #3363, wie viele sichtbare Auswahlmöglichkeiten in das Fenster mit der ID aus #3362 passen.
31 SetCustomWindowSelPos Definiert über Variable #3363 (X) und #3364 (Y) eine zusätzliche Positionsverschiebung des Auswahlrahmens im Fenster mit der ID aus #3362.
32 SetCustomWindowSelSize Verändert die Größe des Auswahlrahmens im Fenster mit der ID aus Variable #3362 auf die Angaben in #3363 (Breite) und #3364 (Höhe).
33 SetCustomWindowChoiceDefault Definiert über Variable #3363, welchen Wert das Fenster mit der ID aus #3362 übermitteln soll, wenn die Auswahl abgegrochen wird.
34 SetCustomWindowChoiceResultVar Definiert über Variable #3363, welche Variable den Ergebniswert der Auswahl vom Fenster mit der ID aus #3362 erhalten soll.
35 GetCustomWindowChoice Speichert den Index (beginnend mit 1) der momentanen Auswahl im Fenster mit der ID aus Variable #3362 in #3363.
36 GetCustomWindowScrollPos Speichert die Scrollposition des Fensters mit der ID aus Variable #3362 in #3363.
37 SetCustomWindowChoice Ändert den Index (beginnend mit 1) der momentanen Auswahl im Fenster mit der ID aus Variable #3362 auf den Wert von #3363.
38 GetEventLayer Speichert die Prioritätsebene (0/1/2) des Eventoiden mit der ID aus Variable #3362 in #3363.
39 SetEventLayer Setzt die Prioritätsebene (0/1/2) des Eventoiden mit der ID aus Variable #3362 auf den Wert von #3363.
40 GetBattlerPos Speichert die Position des angegebenen Kampfteilnehmers aus Variable #3362 in #3363 (X) und #3364 (Y).
41 SetBattlerPos Setzt die Position des angegebenen Kampfteilnehmers aus Variable #3362 auf die Werte von #3363 (X) und #3364 (Y).
42 DoesEventExist Speichert in Variable #3363, ob ein Event mit der in #3362 angegebenen ID existiert.
43 SetEventPositionOffset Verschiebt die Grafik des Eventoiden mit der ID aus Variable #3362 pixelgenau auf das Offset in #3363 (X) und #3364 (Y).
44 BetterGetEventID Listet ab der Variable mit der ID aus #3364 alle Eventoiden auf, die sich auf der Position aus #3362 (X) und #3363 (Y) befinden (Ende: 0).
45 EvalHeroName Ersetzt Zahlenplatzhalter im Namen des in Variable #3362 angegebenen Helden durch die Werte von Variablen, auf die ab #3363 verwiesen wird.
46 CopyStringToHeroName Ersetzt den Namen des in Variable #3362 angegebenen Helden durch die in #3363 (Stringtyp) und #3364 (ID) angegebene Zeichenkette.
47 AddCharToHeroName Hängt das Zeichen mit dem ANSI-Code aus Variable #3363 an das Ende des Namens vom in #3362 angegebenen Helden.
48 GetCharFromHeroName Speichert in Variable #3364 den ANSI-Code des Zeichens im Namen des in #3362 angegebenen Helden an der Stelle aus #3363.
49 CatHeroName Kopiert den Namen des in Variable #3363 angegebenen Helden an das Ende des Namens von jenem aus #3362.
50 GetCameraPos Speichert die Position des aktuellen Ausschnitts vom Mapbildschirm pixelgenau in Variable #3362 (X) und #3363 (Y).
51 SetCameraPos Ändert die Position des aktuellen Ausschnitts vom Mapbildschirm pixelgenau auf die Position aus Variable #3362 (X) und #3364 (Y).
52 SquareRoot Speichert die Quadratwurzel aus einer aus Variable #3362 und #3363 kombinierten Kommazahl in selbigen.
53 Sine Speichert den Sinus (SIN) aus einer aus Variable #3362 und #3363 kombinierten Kommazahl in selbigen.
54 Cosine Speichert den Kosinus (COS) aus einer aus Variable #3362 und #3363 kombinierten Kommazahl in selbigen.
55 Tangent Speichert den Tangens (TAN) aus einer aus Variable #3362 und #3363 kombinierten Kommazahl in selbigen.
56 FloatAdd Addiert die aus Variable #3364 und #3365 kombinierte Kommazahl auf die aus #3362 und #3363.
57 FloatSubtract Subtrahiert die aus Variable #3364 und #3365 kombinierte Kommazahl von der aus #3362 und #3363.
58 FloatMultiply Multipliziert die aus Variable #3362 und #3363 kombinierte Kommazahl mit der aus #3364 und #3365.
59 FloatDivide Dividiert die aus Variable #3362 und #3363 kombinierte Kommazahl durch die aus #3364 und #3365.
60 IsEnemyHidden Speichert, ob sich der Gegner im in Variable #3362 angegebenem TroopSlot derzeit im versteckten Zustand befindet, in #3363.
61 SetBattlerAnimation Weist die in Variable #3363 gewählte Pose (nur Helden) und in #3364 gewählte Animation dem Kampfteilnehmer aus #3362 zu.
62 ShowDamage Zeigt ein Schadens-Popup auf dem Kampfteilnehmer aus Variable #3362 mit dem Wert aus #3363 (-1: Name) und der Farbe aus #3364.
63 GetRow Speichert die Kampfreihen-Einstellung des in Variable #3362 angegebenen Helden in #3363.
64 SetRow Ändert die Kampfreihen-Einstellung des in Variable #3362 angegebenen Helden auf den Wert von #3363.
65 SetPictureAngle Setzt den Rotationswinkel des in Variable #3362 angegebenen Pictures auf die aus #3363 und #3364 kombinierte Kommazahl
66 SetGlobalEventSpeed Ändert den allgemeinen Wert der in Variable #3362 angegebenen Bewegungstempostufe für Eventoide auf den Wert aus #3363.
67 SetEventSpeed Ändert das spezielle Bewegungstempo des in Variable #3362 angegebenen Eventoiden auf den Wert aus #3363.
68 SetEventFrame Ändert den aktuellen Bewegungsframe des in Variable #3362 angegebenen Eventoiden auf den Wert aus #3363.
69 SetEventPlace Ändert die Position des in Variable #3362 angegebenen Eventoiden auf der Map zu der in #3363 (X) und #3364 (Y).
70 MoveCamera Bewegt den Ausschnitt des Mapbildschirms an den Pixel aus Variable #3362 (X) und #3363 (Y) mit dem Tempo aus #3364 (Pixel/sec ×3,75).
71 HideEnemy Versteckt den Gegner auf dem in Variable #3362 angegebenen TroopSlot oder zeigt diesen, abhängig von #3363.
72 GetNumberOfEnemies Speichert in Variable #3363 die Größe der Gegnergruppe mit der in #3362 angegebenen ID.
73 GetPicturePalette Speichert die Palette des in Variable #3362 angegebenen Pictures in Variablen ab der ID aus #3363.
74 SetPicturePalette Überschreibt die Palette des in Variable #3362 angegebenen Pictures mit Werten von Variablen ab der ID aus #3363.
75 GetPicturePixel Speichert die Farb-ID vom in Variable #3363 (X) und #3364 (Y) angegebenen Pixel im Picture von #3362 in #3365.
76 SetPicturePixel Ändert die Farb-ID vom in Variable #3363 (X) und #3364 (Y) angegebenen Pixel im Picture von #3362 auf den Wert von #3365.
77 FillPictureRect Füllt im Picture aus Variable #3362 das Rechteck in #3363~#3366 mit der Farb-ID aus #3367.
78 CopyPictureRect Kopiert das Rechteck aus Variable #3363~3366 im Picture aus #3362 in das aus #3367 nach #3368~3369 und lässt die Farbe aus #3370 weg.
79 DrawPictureLine Zeichnet eine Gerade auf das Picture aus Variable #3362 von #3363~3364 nach #3365~3366 mit der Farb-ID aus #3367.
80 GetPictureDimensions Speichert die Größe vom in Variable #3362 angegebenen Picture in #3363 (Breite) und #3364 (Höhe).
81 IsMessageWaiting Speichert in Variable #3362 den Zustandswert, ob die Nachrichtentextbox derzeit auf eine Eingabe wartet.
82 DoesEventPageExist Speichert in Variable #3364, ob das Event aus #3362 über mindestens so viele Seiten verfügt, wie in #3363 angegeben.
83 SetChuckNorrisMode Erlaubt oder verhindert abhängig von Variable #3362, ob bestimmte Fehler die Anwendung zum Absturz bringen können.
84 SimulateKeyPress Forciert das Drücken der in Variable #3362 angegebenen Taste.

Siehe auch

Links

Öffnen
● RPG_RT-/Editor-Patches (IPS/HPA/EXE) von Cherry