PKMN GSK Darstellung Bewegung People-Events

aus RHWiki, der freien Romhacking-Enzyklopädie

Inhaltsverzeichnis


In diesem Artikel wird das System erläutert mit dessen Hilfe in Pokémon Gold, Silber & Kristall Personen-Events dargestellt und bewegt werden.

Einleitung

Die Eigenschaften eines Personen-Events werden in den Personen-Daten einer Map festgelegt.
Des Weiteren werden spezielle Eigenschaften wie z.B. zu verwendende Grafiken und Standardpalette in den Spritedefinitionslisten, erlaubte Sprite-Nummern für Außen-Maps in den Spritesets festgelegt.
Hier wird kurz das System erklärt, das die Darstellung bewirkt und es wird auf einzelne Aspekte eingegangen, wie z.B. die benutzten Spritedaten für die Gras-Animation etc.

System

Das System besteht grob gesagt aus zwei Teilbereichen: einmal das Ausführen von Scripts und einmal das Errechnen von Spritedaten. Auf den ersten Blick hören sich die Aufgabenbereiche sehr identisch an, sind es jedoch nicht. Die auszuführenden Scripts ändern meist Aspekte des Personen-Events, bzw. dessen Daten im Ram. Die Routine, die die Spritedaten errechnet stellt dann je nach den Personen-Daten im Ram andere Spritedaten bereit. Das System übergibt sich praktisch einander die Aufgaben.
Es ist darauf zu achten, dass die meisten Scripts die Spritedatenset-Nummer variabel oder statisch vergeben. Ohne ASM-Kenntnisse gibt es keine einfache Möglichkeit diese Routinen effektiv zu bearbeiten.

Die nächsten zwei Abschnitte sind rein informativ und man sollte sie bloß überfliegen oder etwas Spezielles suchen. Das Zusammenspiel der einzelnen Routinen, Spritedaten, Bewegunsfunktionen und Bewegunsanimationen, wird im Bewegungsheader deutlich!

Errechnen der Spritedaten

Die zu benutzenden Spritedaten werden durch die zwei Scriptarten und den Bewegungsheader bestimmt. Es gibt insgesamt 0x20 Spritedatensets, also Set 0x00 bis Set 0x1F. Sollte die gewählte Nummer größer als 0x1F sein, so wird kein Sprite dargestellt. (Der Personen-Event ist jedoch nicht automatisch versteckt, d.h. Kollision und Interaktion ist immer noch möglich!)

Auflistung der Spritedatensets in Gruppen

  Nummer und Name der Daten
Beschreibung der Spritedaten Anzahl der Tiles [Y-Verschiebung in px][X-Verschiebung in px] [Tiledaten] [Tile-Nummer]

Y-/X-Verschiebung:

Die Verschiebung in px des einen Sprite-Tiles. Die Koordinaten eines Sprites für den Gameboy (Color) können maximal ein Byte groß sein, daher wirken sich die Verschiebungswerte wie signed Bytes aus.

Tiledaten:

Bitweise Funktionen:
7 - Priority
6 - Y-Flip
5 - X-Flip
4 - Palettennummer für Gameboy Mono
3 - nicht vergeben
2 - 0: relativ zum Starttile der People-Event-Grafik, 1: absolute Tilenummer
1 - automatisch auf Priority stellen, wenn der People-Event Gras betritt
0 - nicht vergeben

Tile-Nummer:

Abhängig von Bit 2 der Tiledaten entweder absolut oder relativ.


Wichtig: In Bildern, die nicht nur die entstehenden Tiles enthalten, sind die anderen Tiles in Graustufen abgebildet, um die Positionierung (bzw. die typische Positionierung) besser darzustellen.

Spritedatenset unten:

  0x00 Stehen unten 0x01 Gehen unten #1 0x02 Gehen unten #2 0x03 Gehen unten #3
