PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Der Conditional-Branch-Befehl



Final Griever
11.10.2008, 19:09
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

http://i36.tinypic.com/2r5e1xj.jpg
In einer heroischen Quest will ein Opa eine Potion haben, damit er wieder gesund wird. In der Truhe befindet sich eine Potion.
http://i35.tinypic.com/34h9r1t.jpg
Aber du hast keine Potion im Inventar und kannst ihm nicht helfen…
http://i38.tinypic.com/29dzr81.jpg
Nachdem du dir aber die Potion aus der Truhe geholt hast, hast du eine im Inventar,
http://i35.tinypic.com/14l0yh.jpg
Wenn du den Opa ansprichst (ihm die Potion also gibst), ist er glücklich und kann normal weiterleben.
http://i33.tinypic.com/117qr6g.jpg
Das ist nun die Befehlsliste des Opas. 1 ist der erste Fall, also wenn es wahr ist, dass man eine Potion im Inventar hat.
Dann kommt der Else-Befehl, der den zweiten Fall einleitet, also wenn es falsch ist, dass man eine Potion im Inventar hat, d.h. nicht stimmt.
Den Else-Befehl kann man einstellen, wäre er nicht aktiviert würde der Opa nur reagieren, wenn eine Potion im Inventar wäre, und wenn keine im Inventar ist, würde er gar nicht reagieren. Mehr dazu später noch.


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.
http://i36.tinypic.com/vpyscm.jpg
Die bekannte Liste an Befehlen öffnet sich nun.
Conditional Branch findet man auf der Ersten Seite in der ersten Spalte, als 8ten Button.
http://i36.tinypic.com/331n71w.jpg
Nun wählen wir Conditional Branch einmal aus, und gucken, was es dort so alles gibt…

http://i34.tinypic.com/11kcswy.jpg
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).
http://i35.tinypic.com/2mr85kn.jpg

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 (http://www.multimediaxis.de/showthread.php?t=112405)


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.

http://i37.tinypic.com/6rmuxs.jpg
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.

http://i38.tinypic.com/w7g7pe.jpg
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.

http://i35.tinypic.com/2jebh9k.jpg

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:
http://i37.tinypic.com/2zjl0m8.jpg

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).
http://i37.tinypic.com/2w2hkbq.jpg
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 ('http://www.rmxp.de/forum/rmxp-de-spiele-projekte/die-rmxp-de-schule/tutorial-sektion/rpg-maker-xp/14070-eigenen-titelbildschirm-mithilfe-einer-map-erstellen/') 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.

Varnhagen
11.10.2008, 19:15
Ein Lob an dich. Der Erste Post und dann schon sowas O_o

Super, das du dir Mühe gemacht hast.

Karl
11.10.2008, 19:19
Ein Lob an dich. Der Erste Post und dann schon sowas O_o

Super, das du dir Mühe gemacht hast.
Dito.
Ein fettes Lob an dich, Final Griever!
Ich nutze zwar den XP nicht und ich habe das auch ohne Tutorial kapiert, aber ich hoffe schon jetzt auf weitere tiefer in die Materie gehende Tutorials von dir :)

~Nebary

Don Sella
11.10.2008, 19:29
Großes Lob an dich,bist mir sehr sympathisch.^^

Dito.

Sehr gut und ausführlich erklärt. Bravo :A

Ypsilon
11.10.2008, 19:32
Nettes Tut, und dann noch als 1. Post. :D

Und willkommen im Forum btw.

Y

diäitsch
11.10.2008, 19:34
Yeah, Spammthread^^
Cool, dieses Tutorial könnte vielen Neulingen helfen, danke für deine Bemühungen, auch wenn ich's nicht brauchen werde ;)
Btw. "Now playing Final Fantasy V", yay, sehr gutes Spiel :)
PsOne oder Gba?

Edit: @Nebary (unter mir): Er könnte sie zumindest spoilern.

Karl
11.10.2008, 19:40
Was mir gerade einfällt:
Imo könnten die Screens noch ein wenig verkleinert werden
Die Sprenge den schönen Rahmen

