Endlich, mein zweites Tutorial...

Schritt-Zufalls-Generator (z.B. fr Zufallskmpfe, wie
bei Final Fantasy I - IX)

1.Schritt

Zuerst konfigurieren wir ein Ereignis - ich schlage vor, dass
wir das ganze ber ein immer gltiges Ereignis, das ber einen
Schalter ausgelst wird, laufen lassen, falls es im gesamten
Spielverlauf gebraucht wird, andernfalls tut es auch ein simples
Ereignis, wenn es nur auf einer Karte gebraucht wird.

Um ein immer gltiges Ereignis zu erstellen, wechseln wir in die
Datenbank und whlen Allgemeine Ereignisse (Common Events).

2.Schritt

Jetzt geht's ans Eingemachte, nmlich an die Code-Eingabe.
Als erstes brauchen wir einige Variablen, um sie bei der Zahl zu
nennen, 5.
Die erste nennen wir X1, die zweite Y1, die dritte X2, die vierte
schlielich Y2 - die fnfte knnt ihr nennen, wie ihr wollt. 
Warum diese Bezeichnungen? Gleich kommt die Antwort.
Im Ereigniseditor fgen wir nun die erste Codezeile ein.
Wir whlen 'Change Variable' und versehen die Variable X1 mit der
X-Koordinate des Helden.
Die Zeile sollte ungefhr wie folgt aussehen:

<>Variable Ch:[0001:X1] Set, Hero X pos

Das wiederholen wir nun mit der Y Koordinate, die wir in der Variable
Y1 speichern.
Unser Ereigniscode sieht nun so aus:

<>Variable Ch:[0001:X1] Set, Hero X pos
<>Variable Ch:[0002:Y1] Set, Hero Y pos

Jetzt fgen wir eine Pause von 0.1s mit dem Befehl 'Wait' ein.

Der Code:

<>Variable Ch:[0001:X1] Set, Hero X pos
<>Variable Ch:[0002:Y1] Set, Hero Y pos
<>Wait:   0.1s.


Wir kopieren die ersten 2 Zeilen und vertauschen die Variable X1
mit X2 und Y1 mit Y2.

Der Code sieht jetzt so aus:

<>Variable Ch:[0001:X1] Set, Hero X pos
<>Variable Ch:[0002:Y1] Set, Hero Y pos
<>Wait:   0.1s.
<>Variable Ch:[0003:X2] Set, Hero X pos
<>Variable Ch:[0004:Y2] Set, Hero Y pos

Fast fertig, es fehlt nur noch ein 'Fork Conditions'-Befehl.
Wir whlen 'Fork Conditions' mit der Bedingung, dass X1 gleich X2
ist und aktivieren das Kstchen 'Add Else Case'.
Unter dem Eintrag 'Else' in der Codekonsole fgen wir den Befehl ein:
'Change Variable' - die fnfte Variable
Set - Random (Zufall) 1 - 10 (Wenn ihr wollt, dass der Zufall eingeschrnkt wird verringert
den Zahlenabstand, wenn ihr wollt, dass er seltener eintritt, erhht den Abstand.)

Unser Code wird immer grer:

<>Variable Ch:[0001:X1] Set, Hero X pos
<>Variable Ch:[0002:Y1] Set, Hero Y pos
<>Wait:   0.1s.
<>Variable Ch:[0003:X2] Set, Hero X pos
<>Variable Ch:[0004:Y2] Set, Hero Y pos
<>FORK Optn:Varbl[0001:X1]-V[0003]Equivl
 <>
 :ELSE Case
 <>Variable Ch:[0005:Zufallszahl]Set, Randm[110]
 <>
:END Case
<>



Unter die Variablenvernderung im 'Else Case' fgen wir einen weiteren 'Fork Conditions'-Befehl
ein, mit der Bedingung, dass die fnfte Variable gleich 5 ist (ihr knnt natrlich auch eine
andere Zahl von 1 bis 10 einsetzen) und deaktiviert das Kstchen 'Add Else Case'.
In diese Codezeile in diesem 'Fork Condititons' - Befehl knnt ihr nun das einfgen, was
per Zufall bei Bewegungen passieren soll.

Nun kopieren wir das ganze 'Fork Condition' Code - Paket und schreiben es um auf die
Variablen Y1 und Y2.

Der fertige Code sieht also so aus:

<>Variable Ch:[0001:X1] Set, Hero X pos
<>Variable Ch:[0002:Y1] Set, Hero Y pos
<>Wait:   0.1s.
<>Variable Ch:[0003:X2] Set, Hero X pos
<>Variable Ch:[0004:Y2] Set, Hero Y pos
<>FORK Optn:Varbl[0001:X1]-V[0003]Equivl
  <>
 :ELSE Case
  <>Variable Ch:[0005:Zufallszahl]Set, Randm[110]
 <>FORK Optn:Varbl[0005:Zufallszahl]-5
  <> Hier jetzt den Befehl einsetzen
 :END Case 
:END Case
<>FORK Optn:Varbl[0002:Y1]-V[0004]Equivl
  <>
 :ELSE Case
  <>Variable Ch:[0005:Zufallszahl]Set, Randm[110]
 <>FORK Optn:Varbl[0005:Zufallszahl]-5
  <> Hier jetzt den Befehl einsetzen
 :END Case 
:END Case
<>


by RedWings


Fr Fragen, Kommentare oder hnliches : aff@gmx.net


