Stehen und Gehen unten 0x04 Tiles [00][00] [00] [00] 0x04 Tiles [00][00] [00] [80] 0x04 Tiles [00][00] [00] [00] 0x04 Tiles [00][08] [20] [80]
[00][08] [00] [01] [00][08] [00] [81] [00][08] [00] [01] [08][00] [20] [81]
[08][00] [02] [02] [08][00] [02] [82] [08][00] [02] [02] [08][08] [22] [82]
[08][08] [02] [03] [08][08] [02] [83] [08][08] [02] [03] [08][00] [22] [83]

Spritedatenset oben:

  0x04 Stehen oben 0x05 Gehen oben #1 0x06 Gehen oben #2 0x07 Gehen oben #3
Stehen und Gehen oben 0x04 Tiles [00][00] [00] [04] 0x04 Tiles [00][00] [00] [84] 0x04 Tiles [00][00] [00] [04] 0x04 Tiles [08][00] [20] [84]
[00][08] [00] [05] [00][08] [00] [85] [00][08] [00] [05] [00][00] [20] [85]
[08][00] [02] [06] [08][00] [02] [86] [08][00] [02] [06] [08][08] [22] [86]
[08][08] [02] [07] [08][08] [02] [87] [08][08] [02] [07] [08][00] [22] [87]

Spritedatenset links:

  0x08 Stehen links 0x09 Gehen links #1 0x0A Gehen links #2 0x0B Gehen links #3
Stehen und Gehen links 0x04 Tiles [00][00] [00] [08] 0x04 Tiles [00][00] [00] [88] 0x04 Tiles [00][00] [00] [08] 0x04 Tiles [00][00] [00] [88]
[00][08] [00] [09] [00][08] [00] [89] [00][08] [00] [09] [00][08] [00] [89]
[08][00] [02] [0A] [08][00] [02] [8A] [08][00] [02] [0A] [08][00] [02] [8A]
[08][08] [02] [0B] [08][08] [02] [8B] [08][08] [02] [0B] [08][08] [02] [8B]

Spritedatenset rechts:

  0x0C Stehen rechts 0x0D Gehen rechts #1 0x0E Gehen rechts #2 0x0F Gehen rechts #3
Stehen und Gehen rechts 0x04 Tiles [00][08] [20] [08] 0x04 Tiles [00][08] [20] [88] 0x04 Tiles [00][08] [20] [08] 0x04 Tiles [00][08] [20] [88]
[00][00] [20] [09] [00][00] [20] [89] [00][00] [20] [09] [00][00] [20] [89]
[08][08] [22] [0A] [08][08] [22] [8A] [08][08] [22] [0A] [08][08] [22] [8A]
[08][00] [22] [0B] [08][00] [22] [8B] [08][00] [22] [0B] [08][00] [22] [8B]

Spritedatenset Angel:

  0x10 Angeln oben 0x11 Angeln unten 0x12 Angeln links 0x13 Angeln rechts
Angeln alle Richtungen 0x05 Tiles [00][00] [00] [00] 0x05 Tiles [00][00] [00] [04] 0x05 Tiles [00][00] [00] [08] 0x05 Tiles [00][08] [20] [08]
[00][08] [00] [01] [00][08] [00] [05] [00][08] [00] [09] [00][00] [20] [09]
[08][00] [02] [02] [08][00] [02] [06] [08][00] [02] [0A] [08][08] [22] [0A]
[08][08] [02] [03] [08][08] [02] [07] [08][08] [02] [0B] [08][00] [22] [0B]
[10][00] [04] [FC] [F8][00] [04] [FC] [05][F8] [24] [FD] [05][10] [04] [FD]

Spritedatenset Gefühls-Blase:

  0x14 Gefühls-Blase
Gefühls-Blase anzeigen 0x04 Tiles [00][00] [04] [F8]
[00][08] [04] [F9]
[08][00] [04] [FA]
[08][08] [04] [FB]

Spritedatenset Sprung-Schatten:

  0x15 Sprung-Schatten
Sprung-Schatten anzeigen 0x02 Tiles [00][00] [04] [FC]
[00][08] [24] [FC]

