![]() ![]() |
Einstieg und Verlassen des Shops |
Erinnert euch an das Inventar von Final Fantasy VI, das im Kapitel rund um das Inventar bereits erwähnt wurde... und euer Inventar selbst. Dort hattet ihr ja einen Cursor-Helden angelegt, der auch hier wieder zum Einsatz kommt. Ebenso wie beim Inventar auch soll bei den Shops wieder eine schwarze Karte zwischengeschaltet werden, auf der dann die Heldentruppe durch den Cursor ausgetauscht wird, abnorme Zustände vorübergehend aufgehoben werden und dergleichen.
![]() |
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 auf die schwarze Karte?
![]() |
Das ist die Aufgabe des Kaufmanns, eines auf der Karte befindlichen
Ereignisses, dem ihr aus all euren CharSets das eines Kaufmanns geben
solltet. Gestartet werden soll es durch Drücken der Taste [ENTER] |
![]() |
Beginnen soll alles damit, dass der Händler die Heldentruppe begrüßt und
sie fragt, ob sie mit ihm handeln möchten oder nicht, |
![]() |
Ein darauf folgendes Auswahlmenü soll die Möglichkeiten "Ja, lasst uns
handeln" und "Nein" bieten. |
![]() |
Falls "Nein" gewählt wurde, soll nichts weiter geschehen. |
![]() |
Wurde "Ja, lasst uns handeln" gewählt, soll zuerst die aktuelle
Heldenposition in drei Variablen gemerkt werden. |
![]() |
Direkt danach ist eine Variable "Shop-ID" nötig, mit der dann von der
schwarzen Karte aus die einzelnen Shopkarten angesteuert werden sollen. In
unserem Beispiel soll eine "1" in die Variable geschrieben werden, da es der
erste Shop ist. |
![]() |
Direkt danach folgt 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. Wahlweise
könnt ihr auch die des eigenen Inventars weiterverwenden. |
![]() |
Nun soll die Heldentruppe auf die schwarze Karte "Shop - In/Out" teleportiert werden. |
Kaufmann-Ereignis | ||||||||||
[Nachricht] [Händler:] [Hallo... wollt ihr etwas an- oder] [verkaufen?] [Nachricht] [Held:]
|
Im englischem Maker |
<>Message: Händler: : : Hallo... wollt ihr etwas an- oder : : verkaufen? <>Message: Held: <>Show Choice:Ja, lasst uns Handeln/Nein... :[Ja, lasst uns Handeln] Case <>Memorize Place:Map[aaaa], X[bbbb], Y[cccc] <>Change Var: Var[xxxx: Shop-ID] (Set)- 1 <>Teleport: 00aa: Shop - In/Out (___,___) <> :[Nein...] Case <> :End Case <> |
Im deutschem Maker (V1.10c) |
<>Nachr: Händler: : : Hallo... wollt ihr etwas an- oder : : verkaufen? <>Nachr: Held: <>Auswahlmenü:Ja, lasst uns Handeln/Nein... :[Ja, lasst uns Handeln] Fall <>Position merken:[aaaa], [bbbb], [cccc] <>Var. ändern: [xxxx: Shop-ID] Wert, 1 <>Teleport: 00aa: Shop - In/Out (___,___) <> :[Nein...] Fall <> :End Fall <> |
Nun sind eure Hauptcharaktere auf der schwarzen Karte "Shop 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 zuvor durch die Variable "Shop-ID" bestimmten Shops
gelangen.
Sind sie vom Shop 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 Shop 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 "Shop In/Out" angelegt. |
||||
![]() |
Das erste Ereigniskommando, das ihr braucht, ist eine Bedingung. Diese
soll abfragen, ob ein Schalter namens "Im Shop" 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. |
||||
![]() |
Nun
soll der Charakter "Cursor" der Heldentruppe hinzugefügt werden. |
||||
![]() |
Direkt danach muss der Schalter "Im Shop" auf AN gestellt werden |
||||
![]() |
Nun soll noch das Ziel, zu dem der Cursor teleportiert werden soll,
bestimmt werden. Hierfür braucht ihr eine Bedingung, die abfragt, welcher
Wert in der Variable "Shop-ID" steht. Da wir hier unseren ersten Shop
erstellen und zuvor beim Kaufmann der Wert 1 in die Variable geschrieben
wurde, soll die Bedingung nun abfragen, ob der Wert der Variable "Shop-ID"
gleich 1 ist. Einen Nein-Fall braucht ihr, wenn ihr noch mehr eigene Shops anlegen werdet. |
||||
![]() |
Im Ja-Fall soll die Heldentruppe (eigentlich nur der Cursor) auf die
Karte des entsprechenden Shops teleportiert werden. In unserem Beispiel ist
das die zuvor erstellte Karte "Shop - #1 |
||||
![]() |
Im Nein-Fall der ganz zu Anfang angelegten Bedingung (Nun wird der Shop
verlassen) 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.
Das gleiche macht ihr mit den Variablen "Zustand Held 1" bis "Zustand Held
4" |
||||
![]() |
Danach soll der Schalter "Im Shop" 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 (!!!) |
||||
![]() |
Führt zum Abschluss im Kapitel [Anzeige abnormer Zustände] die Punkte IIa und IIb aus. Habt ihr dies erledigt, verfahrt nach dem dort erwähntem Punkt IIc, um die dort genannten Common Events/Häufig benötigten Ereignisse "Conditions Remove" und "Conditions - Add" aufzurufen. |
Die Änderungen, die zum bereits vorhandenem Code des Ereignisses auf der
Karte "Inventory In/Out" hinzu kamen, sind fett hervorgehoben.
* Tragt hier anstelle von xxx1 die wirkliche Nummer der Variable von Hand
ein, die ihr "Held #1" genannt habt.
** Trag hier anstelle von yyy1 die wirkliche Nummer der Variable von Hand ein,
die ihr "Zustand Held 1" genannt habt
Inventar-Teleport-Ereignis | ||||||||||||||||||||||||||||||||||||||||||||
[Ereignisseite 1][Automatisch] [Bedingung][Schalter][Im Shop][AUS]
|
Im englischem Maker |
<>If Switch [xxxy: Im
Shop] 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 <>Call Event: Conditions Remove <>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 Shop] Switch ON <>If Var(xxxx: Shop-ID] 1 <>Teleport: ooo1: Shop - #1 (___,___) <> :End Case <> :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 <>Call Event: Conditions - Add <>Change Var: [aaa1 to aaa4] (Set)-0 <>Change Switch: Var[xxxy: Im Shop] Switch OFF <>Goto Memorized Place: V[aaaa] (V[bbbb], V[cccc]) <> :End Case <> |
Im deutschem Maker (V1.10c) |
<>Bedingung:Schalter[xxxy: Im
Shop]- AUS <>Wettereffekt aufruf: Kein <>Schalter ändern:[asdf: Geldzähler läuft]-[AN] <>Var. ändern:[aaab: Held-Variable-Nr]Wert, xxx1 <>Var. ändern:[bbba: Zustandsvar No]Wert, yyy1 <>Ereignis aufrufen: Conditions Remove <>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 Shop]-[AN] <>Bedingung:Varbl[xxxx: Shop-ID-1 <>Teleport: ooo1: Shop - #1 (___,___) <> :End-Fall <> :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 <>Ereignis aufrufen: Conditions - Add <>Var. ändern: [aaa1*aaa4] Wert, 0 <>Schalter ändern: [xxxy: Im Shop]-[AUS] <>Teleport z. gem. Pos: V[aaaa] (V[bbbb], V[cccc]) <> :End-Fall <> |
...dient standardmäßig zum Aufruf des Inventars, ganz gleich, ob es das Standard-Inventar des Makers oder ein eigens kreiertes ist. Und wenn sich eure Heldentruppe im Shop befindet und die Spieler dann [ESC] drücken, werden sie während des Shoppens im Inventar landen. Das ist bei den Maker-Standards nicht möglich und soll so auch in eurem eigens kreiertem Shop nicht möglich sein. Nur... wie lässt sich das verhindern?
![]() |
Gehen wir in unserem Beispiel davon aus, dass eure Heldentruppe von euch
ein eigenes Inventar spendiert bekommen hat. Da habt ihr ein "häufig
benötigtes Ereignis" angelegt, das eure Heldentruppe bei Drücken der Taste [ESC]
direkt auf die Karte "Inventory In/Out" befördert, egal wo sie in eurer
Spielwelt gerade sind. Um dieses Ereignis geht es nun. |
![]() |
Begebt euch nun an die Stelle des Ereignisses, an dem eine Bedingung
abfragt, ob der Schalter "Im Inventar?" auf "OFF/AUS" steht, genauer gesagt
in den Ja-Fall dieser Bedingung. Hier legt ihr eine neue Bedingung an, die
abfragt, ob der Schalter "Im Shop?" auf "OFF/AUS" steht. Ein Nein-Fall ist
hier zwingend nötig. |
![]() |
In den Ja-Fall dieser Bedingung verschiebt ihr die beiden
Ereigniskommandos, die die Heldenposition speichern und die Heldentruppe auf
die Karte "Inventory In/Out" teleportieren (Beide markieren, dann
ausschneiden und im Ja-Fall der Bedingung, die den Schalter "Im Shop"
abfragt, wieder einfügen). |
![]() |
Im Nein-Fall der Bedingung hingegen soll die Heldentruppe lediglich auf die Karte "Shop In/Out" teleportiert werden. |
Die Änderungen, die zum bereits vorhandenem Code des Ereignisses auf der Karte "Inventory In/Out" hinzu kamen, sind fett hervorgehoben.
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 <>If Switch(xxxx: Im Shop?) is Off <>Memorize Place:Map[aaaa],X[bbbb],Y[cccc] <>Teleport: oooo:Inventar In/Out (000,000) <> :Else Case <>Teleport: ooo1:Shop 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 <>Bedingung: Schalter[xxxx: Im Shop?}-AUS <>Position merken: [aaaa],[bbbb],[cccc] <>Teleport: oooo:Inventar In/Out (000,000) <> :Ansonsten <>Teleport: ooo1:Shop In/Out (000,000) <> :Ansonsten <>Teleport: oooo:Inventar In/Out (000,000) <> :End-Fall <> :End-Fall <> |