Revolution Patch
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
|
Auf dem Kampfbildschirm
|
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.
|
|
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.
|
|
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).
|
|
|
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. |