Mit dieser Skriptsammlung ist es möglich, Teile eines Spiels aufzuzeichnen und später
als Replay wieder abzuspielen, ohne auf Videodateien zurückgreifen zu müssen.
Nach einer kompletten Überarbeitung funktionieren die Skripte jetzt absolut synchron
zum eigentlichen Spiel (auch mit Maus).
Im Prinzip müssen nur die Skripte in das Spiel importiert und die RPE_Ini angepasst werden.
Außerdem müssen die folgenden GM Funktionen mit den entsprechenden RPE Skripten
ersetzt werden:
keyboard_check,keyboard_check_pressed,keyboard_check_released,mouse_check_button,
mouse_check_button_pressed,mouse_check_button_released,random
Die Anpassungen in der RPE_ini umfassen nur die Zeilen zwischen den Zwei Kommentarzeilen,
dort wird eingetragen, welche Tasten überwacht werden sollen und ob die Maus ebenfalls
mit aufgezeichnet werden soll.
Hier eine kurze Auflistung der Skripte + Erklärung:
Zwecks Kontinuität der Alte Post:
Spoiler anzeigen
Edit: Da war noch ein kleiner Fehler im Random Skript, der ist nun korrigiert
Edit2: Und noch ein weiterer Fehler im Play Skript, korrigiert
als Replay wieder abzuspielen, ohne auf Videodateien zurückgreifen zu müssen.
Nach einer kompletten Überarbeitung funktionieren die Skripte jetzt absolut synchron
zum eigentlichen Spiel (auch mit Maus).
Im Prinzip müssen nur die Skripte in das Spiel importiert und die RPE_Ini angepasst werden.
Außerdem müssen die folgenden GM Funktionen mit den entsprechenden RPE Skripten
ersetzt werden:
keyboard_check,keyboard_check_pressed,keyboard_check_released,mouse_check_button,
mouse_check_button_pressed,mouse_check_button_released,random
Die Anpassungen in der RPE_ini umfassen nur die Zeilen zwischen den Zwei Kommentarzeilen,
dort wird eingetragen, welche Tasten überwacht werden sollen und ob die Maus ebenfalls
mit aufgezeichnet werden soll.
Hier eine kurze Auflistung der Skripte + Erklärung:
>>>>Download (Skripte+Beispiel)<<<<RPE_Ini() Initialisiert das RPE System, muss vor allen anderen Funktionen
aufgerufen werden
RPE_Record_Start() Startet eine Aufzeichnung
RPE_Record_Step() Führt einen Aufzeichnungsschritt durch. Sollte nach
Start der Aufzeichnung jeden Step ausgeführt werden.
RPE_Record_Stop(fname) Schließt eine Aufzeichnung ab und speichert die Dateien
mit dem Teilnamen fname (speichert nicht, wenn fname="")
RPE_IsRecording() Gibt zurück, ob zur Zeit aufgezeichnet wird.
RPE_Play_Start(fname,protected) Startet eine Aufzeichnung aus Datei fname. Protected gibt an,
ob User-Eingaben verworfen werden sollen.
RPE_Play_Step() Führt einen Abspiel Schritt durch
RPE_Play_Stop() Stoppt das Abspielen.
RPE_IsPlayingNormal() Gibt zurück, ob zur Zeit eine Aufnahme im Normalen Modus
abgespielt wird.
RPE_IsPlayingProtected() Gibt zurück, ob zur Zeit eine Aufnahme im Protected Modus
abgespielt wird.
RPE_mouse_saver() Setzt die Maus auf die aktuellen Replay Koordinaten zurück
(stabilisiert die Maus gegen Usereingaben, indem es im Begin
Step und End Step Event aufgerufen wird).
Die folgenden Funktionen ersetzen entsprechende GM Funktionen. Zu Informationen einfach die entsprechenden
Funktionen in der GM Hilfe nachschlagen
RPE_Random(max)
RPE_keyboard_check(button)
RPE_keyboard_check_pressed(button)
RPE_keyboard_check_released(button)
RPE_mouse_check_button(button)
RPE_mouse_check_button_pressed(button)
RPE_mouse_check_button_released(button)
Zwecks Kontinuität der Alte Post:
Mit dieser Skriptsammlung ist es möglich, Teile des Spiels aufzuzeichnen und als Replay wieder abzuspielen,
ohne Große Videodateien anzufertigen.
Dazu müssen nur die Skripte eingebunden und die RPE_Ini entsprechend angepasst werden:
Alles anzeigen
bei RPE_check gibt man die zu überwachenden Tastencodes an (RPE_numb ist die Anzahl der Einträge) und mit RPE_mouse
lässt sich bestimmen, ob auch die Mausaktionen überwacht werden sollen.
Da man keine Mausaktionen simulieren kann, müssen sämtliche mouse_check_... Funktionen durch die entsprechenden
RPE_ Funktionen ausgetauscht werden.
Auch random muss gegen RPE_random getauscht werden, damit die Zufallszahlen beim wiederabspielen des Replays stimmen.
Zum Aufzeichnen reicht es, einfach RPE_Record(Dateiname) aufzurufen und mit RPE_Stop() (oder auch RPE_Unload) die Aufzeichnung
zu stoppen. RPE_Play(Dateiname) spielt das Replay danach wieder ab.
Anmerkung: Da der GM leider nicht der schnellste ist (und vor allem seine Steps nicht immer gleichlang dauern), treten bei längeren
Replays Verschiebungen auf, die den Sinn des Replays wieder zunichte machen. Die aufzuzeichnenden Stellen sollten also möglichst
kurz gehalten werden.
Edit: Ein weiterer Test hat ergeben, dass sich das System auch nicht für Spiele eignet, in denen die Maus viel bewegt wird. Das Skript
kommt dann mit dem auslesen der Mauspositionen nicht mehr nach und dementsprechend durcheinander.
ohne Große Videodateien anzufertigen.
Dazu müssen nur die Skripte eingebunden und die RPE_Ini entsprechend angepasst werden:
GML-Quellcode
- //-----------------------------------------------
- //Hier die zu überprüfenden Tasten reinschreiben
- RPE_numb=4;
- RPE_check[0]=vk_right;
- RPE_check[1]=vk_left;
- RPE_check[2]=vk_up;
- RPE_check[3]=vk_down;
- //Maus
- RPE_mouse=true;
- //Toleranzwert in Millisekunden
- RPE_tol=5;
- //-----------------------------------------------
bei RPE_check gibt man die zu überwachenden Tastencodes an (RPE_numb ist die Anzahl der Einträge) und mit RPE_mouse
lässt sich bestimmen, ob auch die Mausaktionen überwacht werden sollen.
Da man keine Mausaktionen simulieren kann, müssen sämtliche mouse_check_... Funktionen durch die entsprechenden
RPE_ Funktionen ausgetauscht werden.
Auch random muss gegen RPE_random getauscht werden, damit die Zufallszahlen beim wiederabspielen des Replays stimmen.
Zum Aufzeichnen reicht es, einfach RPE_Record(Dateiname) aufzurufen und mit RPE_Stop() (oder auch RPE_Unload) die Aufzeichnung
zu stoppen. RPE_Play(Dateiname) spielt das Replay danach wieder ab.
Anmerkung: Da der GM leider nicht der schnellste ist (und vor allem seine Steps nicht immer gleichlang dauern), treten bei längeren
Replays Verschiebungen auf, die den Sinn des Replays wieder zunichte machen. Die aufzuzeichnenden Stellen sollten also möglichst
kurz gehalten werden.
Edit: Ein weiterer Test hat ergeben, dass sich das System auch nicht für Spiele eignet, in denen die Maus viel bewegt wird. Das Skript
kommt dann mit dem auslesen der Mauspositionen nicht mehr nach und dementsprechend durcheinander.
Edit: Da war noch ein kleiner Fehler im Random Skript, der ist nun korrigiert
Edit2: Und noch ein weiterer Fehler im Play Skript, korrigiert

Beware of wild pointers______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von Spellmaker ()