![]() ![]() |
Der Geld-Zähler |
Bevor ihr überhaupt einen Geldzähler anlegen könnt, muss euch klar sein, dass
dieser auch grafisch dargestellt werden soll. Auch sollte die Schrift des
Zählers zum Rest des Shops passen.
Optimal eignen sich für diese Zwecke CharSets, die ohne großen Aufwand an einem
bestimmtem Punkt positioniert werden können. Die Beispielgrafik [counterset.png],
die dem E-Book beigefügt ist, soll in unserem Beispiel zur Darstellung des
Zählerergebnisses dienen. Falls ihr eigene Zahlen-CharSets entwerfen wollt,
verwendet [diese Vorlagengrafik]. Der
Hintergrund wird später durch das Anlegen des Zählers deutlich.
Zu Beginn muss ein Ereignis existieren, das euer Geldvermögen (eigentlich das eurer Heldentruppe) in einer Variable speichert und diese Zahl, die durchaus sechsstellig sein kann, in einzelne Ziffern zerlegt (maximal sechs an der Zahl). Grund ist der, dass eure Heldentruppe ein maximales Vermögen von 999.999 Geldeinheiten aufbauen kann. Nur... wie wird das ganze im Maker umgesetzt?
![]() |
Benötigt wird hier ein Ereignis, das ihr auf jeder Seite (!) eures
Shops anlegt (Ausgenommen bleibt die Seite für den Ein- und Ausstieg des
Shops. Hier hat ein Geldzähler nichts verloren). Bestimmt, dass dieses Ereignis "automatisch" (!) gestartet
wird und nur dann aktiv ist, wenn der Schalter "Geldzähler läuft" auf AN
steht.
|
||
![]() |
Bestimmt als erstes Ereigniskommando sechs freie, unbenutzte Variablen,
denen ihr der Reihe nach folgende Namen gebt: "Cash-100K", "Cash-10K", "Cash-1K", "Cash 100", "Cash 10", "Cash 1" Diese sechs Variablen sollten in der Variablennliste nacheinander folgen und allesamt auf 0 gesetzt werden (schließlich soll der Geldzähler ja immer den wirklichen Geldstand anzeigen und nicht immer zum Vorherigem alles dazuzählen. Wenn ihr bereits ein eigenes Inventar samt Geldzähler habt, könnt ihr die Variablen daraus wieder verwenden. |
||
![]() |
Direkt danach bestimmt ihr eine siebte, freie Variable, die das
Geldvermögen eurer Heldentruppe speichern soll. Gebt ihr den Namen "Cash-Counter" |
||
![]() |
Nun folgt eine Endlosschleife. |
||
![]() |
In dieser Endlosschleife soll nun eine Bedingung abfragen, ob das der
Wert der Variable "Cash-Counter" größer als 100.000 ist (die Heldentruppe
also mehr als 100.000 Geldeinheiten mit sich führt). Hier brauchen wir
zwingend einen Nein-Fall. |
||
![]() |
Im Ja-Fall soll zuerst der Variable "Cash-100K" der Wert 1 dazugezählt,
dann der Variable "Cash-Counter" der Wert 100.000 abgezogen werden. |
||
![]() |
Im Nein-Fall folgt eine weitere Bedingung, die nun abfragt, ob der Wert
der Variable "Cash-Counter" größer als 10.000 ist (also ob die Heldentruppe
mehr als 10.000 Geldeinheiten hat). Auch hier brauchen wir zwingend einen
Nein-Fall. |
||
![]() |
Im Ja-Fall wird der Variable "Cash-10K" der Wert 1 dazugezählt, danach
der Variable "Cash-Counter" der Wert 10.000 abgezogen. |
||
![]() |
Wiederholt nun nach dem eben geschildertem Prinzip jeweils in den
Nein-Fällen die Szenarien für die Situationen, in denen die Heldentruppe
mehr als 1.000, mehr als 100, mehr als 10 und mehr als 1 Geldeinheit mit
sich führt. Behaltet die Reihenfolge bei (!wichtig!) |
||
![]() |
Im Nein-Fall der letzten Bedingung, die abfragt, ob die Heldentruppe
mehr als 1 Geldeinheit mit sich führt, soll aus der Endlosschleife
ausgebrochen werden. |
||
![]() |
Am unterstem Ende des Maker-Codes soll nun der Schalter "Geldzähler läuft" auf AUS gestellt werden. |
Cash-Counter-Ereignis | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[Ereignisseite 1][Schalter [Geldzähler
läuft]][Automatisch] [Variable [von [Cash-100K] bis [Cash-1] [<-- [Wert setzen][0]] [Variable [Cash-Counter][<-- [Wert setzen][Geld]] [Schleife Beginn]
[Schalter [Geldzähler läuft]] [<-- AUS] |
Im englischem Maker |
<>Change Var: [asd1 to asd6]
(Set)-0 <>Change Var: Var[asdf: Cash-Counter] (Set)-[$ Have] <>Loop <>If Var(asdf: Cash-Counter) 100000(>=) <>Change Var: Var[asd1: Cash-100K] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-100000 <> :Else Case <>If Var(asdf: Cash-Counter) 10000(>=) <>Change Var: Var[asd2: Cash-10K] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-10000 <> :Else Case <>If Var(asdf: Cash-Counter) 1000(>=) <>Change Var: Var[asd3: Cash-1K] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-1000 <> :Else Case <>If Var(asdf: Cash-Counter) 100(>=) <>Change Var: Var[asd4: Cash-100] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-100 <> :Else Case <>If Var(asdf: Cash-Counter) 10(>=) <>Change Var: Var[asd5: Cash-10] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-10 <> :Else Case <>If Var(asdf: Cash-Counter) 1(>=) <>Change Var: Var[asd6: Cash-1] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-1 <> :Else Case <>Break :End Case <> :End Case <> :End Case <> :End Case <> :End Case <> :End Case <> :End Loop <>Change Switch: Var[asdf: Geldzähler Läuft] Switch OFF <> |
Im deutschem Maker (V1.10c) |
<>Var. ändern: [asd1*asd6]
Wert, 0 <>Var. ändern: [asdf: Cash-Counter] Wert, Geld # <>Schleife <>Bedingung:Varbl[asdf: Cash-Counter]-100000(>=) <>Var. ändern:[asd1: Cash-100K] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 100000 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-10000(>=) <>Var. ändern:[asd2: Cash-10K] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 10000 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-1000(>=) <>Var. ändern:[asd3: Cash-1K] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 1000 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-100(>=) <>Var. ändern:[asd4: Cash-100] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 100 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-10(>=) <>Var. ändern:[asd5: Cash-10] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 10 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-1(>=) <>Var. ändern:[asd6: Cash-1] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 1 <> :Ansonsten <>Schleife stoppen <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :Schleifenende <>Schalter ändern:[asdf: Geldzähler läuft]-[AUS] <> |
Nun kommt das ganz am Anfang erwähnte CharSet zum Einsatz, das für die Zahlendarstellung zuständig ist. Importiert nun das CharSet mit Hilfe "des RAW-Material-Editors/der Materialverwaltung" des Makers. Ist dies getan, müsst ihr euch eine Sache vor Augen führen, wenn es um das Anlegen der Zähler-Anzeige geht (Das Prozedere ist exakt das Selbe wie beim eigenem Inventar, sofern ihr es bereits angelegt habt):
![]() |
Ihr habt sechs Variablen, die für die Anzeige des Geld-Zählerstandes
zuständig sind: "Cash-100K", "Cash-10K", "Cash-1K", "Cash 100", "Cash 10", "Cash 1" |
![]() |
Ihr benötigt sechs Ereingnisse auf der Karte "Inventory main", auf der
ihr schon das Ereignis für den Geld-Zähler angelegt habt. |
![]() |
Jedes dieser Ereignisse wird aus zehn Ereignisseiten bestehen. Jede dieser Ereignisseiten wird genau dann aktiv, wenn ein bestimmter Wert in der betreffenden Variable steht. |
![]() |
Diese Werte sollen nach folgendem Schema in jedem der sechs Ereignisse
von jeder der Variablen abgefragt werden: Seite 1: 0 Seite 2: 1 Seite 3: 2 ... Seite 10: 9 |
![]() |
Die sechs Ereignisse werden keine Ereigniskommandos beinhalten,
sondern lediglich zur Zahlendarstellung dienen. |
![]() |
Die Werte der Variablen "Cash 1", "Cash 100" und "Cash-10K" sollen durch
rechtsbündige Zahlen, die restlichen drei durch linksbündige Zahlen
dargestellt werden. |
![]() |
Wichtig: Damit auch immer die richtigen Zahlen angezeigt werden, muss jedes einzelne gewählte Char-Set in den Ereignissen, die den Geld-Stand anzeigen sollen, als "Fixed Graphic/Fixierte Grafik" angezeigt werden. |
Cash-100K-Ereignis |
[Ereignisseite 1][Variable [Cash 100K]] >= [0] |
[Ereignisseite 2][Variable [Cash 100K]] >= [1] |
[Ereignisseite 3][Variable [Cash 100K]] >= [2] |
[Ereignisseite 4][Variable [Cash 100K]] >= [3] |
[Ereignisseite 5][Variable [Cash 100K]] >= [4] |
[Ereignisseite 6][Variable [Cash 100K]] >= [5] |
[Ereignisseite 7][Variable [Cash 100K]] >= [6] |
[Ereignisseite 8][Variable [Cash 100K]] >= [7] |
[Ereignisseite 9][Variable [Cash 100K]] >= [8] |
[Ereignisseite 10][Variable [Cash 100K]] >= [9] |
Nach diesem Schema solltet ihr am Ende sechs Ereignisse haben, die jede der
sechs Variablen
"Cash-100K", "Cash-10K", "Cash-1K", "Cash 100", "Cash 10", "Cash 1"
komplett von 0 bis 9 abfragen. Die Hauptseite eures Shops könnte nun wie
folgt aussehen:
[Beispiel-Darstellung]
Das Problem, dem ihr noch gegenüber steht, ist, dass die Beispiel-Darstellung nahezu identisch ist mit der, die sich euch während des Spielens bietet. Ihr hättet also, wenn ihr nach der [Beispiel-Darstellung] vorgegangen seid, einen "zweizeiligen Geld-Anzeiger", der eigentlich einzeilig sein sollte. Doch dies lässt sich schnell und recht einfach beheben.
![]() |
Merkt oder notiert euch die Nummern der drei Zahlen-Ereignisse, die
nicht an der richtigen Position sitzen. |
![]() |
Bedenkt: Über dem Ereignis, das die 1er-Werte zählt, soll genau das sitzen, das die 10er-Werte zählt Über dem Ereignis, das die 100er-Werte zählt, soll das Ereignis sitzen, das die 1.000er-Werte zählt. Über dem Ereignis, das die 10.000er-Werte zählt, soll das sitzen, das die 100.000er-Werte zählt. In unserem Beispiel werden die Ereignisse entsprechend übereinander gelegt, wie eben beschrieben. |
![]() |
Es sind drei zusätzliche Ereigniskommandos erforderlich, die drei der
Zahlen-Ereignisse bewegen, die allesamt über "Set Event place/Ereignis
positionieren" angelegt werden. Sie sollen dafür sorgen, dass die Ereignisse
übereinander liegen, die übereinander liegen sollen. |
![]() |
Diese drei Ereigniskommandos sollen nun ganz an den Anfang des Ereignisses, das ihr am Anfang zum Geld-Zählen angelegt habt. |
Cash-Counter-Ereignis |
[Ereignisposition][Cash-10][Manuelle
Kartenposition] /* *Das Ereignis "Cash-10" soll auf das Ereignis "Cash-1" gelegt *werden */ [Ereignisposition][Cash-1000][Manuelle Kartenposition] /* *Das Ereignis "Cash-1000" soll auf das Ereignis "Cash-100" gelegt *werden */ [Ereignisposition][Cash-100000][Manuelle Kartenposition] /* *Das Ereignis "Cash-100000" soll auf das Ereignis "Cash-10000" gelegt *werden */ /* *Direkt hiernach folgt der restliche Code des Cash-Counters */ |
Im englischem Maker |
<>Teleport Event:
Cash-10-(___,___) <>Teleport Event: Cash-1000-(___,___) <>Teleport Event: Cash-100000-(___,___) <>Change Var: [asd1 to asd6] (Set)-0 <>Change Var: Var[asdf: Cash-Counter] (Set)-[$ Have] <>Loop <>If Var(asdf: Cash-Counter) 100000(>=) <>Change Var: Var[asd1: Cash-100K] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-100000 <> :Else Case <>If Var(asdf: Cash-Counter) 10000(>=) <>Change Var: Var[asd2: Cash-10K] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-10000 <> :Else Case <>If Var(asdf: Cash-Counter) 1000(>=) <>Change Var: Var[asd3: Cash-1K] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-1000 <> :Else Case <>If Var(asdf: Cash-Counter) 100(>=) <>Change Var: Var[asd4: Cash-100] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-100 <> :Else Case <>If Var(asdf: Cash-Counter) 10(>=) <>Change Var: Var[asd5: Cash-10] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-10 <> :Else Case <>If Var(asdf: Cash-Counter) 1(>=) <>Change Var: Var[asd6: Cash-1] (+)-1 <>Change Var: Var[asdf: Cash-Counter] (-)-1 <> :Else Case <>Break :End Case <> :End Case <> :End Case <> :End Case <> :End Case <> :End Case <> :End Loop <>Change Switch: Var[asdf: Geldzähler Läuft] Switch OFF <> |
Im deutschem Maker (V1.10c) |
<>Ereign.-Platz setzn: Cash-10,
(___,___) <>Ereign.-Platz setzn: Cash-1000, (___,___) <>Ereign.-Platz setzn: Cash-100000, (___,___) <>Var. ändern: [asd1*asd6] Wert, 0 <>Var. ändern: [asdf: Cash-Counter] Wert, Geld # <>Schleife <>Bedingung:Varbl[asdf: Cash-Counter]-100000(>=) <>Var. ändern:[asd1: Cash-100K] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 100000 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-10000(>=) <>Var. ändern:[asd2: Cash-10K] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 10000 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-1000(>=) <>Var. ändern:[asd3: Cash-1K] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 1000 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-100(>=) <>Var. ändern:[asd4: Cash-100] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 100 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-10(>=) <>Var. ändern:[asd5: Cash-10] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 10 <> :Ansonsten <>Bedingung:Varbl[asdf: Cash-Counter]-1(>=) <>Var. ändern:[asd6: Cash-1] +, 1 <>Var. ändern:[asdf: Cash-Counter] -, 1 <> :Ansonsten <>Schleife stoppen <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :Schleifenende <>Schalter ändern:[asdf: Geldzähler läuft]-[AUS] <> |