| Die "MakerModelingLanguage"

###### Welche Idee steckt hinter der "MakerModelingLanguage"?

Die generelle Idee ist es, euch die Möglichkeit zu geben, eure Ideen, die ihr in eurem Projekt umsetzen wollt, durchdacht durchzuplanen, damit ihr vom Anfang bis zum Ende genau wisst, was ihr macht und was ihr wie machen müsst, um eure Idee umzusetzen. Nur, wie kann dabei vorgegangen werden?

###### Syntax der MML

Allein, weil es immer wieder Fragen gibt, ob jemand einem anderem etwas machen kann und bei den Details es oftmals zu Verständnisproblemen kommt. Einer setzt die Idee um, jedoch entspricht das Ergebnis nicht dem, was sich der andere vorgestellt hatte. Um dies zu vermeiden, habe ich mir eine Art "MakerModelingLanguage" ausgedacht, welche die Informationen und Ideen auf ein genormtes Schema bringen sollen, aus denen sich das oder die ensprechenden Ereignisse herleiten lassen. Darüber hinaus weiß dann auch jeder, der die Syntax (Teile, aus denen die MML besteht) kennt, was genau damit gemeint ist und wie die Idee eventuell umzusetzen ist. Hierfür gibt es folgende Teile (jeweilige Neuerungen sind in den Beispielen fett hervorgehoben):

