EventsProfessional  Einstieg und Verlassen des Chara-Menüs
Vorüberlegungen I - Vorarbeit

Wenn ihr euch das Inventar von Final Fantasy VI anschaut, seht ihr eine Hand mit gestrecktem Zeigefinger, einen Cursor. Genau so sollte es am Ende auch aussehen, wenn eure Heldentruppe sich ins Inventar begibt. Doch wie geht so etwas und was braucht ihr ganz am Anfang?
Nun, zuerst wären das ein Cursor und eine leere Map, die komplett in schwarz gehüllt ist und alles, was sich an Ereignissen darauf befinden könnte, überdeckt.

. Zuallererst müsst ihr in der Datenbank einen neuen Helden anlegen, den ihr einfach nur "Cursor" nennt. Das wichtige hierbei ist, dass dieser neue "Hauptcharakter" als CharSet das einer Hand mit gestrecktem Zeigefinger zugewiesen bekkommt. Für die Darstellung des Cursors soll die dem E-Book beigefügte Zeiger-Grafik dienen.
 
. Verlasst die Datenbank und legt eine neue Karte an, der ihr einen Namen wie "Inventar In/Out" gebt. Wählt als ChipSet dafür einen beliebigen aus, von dem ihr wisst, dass dieser einen komplett schwarzen Chip hat. Dieser soll später alles, was sich auf dieser Karte befinden wird, überdecken.
 
warning Legt in der Datenbank einen neuen ChipSet-Eintrag an und deklariert einen der schwarzen Chips als überdeckend (mit dem Stern).
Vorüberlegungen II - Der Weg auf die "schwarze Karte" (Inventar In/Out)

Ihr habt nun unter Anderem die schwarze Karte angelegt. Die darauf positionierten, schwarzen Chips sollen alles, was sich darunter befinden kann, verdecken. Doch wie kommen eure Hauptcharaktere von jeder (!) anderen Karte aus direkt auf die schwarze Karte?

. Damit von jeder Karte aus ein teleportieren auf die schwarze Karte "Inventar In/Out" möglich ist, muss ein "Common Event/Häufig benötigtes Ereignis" her. Dieses Ereignis soll als paralleler Prozess laufen.
 
. Das erste Ereigniskommando soll eine Tastenabfrage sein, welche die Taste "Cancel/ESC" abfragt und, wenn ESC gedrückt wurde, die Zahl 6 in eine neue, freie Variable schreibt. Diese Variable nennt ihr "Tastendruck". Die Code-Fortführung muss (!) so lange pausiert werden, bis eine Taste gedrückt wurde.
 
. Direkt danach soll eine Bedingung abfragen, ob der Wert der Variable "Tastendruck" auch wirklich 6 ist. Ein Nein-Fall ist hier nicht erforderlich.
 
. Innerhalb dieser Bedingung folgt eine weitere, die abfragt, ob ein Schalter namens "Im Inventar" auf AUS steht (wählt dafür einen noch nicht benutzten Schalter aus, dem ihr den Namen gebt). Hier brauchen wir einen Nein-Fall.
 
. Im Ja-Fall der Bedingung folgt zuerst ein Ereignis, das die Heldenposition speichert (Memorize Place/Heldenposition speichern). Wählt ihr für die Karten-ID, X- und Y-Koordinaten jeweils eigene, noch nicht benutzte Variablen aus.
Direkt danach folgt ein Teleport-Befehl, der die Heldentruppe auf die schwarze Karte teleportiert.
 
. Im Nein-Fall soll die Heldentruppe nur auf die schwarze Karte teleportiert werden.
Darstellung der Stichpunkte in MML
 Inventar-Teleport-Ereignis [parallel]
[Variable [Tastendruck]] [<-- ESC][warten]
[Bedingung][Variable][Tastendruck][gleich][6]
  [Ja-Fall]
  [Bedingung][Schalter][Im Inventar][AUS]
  [Ja-Fall]
  [Heldenposition speichern] [Kartenvariable [Karten-ID]]
    [X-Variable [X-Position]]
    [Y-Variable [Y-Position]]
[Teleportieren nach] [Inventar In/Out]
transparent transparent
  [Nein-Fall]
  [Teleportieren nach] [Inventar In/Out]
