EventsBeginner  Standard-Menü-Erweiterung
Vorüberlegungen

Durch Drücken der Taste [ESC] gelangt ihr in's Standard-Charaktermenü eures Maker-Projektes. Dort habt ihr die Möglichkeit, die Charakterwerte eurer Helden zu betrachten, sie auszurüsten, sie Gegenstände benutzen zu lassen, Zauber zu wirken und zu speichern. Manchen ist dies noch nicht genug. Manche möchten einige Möglichkeiten mehr haben, ohne großartig viel Code anlegen zu müssen.

. Der Code der kleinen Menüerweiterung muss alls "Common Event/Häufig benötigtes Ereignis" abgelegt werden, weil ja von jeder Karte eures Projekts aus darauf der Zugriff ermöglicht werden soll. Zusätzlich noch als paralleler Prozess, damit dies auch immer möglich ist.
 
. Eine Tastenabfrage soll prüfen, welche Taste gedrückt wurde. Da man mit [ESC] ins Standard-Charaktermenü kommt, soll diese Taste dafür verwendet werden, um in die "Menüerweiterung" zu gelangen (Die Tastenabfrage wird, wenn die Taste [ESC] gedrückt wurde, die Zahl 6 in eine Variable schreiben). Natürlich soll die Tastenabfrage so lange warten, bis eine Taste gedrückt wurde (sehr wichtig, da sonst eine endlose Menüerweiterungsaufruferei losgetreten werden könnte).
 
. Eine Bedingung ohne Ansonstenfall soll abfragen, ob in der Variable die Zahl 6 drin ist.
 
. Im Ja-Fall dieser Bedingung kommt dann ein Auswahlmenü mit vier Möglichkeiten. In unserem Beispiel sollen diese "Menü aufrufen", "Spiel speichern", "Spielstatistik" und "Nichts" sein.
 
. Beim Punkt "Charaktermenü" wird ein Ereigniskommando dafür sorgen, dass das Charaktermenü aufgerufen wird.
 
. Beim Punkt "Speichern" soll ein Ereigniskommando den Speichern-Dialog aufrufen.
 
. Bei der "Spielstatistik" können viele Dinge stehen. Wir werden uns auf "Anzahl Speicherungen", "Gesamtkämpfe", "Gewonnene Kämpfe" und "Entflohene Kämpfe" beschränken. Hier werden die Zahlen direkt in jeweils eine Variable eingelesen.
 
. Die Ausgabe der Statistik erfolgt durch eine neue Nachricht.
Tipp: Durch die Zeichenfolge "\v[Zahl]" (ohne die "-Zeichen") gebt ihr den Wert der Variable aus, deren Nummer ihr anstelle von "Zahl" eingetragen habt.
Darstellung der Stichpunkte in MML
 Menüerweiterung-Ereignis [Parallel]
