Hilfreiche Funktionen in MMM
Verfasst: 26.09.2005, 18:55
Lieber spät als nie... Hier sind einige Hinweise für das Erstellen von Interaction-Scripts in MMM:
1. Es wird immer nur die Interaction „Any click on ...“ verwendet... keine anderen!
2. Es gibt im Global Script definierte Funktionen, die in Interaction-Scripts verwendet werden können und die Scripts teilweise wesentlich verkürzen:
a) FaceDirection
Anstelle von FaceLocation kann FaceDirection verwendet werden, wenn der Character in eine bestimmte Richtung und nicht auf einen bestimmten Punkt schauen soll:
FaceDirection (CharId, DIR_UP);
FaceDirection (CharId, DIR_LEFT);
FaceDirection (CharId, DIR_DOWN);
FaceDirection (CharId, DIR_RIGHT);
Hierdurch wird das Script auch leichter lesbar.
b) EnterRoom
Anstelle von NewRoom kann der Playercharacter mit EnterRoom in einen neuen Raum an eine bestimmte Stelle geschickt werden:
EnterRoom (int room, int x, int y, int dir);
Für „dir“ werden die Konstanten von FaceDirection verwendet.
c) GiveInv und GiveInvEx
GiveInv (int invitem, int charid)
PlayerCharacter gibt invitem an charid.
GiveInvEx (int invitem, int charidfrom, int charidto)
charidfrom gibt invitem an charidto.
d) MovePlayer und abgeleitete Funktionen
Die folgenden Funktionen bewegen den PlayerCharacter; die weitere Ausführung des Scripts wird unterbrochen. Diese Bewegung kann der Spieler durch Klicken mit der Maus abbrechen. Die Funktionen geben zurück, ob das Ziel erreicht oder abgebrochen wurde.
MovePlayer (int x, int y)
Bewegung auf Walkable Area zu den angegebene Koordinaten.
MovePlayerEx (int x, int y, int direct)
Mit direct = 1 werden Walkable Areas ignoriert. Der PlayerCharacter bewegt sich in gerader Linie zu den Koordinaten.
GoToCharacter (int charid, int direction, int NPCfacesplayer, int blocking)
Bewegt den PlayerCharacter zu charid, wobei Walkable Areas beachtet werden. Bleibt in einem definierten Abstand auf der Seite von charid stehen, die in direction (1=oberhalb/hinter, 2=rechts, 3=darunter/vor, 4=links) angegeben ist. Der PlayerCharacter schaut charid an. charid schaut den PlayerCharacter nur an, wenn NPCfacesplayer=1 ist. Für blocking können folgende Werte verwendet werden:
0=nicht blockierend (MoveCharacter)
1=blockierend (MoveCharacterBlocking)
2=halb-blockierend (MovePlayer)
Entsprechend gibt es eine Funktion, um eine NPC zu einem anderen Character zu bewegen: NPCGoToCharacter.
Eine allgemeine Funktion, um einen Character zu einem Character zu bewegen ist GoToCharacterEx. Bei dieser Funktion lässt sich auch der Abstand angeben, in dem die Figuren voneinander stehen sollen.
Es gibt auch zwei Funktionen, die den PlayerCharacter zu dem Hotspot, Object oder Character bewegen, auf die der Spieler geklickt hat: Go und GoTo. Nähere Erklärungen im global script.
e) PlaceCharacter und PlacePC
mit diesen Funktionen wird ein Character bzw. der PlayerCharacter an eine Stelle im Raum so platziert, dass er in eine bestimmte Richtung schaut. Einsatz in erster Linie in (... before fadein).
f) init_object (int GI, int objects)
Ist GlobalInt GI ==1, dann wird das Objekt objects angezeigt, ansonsten versteckt. Einsatz in erster Linie in (... before fadein).
(Fortsetzung folgt...)
1. Es wird immer nur die Interaction „Any click on ...“ verwendet... keine anderen!
2. Es gibt im Global Script definierte Funktionen, die in Interaction-Scripts verwendet werden können und die Scripts teilweise wesentlich verkürzen:
a) FaceDirection
Anstelle von FaceLocation kann FaceDirection verwendet werden, wenn der Character in eine bestimmte Richtung und nicht auf einen bestimmten Punkt schauen soll:
FaceDirection (CharId, DIR_UP);
FaceDirection (CharId, DIR_LEFT);
FaceDirection (CharId, DIR_DOWN);
FaceDirection (CharId, DIR_RIGHT);
Hierdurch wird das Script auch leichter lesbar.
b) EnterRoom
Anstelle von NewRoom kann der Playercharacter mit EnterRoom in einen neuen Raum an eine bestimmte Stelle geschickt werden:
EnterRoom (int room, int x, int y, int dir);
Für „dir“ werden die Konstanten von FaceDirection verwendet.
c) GiveInv und GiveInvEx
GiveInv (int invitem, int charid)
PlayerCharacter gibt invitem an charid.
GiveInvEx (int invitem, int charidfrom, int charidto)
charidfrom gibt invitem an charidto.
d) MovePlayer und abgeleitete Funktionen
Die folgenden Funktionen bewegen den PlayerCharacter; die weitere Ausführung des Scripts wird unterbrochen. Diese Bewegung kann der Spieler durch Klicken mit der Maus abbrechen. Die Funktionen geben zurück, ob das Ziel erreicht oder abgebrochen wurde.
MovePlayer (int x, int y)
Bewegung auf Walkable Area zu den angegebene Koordinaten.
MovePlayerEx (int x, int y, int direct)
Mit direct = 1 werden Walkable Areas ignoriert. Der PlayerCharacter bewegt sich in gerader Linie zu den Koordinaten.
GoToCharacter (int charid, int direction, int NPCfacesplayer, int blocking)
Bewegt den PlayerCharacter zu charid, wobei Walkable Areas beachtet werden. Bleibt in einem definierten Abstand auf der Seite von charid stehen, die in direction (1=oberhalb/hinter, 2=rechts, 3=darunter/vor, 4=links) angegeben ist. Der PlayerCharacter schaut charid an. charid schaut den PlayerCharacter nur an, wenn NPCfacesplayer=1 ist. Für blocking können folgende Werte verwendet werden:
0=nicht blockierend (MoveCharacter)
1=blockierend (MoveCharacterBlocking)
2=halb-blockierend (MovePlayer)
Entsprechend gibt es eine Funktion, um eine NPC zu einem anderen Character zu bewegen: NPCGoToCharacter.
Eine allgemeine Funktion, um einen Character zu einem Character zu bewegen ist GoToCharacterEx. Bei dieser Funktion lässt sich auch der Abstand angeben, in dem die Figuren voneinander stehen sollen.
Es gibt auch zwei Funktionen, die den PlayerCharacter zu dem Hotspot, Object oder Character bewegen, auf die der Spieler geklickt hat: Go und GoTo. Nähere Erklärungen im global script.
e) PlaceCharacter und PlacePC
mit diesen Funktionen wird ein Character bzw. der PlayerCharacter an eine Stelle im Raum so platziert, dass er in eine bestimmte Richtung schaut. Einsatz in erster Linie in (... before fadein).
f) init_object (int GI, int objects)
Ist GlobalInt GI ==1, dann wird das Objekt objects angezeigt, ansonsten versteckt. Einsatz in erster Linie in (... before fadein).
(Fortsetzung folgt...)