Der erstellte Maker-Code
Im englischem Maker
<>Enter Password: Var[xxxx: Tastendruck]
<>If Var (xxxx: Tastendruck) 6
 <>If Switch (yyyy: Im Inventar) is OFF
  <>Memorize Place:Map[aaaa],X[bbbb],Y[cccc]
  <>Teleport: oooo:Inventar In/Out (000,000)
  <>

 :Else Case
  <>Teleport: oooo:Inventar In/Out (000,000)
  <>

 :End Case
 <>
:End Case
<>
Im deutschem Maker (V1.10c)
<>Tasten abfragen:[xxxx: Tastendruck]
<>Bedingung: Varb[xxxx: Tastendruck]-6
 <>Bedingung: Schalter[yyyy: Im Inventar]-AUS
  <>Position merken: [aaaa],[bbbb],[cccc]
  <>Teleport: oooo:Inventar In/Out (000,000)
  <>

 :Ansonsten
  <>Teleport: oooo:Inventar In/Out (000,000)
  <>

 :End-Fall
 <>
:End-Fall
<>
Vorüberlegungen III - Von der "schwarzen Karte" ins Inventar

Nun sind eure Hauptcharaktere auf der schwarzen Karte "Inventory In/Out" angekommen. Von hier sollen zwei Dinge passieren:
Wenn eure Helden von der Spielwelt aus auf die schwarze Karte gelangt sind, sollen sie auf der Hauptseite des Charaktermenüs landen.
Sind sie vom Inventar aus auf der schwarzen Karte gelandet, so sollen sie in ihrer Ursprungsbesetzung auf die Position der Spielwelt zurückgebracht werden, von wo aus sie zu Beginn auf die schwarze Karte teleportiert wurden. Außerdem soll sich das teleportieren in und aus dem Inventar mit jeder (!) Heldentruppenzusammensetzung machen lassen, egal welcher der Hauptcharaktere sich in der Heldentruppe befindet. Und da in der Datenbank 4999 Hauptcharaktere angelegt werden können (einer davon ist ja der Cursor), klingt dies nach viel Arbeit...

. Ein normales Ereignis, das automatisch startet, wird auf der schwarzen Karte "Inventory In/Out" angelegt.
 
. Das erste Ereigniskommando, das ihr braucht, ist eine Bedingung. Diese soll abfragen, ob ein Schalter namens "Im Inventar" auf AUS steht. Einen Nein-Fall brauchen wir hier unbedingt (!). Was den Schalter betrifft, wählt einen neuen, noch unbenutzten Schalter hierfür aus.
 
. Im Ja-Fall der Bedingung beginnt alles damit, dass ihr ein Wettereffekt-Kommando anlegt, das den Wettereffekt "None/Keiner" aufruft.
 
. Direkt danach soll der Schalter "Geldzähler läuft" auf AN gesetzt werden. Wann dieser zum Einsatz kommt, folgt später, wenn es um das Anlegen eines Geld-Zählers geht.
 
. Nun wird es kompliziert:
Legt eine noch unbenutzte, freie Variable an, der ihr den Namen "Held-Variable-Nr" gebt. Tragt hier die Zahl der direkt nachfolgenden Variable ein. (Benennt gleichzeitig die vier nachfolgenden Variablen "Held #1", "Held #2", "Held #3" und "Held #4", verwendet sie jedoch noch nicht)
Beispiel: Wenn die "Held-Variable-Nr" die Variablennummer 20 hat, so schreibt in die Variable die Zahl 21 hinein.
 
. Direkt danach soll eine Bedingung folgen, die abfragt, ob der erste in der Datenbank angelegte Held sich im Team befindet (in unserem Beispiel wird dieser Held "Alex" sein). Einen Nein-Fall brauchen wir hier nicht.
 
. Innerhalb dieser Bedingung soll nun in die Variable, deren Nummer von der Variable "Held-Variable-Nr" bestimmt wird, die in der Datenbank dem Helden zugewiesene Nummer geschrieben werden. In unserem Beispiel ist Alex der erste Held in der Datenbank, also wird dementsprechend in die Variable eine 1 geschrieben.
 
. Direkt danach soll der Variable "Held-Variable-Nr" die Zahl 1 dazugezählt werden. Sie steuert nun die nächste Variable an, die auf die zuvor verwendete folgt.
 
. Nun soll noch der Held namens "Alex" aus dem Team entfernt werden.
 
. Wiederholt die vier in violetter Farbe gehaltenen Punkte für jeden weiteren Hauptcharakter, der sich jemals in der Heldentruppe befinden kann. Lasst aber den Cursor-Charakter außen vor. (in unserem Beispiel wird noch ein Hauptcharakter namens Annie geprüft)
 