Spritedatenset Riesenpuppen:

  0x16 Onix-Riesenpuppe 0x17 Relaxo-/Lapras-Riesenpuppe
Riesenpuppe anzeigen 0x0E Tiles [00][00] [00] [00] 0x10 Tiles [00][00] [00] [00]
[00][08] [00] [01]
[00][08] [00] [01]
[08][00] [00] [04] [08][00] [00] [02]
[08][08] [00] [05] [08][08] [00] [03]
[10][08] [00] [07] [10][00] [00] [04]
[18][08] [00] [0A] [10][08] [00] [05]
[00][18] [00] [03] [18][00] [00] [06]
[00][10] [00] [02] [18][08] [00] [07]
[08][18] [20] [02] [00][18] [20] [00]
[08][10] [00] [06] [00][10] [20] [01]
[10][18] [00] [09] [08][18] [20] [02]
[10][10] [00] [08] [08][10] [20] [03]
[18][18] [20] [04] [10][18] [20] [04]
[18][10] [00] [0B] [10][10] [20] [05]
[18][18] [20] [06]
[18][10] [20] [07]

Spritedatenset Mogelbaum:

  0x18 Stehen unten 0x19 Stehen oben ohne Priority 0x1A Stehen unten 0x1B Stehen oben ohne Priority gespiegelt
Mogelbaum beim Gießen 0x04 Tiles [00][00] [00] [00] 0x04 Tiles [00][00] [00] [04] 0x04 Tiles [00][00] [00] [00] 0x04 Tiles [00][08] [20] [04]
[00][08] [00] [01] [00][08] [00] [05] [00][08] [00] [01] [00][00] [20] [05]
[08][00] [02] [02] [08][00] [00] [06] [08][00] [02] [02] [08][08] [20] [06]
[08][08] [02] [03] [08][08] [00] [07] [08][08] [02] [03] [08][00] [20] [07]

Spritedatenset Stärke:

  0x1C Stärke bewegt Felsen #1 0x1D Stärke bewegt Felsen #2
Staub unter Felsen 0x04 Tiles [00][00] [04] [FE] 0x04 Tiles [00][00] [04] [FF]
[00][08] [04] [FE] [00][08] [04] [FF]
[08][00] [04] [FE] [08][00] [04] [FF]
[08][08] [04] [FE] [08][08] [04] [FF]

Spritedatenset Gras:

  0x1E Person läuft durch Gras #1 0x1F Person läuft durch Gras #2
Gras-Animation
beim Hindurchgehen
0x02 Tiles [08][00] [00] [00] 0x02 Tiles [09][FF] [00] [00]
[08][08] [20] [00] [09][09] [20] [00]

Ausführen von Scripts

Es gibt zwei Arten von Script. Der Einfachheit halber, kann man sie in Bewegungsfunktions-Scripts und Bewegungsanimations-Scripts unterteilen, obwohl die eigentliche Funktionsteilung beider Arten mehr als schwammig ist! Die Bewegunsfunktionen rufen in der Regel die Bewegungsanimationen, technisch ist jedoch auch das umgedrehte möglich und eine gegenseitige, zeitlich gesteuerte Beeinflussung durchführbar.

Bewegungsfunktionen

  Erläuterung
