![]() ![]() |
Einstieg und Verlassen des Chara-Menüs |
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.
|
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. |
Inventar-Teleport-Ereignis [parallel] | ||||||||||||||
[Variable [Tastendruck]] [<-- ESC][warten] [Bedingung][Variable][Tastendruck][gleich][6]
|
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 <> |
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 (!!!) |
* 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]
|
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.