EDIT:
Hab nicht drauf geachtet, dachte aber der Thread wäre gepinnt oO
Sollte man nachholen.
Hier wird eh nicht so viel gepostet, da hab ich mir gedacht, ich präsentiere mein Heldenauswahl"skript". Ob man das so braucht, ka, aber immer besser eine vollständige Sammlung zu haben ;D
Vorwissen:
__________________
Die Variable 162 ist mit Allzweckvariable benannt, weil ich die in meinem Projekt noch für weitaus mehr Dinge verwende, für die ich mir zu schön war immer eine Neue zu machen. Sie dient eigentlich als nur als eine Art Pointer.
__________________
Die Variablen 163; 164; 165; 166 enthalten jeweils einen Wert zwischen 0 und 8.
Das Projekt beinhaltet 8 spielbare Helden, von denen ja leider nur 4 gleichzeitig spielbar sind.
Es wird also gespeichert welcher Held nun in der Party ist.
Bsp.:
In der Party sind Held 1, Held 2, Held 3 und Held 6.
Dann sehen die Variablen wie folgt aus:
[mono]Var 163 - 1
Var 164 - 2
Var 165 - 3
Var 166 - 6[/mono]
Bei Bedarf poste ich auch noch, wie man die entsprechenden Heldenziffern an Ort und Stelle bekommt.
Beinhaltet die Party weniger als 4 Helden bleiben die entsprechenden Variablen auf 0.
Die Variablennummer sind zufällig, man kann also beliebige 4 Variablen nehmen. Sie müssen nur direkt untereinanderstehen und einige stellen im Code müssen angepasst werden.
__________________
Die Variable 188, mit Prüfer benannt, wird für zusätzliche Kleinigkeiten verwendet, meist zum...erm...prüfen. xD
__________________
Nun zum Code an sich. (ein simples Call Event)
Erläuterung im Detail:
-die Allzweckvariable bekommt den Wert 163, also die Nummer der Variable, in der der Wert für den ersten Helden gespeichert wird.
-(optional) hier werden Koordinaten für ein Auswahlbild gespeichert und Bilder angzeigt
-ein Schleife wird gestartet
-Passwortabfrage wird gestartet.
-sollte man die Pfeiltaste Links drücken (also Wert 2):
-die Allzweckvariable wird um 1 verringert, um in der Reihenfolge um einen nach
Links zu gehen (die Reihenfolge ist in Leserichtung zu betrachten, also 1234)
-es wird geprüft ob die Allzweckvariable 162 ist, also bei Held 1 nach links gehen
wollte.
-die ist nicht möglich, also wird der Allzweckvariable der Wert 166 zugewiesen,
was dem Held 4 entspricht. ( es wird also gesprungen. Will man dies vermeiden
nimmt man 163, also bleibt die Auswahl wo sie ist.)
-nun wird mit Hilfe der Variable Prüfer geprüft, ob überhaupt ein Held 4 vorhanden
ist. Besitzt die Variable den Wert 0 ist dies nicht der Fall und die Allzweckvariable
wird durch den Start eines weiteren Cycles weiter um 1 nach links verschoben.
Das Prinzip der Prüfung ist dabei wieder dasselbe. Es wird solange aufgrückt, bis
ein Held aufgefunden wird, also der Prüfer ungleich 0 ist. Dadurch wird die
Schleife (in der Schleife) durchbrochen.
-sollte man die Pfeiltaste Rechts drücken (also Wert 3), passiert dasselbe wie bei
Links, nur das hier nicht nach links, sonder nach rechts verschoben wird. (also +1)
-individuell unterschiedliche Präsentation (ab dem roten Strich):
-die Prüfervariable wird missbraucht und erhält nun einen Wert, damit sie selber
später durch Forks geprüft werden kann. Bei dem Wert handelt es sich um den in
der Allzweckvariable gespeicherten Wert, also die momentane Position des
Zeigers. Ist der Wert 163 ist Held 1 angewählt.
-es wird ein wenig mit einem Picture rumgespielt. In diesem Fall wird es auf 0%
verkleinert. Unwichtig.
-Nun wird geprüft welcher Held angewählt wurde und das Bild an der
entsprechenden Position wieder angezeigt. In den Forks werden nur die
Koordinaten gespeichert, in den das Bild angezeigt werden soll.
-wieder eine Bildspielerei. Unwichtig.
Was noch fehlt ist ein Druck auf Enter, den hab ich hier noch nicht mit drin. Man sollte dabei nur nicht vergessen die Schleife zu knacken. Dürfte für jemanden, der den Code versteht sicher kein Problem sein.
Was ich an dieser Methode gut finde:
-sehr kurzer Code, wenn man bedenkt, wie lang man das Ganze auch machen kann.
-sehr flexibel. Die Heldenanzahl kann beliebig hochgeschraubt werden. Die Bildkoordinaten müssen nicht verändert werden, da Eventabhängig. Man kann also die Positionen im KS gerne wechseln. (für detailgenaue Anzeige des Bildes kann man immernoch Korrekturen per Addition bzw. Subtraktion vornehmen. Es bleibt allgemeingültig.)