0x00 Keine Bewegungsfunktion. People-Event steht still.
0x01 People-Event kann bei jedem Schritt in Y-Richtung ±1 Feld zurücklegen.
Maximal 0x7F Aufrufe hintereinander pausieren.
0x02 People-Event kann bei jedem Schritt in X-Richtung ±1 Feld zurücklegen.
Maximal 0x7F Aufrufe hintereinander pausieren.
0x03 People-Event kann bei jedem Schritt entweder in X- oder in Y-Richtung ±1 Feld zurücklegen.
Maximal 0x7F Aufrufe hintereinander pausieren.
0x04 People-Event dreht den Kopf wahllos in eine Richtung
Maximal 0x7F Aufrufe hintereinander pausieren.
0x05 People-Event dreht den Kopf in eine Richtung, jedoch nie zweimal aufeinander folgend in dieselbe.
Maximal 0x1F Aufrufe hintereinander pausieren.
0x06 People-Event hält starren Blick in eine Blickrichtung
0x07+ Bewegungen für HIRO, exakt wie 0x0D
0x08b Bewegungslistenroutine (wird so nicht mehr verwendet)
Geh-Befehl von Liste an Offset in 0xCE8B/C laden (Zähler in der Liste in Personen-Ram-Daten 0x1B)
0x09b Bewegungslistenroutine (wird so nicht mehr verwendet)
Geh-Befehl von Liste an Offset in 0xCE8B/C laden (Zähler in der Liste in Personen-Ram-Daten 0x1B)
0x0A+ Geh-Befehl aus 0xCE8B laden
0x0B+ Geh-Befehl aus 0xCE8B laden
0x0C+ Geh-Befehl aus 0xCE8B laden
0x0D+ Bewegungen für HIRO, im Spiel verwendet
0x0E+ Bewegungslistenroutine (wird so nicht mehr verwendet)
Geh-Befehl von Liste an Offset in 0xCE8B/C laden (Zähler in der Liste in Personen-Ram-Daten 0x1B)
0x0F* Von aktuellem Geh-Befehl bis Anfag Folgen-Gehbefehlliste (Ram 0xD1F8) löschen
Folgen ist ein Ingame-Scripting-Befehl.
0x10* Ingame-Scripts bearbeiten.
0x11 STÄRKE-Funktion für Felsen.
0x12 People-Event folgt einer Person.
0x13* Schatten (z.B. bei Sprüngen) darstellen
0x14* Gefühls-Blase darstellen.
0x15 Lapras-/Relaxo-Riesenpuppe: Daten laden.
0x16 Pokémon-Minibilder: Daten laden.
0x17* Bildschirm wackeln lassen.
0x18 People-Event führt Kreisbewegungen im Uhrzeigersinn aus. (Buggy! Bugfix hier.)
0x19 People-Event führt Kreisbewegungen gegen Uhrzeigersinn aus. (Buggy! Bugfix hier.)
0x1A* STÄRKE-Animation Rauch.
0x1B* Gras-Animation beim Hindurchgehen.

Bei den Funktionen, die ausschließlich Personen-Events bewegen, wird zufällig ein Zeitintervall zwischen einer und einer nächsten Bewegung festgelegt. Die Obergrenzen dieser Intervalle sind meist angegeben.

Erklärung der Zusatzzeichen:

b: Ingame nicht brauchbar, da das Spiel die Daten nicht mehr auf diese Weise lädt.
*: Ingame allein stehend praktisch unbrauchbar, da diese Bewegunsfunktionen event-basierend sind, z.B. STÄRKE etc.
+: Ingame nur einzeln verwendbar, da HIROs Bewegung automatisch die erforderlichen Register mit Geh-Befehlen für "Keine Bewegung" füllt.

Bewegunsanimationen

  Erläuterung für bewegliche Sprites Erläuterung für stillstehende Sprites
