Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [TUTORIAL] Variablen



Final Griever
12.10.2008, 00:27
Vornerein mal etwas gesagt: Ca. die Hälfte der Bilder wurde nicht angezeigt, obwohl ich ich sie korrekt upgeloadet und verlinkt habe… deswegen sind die nicht funktionierenden Bilder als blau-verlinkte-URL angezeigt.

Hallo und Willkommen zu meinem zweiten Tutorial…
diesmal geht es um Variablen.
Aber…

Was sind überhaupt Variablen, wie soll ich mir die vorstellen?
Variablen heißen so, weil sie variabel sind, d.h. sie variieren können.
Diese sind Objekte, die einen bestimmten Wert (im Maker nur Zahlenwerte) halten. Ihr könntet es euch also als ein Container vorstellen, in den man eine bestimmte Anzahl an Gegenständen reinlegt, und beliebig, oder nach irgendwelchen Bedingungen etwas rausnehmen aber auch reintun kann.
Also kann man festhalten: Variablen sind komfortable Switches mit Extra-Funktionen.

Was bringen mir die Variablen? Warum sollte ich davon profitieren, wenn eine Variable den Wert X hat?
Wie oben schon erwähnt: Variablen sind komfortable Switches mit Extra-Funktionen.
Das Zauberwort heißt „Bedingungen“ (englisch Conditions, daher zeugt auch Conditional Branch (http://www.multimediaxis.de/showthread.php?p=2182535#post2182535)).
Wenn die Variable X den Wert 1 hat, soll das-und-das passieren.
Hat sie aber den Wert 2, passiert dieses-und-jenes.
Ein kleines Beispiel soll das verdeutlichen:

http://img257.imageshack.us/img257/1345/tut21wz6.jpg
Opa Breckenbert will heute sein Haus mit Blumen schmücken. Doch auf seine alten Tage nimmt seine Gelenkigkeit rapide ab - im Gegensatz dazu allerdings seine Faulheit. Drum musst du ihm sie besorgen… und je mehr Blumen du ihm bringst, desto reicher wird er dich belohnen - wenn man das denn so nennen kann…
http://img125.imageshack.us/my.php?image=tut22hw6.jpg (http://img125.imageshack.us/my.php?image=tut22hw6.jpg)
Wenn man jetzt eine Blume pflückt, erhöht sich die Variable X(wir könnten sie Blumen nennen) um den Wert 1.
http://img60.imageshack.us/img60/2070/tut23qp5.jpg
Pflückt man noch eine, erhöht sich der Wert nochmal um 1, das heißt die Variable X hält jetzt schon den Wert der komplizierten Rechenaufgabe 1 + 1 = 2!
http://img366.imageshack.us/img366/2006/tut24au3.jpg
Der Opa würde dir beispielsweise 1 Goldstück geben, wenn du ihn ansprichst und die BlumenVariable X 1 ist.
http://img366.imageshack.us/img366/7103/tut25hw0.jpg
Wäre sie gleich 2, gäbe er dir 2 Gold.


Wie benutze ich Variablen im RMXP und wo finde ich sie?
Man findet den Befehl auf der Seite 1, Zweite Spalte, 2 Auswahl.
http://img115.imageshack.us/my.php?image=tut26pi7.jpg (http://img115.imageshack.us/my.php?image=tut26pi7.jpg)
Wenn man einmal darauf linksklickt, findet man Folgendes vor:
http://img148.imageshack.us/my.php?image=tut27ug7.jpg (http://img148.imageshack.us/my.php?image=tut27ug7.jpg)
1
Im Single-Modus kannst du eine Variable auswählen, die du dann mithilfe der anderen Befehle verändern kannst.

2
Im Gegensatz zum Single-Modus sind mehrere Variablen in einem Bereich auswählbar, d.h. man kann z.B. Variable 1-5 verändern.
---
3
Mithilfe des Set-Befehls kann man einer Variable einen Wert zuweisen. Z.B. kann man die Variable 1 auf den Wert 5 setzen. Dann enthält die Variable den Wert 5, egal welchen Wert sie vorher hatte.

4
Hiermit kann man der Variable einen Wert hinzuaddieren.
Wenn man einer Variable mit dem Wert 5 den Wert 10 dazuaddiert, ist der Wert der Variable 15.

5
Hiermit kann man der Variable einen Wert subtrahieren.
Wenn man einer Variable mit dem Wert 15 den Wert 10 subtrahiert, ist der Wert der Variable 5.

6
Mit diesem Befehl lässt sich eine Variable mit dem gewählten Wert multiplizieren.
Wenn man eine Variable, den Wert 15haltend mit 2 multipliziert ist der Wert der Variable 30.

7
Mit diesem Befehl lässt sich eine Variable durch den gewählten Wert dividieren.
Wenn man eine Variable, den Wert 20haltend durch 2 dividiert ist der Wert der Variable 10.

8
Mod steht für Modulo.
Der Wert der ausgewählten Variable wird dividiert, und es wird das ausgegeben, was der Rest ist, sodass nur runde Zahlen und keine Kommazahlen enstehen; Dividieren mit Rest.

40 : 5 sind ja bekanntlich 8.
41 : 5 wäre eigentlich 8,2.
Da Modulo aber mit Restzahlen arbeitet, käme dort heraus:
41 : 5 = 40 : 5 ; Rest = 1 (1 ist der Wert, der überschüssig ist)
67 : 8 = 64 : 8; Rest = 3
2746 : 1000 = 2000 : 1000; Rest = 746
9 : 2 : 2; Rest = 1

9
Constant ist der Wert, um die die Variable inkrementiert etc. wird.
Das heißt: Variable X + 100. 100 wäre die Constant.

10
Hier kann die Constant (9) um den Wert einer Variable inkrementiert etc. werden.
Beispiel:
Variable A ist gleich 100.
Variable B ist gleich 50.
Variable A + (oder auch Minus, geteilt durch, etc. …) Variable B = 150.

11
Wendet eine Operation (Nummer 3-8) auf eine zufällige Zahl im gewählten Bereich an.
Wenn 10-20 gewählt wurde, wird eine (pseudo-)zufällige Zahl von 10-20 als Constant-Wert genommen.

12
Deklariert den von der Variable gehaltenen Wert als die Anzahl eines Items, das sich im Inventar befindet.
Wenn 5 Potions im Inventar sind, ist der Variable-Wert gleich 5.

13
Hier kann man von einem Charakter - ob im Team befindlich oder nicht- ein bestimmter Parameter als Constant gewählt werden, z.B. das aktuelle Level, die HP, der Stärke-Wert etc. .

14
Dasselbe wie bei 13, nur bei Gegner.

15
Hier können verschiedene Eigenschaften eines Events als Constant bestimmt werden:
Map Y
Ist der aktuelle Y-Wert (also die horizontale Koordinate )auf der sich momentan befindenden Map.
Die X- und Y-Koordinaten kann man hier sehen:
http://img152.imageshack.us/my.php?image=tut28go2.jpg (http://img152.imageshack.us/my.php?image=tut28go2.jpg)

Map X:
Ist der aktuelle X-Wert (also die vertikale Koordinate )auf der sich momentan befindenden Map.

Direction:
Ist die Richtung, in die der ausgewählte Charakter gerade blickt.
↑ Norden hat den Wert 8,
→ Osten hat den Wert 6,
↓ Süden hat den Wert 2
← Westen hat den Wert 4.

Zum leichteren Merken: Wenn ihr euch den Ziffernblock (rechts neben den ArrowKeys, das Numpad) anschaut, seht ihr dort kleine Pfeile. Die Nummern auf der entsprechenden Taste sind dem Wert gleichgesetzt.

Screen X + Screen Y
Entspricht dem in Pixeln gemessenen Wert auf dem Bildschirm; jedes Tile (Feld) ist 32x32 Pixel groß. Die Bildschirmgröße ist 480x640.

Terrain Tag
Terrain Tag ist eine bestimmte, für die einzelnen Tiles in der Databse (unter Tilesets) einstellbare Variable.
http://img79.imageshack.us/my.php?image=tut29ee7.jpg (http://img79.imageshack.us/my.php?image=tut29ee7.jpg)
Stellen wir uns eine Variable X ein, die den Terrain Tag des Players abfragt ist der Wert der Variable gleich dem Terrain Tag, auf dem der Spieler sich gerade befindet.
Stellen wir das oben rot markierte Gras einmal auf 1.
Stellen wir jetzt einen Parallel Process per Conditional Branch ein, der, wenn die Variable 1 ist (also der Player auf dem Gras steht) bewirkt, dass der Spieler einen Schritt zurückgeht.
http://img257.imageshack.us/my.php?image=tut210ix5.jpg (http://img257.imageshack.us/my.php?image=tut210ix5.jpg)
(Voreinstellungen)
http://img510.imageshack.us/my.php?image=tut211sq5.jpg
Nun wird der Spieler immer, wenn er auf das obenmarkierte Gras tritt, einen Schritt zurück machen.
So kann man zum Beispiel auch das Entlangschlittern auf Eis lösen, wie man es aus unzähligen Zelda-Spielen kennt :).

16
MAP-ID
Setzt die Constant mit der MAP-ID gleich.

Party Members
Setzt die Constant mit den sich momentan im Team befindenen Mitgliedern gleich.

Gold
Setzt die Constant mit der Anzahl des aktuellen Goldbesitzes gleich.

Steps
Setzt die Constant mit den von Anfang des Spiels gelaufen Schritten gleich (immer wenn der Spieler über ein Feld geht, wird ein Schritt berechnet).

Play Time
Setzt die Constant mit der aktuellen Spielzeit in Sekunden gleich.

Timer
Setzt die Constant mit der aktuellen Timerzeit gleich, falls ein Timer aktiv ist.

Save Count
Setzt die Constant mit der Anzahl gleich, wie oft man insgesamt schon gespeichert hat.


Anmerkung: Dies Alles wird in im Siel versteckten Variablen gespeichert, auf die man nicht zugreifen kann.
-------------------------------------------------------------------------

Hier einmal ein Exemplum, wie das Beispiel dort ganz oben im Event-Editor gelöst wird:
http://img145.imageshack.us/my.php?image=tut212bl0.jpg (http://img145.imageshack.us/my.php?image=tut212bl0.jpg)

Ich hoffe, ich konnte euch die Variablen näher bringen und nicht allzuviele Fragen offen lassen.

Falls jemand Fragen an mich hat, ich beantworte sie gerne, hier oder durch PN!

Final Griever

diäitsch
12.10.2008, 00:37
Okay, hab's mir noch nicht durchgelesen, aber da ich (nach 8 Monaten) immer noch keine Ahnung von Variabeln habe (habe sie auch nur 1 Mal gebraucht), werde ich es heute irgendwann machen.
Also, danke für dieses (wie's mir scheint) sehr ausführliche Tutorial :)

DNKpp
12.10.2008, 03:16
Okay, hab's mir noch nicht durchgelesen, aber da ich (nach 8 Monaten) immer noch keine Ahnung von Variabeln habe (habe sie auch nur 1 Mal gebraucht), werde ich es heute irgendwann machen.
Also, danke für dieses (wie's mir scheint) sehr ausführliche Tutorial :)
öhm, lol? und was machst du dann mitm maker?
ich brauchte varis nach 2 wochen.... spätestens wenn es an aufwendigere quests geht, sind die doch unerlässlich

@topic:

auf den ersten blick scheint das ganze recht detailiert zu sein, und gute beispiele hast du auch. haste vor, das im quartierer techwiki einzustellen, da wäre es nämlich ziemlich gut aufgehoben.

diäitsch
12.10.2008, 12:16
öhm, lol? und was machst du dann mitm maker?
ich brauchte varis nach 2 wochen.... spätestens wenn es an aufwendigere quests geht, sind die doch unerlässlich

Ach was! Man kann auch Spiele ohne Variabeln machen ;)
Ich regel eigentlich alles über Control Switches.
Variabeln habe ich nur gebraucht, um zu überprüfen, ob man spezielle Items im Inventar hat, und wenn ja, wie viele, und die dann auf 0 zu setzen (wegen Teamwechsel).
Zu den Quests: Gehe mal von Sidequests aus..."Gehe in den Wald, und töte die Wölfe" lässt sich gut mit Switches erledigen.
Sorry für OT.

SMWma
12.10.2008, 12:26
das ist mal ein geiles Tutorial.
Aber hätte es net besser zum XP-Unterforum gepasst?
Egal.
Ich hate lange gesucht und probiert, wie man einstellt, wenn ein Spielstand exisitert passiert dies und das...
Doch leider vergeblich.
Doch dank dir sehe ich jetzt, wo dieser Befehl ist.http://www.multimediaxis.de/images/smilies/old/sm_12.gifhttp://www.multimediaxis.de/images/smilies/old/sm_12.gifhttp://www.multimediaxis.de/images/smilies/old/sm_12.gif
Endlich ein eigener Titelscreen^^
PS:
Endlich mal geile Tutorials!!!
Das ist schon das zweite in glaub ich zwei Tagen.
Ich erwarte noch große Sachen von dir.
Große Sachen^^

DNKpp
12.10.2008, 12:28
Ach was! Man kann auch Spiele ohne Variabeln machen ;)
Ich regel eigentlich alles über Control Switches.
Variabeln habe ich nur gebraucht, um zu überprüfen, ob man spezielle Items im Inventar hat, und wenn ja, wie viele, und die dann auf 0 zu setzen (wegen Teamwechsel).
Zu den Quests: Gehe mal von Sidequests aus..."Gehe in den Wald, und töte die Wölfe" lässt sich gut mit Switches erledigen.
Sorry für OT.

sry auch für OT^^

deswegen sagte ich ja, aufwendigere quests, ala töte 7 slimes (ja, ich gebe zu, ein seeeehr aufwendiges quest xD xD xD)
aber willst du wirklich jeden slime nen switch zuweisen? das is doch nicht unbedingt das gelbe vom ei...

mfg

Final Griever
12.10.2008, 13:15
Okay, hab's mir noch nicht durchgelesen, aber da ich (nach 8 Monaten) immer noch keine Ahnung von Variabeln habe (habe sie auch nur 1 Mal gebraucht), werde ich es heute irgendwann machen.
Also, danke für dieses (wie's mir scheint) sehr ausführliche Tutorial :)
Bittebitte, und danke für das Lob! ;)

öhm, lol? und was machst du dann mitm maker?
ich brauchte varis nach 2 wochen.... spätestens wenn es an aufwendigere quests geht, sind die doch unerlässlich

@topic:

auf den ersten blick scheint das ganze recht detailiert zu sein, und gute beispiele hast du auch. haste vor, das im quartierer techwiki einzustellen, da wäre es nämlich ziemlich gut aufgehoben.
Na ja… ich glaube nicht, dass es gut genug für das TechWiki ist…
Wenn doch… wo müsste ich es hinschreiben? (ich kenn das TechWiki nicht so wirklich^^')

das ist mal ein geiles Tutorial.
Aber hätte es net besser zum XP-Unterforum gepasst?
Egal.
Ich hate lange gesucht und probiert, wie man einstellt, wenn ein Spielstand exisitert passiert dies und das...
Doch leider vergeblich.
Doch dank dir sehe ich jetzt, wo dieser Befehl ist.http://www.multimediaxis.de/images/smilies/old/sm_12.gifhttp://www.multimediaxis.de/images/smilies/old/sm_12.gifhttp://www.multimediaxis.de/images/smilies/old/sm_12.gif
Endlich ein eigener Titelscreen^^
PS:
Endlich mal geile Tutorials!!!
Das ist schon das zweite in glaub ich zwei Tagen.
Ich erwarte noch große Sachen von dir.
Große Sachen^^
Dankeschön^^.
Lob nehm ich immer gerne an…
„Große Sachen“?
Also heute wird's kein Tut mehr geben :)

DNKpp
12.10.2008, 13:20
auch wenn ich nicht weiß, ob das erlaubt ist.... aber ich denke schon, ansosten haut mich halt (is ja schließlich direkte konkurenz xD)

naja, Tech Wiki (http://rpg2000.4players.de/techwiki/index.php/Hauptseite) ist hier.

SMWma
12.10.2008, 13:25
Mein Maker kann nicht lesen, wie viele Speicherstände ich habe.
Ich hab es so gemacht:
Set Variable:48 Number of Saves
--Conditional Branch-Variable 48 ==0
----Teleportiere zur Karte-Titel ohne Speicherstände
----End
--Conditional Branch-Variable 48 >=1
----Teleportiere zur Karte-Titel mit Speicherstände
----End
Was hab ich falsch gemacht?

Blank
12.10.2008, 13:53
Sehr schön gemachtes Tutorial, dankeschön. :D

SMWma
12.10.2008, 14:28
16
MAP-ID
Setzt die Constant mit der MAP-ID gleich.

Party Members
Setzt die Constant mit den sich momentan im Team befindenen Mitgliedern gleich.

Gold
Setzt die Constant mit der Anzahl des aktuellen Goldbesitzes gleich.

Steps
Setzt die Constant mit den von Anfang des Spiels gelaufen Schritten gleich (immer wenn der Spieler über ein Feld geht, wird ein Schritt berechnet).

Play Time
Setzt die Constant mit der aktuellen Spielzeit in Sekunden gleich.

Timer
Setzt die Constant mit der aktuellen Timerzeit gleich, falls ein Timer aktiv ist.

Save Count
Setzt die Constant mit der Anzahl der aktuell beschriebenen Speicherplätze gleich.

Anmerkung: Dies Alles wird in im Siel versteckten Variablen gespeichert, auf die man nicht zugreifen kann.
Wie kann man denn auf die Save-Counts zugreifen?
Was für einen Sinn haben sie?
Und wie muss ich es einbauen, wenn ein Speicherstand existiert, dass man auf der Karte so und so landet und wenn es keine existiert, das man danach auf der Karte so und so²landet???

Final Griever
12.10.2008, 17:30
Wie kann man denn auf die Save-Counts zugreifen?
Was für einen Sinn haben sie?
Und wie muss ich es einbauen, wenn ein Speicherstand existiert, dass man auf der Karte so und so landet und wenn es keine existiert, das man danach auf der Karte so und so²landet???
Oh, tut mir leid.
Da muss ich mich gestern Nacht wohl vertan haben, bei diesem langen Text ^^'
Save Count ist die Anzahl, wie oft man insgesamt im Spiel schon gespeichert hat.
(To) count = zählen; sonst ergäbe es ja gar keinen Sinn, auch nicht in Verbindung mit den Anderen :).

Ich glaube, dein Problem müsstest du per RGSS-Script gesehen, oder bzw. die Variable per RGSS bestimmen.