. Ist nun für den letzten Hauptcharakter alles, was in violetter Schriftfarbe gehalten ist, erledigt (und die Heldengruppe komplett leer), so soll der Charakter "Cursor" der Heldentruppe hinzugefügt werden.
 
. Direkt danach muss der Schalter "Im Inventar" auf AN gestellt werden
 
. Zuletzt soll ein Teleport-Kommando die Heldentruppe (die nun nur aus dem Cursor besteht) auf die Hauptseite eures Inventars teleportieren.
 
. Im Nein-Fall der ganz zu Anfang angelegten Bedingung fliegt zuerst einmal der Charakter "Cursor" aus der Heldengruppe raus.
 
. Direkt danach legt ihr eine Bedingung an, die abfragt, ob der Wert der Variable "Held #1" anders als 0 ist. Einen Nein-Fall braucht ihr hier nicht.
Hintergrund: Es kann keinen Helden mit der Nummer 0 geben. Hat die Variable "Held #1" also den Wert 0, ist keine Heldennummer gespeichert.
 
. Im Ja-Fall der Bedingung soll nun ein Hauptcharakter der Heldentruppe hinzugefügt werden. Welcher das genau ist, soll durch die Variable "Held #1" bestimmt werden.
 
. Wiederholt direkt unter der Bedingung, welche die Heldennummer prüft (die Bedingung des dunkelblau hervorgehobenen Bereichs) das dunkelblau hervorgehobene für die Variablen "Held #2", "Held #3" und "Held #4".
 
. Habt ihr dies getan, so müssen (!!!) die Variablen "Held #1", "Held #2", "Held #3" und "Held #4" auf 0 gesetzt werden.
 
. Danach soll der Schalter "Im Inventar" auf AUS gestellt werden.
 
. Die Heldentruppe (nun wieder in vollständiger Besetzung) soll nun an den durch das zuvor angelegte "Common Event/Häufig benötigte Ereignis" gemerkten Ort zurückteleportiert werden ("Goto Memorized Place/zu gespeicherter Position teleportieren"). Verwendet hierfür die selben Variablen, die bereits beim "Common Event/Häufig benötigtem Ereignis" die Heldenposition gespeichert haben (!!!)
Darstellung der Stichpunkte in MML

* Tragt hier anstelle von xxx1 die wirkliche Nummer der Variable von Hand ein, die ihr "Held #1" genannt habt.

 Inventar-Teleport-Ereignis
[Ereignisseite 1][Automatisch]
[Bedingung][Schalter][Im Inventar][AUS]
  [Ja-Fall]
  [Wettereffekt][Effektart [keiner]]
[Schalter [Geldzähler läuft]] [<-- AN]
[Variable [Held-Variable-Nr]][<-- [Wert setzen][xxx1]]*
[Bedingung][Held][Alex][Im Team]
  [Ja-Fall]
  [Variable [Held-Variable-Nr] übergibt Nummer][<-- [Wert setzen]
    [1]]
[Variable [Held-Variable-Nr]] [<-- [+] [1]]
[Hauptcharakter] [-] [Held: [Alex]]
[Bedingung][Held][Annie][Im Team]
  [Ja-Fall]
  [Variable [Held-Variable-Nr] übergibt Nummer][<-- [Wert setzen]
    [2]]
[Variable [Held-Variable-Nr]] [<-- [+] [1]]
[Hauptcharakter] [-] [Held: [Annie]]
[Hauptcharakter] [+] [Held: [Cursor]]
[Schalter [Im Inventar]] [<-- AN]
[Teleportieren nach] [Inventory Main]
transparent transparent
  [Nein-Fall]
  [Hauptcharakter] [-] [Held: [Cursor]]