0x00 People-Event verstecken People-Event verstecken
0x01 Auf Ende einer Geh-Animation warten, dann Stehen Keine Aktion
0x02 Geh-Animation Keine Aktion
0x03 Langsame Geh-Animation Keine Aktion
0x04 im Uhrzeigersinn drehen Keine Aktion
0x05 im Uhrzeigersinn drehen und verstecken Verstecken
0x06 Angel-Darstellung Angel-Darstellung
0x07 Schatten bei Sprung Verstecken
0x08 Gefühls-Blase darstellen Gefühls-Blase darstellen
0x09 Spritedatenset-Nummer für Riesenpuppen Relaxo/Lapras laden Spritedatenset-Nummer für Riesenpuppen Relaxo/Lapras laden
0x0A Abwechselnd nach oben (Spritedaten 0x00) und nach unten (Spritedaten 0x04) gucken für Pokémon Minibilder Nur nach oben (Spritedaten 0x00) gucken
0x0B In laufendem Wechsel Blickrichtung: unten, oben, unten, oben-gespeigelt (Spritedaten 0x18, 0x19, 0x1A, 0x1B) für Mogelbaum Keine Aktion
0x0C Spritedatenset-Nummer für Riesenpuppe Onix laden Spritedatenset-Nummer für Riesenpuppe Onix laden
0x0D Spritedatenset-Nummer für Riesenpuppe in HIROs Raum laden (entweder Relaxo, Lapras oder Onix anhand Computerauswahl) Spritedatenset-Nummer für Riesenpuppe in HIROs Raum laden (entweder Relaxo, Lapras oder Onix anhand Computerauswahl)
0x0E Abwechselnd 2x Stärke bewegt Felsen #1 (Spriteset 0x1C) und 4x Stärke bewegt Felsen #2 (Spriteset 0x1D) für STÄRKE-Animation Verstecken
0x0F Abwechselnd 4x Person läuft durch Gras #1 (Spriteset 0x1E) und 4x Person läuft durch Gras #2 (Spriteset 0x1F) für Gras-Animation Verstecken

Die beiden Systeme gehen Hand in Hand, daher gibt es vermeintlich "doppelte Belegungen", die aber keine sind, da die Bewegungsfunktionen die jeweiligen Bewegungsanimationen rufen! Ob die Animation für bewegliche oder stillstehende Sprites ausgeführt wird, hängt von vom Eigenschaftsbyte 2 im Bewegungsheader ab.

Bewegungsheader

Der Bewegungsheader ist der Kern der gesamten Darstellung und Bewegung von Sprites. Bisher wurden bloß die Teilaspekte ausgeleuchtet, aber nicht, wie sie eigentlich angesteuert werden!

Die Steuerung der Darstellung und der Bewegung eines People-Events auf einer Map wird einzig und allein mit dem Bewegungsbyte in den Personen-Daten des Events vorgenommen!

Bewegungsbyte [Bewegungsfunktion][Blickrichtung][Bewegungsanimation][Eigenschaftsbyte 1][Eigenschaftsbyte 2][Eigenschaftsbyte 3] Beschreibung der Bewegungen

Wichtig: Es handelt sich bei allen Daten um Initialwerte, die jederzeit durch Scripts (sowohl Bewegungsfunktionen/-animationen, als auch Ingame-Scripts und sonstige ASM-Script) geändert werden können. Manche Bewegungsanimationsbytes sind gar nicht nötig, da die Bewegungsfunktionen diese noch einmal setzen!

Bewegungsfunktion:

Initiale Bewegungsfunktion, siehe Liste oben.

Blickrichtung:

Initiale Blickrichtung. Byte * 0x04 ergibt Spritedatensetnummer:
0x00 - unten
0x01 - oben
0x02 - links
0x03 - rechts
Andere Werte werden durch eine Abfrage auf diese vier Blickrichtungen herunter gerechnet.

Bewegungsanimation:

Initiale Bewegungsanimation, siehe Liste oben.

Eigenschaftsbyte 1:

Bitweise Funktionen:
7 - keine Kollisionsabfrage mit diesem People-Event
6 - keine Kollisionsabfrage mit HIRO
5 - kein Umherlaufen möglich
4 - BX/CX-Kollisionen ignorieren (Buggy! Geht nicht, falls in Eigenschaftsbyte 3 Bit 5 'Fortbewegung ausschließlich im Wasser' gesetzt ist! Bugfix: hier.)
3 - keine Geh-Animation zulassen beim Gehen (für People-Events, die Front-Sprites benutzen)
2 - Tileverschiebung anhand der Blickrichtung errechnen (z.B. bei Kopfbewegungen)
1 - People-Event auch beim Verlassen des Sichtbereichs von HIRO nicht aus dem Ram löschen
0 - OAM-Sprites verstecken

Eigenschaftsbyte 2:

