Bug im Bernard-Starterpack / Undokumentierte GlobalInts
Verfasst: 01.11.2005, 19:36
Im Bernard-Starterpack für AGS sind die GlobalInts 1-17 bereits verwendet und auch am Anfang des GlobalScripts verzeichnet. Demnach könnte man wohl die GlobalInts ab 18 frei belegen. Gelegentlich hört man den Ratschlag sicherheitshalber erst ab GolbalInt 25 oder 30 anzufangen. Aber offenbar reicht auch das nicht.
Ich hatte beim Testen meines Spiel irgendwann einen Fehler. Es passierte beim Betreten eines Raum etwas, aber die Handlung die dies auslösen sollte (und in GlobalInt 44 speichen) hatte ich nicht durchgeführt. Ich schaffte es auch nicht diesen Fehler zu reporduzieren. Erst einige Zeit später stieß ich darauf: Die Fahne des Briefkastens verwendet standardmässig ebenfalls die GlobalInt 44. Ich hatte offenbar einmal beim Testen aus Langeweile die Fahne hochgeklappt und das Programm dachte, ich hätte meine Aktion bereits durchgeführt. Ein böser Fehler, der leicht ins fertige Spiel geraten könnte (ein Glück, daß ich die Sprüche zur Fahne abändern wollte und dadurch die undokumentierte GlobalInt bemerkte).
Jetzt stellt sich die Frage: Welche undokumentierten Global Ints werden im Starterpack noch verwendet?
In der Küche stieß ich auf einige seltsame Befehle bei Mikrowelle und Kühlschrank, die sich auf GlobalInt 32, 36 und 37 auswirken.
Benutze linkes Sitzkissen mit offenem Kühlschrank:
(Wasser wird eingeschaltet, man verliert das Sofakissen, GlobalInt 37 wird umgestellt)
Schließe offener Kühlschrank:
(Laufendes Wasser wird ausgeschaltet, GlobalInt 32 wird umgestellt)
Benutze linkes Sitzkissen mit offene Mikrowelle:
(Schublade öffnet sich, man verliert das Sofakissen, GlobalInt 36 wird umgestellt)
Schließe offene Mikrowelle:
(Schublade wird geschlossen)
Offenbar handelt es sich hierbei um Script-Überreste aus Folge 1. Und sofern man diese GlobalInts selber verwendet, kann dies große Fehler im Spiel verursachen, wenn eine GlobalInt einfach so umgestellt wird, nur weil man z.B. den Kühlschrank schließt.
Der Bug mit dem linken Sofakissen und der Mikrowelle tritt sogar auf jeden Fall auf, da GobalInt 32 ja standardmässig auf 0 steht. Ein kurzer Test mit den bisherigen MMM-Episoden zeigte, daß man ihn bereits in Folge 18, 22, 23 und 30 findet. Wenn ihr hier das linke Sofakissen in die Mikrowelle steckt, öffnet sich die Schublade unter der Mikrowelle und das Kissen ist verschwunden.
Ich hatte beim Testen meines Spiel irgendwann einen Fehler. Es passierte beim Betreten eines Raum etwas, aber die Handlung die dies auslösen sollte (und in GlobalInt 44 speichen) hatte ich nicht durchgeführt. Ich schaffte es auch nicht diesen Fehler zu reporduzieren. Erst einige Zeit später stieß ich darauf: Die Fahne des Briefkastens verwendet standardmässig ebenfalls die GlobalInt 44. Ich hatte offenbar einmal beim Testen aus Langeweile die Fahne hochgeklappt und das Programm dachte, ich hätte meine Aktion bereits durchgeführt. Ein böser Fehler, der leicht ins fertige Spiel geraten könnte (ein Glück, daß ich die Sprüche zur Fahne abändern wollte und dadurch die undokumentierte GlobalInt bemerkte).
Jetzt stellt sich die Frage: Welche undokumentierten Global Ints werden im Starterpack noch verwendet?
In der Küche stieß ich auf einige seltsame Befehle bei Mikrowelle und Kühlschrank, die sich auf GlobalInt 32, 36 und 37 auswirken.
Benutze linkes Sitzkissen mit offenem Kühlschrank:
Code: Alles auswählen
if (GetGlobalInt(32)==2) {
ObjectOn(5);
LoseInventory(4);
PlaySound(77);
SetGlobalInt(37,1);
}
Schließe offener Kühlschrank:
Code: Alles auswählen
if (GetGlobalInt(37)==1) {
ObjectOff(5);
SetGlobalInt(32,3);
}
Benutze linkes Sitzkissen mit offene Mikrowelle:
Code: Alles auswählen
if (GetGlobalInt(32)==0) {
ObjectOn(4);
LoseInventory(4);
PlaySound(77);
SetGlobalInt(36,1);
}
Schließe offene Mikrowelle:
Code: Alles auswählen
if (GetGlobalInt(36)==1) {
ObjectOff(4);
}
Offenbar handelt es sich hierbei um Script-Überreste aus Folge 1. Und sofern man diese GlobalInts selber verwendet, kann dies große Fehler im Spiel verursachen, wenn eine GlobalInt einfach so umgestellt wird, nur weil man z.B. den Kühlschrank schließt.
Der Bug mit dem linken Sofakissen und der Mikrowelle tritt sogar auf jeden Fall auf, da GobalInt 32 ja standardmässig auf 0 steht. Ein kurzer Test mit den bisherigen MMM-Episoden zeigte, daß man ihn bereits in Folge 18, 22, 23 und 30 findet. Wenn ihr hier das linke Sofakissen in die Mikrowelle steckt, öffnet sich die Schublade unter der Mikrowelle und das Kissen ist verschwunden.