[Bedingung][Variable][Held #1][anders][0]
  [Ja-Fall]
  [Hauptcharakter][+][Heldvariable: [Held #1]]
[Bedingung][Variable][Held #2][anders][0]
  [Ja-Fall]
  [Hauptcharakter][+][Heldvariable: [Held #2]]
[Bedingung][Variable][Held #3][anders][0]
  [Ja-Fall]
  [Hauptcharakter][+][Heldvariable: [Held #3]]
[Bedingung][Variable][Held #4][anders][0]
  [Ja-Fall]
  [Hauptcharakter][+][Heldvariable: [Held #4]]
[Variable von [Held #1] bis [Held #4] [<-- [Wert setzen] [0]]
[Schalter [Im Inventar]] [<-- AUS]
[Heldenposition teleport] [Kartenvariable [aaaa]]
    [X-Variable [bbbb]]
    [Y-Variable [cccc]]
Der erstellte Maker-Code auf der ersten (und einzigen) Seite des Ereignisses
Im englischem Maker
<>If Switch [xxxy: Im Inventar] is OFF
 <>Call Weather Effect: None/Off
 <>Change Switch: Var[asdf: Geldzähler läuft] Switch ON
 <>Change Var: Var[aaab: Held-Variable-Nr] (Set)-xxx1
 <>If Alex is in the Party
  <>Change Var: [Var[aaab]] (Set)-1
  <>Change Var: Var[aaab: Held-Variable-Nr] (+)-1
  <>Change Hero's Party: (Alex) (Rem)
  <>
 :End Case
 <>If Annie is in the Party
  <>Change Var: [Var[aaab]] (Set)-1
  <>Change Var: Var[aaab: Held-Variable-Nr] (+)-2
  <>Change Hero's Party: (Annie) (Rem)
  <>
 :End Case
 <>Change Hero's Party: (Cursor) (Add)
 <>Change Switch: Var[xxxy: Im Inventar] Switch ON
 <>Teleport: oooo: Inventory main (___,___)
 <>

:Else Calse
 <>Change Hero's Party: (Cursor) (Rem)
 <>If Var(aaa1: Held #1) 0 (<>)
  <>Change Hero's Party: (V[aaa1]) (Add)
  <>
 :End Case
 <>If Var(aaa2: Held #2) 0 (<>)
  <>Change Hero's Party: (V[aaa2]) (Add)
  <>
 :End Case
 <>If Var(aaa1: Held #3) 0 (<>)
  <>Change Hero's Party: (V[aaa3]) (Add)
  <>
 :End Case
 <>If Var(aaa1: Held #4) 0 (<>)
  <>Change Hero's Party: (V[aaa4]) (Add)
  <>
 :End Case
 <>Change Var: [aaa1 to aaa4] (Set)-0
 <>Change Switch: Var[xxxy: Im Inventar] Switch OFF
 <>Goto Memorized Place: V[aaaa] (V[bbbb], V[cccc])
 <>

:End Case
<>
Im deutschem Maker (V1.10c)
<>Bedingung:Schalter[xxxy: Im Inventar]- AUS
 <>Wettereffekt aufruf: Kein
 <>Schalter ändern:[asdf: Geldzähler läuft]-[AN]
 <>Var. ändern:[aaab: Held-Variable-Nr]Wert, xxx1
 <>Bedingung:Alex ist in Partie
  <>Var. ändern:[V[aaab]]Wert, 1
  <>Var. ändern:[aaab: Held-Variable-Nr]+, 1
  <>Heldenpartie ändern:Alex ->-
  <>
 :End-Fall
 <>Bedingung:Annie ist in Partie
  <>Var. ändern:[V[aaab]]Wert, 2
  <>Var. ändern:[aaab: Held-Variable-Nr]+, 1
  <>Heldenpartie ändern:Annie ->-
  <>
 :End-Fall
 <>Heldenpartie ändern:Cursor->+
 <>Schalter ändern:[xxxy: Im Inventar]-[AN]
 <>Teleport: oooo: Inventory main (___,___)
 <>

:Ansonsten
 <>Heldenpartie ändern:Cursor->-
 <>Bedingung:Varbl[aaa1: Held #1]-0andr
  <>Heldenpartie ändern:V[aaa1]->+
  <>
 :End-Fall
 <>Bedingung:Varbl[aaa1: Held #2]-0andr
  <>Heldenpartie ändern:V[aaa2]->+
  <>
 :End-Fall
 <>Bedingung:Varbl[aaa1: Held #3]-0andr
  <>Heldenpartie ändern:V[aaa3]->+
  <>
 :End-Fall
 <>Bedingung:Varbl[aaa1: Held #4]-0andr
  <>Heldenpartie ändern:V[aaa4]->+
  <>
 :End-Fall
 <>Var. ändern: [aaa1*aaa4] Wert, 0
 <>Schalter ändern: [xxxy: Im Inventar]-[AUS]
 <>Teleport z. gem. Pos: V[aaaa] (V[bbbb], V[cccc])
 <>

:End-Fall
<>

Wie bei der Darstellung in MML auch ist hier anstelle von xxx1 die wirkliche Nummer der Variable von Hand einzutragen, die ihr "Held #1" genannt habt.