[Varialbe [GedrückteTaste]]  [<-- Taste [ESC]]
[Bedingung [Variable][aaaa: GedrückteTaste][gleich][6]
  [Ja-Fall]
 
  [Menü aufrufen]
  [Charaktermenü aufrufen]
transparent transparent
  [Spiel speichern]
  [Speichern-Dialog aufrufen]
transparent transparent
  [Spielstatistik]
  [Variable [xxxx: # Speicherungen] [<-- [setzen][Anzahl Speicherungen]]
[Variable [yyyy: # Kämpfe] [<-- [setzen][Anzahl Kämpfe]]
[Variable [zzzz: # Siege] [<-- [setzen][Anzahl Siege]]
[Variable [oooo: # Flucht] [<-- [setzen][Anzahl Flucht]]
[Nachricht]
    [Speicherungen : \v[xxxx]]
    [Gesamtkämpfe : \v[yyyy]]
    [Davon gewonnen: \v[zzzz]]
    [Davon geflohen: \v[oooo]]
transparent transparent
  [Nichts..]
 
Anleitung zur Erstellung des Maker-Codes
1. : Begebt euch zuerst in die Datenbank eures Makerprojektes, indem ihr auf das Symbol mit der Tabelle klickt oder die Taste [F8] drückt. In der Datenbank selbst begebt ihr euch auf die Registerkarte "Common Events/Häufig benötigte Ereignisse".
 
2. : Hier wählt ihr eine freie Zahlenkolonne aus, der ihr den Namen "Menüerweiterung" gebt. Legt ebenso fest (im Feld "Event Start Condition/Ereignistyp"), dass das Ereignis als "paralleler Prozess" laufen soll.
 
3. : Als erstes Ereigniskommando kommt die Tastenabfrage, die ihr auf der dritten Registerkarte der Ereigniskommandos findet ("Enter Password/Taste(n) abfragen"). Bestimmt hier zum Einen, dass die Taste [ESC] abgefragt ("Chancel (6)/Abbruch (6)") sowie die Variable, in der die Zahl für die gedrückte Taste gespeichert werden soll. Die Variable nennen wir hier "gedrückte Taste".
Vergesst nicht, das Häkchen bei "Wait until key hit/Auf Tastendruck warten", ehe ihr auf OK klickt.
 
4. : Direkt danach folgt eine Bedinung, die abfragen soll, ob der Wert der Variable "gedrückte Taste" genau "6" ist. Hierfür verwendet ihr das Ereigniskommando "Fork Conditions/Bedingungen" (zu finden auf der dritten Registerkarte der Ereigniskommandos).
Wählt hier auf der ersten Registerkarte den Punkt "Variable", indem ihr in den weißen Kreis vor dem Wort klickt. Mit Klick auf den Button mit den drei Punkten daneben wählt ihr nun die Variable aus, in der ihr die Kennzahl für die gedrückte Taste abgelegt habt (sie wurde im Punkt zuvor "gedrückte Taste" genannt).
Direkt darunter wählt ihr die Option "Set/Wählen" und gebt eine "6" ein (da die 6 für die Taste [ESC] steht). Dann noch im Drop-Down-Menü den Punkt "Same/Gleich" wählen und mit OK steht die Bedingung. Einen "Else-Case/Ansonstenfall" brauchen wir hier nicht, weil dieser ohnehin leer und somit ohne Funktion bleiben würde.
Eure Bedingung sollte nun wie folgt aussehen:
Im englischem Maker
<>If Var(aaaa: gedrückte Taste) 6
 <>
:End Case
<>
Im deutschem Maker (V1.10c)
<>Bedingung:Varb[aaaa: gedrückte Taste]-123456
 <>
:End-Fall
<>
 
5. : Innerhalb des Ja-Falles der Bedingung ([ESC]-Taste wurde gedrückt; der Bereich ist dunkelgrün hervorgehoben) legt ihr nun ein Auswahlmenü mit vier Auswahlmöglichkeiten an. Das Ereigniskommando hierfür ist "Show Choice/Auswahlmenü anzeigen" und auf der ersten Registerkarte der Ereigniskommandos zu finden. Gebt bei den einzelnen Auswahlmenüpunkten folgende Textbausteine ein:
Erster Menüpunkt: Menü aufrufen
Zweiter Menüpunkt: Spiel speichern
Dritter Menüpunkt: Spielstatistik
Vierter Menüpunkt: Nichts...
Euer Auswahlmenü sollte nun wie folgt aussehen:
Im englischem Maker
<>Show Choice:Menü aufrufen/Spiel speichern/Spielstatistik/Nichts...
:[Menü aufrufen] Case
 <>
:[Spiel speichern] Case
 <>
:[Spielstatistik] Case
 <>
:[Nichts...] Case
 <>
:End Case
<>
Im deutschem Maker (V1.10c)
<>Auswahlmenü:Menü aufrufen/Spiel speichern/Spielstatistik/Nichts...
:[Menü aufrufen] Fall
 <>
:[Spiel speichern] Fall
 <>
:[Spielstatistik] Fall
 <>
:[Nichts...] Fall
 <>
:End-Fall
<>
 
6. : Innerhalb des Punktes "Menü aufrufen" (Violett hervorgehoben) legt ihr nun das Ereigniskommando für den Aufruf des Charaktermenüs an. Zu finden ist es auf der dritten Registerkarte der Ereigniskommandos und heißt "Call Menu/Spielmenü aufrufen".
 
7. : Innerhalb des Punktes "Spiel speichern" (blau hervorgehoben) folgt das Ereigniskommando zum Aufruf des Speichern-Dialogs, welches ihr ebenfalls auf der dritten Registerkarte der Ereigniskommandos findet ("Call Save Menu/Speichermenü aufrufen").
 
8. : Der letzte Auswahlmenüpunkt, der noch Code bekommt, ist der Punkt "Spielstatistik" (rot hervorgehoben). Hier legt ihr zuerst eine Variable an, welche die Anzahl der Speicherungen speichern soll. Die Variable legt ihr mit dem auf der ersten Registerkarte befindlichem Ereigniskommando "Change Variable/Variable(n) ändern" an.
Hier wählt eine freie Variable aus, der ihr den Namen "# Speicherungen" gebt. Als Operator kommt "Set/Wert setzen" zum Einsatz. Den Wert für die Anzahl der Speicherungen zieht sich die Variable, wenn ihr ganz unten den Punkt "Other/Sonstiges" auswählt und im Drop-Down-Menü nach dem Punkt "Number of Saves/Anzahl Speichervorgänge" Ausschau haltet.
 
9. : Verfahrt für die Anzahl der Kämpfe, Anzahl Siege und Anzahl erfolgreicher Fluchtversuche nach dem selbem Schema, nur dass hier die Punkte des Drop-Down-Menüs "Number of Battles/Bestrittene Kämpfe", "Number of Victory/Siege" und "Number of Escapes/Fluchtversuche" heißen.
 
10. : Wenn ihr die nun insgesamt vier Variablen innerhalb des Punktes "Spielstatistik" angelegt habt, folgt direkt unter der letzten Variable die Textausgabe. Dies soll das Ereigniskommando "Show Message/Nachricht ausgeben", das ihr auf der ersten Registerkarte der Ereigniskommandos findet, erledigen. Gebt einfach folgenden Text ein:
Speicherungen : \v[xxxx], Gesamtkämpfe : \v[yyyy], Davon gewonnen: \v[zzzz], Davon geflohen: \v[oooo]
Ersetzt hier jeweils "xxxx", "yyyy", "zzzz" und "oooo" durch die Nummern der von euch verwendeten Variablen, damit auch die richtigen Werte angezeigt werden.
Tipp: Durch die Zeichenfolge "\v[Zahl]" (ohne die "-Zeichen") gebt ihr den Wert der Variable aus, deren Nummer ihr anstelle von "Zahl" eingetragen habt.
 
Der erstellte Maker-Code des Ereignisses
Im englischem Maker
<>Enter Password: Var[aaaa: gedrückte Taste]
<>If Var(aaaa: gedrückte Taste)-6
 <>Show Choice:Menü aufrufen/Spiel speichern/Spielstatistik/Nichts...
 :[Menü aufrufen] Case

 <>Call System Menu
 <>

 :[Spiel speichern] Case
 <>Call Save Menu
 <>

 :[Spielstatistik] Case
 <>Change Var: Var[xxxx:# Speicherungen] (Set)-Saves
 <>Change Var: Var[yyyy:# Kämpfe] (Set)-Battles
 <>Change Var: Var[zzzz:# Siege] (Set)-Victories
 <>Change Var: Var[oooo:# Flucht] (Set)-Fights
 <>Message:Speicherungen : \v[xxxx]
 :        :Gesamtkämpfe : \v[yyyy]
 :        :Davon gewonnen: \v[zzzz]
 :        :Davon geflohen: \v[oooo]
 <>

 :[Nichts...] Case
 <>
 :End-Case
 <>
:End-Case
<>
Im deutschem Maker (V1.10c)
<>Tasten abfragen:[aaaa: gedrückte Taste]
<>Bedingung:Varb[aaaa: gedrückte Taste]-6
 <>Auswahlmenü:Menü aufrufen/Spiel speichern/Spielstatistik/Nichts...
 :[Menü aufrufen] Fall

 <>Spielmenü aufrufen...
 <>

 :[Spiel speichern] Fall
 <>Speichernmenü aufr.
 <>

 :[Spielstatistik] Fall
 <>Var. ändern:[xxxx:# Speicherungen] Wert, #Speichern
 <>Var. ändern:[yyyy:# Kämpfe] Wert, #Kämpfe#
 <>Var. ändern:[zzzz:# Siege] Wert, #Siege
 <>Var. ändern:[oooo:# Flucht] Wert, #Kämpfe
 <>Nachr:Speicherungen : \v[xxxx]
 :      :Gesamtkämpfe : \v[yyyy]
 :      :Davon gewonnen: \v[zzzz]
 :      :Davon geflohen: \v[oooo]
 <>

 :[Nichts...] Fall
 <>
 :End-Fall
 <>
:End-Fall
<>