Events per Script kontrollieren

Dieser Artikel beschreibt, wie man Events per Script-Befehle kontrolliert. Das beinhaltet u.a den Bewegungsablauf von Scripts oder das Ändern ihrer Grafik.

Inhalt

Einfache Script-Befehle

Der Script-Bereich PField_Field enthält mehrere Funktionen, um Events per Script zu kontrollieren. Im Script-Bereich PMinigame_Duel findet man ein Beispiel dafür.

pbWait(x)

Wartet x Frames, wobei ein Frame eine 1/40 Sekunde entspricht. Während es wartet, fährt das Szenario mit dem weiteren Prozess fort.

pbShake(power,speed,x)

Wackelt den Bildschirm mit einer vorgegebener Stärke (power) und Geschwindigkeit (speed) mit einer Dauer von x Frames, wobei ein Frame 1/20 der Sekunde entspricht. Während des Wackelns können weitere Befehle ausgeführt werden.

pbFlash(color,x)

Der Bildschirm blitzt mit einer vorgegebener Farbe (color) auf. Die Dauer beträgt x Frames, wobei ein Frame 1/20 der Sekunde entspricht.

pbToneChangeAll(tone,duration)

Legt den Farbton (tone) für den Bildschirm und alle Grafiken fest. Die Dauer beträgt x Frames, wobei ein Frame 1/20 der Sekunde entspricht.

pbMoveRoute(event,commands)

Startet einen Bewegungsablauf am Event (Game_Character). Um den Bewegungsablauf des Spielers zu bestimmen, benutzt man $game_player für das Event. Um den Bewegungsablauf für ein Event der aktuellen Map zu bestimmen, benutzt man $game_map.events[X], wobei X für die Event-ID steht. event kann nil sein. commands steht für einen Array mit Bewegungsabläufen, bei dem jeder Befehl von Parameter gefolgt wird. Hier ist ein Beispiel für den Bewegungsablauf vom Spieler:

Beachte, dass der ChangeSpeed-Befehl eine Nummer besitzt, die die Geschwindigkeit bestimmt. Der Backward-Befehl besitzt keine Parameter. Hier ist eine Liste der möglichen Befehle, mit ihren möglichen Parameter:

  • Down, Left, Right, Up (Event geht nach unten, links, rechts oder oben) – Keine Parameter
  • LowerLeft, LowerRight, UpperLeft, UpperRight (Event geht nach Unten Links, Unten Rechts, Oben Links oder Oben Rechts) – Keine Parameter
  • Random (zufällige Bewegung) – Keine Parameter
  • TowardPlayer, AwayFromPlayer (Event geht zum Spieler oder vom Spieler weg) – Keine Parameter
  • Forward, Backward (Event geht vorwärts oder rückwärts) – Keine Parameter
  • TurnDown, TurnLeft, TurnRight, TurnUp (Event dreht sich nach links, rechts, oben oder unten) – Keine Parameter
  • TurnRight90, TurnLeft90, Turn180, TurnRightOrLeft90 (Event dreht sich um bestimmten Winkel) – Keine Parameter
  • TurnRandom, TurnTowardPlayer, TurnAwayFromPlayer (Event dreht sich zufällig zum Spieler oder vom Spieler weg) – Keine Parameter
  • WalkAnimeOn, WalkAnimeOff (Geh-Animation ist an oder aus) – Keine Parameter
  • StepAnimeOn, StepAnimeOff (Stop-Animation ist an oder aus) – Keine Parameter
  • DirectionFixOn, DirectionFixOff (Blickrichtung vom Event ist fixiert oder nicht fixiert) – Keine Parameter
  • ThroughOn, ThroughOff (Event ist durchlässig oder nicht durchlässig) – Keine Parameter
  • AlwaysOnTopOn, AlwaysOnTopOff (Event besitzt höchste Priorität oder nicht) – Keine Parameter
  • Jump (Springen) – X Koordinate; Y Koordinate
  • Wait (Warten) – Dauer des Wartens in Frames (1 Frame = 1/20 Sekunde)
  • SwitchOn (Switch ist an) – Switch-Nummer
  • SwitchOff (Switch ist aus) – Switch-Nummer
  • ChangeSpeed (Ändert Gehgeschwindigkeit des Events) – Gewünschte Geschwindigkeit (1-6)
  • ChangeFreq (Dauer der Pausen zwischen den Bewegungen des Events. Je höher, desto kürzer die Dauer) – Gewünschte Häufigkeit (1-6)
  • Graphic (Grafik) – Dateiname; Farbton (0-359); Richtung (2=oben, 4=links, 6=rechts, 8=oben); Muster (0-3)
  • Opacity (Transparenz) – Transparenz (0-255)
  • Blending (Blende) – Blende (0=normal, 1=addieren, 2=subtrahieren)
  • PlaySE (SE abspielen) – Name des Sound-Effekts (SE), die abgespielt werden soll
  • Script – Script, das ausgeführt werden soll
  • ScriptAsync – Script, das ausgeführt werden soll (der Bewegungsablauf wartet nicht, bis das Script fertig ist)

Benutzt man pbMoveRoute, dann setzt dieser ThroughOn am Anfang des Bewegungsablauf und ThroughOff am Ende. Dadurch kann das Event an Orten gehen, an denen es normalerweise nicht könnte (z.B über das Wasser oder über Bäume). Man sollte daher sichergehen, dass nichts merkwürdiges passiert.

Die Funktionen geben sofort ihren Wert zurück und warten nicht darauf, bis der Bewegungsablauf zu Ende ist. Der zurückgegebene Wert ist der erstellte Bewegungsablauf (RPG::MoveRoute).