~Nebary

R.D.
11.10.2008, 19:45
nein tun sie nicht

bei mir würden locker 2 von denen nebeneinanderpassen, und das wahrscheinlich auch bei allen andere 18 zöllern.

@Topic
nich übel und so, aber gehört das nich ins Entwicklerforum oO

Final Griever
11.10.2008, 20:22
Ein Lob an dich. Der Erste Post und dann schon sowas O_o

Super, das du dir Mühe gemacht hast.
Danke für das Lob, sowas höre ich immer gerne! ;)

Dito.
Ein fettes Lob an dich, Final Griever!
Ich nutze zwar den XP nicht und ich habe das auch ohne Tutorial kapiert, aber ich hoffe schon jetzt auf weitere tiefer in die Materie gehende Tutorials von dir :)

~Nebary
Hach… Lob ist immer wieder das, was mich am Meisten motiviert!^^
Freut mich, dass es verständlich war.

OMG!

Seit wann gibt es hier Neulinge,welche eine gute Rechtschreibung haben und dazu noch anderen Neulingen damit helfen.

Großes Lob an dich,bist mir sehr sympathisch.^^

KD
Rechtschreibung… wenn's darum geht, bin ich sehr penibel. ^^
Ich hasse -ebenso wie du- auch falsche „Weil-Sätze“, Deppenapostrophe, Deppenleerzeichen und weitere Fäkalitäten der deutschen Sprache :D.
Ebenso! ;)


Dito.

Sehr gut und ausführlich erklärt. Bravo :A
Danke.

Nettes Tut, und dann noch als 1. Post. :D

Und willkommen im Forum btw.

Y
Danke, und auch danke für's Willkommenheißen! :)

Yeah, Spammthread^^
Cool, dieses Tutorial könnte vielen Neulingen helfen, danke für deine Bemühungen, auch wenn ich's nicht brauchen werde ;)
Btw. "Now playing Final Fantasy V", yay, sehr gutes Spiel :)
PsOne oder Gba?

Edit: @Nebary (unter mir): Er könnte sie zumindest spoilern.
Danke, ich werde sie spoilern.
Jaah… Final Fantasy ist ein Muß!^^
Leider nur auf'm GBA, habe die PsOne-Version nicht. Habe alle FFs außer 12 (und 11 da Online)und III durch.

Was mir gerade einfällt:
Imo könnten die Screens noch ein wenig verkleinert werden
Die Sprenge den schönen Rahmen

~Nebary
Siehe oben.

nein tun sie nicht

bei mir würden locker 2 von denen nebeneinanderpassen, und das wahrscheinlich auch bei allen andere 18 zöllern.

@Topic
nich übel und so, aber gehört das nich ins Entwicklerforum oO
Jaa… ich wusste echt nicht, wo ich es hinstecken sollte :D.

Bei diesem Feedback… glaube ich, ich werde jetzt noch ein Tutorial schreiben…

alpha und beta
11.10.2008, 21:05
@Final Griever

Ich sage nur Wilkommen im Forum!
Naja,geile Hilfe,für die Personen,die den Maker gerade neu sich
geholt haben,sehr ausführlich,leicht zu verstehen und richtig.
Und dazu noch dein erster Beitrag!Ich finde,du sollest weitere von solchen
Hilfen schreiben!Das würden einigen Leuten sehr gut tuen!

Ich finde,auch das mit Bildern ist nicht schlecht geworden und sage deswegen nurnoch eins:

"Super Hilfe;Super Beitrag;Super User!"

Liferipper
12.10.2008, 09:55
bei mir würden locker 2 von denen nebeneinanderpassen, und das wahrscheinlich auch bei allen andere 18 zöllern.

Dir ist aber schon klar, dass die Breite des Fensters vom Format und der Auflösung des Monitors und nicht von seiner Größe abhängt, oder?

Dragenai
16.10.2008, 14:14
ENDLICH jetz hab ich es endlich kapiert -.- !!
danke dir :D