Bitweise Funktionen:
7 - Priority des Sprites ist eingeschaltet
6*- People-Event nicht auf Screen
5 - Bewegungsscripts für 0: bewegliche Sprites 1: stillstehende Sprites
4 - 0: OBJPal 0, 1: OBJPal 1 (nur für Gameboy Mono)
3*- People-Event steht auf Aktions-Kollisionsfeld (z.B. Warp)
2 - People-Event STÄRKE
1 - Sprite-Eventart #2 (Bewegend)
0 - Sprite-Eventart #1 (Still)
Es sollte jeweils bloß eine Sprite-Eventart gesetzt sein, sonst wird der Sprite womöglich doppelt dargestellt. Diese Bits sind wichtig für die Reihenfolge in der die Sprites dargestellt werden. Bewegende Sprites (z.B. Gras-Animation) werden vor stillstehenden Sprites (z.B. Bäume, Menschen) dargestellt.
People-Event STÄRKE wird nur für Felsen verwendet und löst eine Bewegung des Felsens aus.
* bedeutet, dass es nicht sinnvoll ist, diese Bits zu setzen, da sie von der Darstellungsroutine richtig dem Status des People-Events entsprechend gesetzt werden.

Eigenschaftsbyte 3:

Bitweise Funktionen:
7 - People-Event 2x2 Blockviertel groß
6 - People-Event per STÄRKE beweglich
5 - Fortbewegung ausschließlich im Wasser möglich (an Land nur Kopfbewegungen) (Buggy! Ignoriert Eigenschaftsbyte 1 Bit 4 'BX/CX-Kollisionen ignorieren', Bugfix dazu hier, und funktioniert selbst nicht richtig, Bugfix hier)
4 - nicht vergeben
3-0 - wird mit Palette von Sprite geORt (wahrscheinlich Vorstufe der Paletteneinstellung in den Spritedefinitionslisten; überflüssig)

Bewegungsbyte

  Daten Beschreibung