| Die Wahl der Ereignisart | : | Zuerst einmal solltet ihr euch genau überlegen, welche Art von Ereignis ihr braucht. Je nach dem, wofür ihr ein Ereignis benötigt, lässt sich bestimmen, welche Art von Ereignis die bessere wäre. Ein Kriterium reicht schon aus, um eine Wahl zu treffen:
Karten-Ereignis | Common Event/Häufig benötigtes Ereignis
Wenn das Ereignis durch eine Grafik (CharSet) auf der Karte dargestellt werden soll (beispielsweise für Türen, Kisten, Dorfbewohner u.ä. | Wenn das Ereignis durch kein Bild dargestellt werden soll
Wenn das Ereignis nur auf der aktuell bearbeiteten Karte vorkommen soll | Wenn das Ereignis auf mehreren Karten verwendet weden soll
Auslösung des Ereignisses soll dann geschehen, wenn es durch einen Hauptcharakter berührt wird. | Auslösung des Ereignisses soll direkt gesteuert werden und nicht durch Heldberührung o.ä.
Sicher hat es noch mehr Mögliche Kritereien, nach denen ihr die Ereignisart bestimmen könnt, wobei die genannten drei die ausschlaggebenden sind. Um Ereignisse generell darzustellen verwenden wir folgende Grafik
[Ereignisname]
[Ereignisseite 1] [Funktionen der Ereignisseite 1]
[Ereignisseite 2] [Funktionen der Ereignisseite 2]
Bei "Common Events/Häufig benötigten Ereignissen" entfällt die Aufteilung in Ereignis-Seiten, da diese lediglich aus einer einzigen Ereignisseite bestehen. Beachtet, dass der Einheitlichkeit halber jede Ereignis-Seite jedes Ereignisses eine Überschrift hat.
| Der Auslöser | : | Auslöser hat es mehrere im Maker. Je nach dem, wann und wie das Ereignis in Aktion treten soll, ist der Auslöser zu wählen. Im folgendem werden die Kürzel für die Auslöser aufgeführt:
Push Key Bei Tastendruck | : | [ENTER-TASTE]
On Hero touch Bei Heldberührung | : | [Einfachberührung]
On touch (Event, Hero) Bei Berührung (Held, Ereignis) | : | [Mehrfachberührung]
Auto start Automatisch starten | : | [Automatisch]
Parallel Process Paralleler Prozess | : | [Parallel]
Call Aufruf | : | [Direktaufruf]
Die Art des Aufrufs des Ereignisses wird direkt neben die Überschrift der Ereignis-Seite geschrieben, wie folgendes Beispiel verdeutlichen soll:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Funktionen der Ereignisseite 1]
[Ereignisseite 2] [Aufrufart] [Funktionen der Ereignisseite 1]
| Die Aufruf- bedingungen | : | Hierunter fällt alles, was als Voraussetzung für die Verfügbarkeit einer Ereignisseite erforderlich ist. Dies können folgende Dinge sein:
Switch/Schalter | : | [Schalter [Name]], wobei ihr "Name" durch den Namen des Schalters ersetzt
Variable/Variable | : | [Variable [Name]], wobei ihr "Name" durch den Namen der Variable ersetzt Alle drei jeweils in Verbindung mit >= [Wert]
Item/Item | : | [Itemname] oder [Itemnummer] oder[Itemnummer|Itemname]
Hero/Held | : | [Heldname] oder [Heldnummer] oder [Heldnummer|Heldname]
Timer/Timer | : | [Minuten:Sekunden]
Direkt neben die Aufrufart werden dann die entsprechend verwendeten Aufrufbedingungen aufgelistet, die auf der betreffenden Ereignis-Seite verwendet werden. Beachtet hierbei, dass bei "Common Events/Häufig benötigten Ereignissen" lediglich "Switch/Schalter" als Aufrufbedingung verwendet werden können, die dort auf gleicher Höhe mit dem Ereignisnamen stehen (dunkelblauer Hintergrund bei der MML-Darstellung). Anhand eines Beispiels sieht die Auflistung von Aufrufbedingungen wie folgt aus:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Funktionen der Ereignisseite 1]
[Ereignisseite 2] [Aufrufart] [Schalter [Name]] [Variable [Name]] [Itemname] [Heldname] [Minuten:Sekunden] [Funktionen der Ereignisseite 1]
| Bewegungsabläufe und Aussehen des Ereignisses | : | Dies ist vollkommen unwichtig für die Funktionsweise des Codes. Die Bewegungsabläufe eines Ereignisses - beispielsweise eines Dorfbewohners - hat keinerlei Einfluss auf den Code und dessen Funktion. Ebenso wenig das Aussehen eines Ereignisses, das auf einer Karte platziert wird. Daher findet die Wahl eines Bildes sowie die Festlegung der Bewegungsanimation eines Ereignisses in der MML keinerlei Berücksichtigung.
| Spieldialoge | : | Hierunter fällt sämtliche Konversation innerhalb eures Projektes, seien es Gespräche zwischen Dorfbewohnern und Hauptcharakteren oder deren Selbstgespräche, wenn sie beispielsweise einen Gegenstand finden oder ihnen etwas merkwürdig vor kommt
Select Face Gesicht für Nachricht | : | [Gesichtergrafik]; gefolgt von [Dateiname], wobei ihr anstelle von "Dateiname" den Dateinamen der Gesichtergrafik angebt, die ihr verwenden wollt. Gebt "KEINE" ein, falls ihr aus keine Gesichtergrafik gewählt und eventuell vorher gewählte Gesichtergrafiken als "leer" bestimmt werden sollen. Die Folge: Es wird keine Gesichtergrafik angezeigt; gefolgt von [Gesicht Nummer [Zahl]], wobei ihr anstelle von "Zahl" die Nummer der Gesichtergrafik angebt. Nummeriert sind von der obersten linken Zeile mit 1 beginnend nach rechts bis vier und das selbe Schema fortgesetzt, bis ihr in der linken unteren Ecke der gesamten Gesichtergrafik bei 16 angelangt seid. Gebt nur eine einzige Gesichtergrafik-Nummer ein.
Message Style Nachrichtenoptionen | : | [Nachrichtenstil]; gefolgt von [Fensterart], wobei ihr anstelle von "Fensterart" einfach "Normal" eingebt, falls der Text als Hintergrund den entsprechenden Bereich des Systemsets haben soll. Gebt ihr "Transparent" ein, so hat der Text der Nachricht keinen Hintergrund; gefolgt von [Fensterposition], die entweder "Oben", "Mitte" oder "Unten" sein kann; gefolgt von [Heldverdeckung [Auswahl]], wobei ihr anstelle von "Auswahl" entweder ein "Ja" oder "Nein" eingebt (ob die Nachricht den Helden bedecken darf oder nicht); gefolgt von [Ereignisaktion während Nachricht [Auswahl]], wobei ihr hier wieder anstelle von "Auswahl" entweder ein "Ja" oder "Nein" eingebt. Lasst jeweils die Optionen weg, die ihr nicht verändern wollt.
| Die hier definierten Einstellungen gelten für sämtliche danach auszuführenden Nachrichtendialoge, selbst wenn sie in anderen Ereignissen angelegt wurden.
Show Message Nachricht ausgeben | : | [Nachricht]; gefolgt von [Text Zeile 1], darunter [Text Zeile 2], darunter [Text Zeile 3], darunter [Text Zeile 4]. Anstelle von "Text Zeile X" gebt ihr den Text ein, der später im Nachrichtenfenster in der entsprechenden Zeile angezeigt werden soll.
| Beachtet, dass ihr bei einer Textzeile maximal 36 Zeichen angeben könnt, wenn ihr zuvor eine Gesichtergrafik bestimmt habt. Habt ihr "KEINE" Gesichtergrafik gewählt, habt ihr die Möglichkeit, je Zeile max. 50 Zeichen zu verwenden
In MML würde eine Schleife samt Ausbruch wie folgt dargestellt werden:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Gesichtergrafik] [Dateiname] [Gesichtnummer [Zahl]] [Nachrichtenstil] [Fensterart] [Fensterposition] [Nachricht] [Textzeile1] [Textzeile2] [Textzeile3] [Textzeile4] [Funktionen der Ereignisseite 1]
| Werte manuell zuweisen | : | Hiermit ist gemeint, dass die Werte durch den Spieler einzugeben sind und nicht direkt vom Code aus beeinflusst werden.
Enter Hero Name Heldenname eingeben | : | [Alter Heldenname] oder [Heldnummer] oder [Heldnummer|Alter Heldenname]; alle drei gefolgt von [<-- Eingabe]
Input Number Nummer eingeben | : | [Variable [Name][# Ziffern], wobei ihr "Name" durch den Namen der Variable und "# Ziffern" durch die Anzahl von Ziffern ersetzt, aus denen die einzugebende Zahl maximal bestehen soll; gefolgt von [<-- Eingabe]
Enter Password Taste(n) abfragen | : | [Variable [Name]], wobei ihr "Name" durch den Namen der Variable ersetzt; gefolgt von [<-- Taste [Tastenname]]; [Tastenname] muss für jede Taste angelegt werden, die abgefragt werden soll. Außerdem noch ein [Warten], wenn auf die Tasteneingabe gewartet werden soll gefolgt von [warten], wenn auf das Drücken einer Taste gewartet werden soll.
Eine Wertzuweisung kann wie in folgendem Beispiel aussehen
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Variable [Name][# Ziffern]] [<--Eingabe] [Alter Heldname] [<-- Eingabe] [Variable [Name]] [<-- ENTER, Links, Oben, Rechts, Unten, ESC] [Funktionen der Ereignisseite 1]
| Werte innerhalb des Codes zuweisen | : | Hierunter ist zu verstehen, dass innerhalb des Codes direkt bestimmte Werte festgelegt werden, beispielsweise ein Schalter, der auf AN gestellt wird, wenn eine Tür geöffnet wurde oder ähnliches. Folgende Möglichkeiten stehen euch hier zur Verfügung:
Change Switch Schalterzustand ändern | : | [Schalter [Name]] oder [Schalter von [Name] bis [Name]], wobei ihr "Name" durch den Namen des Schalters ersetzt; alle beide gefolgt von [<-- [Schalterzustand]]. Anstelle von [Schalterzustand] einfach angeben, ob der Schalter auf ON/AN, OFF/AUS oder als TRIGGER (AN-AUS-Wechsel) verwendet wird.
Change Variable Variable(n) ändern | : | [Variable [Name]] oder [Varialbe [von [Nummer/Name] bis [Nummer/Name] oder [Variable [Name] übergibt Nummer] wobei ihr "Name" durch den Namen der Variable ersetzt; Alle drei gefolgt von [<-- [Operator][Wert]]; Anstelle von [Operator] gebt ihr den entsprechenden Operator an, anstelle von [Wert] einfach die Zahl, mit welcher der Variablenwert verändert werden soll, oder eine genaue Angabe, welche bereits festen Werte verwendet werden sollen. Möglich sind folgende:
| [Variable [Variablenname] Wert], wobei ihr hier nur "Variablenname" durch den Namen der entsprechenden Variable ersetzt. "Wert" lasst ihr stehen.
| [Varialbe [Variablenname] übergibt Nummer], wobei ihr auch hier wieder "Variablenname" durch den Namen der betreffenden Variable ersetzt. Lasst das Wort "Nummer", wie es ist. Es steht dafür, dass die Variablennummer verwendet werden soll.
| [Zufall zwischen [X] und [Y], wobei ihr "X" und "Y" durch zwei Zahlen eurer Wahl bestimmt.
| [Item [Name] [Zahlherkunft]], wobei ihr "Name" durch den Namen des Items und "Zahlherkunft" durch "Anzahl getragen" und "Anzahl Besitz" ersetzt. Bedenkt, dass "Anzahl Besitz" die Items im Inventar meint und nicht diejenigen beinhaltet, die auch von euren Hauptcharakteren getragen werden.
| [Held [Name] [Attribut]], wobei ihr hier "Name" durch den Namen des Helden ersetzt. Das Wörtchen "Attribut" ersetzt ihr hingegen durch folgende: Level, Erfahrung, HP, MP, Max HP, Max MP, Angriff, Abwehr, Intelligenz, Geschick, Waffe-Nr, Schild-Nr, Rüstung-Nr, Helm-Nr, Zubehör-Nr.
| [Ereignis [Name] [Attribut]], wobei ihr hier "Name" durch den Namen des betreffenden Ereignisses eingebt (beispielsweise "Held" für die Heldengruppe). Ersetzt "Attribut" durch folgende Möglichkeiten: Karten-ID, Chip-Position X, Chip-Position Y, Gesichtsrichtung, Pixel-Position X, Pixel-Position Y
| [Anderes], wobei ihr "Anderes" durch folgende Begriffe ersetzen könnt: Geld, Timer-Rest, Teamstärke, Anzahl Speicherungen, Anzahl Kämpfe, Anzahl Siege, Anzahl Niederlagen, Anzahl Flucht, Midi-Abspielposition. Beachtet, dass sich "Anzahl Kämpfe, Anzahl Siege, Anzahl Niederlagen, Anzahl Flucht" nur dann verwenden lassen, wenn ihr das Standard-Kampfsystem verwendet.
Attribute der Hauptcharaktere verändern | : | Hierunter fallen folgende Ereigniskommandos:
| Change EXP/Erfahrungspunkte verändern
| Change Level/Level (Stufe) ändern
| Change Ability/Statuswert ändern
| Change HP/Lebenspunkte erhöhen/vermindern
| Change MP/Magiepunkte erhöhen/vermindern
Hierbei genügen folgende Textfragmente: [Alle Helden] oder [Heldenname] oder [Variablenname mit Heldennummer] oder [Gegnername]; jeweils gefolgt von [Attribut] (also Erfahrung, Level, Max HP, Max MP, HP, MP, Angriff, Abwehr, Geschick oder Intelligenz) (Bei Gegnern nur HP oder MP möglich); jeweils gefolgt von [+] oder [-]; jeweils gefolgt von [Wert] in Form einer Zahl oder dem Namen der Variable mit dem zu verwendendem Wert.
Solche Wertzuweisungen, die innerhalb des Codes ohne direkten Einfluss des Spielers geschehen, sehen in MML-Darstellung vom Schema her wie folgt aus:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Schalter [Name]] [<-- Schalterzustand] [Variable [Name]] [<-- [Operator] [Wert]] [Heldenname] [<-- [Attribut] [Operator] [Wert]] [Funktionen der Ereignisseite 1]
| Gabelungen... | : | Hat es im Maker lediglich zwei:
| Fork Conditions Bedingungen | : | Umschreibt hier die Gegebenheit, die vorliegen soll. Beginnen soll eine Bedingung immer mit [Bedingung [Details]], wobei ihr für "Details" folgendes einsetzen könnt:
| [Schalter][Schaltername][Schalterzustand], wobei ihr hier "Schaltername" und "Schalterzustand" entsprechend ersetzt
| [Variable][Variablenname1][Unterscheidung][Zahl oder Variablenname2], wobei ihr für "Unterscheidung" entweder, "gleich", "größer/gleich", "kleiner/gleich", "größer", "kleiner" oder "anders" eingebt; ersetzt auch die Variablennamen entsprechend
| [Timer][Timerstand in Minute:Sekunde][Unterscheidung], wobei ihr "Unterscheidung" durch "größer" oder "kleiner" ersetzt; ersetzt auch "Timerstand in Minute:Sekunde" durch eine entsprechende Zeitangabe
| [Geld][Betrag][Unterscheidung], wobei ihr "Unterscheidung" durch "größer" oder "kleiner" ersetzt; tragt auch anstelle von "Betrag" den entsprechenden Geldbetrag ein.
| [Item][Name][Unterscheidung], wobei ihr "Unterscheidung" durch "Haben" oder "Nicht haben" ersetzt; ersetzt auch "Name" durch den Namen des Gegenstandes.
| [Held][Name][Unterscheidung], wobei ihr "Untescheidung" durch "im Team", "Name = [Wert]", "Level größer als [Wert]", "HP größer als [Wert]", "Skill [Skillname] verfügbar", "mit [Itemname] ausgerüstet", "Heldenzustand [Zustand]"
| [Ereignisblickrichtung][Ereignisname][Blickrichtung], wobei ihr hier "Ereignisname" durch den Namen des betreffenden Ereignisses ersetzt
| [In Fahrzeug][Fahrzeugname], wobei ihr anstelle von "Fahrzeugname" entweder "Boot", "Schiff" oder "Luftschiff" eintragt.
| [Erfüllt durch ENTER]
| [Erfüllt, wenn BGM einmal abgespielt ist]
Teilt direkt darunter einfach die Zelle, ab der eine Gabelung stattfinden soll. Als Überschriften der Spalten sollten "Ja" und "Nein" ausreichen
| Show choice Auswahlmenü anzeigen | : | Hier wird es ein wenig komplizierter, da es maximal 5 Abzweigungen bei der Gabelung geben kann. Auch hier wird die Spalte wieder geteilt, nur dass diesmal die linken vier Spalten mit dem entsprechendem Text, der gewählt werden kann, überschrieben wird. Die fünfte wird einfach mit [ESC] beschriftet (weil durch [ESC] die fünfte Möglichkeit gewählt werden kann)
Solche Wertzuweisungen, die innerhalb des Codes ohne direkten Einfluss des Spielers geschehen, sehen in MML-Darstellung vom Schema her wie folgt aus (Erst Bedingungen, dann Auswahlpunkte):
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Bedingung, die vorliegen soll]
| [Ja-Fall]
| [Funktionen des Ja-Falls]
| [Nein-Fall]
| [Funktionen des Nein-Falls]
[Funktionen der Ereignisseite 1]
[Ereignisname]
[Ereignisseite 1] [Aufrufart]
| [Auswahl 1]
| [Funktionen der Auswahl 1]
| [Auswahl 2]
| [Funktionen der Auswahl 2]
| [Auswahl 3]
| [Funktionen der Auswahl 3]
| [Auswahl 4]
| [Funktionen der Auswahl 4]
| [ESC]
| [Funktionen der Auswahl "ESC"]
[Funktionen der Ereignisseite 1]
| Ereignisse bewegen | : | Dass ihr selbst Ereignisse dazu bringen könnt, dass sie sich von einer Stelle zu einer anderen bewegen sollen wisst ihr sicher, seit ihr euch mit den Ereigniskommandos des Makers beschäftigt habt. Stichwort für die Bewegung von Ereignissen ist das Ereigniskommando "Move Event/Bewegungsereignis erstellen", das wie folgt in der MML geschrieben wird:
[Eventbewegung]; gefolgt von [Ereignisname]; gefolgt von folgenden Kommandos, je nach dem, ob sie verwendet werden oder nicht:
[Bewegung] | : | Anstelle von "Bewegung" einfach folgende Bewegungsmöglichkeiten schreiben (jede Anweisung ist für einen einzigen Schritt definiert): "Schritt hoch", "Schritt rechts", "Schritt runter", "Schritt links", "Schritt rechts-hoch", "Schritt rechts-runter", "Schritt links-runter", "Schritt links-hoch", "Zufallschritt", "Schritt auf Held zu", "Schritt von Held weg", "Schritt in Blickrichtung" "Blick hoch", "Blick rechts", "Blich runter", "Blick links", "Drehung 90° rechts", "Drehung 90° links" "Umdrehen (180°)", "Zufall-90°-Drehung" "Zufalldrehung", "Blickrichtung wie Held" "Entgegengesetzte Blickrichtung wie Held" "Geschwindigkeit +", "Geschwindigkeit -", "Animationsfrequenz +", "Animationsfrequenz -" "Warten"
| Wenn ein Bewegungskommando mehrmals nacheinander vorkommen soll, könnt ihr diese auch als "Multiplikation" darstellen. Beispielsweise, wenn ihr drei mal "Schritt hoch" in MML anlegen wollt, könnt ihr [Schritt hoch] * 3" schreiben anstelle von [Schritt hoch][Schritt hoch][Schritt hoch]
[Sprungart] | : | Anstelle von "Sprungart" einfach "Sprung Start" eingeben, wenn ein Springen des Hauptcharakters/Ereignisses begonnen werden soll. Gebt ein "Sprung Ende" ein, wenn der Sprung beendet werden und der Hauptcharakter/das Ereignis wieder auf dem Boden landen soll.
| Wenn ein Sprung begonnen wurde, muss dieser auch wieder beendet werden, da der Maker sonst sämtliche Bewegungskommandos nach dem Sprung-Befehl irgnoriert
[Blickfixierung] | : | Anstelle von "Blickfixierung" schreibt ihr einfach "Blickfixierung start", wenn die Blickfixierung beginnen soll. Soll sie enden, schreibt ihr einfach "Blickfixierung Ende".
| Wenn ihr eine Blickfixierung gestartet, aber nicht wieder beendet habt, wird das Ereignis/der Hauptcharakter, dessen Blick ihr "fixiert" habt, so lange mit fixiertem Blick durch die Gegend laufen, bis die Blickfixierung wieder beendet wird.
[Kriechen] | : | Hiermit können Ereignisse und Hauptcharaktere über normalerweise blockierende Chips und Ereignisse hinweg laufen. Anstelle von "Kriechen" schreibt ihr einfach "Kriechen Start", wenn das Ereignis/die Hauptcharaktere mit dem kriechen beginnen sollen. Sollen sie mit dem Kriechen aufhören, gebt ihr einfach "Kriechen Ende" ein.
| Wenn ein Kriechen begonnen wurde, muss dieser auch wieder beendet werden, da der Maker sonst sämtliche Bewegungskommandos nach dem Kriechen-Befehl irgnoriert
[Animation] | : | Hiermit bestimmt ihr, ob eine gegebenenfalls vorhandene Bewegungsanimation (beispielsweise, wenn als Ereignisgrafik eines der CharSets gewählt wurde) bei Fortbewegung nicht gezeigt oder dieses "nicht zeigen" wieder beendet werden soll. Schreibt einfach anstelle von "Animation" den Text "Animation gesperrt", wenn keine Bewegungsanimation des Ereignisses/des Hauptcharakters bei Fortbewegung gezeigt werden soll. Soll die Bewegungsanimation bei Fortbewegung des Ereignisses/Hauptcharakters wieder gezeigt werden, tippt einfach "Animation verfügbar".
| Wenn ihr eine "Animationssperre" gestartet, aber nicht wieder aufgehoben habt, wird das Ereignis/der Hauptcharakter, dessen Animation ihr "gesperrt" habt, so lange ohne jegliche Bewegungsanimation sich fortbewegen, bis ihr diese Sperre wieder aufhebt.
[Schalter] | : | Ihr könnt auch bestimmte Schalter aktivieren bzw. deaktivieren. Anstelle von "Schalter" gebt ihr einfach "Schalter AN [Schaltername]" ein, wenn ein Schalter aktiviert werden soll. Soll ein Schalter deaktiviert werden, tippt ihr "Schalter AUS [Schaltername]".
[Wiederholen] | : | Setzt dieses Kommando, wenn der definierte Bewegungsablauf endlos wiederholt werden soll
[Nur gehen, wenn möglich] | : | Die Bewegung stoppt, wenn das zu bewegende Ereignis vor einer Wand steht, diese anstarrt und sich weiter in Blickrichtung bewegen soll.
Die restlichen, hier nicht erwähnten Kommandos wie beispielsweise "wait/warten" könnt ihr wortwörtlich übernehmen, da diese vielmehr dem eigenem Ermessen unterliegen. In MML kann das ganze von der Gliederung her wie folgt aussehen:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Eventbewegung] [Ereignisname][Sprung Start] [Schritt in Blickrichtung] * 3 [Sprung Ende] [Funktionen der Ereignisseite 1]
| Den Bildbereich verschieben | : | Dies ist beispielsweise bei einem Intro erforderlich, wenn ein großes Gebiet überflogen werden soll.
Pan Screen Bildschirm verschieben/fixieren | : | [Bildschirmbewegung]; gefolgt von [Fixierung] oder [Fixierung aufheben] oder [Zur Ausgangsposition] oder [Bewegung]; [Bewegung] wird gefolgt von [Richtung] (hoch, runter, links, rechts) sowie [Chipanzahl] und [Wait] (zum warten, bis Bildschirmbewegung fertig ist). Die Bewegungsgeschwindigkeit liegt hier in eurem eigenem Ermessen.
Von der Gliederung her sieht das ganze in MML wie folgt aus:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Bildschirmbewegung] [Richtung] [Chipanzahl] [Funktionen der Ereignisseite 1]
| Bilder im Spiel anzeigen, bewegen und löschen | : | Hiermit sind weder die ChipSatz-Grafiken, noch CharSets gemeint, sondern die Grafiken, die ihr im Ordner "Pictures" ablegt sind. Hierbei handelt es sich oftmals um einfache Bilder, die zur Darstellung von Nebelschwaden. Hierfür ist folgendes Kommando zuständig:
Show Picture Bild anzeigen | : | [Picture zeigen]; gefolgt von [Bildnummer]; gefolgt von [Dateiname des Bildes]; gefolgt von [Startkoordinate] (Angabe in Form von "X = Zahl1" und "Y = Zahl2"); gefolgt von [Transparent], wenn die transparente Farbe der Grafik verwendet werden soll. Lasst [Transparent] weg, wenn die transparente Farbe der Grafik angezeigt werden soll, also während des Spiels sichtbar ist.
Move Picture Bild bewegen | : | [Picture bewegen]; gefolgt von [Bildnummer]; gefolgt von [Zielkoordinate] (Angabe in Form von "X = Zahl1" und "Y = Zahl2"); gefolgt von [Transparent], wenn die transparente Farbe der Grafik verwendet werden soll. Lasst [Transparent] weg, wenn die transparente Farbe der Grafik angezeigt werden soll.
Erease Picture Bild löschen | : | [Picture weg]; gefolgt von [Bildnummer]
Die beispielhafte Gliederung der Darstellung eines Pictures kann wie folgt aussehen:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Picture zeigen] [Bildnummer] [Dateiname des Bildes] [Startkoordinate] [Transparent] [Picture bewegen] [Bildnummer] [Zielkoordinate] [Transparent] [Picture weg] [Bildnummer] [Funktionen der Ereignisseite 1]
| Über Haltepunkte a.k.a. Labels | : | Labels dienen als Haltepunkte, falls es beispielsweise ein Auswahlmenü gibt, zu dem bei gewissen Fragen wieder "zurückgesprungen" werden soll.
Label Sprungmarke | : | [Haltepunkt [Nummer]] Gebt einfach anstelle von "Nummer" die Nummer des Labels ein, das ihr hier erstellt.
Goto Label Zu einem Label springen | : | [Goto Haltepunkt [Nummer]] Anstelle von "Nummer" gebt ihr einfach die Nummer des Labels ein, zu dem gesprungen werden soll.
In MML-Darstellung sieht das vom Schema her so aus:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Haltepunkt [1]] [Einige Funktionen der Ereignisseite 1] [Goto Haltepunkte [1]]
| Über Endlosschleifen | : | Endlosschleifen deklarieren einen Bereich, der unendlich oft wiederholt wird, bis eine Art "Ausbruchskommando" kommt. Dann nämlich wird aus der Schleife ausgebrochen. Damit in der MML-Darstellung auch eindeutig lesbar ist, was sich innerhalb und was außerhalb der Endlosschleife befindet, wird die Darstellung wie folgt vorgenommen:
Cycle Zyklus (...) erstellen | : | [Schleife Beginn]; gefolgt vom übrigem Code des Ereignisses, dem am Ende, wenn der Code innerhalb der Schleife soweit fertig ist, folgendes folgt: [Schleife Ende];
| Damit die MML am Ende leichter lesbar ist, solltet ihr den Text innerhalb der Endlosschleife etwas eingerückt darstellen (nachfolgendes MML-Beispiel verdeutlicht dies)
Break Cycle Zyklus (...) unterbrechen | : | [Schleife Ausbruch] Dient dem sofortigem Ausstieg aus der Endlosschleife
| Der direkt nach dem Schleifenausbruch geschriebene Code wird niemals ausgeführt werden.
In MML würde eine Schleife samt Ausbruch wie folgt dargestellt werden:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Schleife Beginn] [Einige Funktionen der Ereignisseite 1] [Noch mehr Funktionen der Ereignisseite 1] [Schleife Ausbruch] [Schleife Ende]
| Ereignisse aufrufen | : |
Call Event Ereignis aufrufen | : | [Ereignisaufruf]; gefolgt von [Ereignisart], wobei ihr "Ereignisart" durch "Datenbankereignis [Name]", wenn es ein häufig benötigtes Ereignis ist, oder durch "Kartenereignis [Name]", wenn es ein auf der Karte angelegtes Ereignis ist, ersetzt; "Name" ersetzt ihr jeweils durch den Namen des Ereignisses; Wenn es ein Kartenereignis ist, folgt noch ein [Ereignisseite [Seitenzahl]], wobei ihr "Seitenzahl" durch die Nummer der Ereignisseite ersetzt, die aufgerufen werden soll.
In MML würde eine Schleife samt Ausbruch wie folgt dargestellt werden:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Ereignisaufruf] [Ereignisart] [Ereignisseite [Seitenzahl]] [Funktionen der Ereignisseite 1]
| Kommentare | : | Für das leichtere Verständnis der MML können auch Kommentare eingefügt werden. Es steht euch frei, diese auch am Ende mit in den Maker-Code zu übernehmen. Kommentare in der MML sehen wie folgt aus:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] /* * Kommentartext */ [Funktionen der Ereignisseite 1]
| Teleportieren von Hauptcharakteren und Ereignissen | : | Teleportieren umfasst jede Funktion, die eure Helden ohne dass sie sich bewegen von einer Position zu einer anderen bringt.
Teleport Teleport erstellen | : | [Teleportation nach]; gefolgt von [Kartenname], wobei ihr "Kartenname" durch den Namen der Karte, auf die eure Charaktere teleportiert werden sollen, ersetzt. Die Koordinaten, wohin eure Charaktere auf der gewählten Karte gelangen sollen, definiert ihr bei Festlegung des Codes.
Memory Place Heldenposition speichern | : | [Heldposition speichern]; gefolgt von [Kartenvariable [Name]]; gefolgt von [X-Variable [Name]] und [Y-Variable [Name]] Ersetzt jeweils "Name" durch die Namen der verwendeten Variablen, die ihr zum Speichern der jeweiligen Kartendaten (Heldenposition auf Kartennummer, an der Position X und Y)
| Beachtet, dass ihr für die Variablennamen drei unterschiedliche Namen wählt. Das erleichtert euch später die weitere Verwendung
Goto Memorized Place Zu gespeicherter Position teleportieren |  | [Heldposition teleport]; gefolgt von [Kartenvariable [Name1]]; gefolgt von [X-Variable [Name2]] und [Y-Variable [Name3]]; ersetzt jeweils "Name" durch die Namen der verwendeten Variablen, durch welche die Position bestimmt werden soll, zu der die Helden teleportiert werden sollen (Heldenposition auf Kartennummer, an der Position X und Y)
Setup Vehicle place Fahrzeug positionieren | : | [Fahrzeugposition]; gefolgt von [Fahrzeugart], wobei ihr "Fahrzeugart" durch "Boot", "Schiff" oder "Luftschiff" ersetzt; gefolgt von [Kartenname], wobei ihr "Kartenname" durch den Namen der Karte, auf die Fahrzeug teleportiert werden soll, ersetzt. Die Koordinaten, wohin die Fahrzeuge auf der gewählten Karte gelangen sollen, definiert ihr bei Festlegung des Codes oder gefolgt von [Kartenvariable [Name1]]; gefolgt von [X-Variable [Name2]] und [Y-Variable [Name3]]; ersetzt jeweils "Name" durch die Namen der verwendeten Variablen, durch welche die Position bestimmt werden soll, zu der die Fahrzeuge teleportiert werden sollen (Fahrzeugposition auf Kartennummer, an der Position X und Y)
Set Event place Ereignis positionieren | : | [Ereignisposition]; gefolgt von [Ereignisname], wobei ihr "Ereignisname" durch den Namen des betreffenden Ereignisses ersetzt; gefolgt von [Manulle Kartenposition] (hier sollen die Koordinaten auf der Karte von Hand gewählt werden) oder (wenn die Koordinaten durch Variablen bestimmt werden sollen) gefolgt von [X-Variable [Name1]] und [Y-Variable [Name2]]; ersetzt jeweils "Name" durch die Namen der verwendeten Variablen, durch welche die Position bestimmt werden soll, zu der das Ereignis teleportiert werden soll (Ereignis an der Position X und Y)
Swap 2 Events 2 Ereignisse tauschen | : | [Ereignistausch]; gefolgt von [Ereignisname1][Ereignisname2], wobei ihr "Ereignisname1" und "Ereignisname2" durch die entsprechenden Ereignisnamen ersetzt.
In MML kann das ganze vom Schema her so aussehen:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Teleportieren nach] [Kartenname] [Heldenposition speichern] [Kartenvariable [Name1]] [X-Variable [Name2]] [Y-Variable [Name3]] [Heldenposition teleport] [Kartenvariable [Name1]] [X-Variable [Name2]] [Y-Variable [Name3]] [Fahrzeugposition] [Kartenvariable [Name1]] [X-Variable [Name2]] [Y-Variable [Name3]] [Ereignisposition] [X-Variable [Name1]] [Y-Variable [Name2] [Ereignistausch] [Ereignisname1] [Ereignisname2] [Funktionen der Ereignisseite 1]
| Kämpfe mit dem Standard-Kampfsystem | : |
Start Combat Kampf starten | : | [Kampf starten]; gefolgt von [Gegnergruppe [Name]] oder [Gegnervariable [Name]], wobei ihr "Name" durch den Namen der Gegnergruppe bzw. den Namen der Variable ersetzt, welche die Nummer der Gegnergruppe beinhaltet; gefolgt von [Hintergrund: [Typ]], wobei ihr "Typ" durch "vom Terrain" oder den Namen des zu verwendenden Hintergrunds ersetzt; gefolgt von [Bei Flucht: [X]], wobei ihr "X" durch "Flucht gesperrt" oder "Ereignis stoppen" ersetzt; gefolgt von [Bei Niederlage: [Y]], wobei ihr "Y" durch "GameOver" ersetzt; Falls bei einer Niederlage, Sieg oder Flucht bestimmte Dinge passieren sollen, die sich von den genannten Punkten unterschieden, so lasst die Zeilen "Bei Flucht" und "Bei Niederlage" weg und legt sattdessen Gabelungen an, die das Ereignis in die Spalten "Sieg", "Niederlage" und "Flucht" teilen, wie im nachfolgendem MML-Beispiel zu sehen ist.
In MML kann die Gliederung des bisher besprochenem vom Schema her so aussehen:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Kampf starten] [Gegnergruppe [Name]] [Hintergrund: [Typ]]
| [Sieg]
| [Weitere Funktionen]
| [Niederlage]
| [Weitere Funktionen]
| [Flucht]
| [Weitere Funktionen]
[Funktionen der Ereignisseite 1]
| Sonstige Ereignis- kommandos (auf Registerkarte 1) | : | Hierunter fallen all jene, die nicht zwingend zur ordnungsgemäßen Funktionsweise des Codes erforderlich sind, sondern vielmehr dann in Aktion treten, wenn gewisse "Effekte" hervorgerufen werden sollen, beispielsweise das Abspielen einer Kampfanimation oder einer Pause nach einem Dialog durch die Hauptcharaktere:
Timer Operations Timer ändern | : | [Timer [Operation]], wobei ihr "Operation" durch "setzen", "starten" oder "stoppen" ersetzen könnt. Wenn ihr "setzen" gewählt habt, folgt noch [Zeit setzen]; gefolgt von [Manuell [Zeitraum]] oder [Variable [Variablenname]], wobei ihr Zeitraum durch eine Zeitangabe in "Minuten:Sekunden" angebt und "Variablenname" durch den Namen der zu verwendenden Variable ersetzt. Habt ihr "starten" gewählt, folgt [Starten]; gefolgt von [Sichtbar] und/oder [Auch im Kampf sichtbar]; Habt ihr "stoppen" gewählt, folgt noch [stoppen]
Change Gold held Geld (...) erhöhen/ vermindern | : | [Geld]; gefolgt von [+] oder [-]; gefolgt von [Manueller Betrag [Zahl]] oder [Betragsvariable [Variablenname]], wobei ihr "Zahl" durch die Anzahl von Geld ersetzt, um die es geht. "Variablenname" ersetzt ihr durch den Namen der Variable, welche die Zahl für die Geldmenge enthalten soll.
Add Item Item(s) hinzufügen/ entfernen | : | [Item]; gefolgt von [+] oder [-]; gefolgt von [Item [Itemname]] oder [Itemvariable [Variablenname], wobei ihr "Itemname" durch den Namen des Items und "Variablenname" durch den Namen der Variable ersetzt, welche die Nummer des Items enthält, das eure Helden erhalten sollen gefolgt von [Manuelle Anzahl[Zahl]] oder [Anzahlvariable [Variablenname]], wobei ihr "Zahl" durch die Anzahl von Itmes ersetzt, um die es geht. "Variablenname" ersetzt ihr durch den Namen der Variable, welche die Zahl für die Itemmenge enthalten soll.
Change Party Partiemitglied hinzufüg./ entfernen | : | [Hauptcharakter]; gefolgt von [+] oder [-]; gefolgt von [Held: [Heldenname]] oder [Heldvariable: [Variablenname]], wobei ihr "Heldenname" durch den entsprechenden Heldennamen sowie "Variablenname" durch den Namen der Variable, welche die Datenbanknummer des entsprechenden Helden beinhaltet, ersetzt.
Change Skill Fertigkeit erlernen/ vergessen | : | [Fertigkeiten]; gefolgt von [+] oder [-]; gefolgt von [Held: [Heldenname]] oder [Heldvariable: [Variablenname]] oder [Alle Helden], wobei ihr "Heldenname" durch den entsprechenden Heldennamen sowie "Variablenname" durch den Namen der Variable, welche die Datenbanknummer des entsprechenden Helden beinhaltet, ersetzt. gefolgt von [Fertigkeit: [Skillname]] oder [Fertigkeitsvariable: [Variablenname], wobei ihr "Skillname" durch den Namen der Fertigkeit und "Variablenname" durch den Namen der Variable (welche die Kennziffer der Fertigkeit enthält) ersetzt, um die es geht.
Change Equipment Ausrüstung hinzufüg./ entfernen | : | [Ausrüstung]; gefolgt von [+] oder [-]; gefolgt von [Held: [Heldenname]] oder [Heldvariable: [Variablenname]] oder [Alle Helden], wobei ihr "Heldenname" durch den entsprechenden Heldennamen sowie "Variablenname" durch den Namen der Variable, welche die Datenbanknummer des entsprechenden Helden beinhaltet, ersetzt. gefolgt von [Item [Itemname]] oder [Itemvariable [Variablenname], wobei ihr "Itemname" durch den Namen des Items und "Variablenname" durch den Namen der Variable ersetzt, welche die Nummer des Items enthält, das eure Helden erhalten sollen gefolgt von [Gegenstandsart [Name]], wobei ihr "Name" durch die Art der Ausrüstung ersetzt. Möglich sind "Alle" (nur, wenn sie abgelegt werden soll), "Waffe", "Schild/Zweitwaffe", "Helm", "Rüstung", "Zubehör/Sonstiges"
Change Condition Zustand herstellen/ aufheben | : | [Zustand]; gefolgt von [+] oder [-]; gefolgt von [Held: [Heldenname]] oder [Heldvariable: [Variablenname]] oder [Alle Helden] oder [Gegner [Gegnername], wobei ihr "Heldenname" durch den entsprechenden Heldennamen sowie "Variablenname" durch den Namen der Variable, welche die Datenbanknummer des entsprechenden Helden beinhaltet, ersetzt. Auch ersetzt ihr "Gegnername" durch den Namen des entsprechenden Gegners; gefolgt von [Zustand [Name]], wobei ihr "Name" durch den betreffenden Zustandsnamen ersetzt
Full Recovery Vollständige Heilung | : | [Komplettheilung]; gefolgt von [Held: [Heldenname]] oder [Heldvariable: [Variablenname]] oder [Alle Helden], wobei ihr "Heldenname" durch den entsprechenden Heldennamen sowie "Variablenname" durch den Namen der Variable, welche die Datenbanknummer des entsprechenden Helden beinhaltet, ersetzt.
Take Damage Schaden erleiden | : | [Schaden erleiden]; gefolgt von [Held: [Heldenname]] oder [Heldvariable: [Variablenname]] oder [Ganzes Team], wobei ihr "Heldenname" durch den entsprechenden Heldennamen sowie "Variablenname" durch den Namen der Variable, welche die Datenbanknummer des entsprechenden Helden beinhaltet, ersetzt. Den Schaden festzulegen ist letztlich eine Detailfrage, die euch als Spieleentwickler überlassen bleibt und für die Funktionsweise des Codes nicht weiter wichtig ist.
Change Hero Name Heldenname ändern | : | [Heldname ändern]; gefolgt von [Heldname alt [Name1]], wobei ihr "Name1" durch den aktuellen Heldennamen ersetzt; gefolgt von [Heldname neu [Name2]], wobei ihr "Name2" durch einen Namen eurer Wahl ersetzt.
Change Hero Degree Heldenklasse ändern | : | [Heldklasse ändern]; gefolgt von [Heldname [Name1]], wobei ihr "Name1" durch den aktuellen Heldennamen ersetzt; gefolgt von [Heldklasse neu [Name2]], wobei ihr "Name2" durch einen Namen eurer Wahl ersetzt.
Change System BGM Systemmusik ändern | : | [Systemmusik ändern]; gefolgt von [Musikzweck], wobei ihr "Musikzweck" durch folgende Begriffe ersetzt: "Kampfbeginn", "Kampfende", "Hotel/Übernachtung", "Boot", "Schiff", "Luftschiff", "GameOver"; gefolgt von [Neue Musik [Name]], wobei ihr "Name" durch den Namen der neuen Musikdatei ersetzt
Change System SE Systemsoundeffekt ändern | : | [Systemsound ändern]; gefolgt von [Soundzweck], wobei ihr "Soundzweck" durch folgende Begriffe ersetzt: "Cursorbewegung", "Auswahl", "Abbruch", "Buzzer", "Kampfstart", "Flucht", "Gegnerangriff", "Gegnertreffer", "Heldtreffer", "Abwehr", "Gegner stirbt", "Item benutzt"; gefolgt von [Neuer Sound [Name]], wobei ihr "Name" durch den Namen der neuen Sounddatei ersetzt
Set System graphic Textsystem ändern | : | [SystemSet ändern]; gefolgt von [Systemgrafik: [Name]], wobei ihr "Name" durch den Dateinamen der Systemgrafik ersetzt, die verwendet werden soll; gefolgt von [Fensterstil: [Stil]], wobei ihr "Stil" durch "Strecken" (wenn der Dialoghintergrund gestreckt werden soll) oder "Kachel" (falls der Dialoghintergrund in Originalgröße nebeneinander gesetzt werden soll). gefolgt von [Schrift: [Name]], wobei ihr "Name" durch "RM2000" (verschnörkelt/antik) oder "RMG2000" (modern/ähnlich wie Arial) ersetzt.
Set Hero walk GFX Set Vehicle GFX/ Heldenaussehen ändern Fahzeugaussehen änd. | : | [Heldenaussehen ändern] bzw. [Fahrzeugaussehen ändern]
In MML kann die Gliederung des bisher besprochenem vom Schema her so aussehen:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Timer [setzen]] [Manuell [10:00]] [Timer [starten]] [sichtbat] [Timer [stopp] [Geld] [+] [Manueller Betrag [1000]] [Item] [+] [Item [Apfel]] [Manuelle Anzahl [3]] [Hauptcharakter] [+] [Held: [Dennis]] [Fertigkeiten] [+] [Held: [Sabrina]] [Fertigkeit: [Frostnova]] [Ausrüstug] [+] [Held: [Dennis]] [Item: [Wurfsterne] [Gegenstandsart [Waffe]] [Zustand] [-] [Held: [Sabrina]] [Zustand [Gift]] [Komplettheilung] [Alle Helden] [Take Damage] [Alle Helden] [Heldname ändern] [Heldname alt [Johann]] [Heldname neu [John]] [Heldklasse ändern] [Heldname [Sabrina]] [Heldklasse neu [Moderator]] [Systemmusik ändern] [Musikzweck] [Neue Musik [Name]] [Systemsound ändern] [Soundzweck] [Neuer Sound [Name]] [Funktionen der Ereignisseite 1]
| Sonstige Ereignis- kommandos (auf Registerkarte 2) | : |
Call Shop Shop/Laden aufrufen | : | [Shop]; gefolgt von [Shopart], wobei ihr "Shopart" durch "An- und Verkauf", "Nur Ankauf" oder "Nur Verkauf" ersetzt. Die Produktpalette wird hier nicht aufgeführt.
Call Inn Hotel aufrufen | : | [Inn]; gefolgt von [Preis: [Zahl]], wobei ihr anstelle von "Zahl" einfach einen Preis für eine Übernachtung eingebt.
Set Terrain ID Terrain-ID speichern | : | [Terrain-ID sichern]; gefolgt von [Manuelle Position [x] [y]], wobei ihr anstelle von "x" und "y" jeweils die entsprechenden Koordinaten auf der betreffenden Karte eingebt; oder gefolgt von [Positionsvariablen [NameX][NameY]], wobei ihr hier "NameX" und "NameY" jeweils durch die Namen der Variablen ersetzt, welche die Werte für die X- und Y-Koordinaten auf der Karte beinhalten; alle beide gefolgt von [Speichern in [Name]], wobei ihr anstelle von "Name" den Namen der Variable eingebt, in welcher die Terrain-ID gespeichert werden soll.
Set Event ID Ereignis-ID speichern | : | [Ereignis-ID sichern]; gefolgt von [Manuelle Position [x] [y]], wobei ihr anstelle von "x" und "y" jeweils die entsprechenden Koordinaten auf der betreffenden Karte eingebt; oder gefolgt von [Positionsvariablen [NameX][NameY]], wobei ihr hier "NameX" und "NameY" jeweils durch die Namen der Variablen ersetzt, welche die Werte für die X- und Y-Koordinaten auf der Karte beinhalten; alle beide gefolgt von [Speichern in [Name]], wobei ihr anstelle von "Name" den Namen der Variable eingebt, in welcher die Ereignis-ID gespeichert werden soll.
Set Screen Tone Bildschrim: Farbton setzen | : | [Bildschirm-Farbton]; gefolgt von [RGB-Gamma-Werte: [R][G][B] [Gamma]], wobei ihr "R" durch die %-Zahl für Rot, "G" durch die %-Zahl für Grün und "B" durch die Prozentzahl von Blau ersetzt (100% = Originalfarbstärke). Ersetzt noch "Gamma" durch eine entsprechende %-Zahl für die "Farbsättigung"; gefolgt von [Übergangszeit [Zeit]], wobei ihr hier "Zeit" durch eine Zahl ersetzt, welche einen 1/10-Sekundenwert für den Farbwechsel bestimmt; eventuell gefolgt von [Warten, bis fertig], falls das Ereignis erst dann weiter fortfahren soll, wenn der Farbübergang erfolgt ist.
Flash Screen Bildschirm: Blinken | : | [Bildschirm-Blinken]; gefolgt von [RPG-Wirkung-Werte: [R][G][B][W]], wobei ihr für "R", "G", "B" und "W" jeweils die entsprechende %-Zahl für Rot, Grün, Blau sowie deren Wirkung/Intensität angebt; gefolgt von [Blinkzeit [Zeit]], wobei ihr hier "Zeit" durch eine Zahl ersetzt, welche die Blinkdauer in 1/10-Sekunden angeben soll; eventuell gefolgt von [Warten, bis fertig], falls das Ereignis erst dann weiter fortfahren soll, wenn der Farbübergang erfolgt ist.
Shake Screen Bildschirm: rütteln | : | [Bildrütteln]; gefolgt von [Rütteldauer [Zeit]], wobei ihr "Zeit" durch eine Zahl ersetzt, welche die Blinkdauer in 1/10-Sekunden angeben soll; eventuell gefolgt von [Warten, bis fertig]; Die Rüttelkraft und Rüttelgeschwindigkeit festzulegen ist eine Sache, die nach Gefühl vorgenommen werden muss. Daher finden diese beiden Punkte keine Anwendung in der MML.
Call Weather effect Wettereffekt aufrufen | : | [Wettereffekt]; gefolgt von [Effektart: [Auswahl]], wobei ihr "Auswahl" durch "Regen", "Schnee" oder "Keiner" ersetzt; gefolgt von [Effektkraft: [Kraft]], wobei ihr "Kraft" durch "Schwach", "Mittel" oder "Stark" ersetzt.
| Ein Wettereffekt bleibt so lange aktiv, bis ein anderer gewählt wird.
Show Battle Animation Kampfanimation abspielen | : | [Kampfanimation zeigen]; gefolgt von [Animationsname], wobei ihr "Animationsname" durch den Namen der abzuspielenden Kampfanimation ersetzt; [Ziel [Name]], wobei ihr "Name" durch den Namen des Ereignisses ersetzt, auf dem die Kampfanimation abgespielt werden soll; eventuell gefolgt von [Warten, bis fertig]; eventuell gefolgt von [Auf ganzem Bildschirm zeigen]
Set Hero Transparency Heldtransparenz setzen | : | [Heldtransparenz [Auswahl]], wobei ihr "Auswahl" durch "Ja" oder "Nein" ersetzt
Flash Event Ereignis blinken lassen | : | [Ereignisblinken]; gefolgt von [Ziel [Name]], wobei ihr anstelle von "Name" den Namen des Ereignisses angebt, das blinken soll. gefolgt von [RPG-Wirkung-Werte: [R][G][B][W]], wobei ihr für "R", "G", "B" und "W" jeweils die entsprechende %-Zahl für Rot, Grün, Blau sowie deren Wirkung/Intensität angebt; gefolgt von [Blinkzeit [Zeit]], wobei ihr hier "Zeit" durch eine Zahl ersetzt, welche die Blinkdauer in 1/10-Sekunden angeben soll; eventuell gefolgt von [Warten, bis fertig], falls das Ereignis erst dann weiter fortfahren soll, wenn der Farbübergang erfolgt ist.
Move all Auf Bewegungsereig- nisse warten | : | [Nachfolgende Ereignisbewegung ausführen], wobei dieser Text nur zwischen zwei direkt aufeinander folgenden Bewegungsereignissen stehen sollte
Stop all Bewegung unterbrechen neu starten | : | [Ereignisbewegung stoppen], wobei dieser Text nur dann funktioniert, wenn zuvor im selbem Ereignis ein [Nachfolgende Ereignisbewegung ausführen] vorkam.
Wait Einen Moment warten | : | [Warten [Dauer]], wobei ihr "Dauer" durch eine Zahl ersetzt, welche eine Wartezeit in 1/10-Sekunden angeben soll
In MML kann die Gliederung des bisher besprochenem vom Schema her so aussehen:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Shop] [Shopart] [Inn] [Preis: [Zahl]] [Terrain-ID sichern] [Positionsvariablen [NameX][NameY]] [Ereignis-ID sichern] [Manuelle Position [x][y]] [Bildschirm-Farbton] [RPG-Gamma-Werte: [R][G][B][Gamma]] [Übergangszeit [Zeit]] [Warten, bis fertig] [Bildschirm-Blinken] [RPG-Wirkung-Werte: [R][G][B][W]] [Blinkzeit [Zeit]] [Warten, bis fertig] [Bildrütteln] [Rütteldauer [Zeit]] [Warten, bis fertig] [Wettereffekt][Effektart [Auswahl]][Effektkraft [Kraft]] [Kampfanimation zeigen] [Animationsname] [Ziel [Name]] [Warten, bis fertig] [Auf ganzem Bildschirm zeigen] [Heldtransparenz [Auswahl]] [Ereignisblinken] [Ziel [Name]] [RPG-Wirkung-Werte: [R][G][B][W]] [Blinkzeit [Zeit]] [Warten, bis fertig] [Nachfolgende Ereignisbewegung ausführen] [Ereignisbewegung stoppen] [Warten [Dauer]] [Funktionen der Ereignisseite 1]
| Sonstige Ereignis- kommandos (auf Registerkarte 3) | : |
Play BGM Hintergrundmusik ab- spielen | : | [Hintergrundmusik spielen]; gefolgt von [Neue Hintergrundmusik] oder [Hintergrundmusik AUS]. Weitere Details folgen nicht, da sie für die Funktionsweise des Spiels nicht erforderlich sind. Die Wahl einer Hintergrundmusik für ein bestimmtes Szenario ist eine Sache der Kreativität und die kann niemand festlegen. Ihr könntet euch hier mit Kommentaren behelfen, wo ihr die Musikwahl festhaltet...
Fade-Out BGM Hintergrundmusik aus- klingen lassen | : | [Hintergrundmusik ausklingen]; gefolgt von [Ausklingdauer [Zeit]], wobei hier die "Zeit" durch eine Zahl ersetzt wird, welche die exakten Sekunden der Ausklingdauer angibt (max. 20 sind möglich)
Memorize BGM Hintergrundmusik merken | : | [Hintergrundmusik merken];
Play memorized BGM Gemerkte Musik ab- spielen | : | [Gemerkte Musik abspielen];
Play Sound effect Soundeffekt abspielen | : | [Soundeffekt spielen]; gefolgt von [Neuer Soundeffekt] oder [Soundeffekt AUS]. Weitere Details folgen nicht, da sie für die Funktionsweise des Spiels nicht erforderlich sind. Die Wahl eines Soundeffekts für ein beschimmtes geschehnis, beispielsweise das Öffnen einer Tür, ist eine Sache der Kreativität. Ihr könntet euch hier mit Kommentaren behelfen, wo ihr die Soundwahl festhaltet...
Play Movie Film abspielen | : | [Film zeigen]; gefolgt von [Größe [Maße]], wobei ihr "Maße" durch die Lände x Breite des Films in Pixeln (!) angebt (z.B.: 320 x 240); gefolgt von [Position Ecke oben links [Position]], wobei ihr "Position" entweder durch "Variable [NameX][NameY] oder durch von Hand gewählte Pixel-Koordinaten angebt (z.B.: 320 x 240)
Change ChipSet Kartenchipsatz ändern | : | [Chipsatzwechsel]; gefolgt von [Neuer Chipsatz [Name]], wobei ihr "Name" durch den Namen des Chipsatzes ersetzt, den ihr ihm in der Datenbank gegeben habt.
Change Parallax BG Panorama ändern | : | [Panoramawechsel]; gefolgt von [Grafik [Name]], wobei ihr "Name" durch den Namen der Panoramadatei ersetzt; eventuell gefolgt von [Horizontal bewegen [Art]] und/oder [Vertikal bewegen [Art]], wobei ihr "Art" jeweils durch "Manuell" (durch Bewegung auf der Karte) oder "Automatisch" ersetzt.
Encounter Rate Gegnerhäufigkeit | : | [Gegnerhäufigkeit]; gefolgt von [∅ Anzahl Schritte [Zahl]], wobei ihr "Zahl" durch eine beliebige Zahl ersetzt.
Change Chip (Chipsatz)Tile aus- tauschen | : | [Chip tauschen]. Details hierfür sind nicht erforderlich, da ihr die Chips später selbst wählen könnt.
Set Teleport place Teleportplatz erstellen | : | [Teleportplatz]; gefolgt von [+] oder [-]; gefolgt von [Kartenname [Name]], wobei ihr "Name" durch den Namen der entsprechenden Karte ersetzt; eventuell gefolgt von [Schalter AN nach Teleport [Name]], wobei hier "Name" durch den Namen des betreffenden Schalters zu ersetzen ist.
Disable Teleport Teleportfertigkeit ein/aus | : | [Teleportfertigkeit]; gefolgt von [AN] oder [AUS]
Set Escape place Fluchtplatz erstellen | : | [Fluchtplatz]; gefolgt von [Kartenname [Name]], wobei ihr "Name" durch den Namen der entsprechenden Karte ersetzt; eventuell gefolgt von [Schalter AN nach Flucht [Name]], wobei hier "Name" durch den Namen des betreffenden Schalters zu ersetzen ist.
Disable Escape Fluchtfertigkeit ein/aus | : | [Fluchtfertigkeit]; gefolgt von [AN] oder [AUS]
Call Save Menu Speichermenü aufrufen | : | [Speicher-Dialog-Aufruf]
Disable Save Speichern ein/aus | : | [Speichermöglichkeit]; gefolgt von [AN] oder [AUS]
Call Menu Spielmenü aufrufen | : | [Charaktermenü aufrufen] oder [Inventar aufrufen]
Disable Menu Spielmenü ein-/ ausschalten | : | [Charaktermenüaufruf] oder [Inventaraufruf]; gefolgt von [AN] oder [AUS]
Stop Parallel Events Dieses Ereignis anhalten | : | [Parallel laufende Ereignisse stoppen]
Clear Timer Dieses Ereignis tempo- rär löschen | : | [Ereignis temporär löschen] (ist beim nächstem Map-Besuch wieder da)
GameOver Spiel beenden | : | [GameOver] (Niederlage)
Goto Title Screen Zum Titelbildschirm gehen | : | [Zum Titelbildschirm]
In MML kann die Gliederung des bisher besprochenem vom Schema her so aussehen:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Hintergrundmusik spielen] [Neue Hintergrundmusik] [Hintergrundmusik ausklingen] [Ausklingdauer [Zeit]] [Hintergrundmusik merken] [Gemerkte Musik abspielen] [Soundeffekt abspielen] [Neuer Soundeffekt] [Film zeigen] [Größe [320 x 240]] [Position Ecke oben links [Variable [NameX][NameY]] [Chipsatzwechsel] [Neuer Chipsatz [Name]] [Panoramawechsel] [Grafik [Name]] [Gegnerhäufigkeit] [∅ Anzahl Schritte [Zahl]] [Chip tauschen] [Teleportplatz] [+] [Kartenname [Name]] [Teleportfertigkeit] [AN] [Fluchtplatz] [Kartenname [Name]] [Fluchtfertigkeit] [AN] [Speicher-Dialog-Aufruf] [Speichermöglichkeit] [AUS] [Inventar aufrufen] [Inventaraufruf] [AN] [Parallel laufende Ereignisse stoppen] [Ereignis temporär löschen] [GameOver] [Zum Titelbildschirm] [Funktionen der Ereignisseite 1]
| Sonstige Ereignis- kommandos (bei der Monster-Party) | : |
Enemy Encounter Gegner erscheinen lassen | : | [Neuer Gegner erscheint]; gefolgt von [Gegnername: [Name]], wobei ihr "Name" durch den Namen des Gegners ersetzt
Change Battle BG Kampfhintergrund ändern | : | [Anderer Kampfhintergrund]; Details sind hier nicht erforderlich, da ein entsprechender, anderer Kampfhintergrund hier nach eurem Ermessen bestimmt werden kann
Stop Combat Kampf stoppen | : | [Kampf stoppen]
In MML kann die Gliederung des bisher besprochenem vom Schema her so aussehen:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Neuer Gegner erscheint] [Gegnername: [Name]] [Anderer Kampfhintergrund] [Kampf stoppen] [Funktionen der Ereignisseite 1]

###### Gliederung der MML

Die zuvor erklärte "Maker Modeling Language" (MML) soll euch vor allem eine übersichtliche Form dessen liefern, was ihr im Maker in Form von "Maker-Code" anlegen werdet. Zum Abschluss der Handhabung der "Maker Modeling Language" hier noch ein paar Stichpunkte, die es bei deren Verwendung zu beachten gilt:

| Immer vom Schema her folgende Gliederung beibehalten
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Funktionen der Ereignisseite 1]
[Ereignisseite 2] [Aufrufart] [...] [Funktionen der Ereignisseite 2]
| Prinzipiell gilt, dass ein Ereigniskommando in einer Zeile steht. Halt also eine angedeutete Ereignisseite 10 Zeilen (unter dem Text "[Ereignisseite 1] [Aufrufart]"), so besteht diese Ereignisseite aus 10 Ereigniskommandos.
| Passt ein Ereigniskommando nicht in eine Zeile (beispielsweise bei der Bestimmung von Bewegungsabläufen wie dies durch 'Move Event' geschehen kann), so werden die Folgezeilen des betreffenden Ereigniskommandos etwa um vier Leerzeichen links eingezogen. Dies gilt auch für die Beschreibung der Ereignisseite, ihrer Aufrufart und der Schalter sowie Variablen, die ihren Start bestimmen. Folgendes Beispiel veranschaulicht dies:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Funktionen der Ereignisseite 1]
[Ereignisseite 2] [Aufrufart] [Schalter [Name] [Variable [Name]] [Itemname] [Heldname] [Minuten:Sekunden] [Einige Funktionen der Ereignisseite 2] [Eventbewegung] [Sprung Start] [Schritt in Blickrichtung] [Schritt in Blickrichtung] [Schritt in Blickrichtung] [Schritt in Blickrichtung] [Sprung Ende] [Weitere Funktionen der Ereignisseite 2]
| Folgen mehrmals exakt identische Ereigniskommandos (beispielsweise bei oben dargestelltem Bewegungsereignis mit dem Kommando "Schritt in Blickrichtung"), kann diese Wiederholung durch "[Kommando] * Anzahl" ersetzt werden. Vorteil: Nicht so viel Schreibarbeit und keine all zu große Verzettelung beim Anlegen des Ereignisses. Folgendes Beispiel veranschaulicht dies:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Funktionen der Ereignisseite 1]
[Ereignisseite 2] [Aufrufart] [...] [Eventbewegung] [Sprung Start] [Schritt in Blickrichtung] * 4 [Sprung Ende] [Funktionen der Ereignisseite 2]
| Alles innerhalb einer Schleife (Zyklus, Cycle) wird um mindestens vier Leerzeichen eingerückt, damit eindeutig zu sehen ist, welcher Code sich innerhalb der Schleife befindet. Befindet sich innerhalb der Schleife ein Kommando, das nicht in eine Zeile passt, so wird eine zusätzliche Einrückung vorgenommen, wie folgendes Beispiel veranschaulicht:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Funktionen der Ereignisseite 1]
[Ereignisseite 2] [Aufrufart] [...] [Schleife Beginn] [Eventbewegung] [Sprung Start] [Schritt in Blickrichtung] * 4 [Sprung Ende] [Blich hoch] [Blick runter] [Blick links] [Blick rechts] [Sprung Start] [Schritt in Blickrichtung * 4] [nur gehen wenn möglich] [Noch mehr Funktionen der Ereignisseite 1] [Schleife Ausbruch] [Schleife Ende] [Funktionen der Ereignisseite 2]
| Schleifen können, wie im Maker selbst, auch in der MML ineinander verschachtelt werden; ebenso die Auswahlmenüs/Choices. Folgendes MML-Beispiel verdeutlicht dies am Beispiel der Bedingungen:
[Ereignisname]
[Ereignisseite 1] [Aufrufart] [Bedingung 1]
| [Ja-Fall]
| [Funktionen des ersten JA-Falles] [Bedingung 2]
| [Ja-Fall]
| [Funktionen des zweiten JA-Falles]
| [Nein-Fall]
| [Funktionen des zweiten NEIN-Falles]
| [Nein-Fall]
| [Funktionen des ersten NEIN-Falles]
[Funktionen der Ereignisseite 1]
| Hebt, wenn ihr mit Schaltern arbeitet, die betreffenden Schalter hervor, wenn sie verändert oder ihr Zustand abgefragt wird.