TUTORIAL
Hallo!
Hier im Forum und auch Anderswo werden häufiger Fragen gestellt, die die Conditional Branches betreffen, wie zum Beispiel:
Wie kann ich etwas machen, wenn ich den Gegenstand X 5 mal besitze?
Wie kann ich etwas machen, wenn eine bestimmte Zeit abgelaufen ist, oder wenn die Zeit X hoch ist?
Wie kann ich etwas machen, wenn ich Skill X erlernt habe, Waffe X ausgerüstet habe und so-und-so heiße?
Wie kann ich etwas machen, wenn ich die Taste X drücke?
Und noch viele andere…
Was ist eine „Conditional Branch“?
Die Conditional Branch lässt etwas unter einer Bedingung geschehen (Engl: Condition = Bedingung).
Das heißt, wenn das-und-das so-und-so ist, passiert das-und-das.
Im Scripten wäre es wie ein If-Befehl.
Beispiel
Sind Conditional Branches wichtig?
Ja. Man muss sie nicht benutzen, aber ohne sie wird ein Spiel - es sei denn, alles ist mit RGSS gemacht worden- wahrscheinlich viel langweiliger.
Es gibt einen Haufen von Sachen, den wir mit Ihr machen können.
Wo finde ich den Befehl?
Geht auf eine Map eurer Wahl und erstellt ein Event. Der Auslöser (Trigger) ist ActionButton, d.h. beim Ansprechen passiert etwas.
Dann klickt ihr in das Event-Befehl-Fenster mit einem Doppelklick.
Die bekannte Liste an Befehlen öffnet sich nun.
Conditional Branch findet man auf der Ersten Seite in der ersten Spalte, als 8ten Button.
Nun wählen wir Conditional Branch einmal aus, und gucken, was es dort so alles gibt…
1:
Die typische Switch-Bedinung. Etwas passiert, wenn Switch X aktiviert ist oder nicht aktiviert ist. In der rechten Scrollbox kann man einstellen, ob etwas passieren soll, wenn er aus oder an ist.
So ähnlich als, wenn ein bestimmter Switch bei einem Event aktiviert ist(siehe Bild).
2:
Es passiert etwas, wenn die Variable X (Scrollbox 1)einen bestimmten Wert (Scrollbox 2) hat, oder wenn sie kleiner als der Wert ist, wenn sie größer ist, wenn sie genau gleichgroß wie der Wert ist oder größer und wenn sie genau den gleichgroßen Wert hat oder kleiner ist (Scrollbox 3).
Auch kann vergleicht werden, wie sich die Variable X zur Variable Y verhält (größer, kleiner etc., Scrollbox 3).
Falls die Variablen-Kentnisse noch nicht vorhanden sind, besucht mein anderes Tutorial: Variablen
3:
Wie bei den Swtiches, nur mit SelfSwitchen, also nur für diese Event gültige Switches.
4:
Führt etwas aus, wenn der vorher gesetzte Timer eine bestimmte Zeit erreicht hat, z.B. Gameover wenn der Timer 0h:0m:00s ist.
5:
Wie oben schon geschrieben, ist das der Else-Befehl. Macht man einen Haken in diese Checkbox, wird der Conditional Branch ein zweiter Fall hinzugefügt.
Das ist dann der Fall, wenn der erste noch nicht eingetrten ist.
Erster Fall = Potion im Inventar
Zweiter Fall wäre also = keine Potion im Inventar.
6:
Die Actor-Bedingung wird dann verwendet, wenn man etwas ablaufen möchte, wenn etwas mit dem Charakter passiert (Character auswählbar bei Scrollbox 1).
Ein Beispiel wäre, wenn der Charakter ein bestimmtes Item im Besitz hat.
In the Party
Wenn der ausgewählte Charakter sich im Team befindet.
Name applied
Wenn der ausgewählte Charakter mit einem bestimmen Namen benannt wurde (per Name Input Processing, Seite 3, Erste Spalte 3ter Button).
Bsp:
Am Anfang des Spiels kann man den Hauptcharakter benennen.
Wenn man jetzt dies hier nutzt, kann man z.B. bei dem Namen „Ingebork“ sagen: Ein schöner Name!
Skill learned
Wenn der ausgewählte Charakter einen bestimmten Skill beherrscht, also schon erlernt hat (z.B. Cross Cut oder Fire).
Weapon equipped
Wenn der ausgewählte Charakter eine bestimmte Waffe ausgerüstet hat (z.B. Bronze Sword).
Armor equipped
Wenn der ausgewählte Charakter eine bestimmte Rüstung angelegt hat (z.B. Mytrhil Armor, Bronze Shield).
State inflicted
Wenn der ausgewählte Charakter unter einem Status leidet, z.B. vergiftet oder tot ist.
7:
Dies ist eine Kampfbedingung. Wenn im Kampf ein Gegner erschienen ist, oder wenn er unter einem bestimmten Status leidet (Gift, Stumm, Tot…)
8:
Wenn der ausgewählte Charakter auf einer Map in eine bestimmte Richtung blickt.
Blickt er z.B. nach links, passiert das-und-das, und dreht er sich nach rechts, passiert etwas anderes.
10:
Wenn man weniger oder mehr (more or less, Scrollbox 1) Gold als der genannte Betrag im Inventar hat.
11:
Wenn man ein bestimmtes Item im Inventar hat (wurde oben bei der Potion angewandt!).
12:
Wenn sich eine ausgewählte Waffe im Inventar befindet.
13:
Wenn man eine bestimmte Rüstung besitzt.
14:
Wenn man einen bestimmten Button drückt.
Hier mal eine Tabelle, welcher Button aus der Scrollbox für welchen TastaturKey steht:
Mit diesen Buttons kann man zum Beispiel den Hauptcharakter per WASD steuern.
Hier mal das Event, was euren Charakter WASD-steuerbar macht ( die grünen Comments sind nur zur Hilfe, Übersichtlichkeit und Strukturierung da).
Probiert es ruhig aus, probieren geht über studieren!
15:
Wenn ein bestimmter Scriptbefehl ausgeführt wurde.
---------------------------------------------------------------------------------------------------------------------------------------------------
So, jetzt wissen wir über Conditional Branches Bescheid.
Wenn man ein Event machen will, bei dem etwas dauernd abgefragt wird, und man sich nebenbei trotzdem noch bewegen kann, verwenden wir immer den Trigger Parallel Process (wie auch beim WASD-Movement).
So lassen sich auch Menus kreieren, indem man einfach ein paar Pictures irgendwo hinsetzt, und dann einen Cursor als Picture setzt. Wenn man dann den Nach-Unten-Button drückt, springt der Cursor nach unten, drückt man die Nach-Oben-Taste, springt er wieder nach oben. Bei der C-Taste (C = Leertaste) bestätigt man dann etwas.
Das mit dem Menu funktioniert dann ungefähr wie das Erstellen eines Titelscreen auf einer Map, wo ich Hüpfende Kokosnuss' Tutorial dazu stark empfehle (Gruß an Kokosnuss :hi: )!
Die Kunst ist es auch, Conditional Branches in einander zu verschachteln, womit man dann zum Beispiel einen Mimentanz machen könnte:
Der Mime macht etwas vor (Linksdrehen, Linksdrehen, Rechtsdrehen), und wenn ihr genau das Gleiche nachmacht, bekommt ihr etwas.
Zuerst müsstet ihr eine Con. B. dafür machen, dass immer, wenn man Links/Rechts/Unten/Oben drückt, sich der Charakter in diese Richtung dreht.
Dann könntet ihr es veschachteln, d.h.
WennLinksgedreht dann
. Wenn Linksgedreht dann
. . Wenn Rechtsgedreht dann
. . . ShowText: "Super gemacht!"
. . . . . BranchEnd
. . . . BranchEnd
. . BranchEnd
Ok… da wird es dann komplizierter.
Am besten probiert ihr es einfach anhand von simplen Beispielen aus und ihr werdet sehen, ihr findet euch da schon rein, eigentlich ist es ganz einfach.
Ich hoffe, ich konnte euch die Conditional Branch näherbringen,
der vom Schreiben fingerverkampfte Final Griever
PS: Ich bin für alle Fragen jederzeit offen, gerne auch per PN.