0x00 [00][00][01][02][00][00] keine Bewegung
beim Verlassen des Sichtbereichs nicht löschen
0x01 [06][00][01][0C][00][00] starr unten; kein Kopfdrehen bei Ansprechen (Bäume etc.; wie 0x17)
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
0x02 [03][00][01][00][00][00] Bewegung ±1 Feld in X- oder Y-Richtung
0x03 [04][00][01][00][00][00] Kopf drehen
0x04 [01][00][01][00][00][00] Bewegung ±1 Feld in Y-Richtung
0x05 [02][00][01][00][00][00] Bewegung ±1 Feld in X-Richtung
0x06 [06][00][01][00][00][00] starr unten; Kopfdrehen bei Ansprechen
0x07 [06][01][01][00][00][00] starr oben; Kopfdrehen bei Ansprechen
0x08 [06][02][01][00][00][00] starr links; Kopfdrehen bei Ansprechen
0x09 [06][03][01][00][00][00] starr rechts; Kopfdrehen bei Ansprechen
0x0A [05][00][01][00][00][00] Kopf drehen, jedoch nie zweimal dieselbe Richtung hintereinander
0x0B [07][00][01][02][00][00] Bewegungen Hiro (dasselbe wie 0x0D, nicht verwendet)
beim Verlassen des Sichtbereichs nicht löschen
0x0C [08][00][01][00][00][00]
0x0D [09][00][01][00][00][00] Bewegungen Hiro (im Spiel benutzt)
0x0E [0A][00][01][00][00][00]
0x0F [0B][00][01][00][00][00]
0x10 [0C][00][01][00][00][00]
0x11 [0D][00][01][00][00][00]
0x12 [0E][00][01][00][00][00]
0x13 [0F][00][01][02][00][00]
0x14 [10][00][01][02][00][00]
beim Verlassen des Sichtbereichs nicht löschen
0x15 [15][00][09][2E][01][C0] Riesenpuppe Relaxo/Lapras
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
kein Umherlaufen möglich
Sprite-Eventart #1 (Still)
per STÄRKE beweglich
2x2 Blockviertel groß
0x16 [16][00][0A][2E][00][00] Ingame-PKMN z.B. Miltank-Farm
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
kein Umherlaufen möglich
0x17 [06][00][01][0C][00][00] starr unten; kein Kopfdrehen bei Ansprechen (Bäume etc.)
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Animation
0x18 [06][00][01][2E][10][00] starr unten; kein Kopfdrehen bei Ansprechen; OBJPal1 (Bäume etc.)
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
kein Umherlaufen möglich
bentuzt OBJPal1
0x19 [11][00][01][2E][00][40] Stärke-Funktion für Felsen
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
kein Umherlaufen möglich
per STÄRKE beweglich
0x1A [12][00][01][02][00][00] Person folgen.
beim Verlassen des Sichtbereichs nicht löschen
0x1B [13][00][00][8E][01][00] Schatten bei Sprung etc.
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
keine Kollisionsabfrage mit diesem People-Event
Sprite-Eventart #1 (Still)
0x1C [14][00][08][8E][02][00] Gefühlsblase
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
keine Kollisionsabfrage mit diesem People-Event
Sprite-Eventart #2 (Bewegend)
0x1D [17][00][00][82][00][00] Erdbeben
beim Verlassen des Sichtbereichs nicht löschen
keine Kollisionsabfrage mit diesem People-Event
0x1E [19][02][01][00][00][00] Kreisbewegung entgegen Uhrzeigersinn; Start links; Buggy! Bugfix hier.
0x1F [18][03][01][00][00][00] Kreisbewegung Uhrzeigersinn; Start rechts; Buggy! Bugfix hier.
0x20 [11][00][0C][2E][01][C0] Riesenpuppe Onix
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
kein Umherlaufen möglich
Sprite-Eventart #1 (Still)
per STÄRKE beweglich
2x2 Blockviertel groß
0x21 [11][00][0D][2E][01][C0] Riesenpuppe Hiros Raum (Wahlweise Lapras, Relaxo, Onix)
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
kein Umherlaufen möglich
Sprite-Eventart #1 (Still)
per STÄRKE beweglich
2x2 Blockviertel groß
0x22 [1A][00][0E][8E][01][00] Stärke-Animation Rauch
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
keine Kollisionsabfrage mit diesem People-Event
Sprite-Eventart #1 (Still)
0x23 [1B][00][0F][8E][02][00] Gras-Animation beim Hindurchgehen
beim Verlassen des Sichtbereichs nicht löschen
Tileverschiebung nicht anhand Blickrichtung errechnen
Keine Geh-Frames verwenden
keine Kollisionsabfrage mit diesem People-Event
Sprite-Eventart #2 (Bewegend)
0x24 [03][00][01][00][00][20] Schwimmer ±1 Feld in X- oder Y-Richtung; Buggy! Bugfixes unten.
Fortbewegung ausschließlich im Wasser möglich
0x25 [00][00][01][00][00][00] Keine Bewegung. Dummy-Daten, nicht wählbar.

Bugfixes

BX/CX-Check für Fortbewegung im Wasser

Bei 01:7083 folgendes eingeben:

7E E6 03 5F 16 00 21 91 70 C3 6B 70 00 00

Code stellt sicher, dass das Ziel nicht ein Block ist, der in der Gegenrichtung unpassierbar ist.

Fortbewegung nur im Wasser

Bei 01:6FD7 folgendes eingeben:

21 04 00 09 CB 66 20 20 21 06 00 09 CB 6E 28 0A E5 C5 CD 42 70 C1 E1 D8 18 0E 00 00 00 00 00 00

Code stellt sicher, dass Eigenschaftsbyte 1 Bit 4 auch mit Eigenschaftsbyte 3 Bit 5 kompatibel ist.

Kreisbewegungen

Bei 01:4981 folgendes eingeben:

C6

Code stellt sicher, dass anstatt statischem Intervall von 0x10 nun 0x10 + Spezialbyte genommen wird. Somit ist das Zeitintervall zwischen einer Vierteldrehung variabel.

'Persönliche Werkzeuge