Omnideath
22.08.2003, 19:55
Gruesst Euch,
Ich haette da mal eine kleine Frage. Folgendes, ich bastele ein CBS fuer mein Spiel und man kann zwei Charaktere und vier Gegner auf dem Feld haben, das ist aber nur nebensaechlich. Der Punkt ist, wenn der Charakter an der Reihe ist und beispielsweise einen Angriff ausfuehren will (oder auch einen Zauber, Gegenstand, usw.), dann folgt ein Cursor, der auf das Ziel zeigt und mit links und rechts wechselt man zwischen den moeglichen Zielen eines Sektors (der Gegner oder Gefaehrte sein kann) und mit rauf und runter wechselt man den Sektor selbst.
Das ganze ist in ein recht kompliziertes Script verpackt, welches bei jedem Tastendruck alle moeglichen Ziele abfragt und dann zum naechstmoeglichen springt. Ein Beispiel: Der Charakter 1 moechte Gegner Nummer 3 angreifen. Gegner 2 ist schon tot. Der Cursor startet nun standardmaessig auf Gegner 1, mit rechts muesste er zum zweiten springen, nun kommt die Abfrage, ob Gegner 2 auch wirklich tot ist, was er ja ist, darum springt er gleich zum dritten.
Soweit so gut. Allerdings ist daher bei jedem Tastendruck ein wirklich uebel langes hin und her in der Abfrage. Nach dem If Var[XXX] == 3 folgt daher eine Abfrage aller moeglichen Ziele, also zunaechst "In welchem Sektor ist befinden wir uns, Gegner oder Gefaehrte?", dann "Welches waere das naechste logische Ziel?", dann "Welches waere das naechste logische Ziel, wenn das erste logische Ziel nicht mehr da ist?", dann "Welches waere das naechste logische Ziel, wenn dieses logische Ziel auch nicht mehr da ist?", und so weiter und so fort.
Das ganze ist selbst fuer mich extrem unuebersichtlich und darum wollte ich gerne fragen, ob jemand eine Idee hat, wie man diesen ganzen Kram verkuerzen koennte.
Das ist zwar nicht wirklich ein Problem, allerdings mag ich es, meine Scripte uebersichtlich zu halten und habe die Befuerchtung, dass ich nach einiger Zeit nicht mehr durchblicken werde. Naja, fuer meinen ersten Beitrag ist das vielleicht eine ziemlich wirre Frage (ja, ich weiss, was ein Switch ist :)), aber Ihr koennt mir sicher trotzdem weiterhelfen.
Gruss,
Omnideath
Ich haette da mal eine kleine Frage. Folgendes, ich bastele ein CBS fuer mein Spiel und man kann zwei Charaktere und vier Gegner auf dem Feld haben, das ist aber nur nebensaechlich. Der Punkt ist, wenn der Charakter an der Reihe ist und beispielsweise einen Angriff ausfuehren will (oder auch einen Zauber, Gegenstand, usw.), dann folgt ein Cursor, der auf das Ziel zeigt und mit links und rechts wechselt man zwischen den moeglichen Zielen eines Sektors (der Gegner oder Gefaehrte sein kann) und mit rauf und runter wechselt man den Sektor selbst.
Das ganze ist in ein recht kompliziertes Script verpackt, welches bei jedem Tastendruck alle moeglichen Ziele abfragt und dann zum naechstmoeglichen springt. Ein Beispiel: Der Charakter 1 moechte Gegner Nummer 3 angreifen. Gegner 2 ist schon tot. Der Cursor startet nun standardmaessig auf Gegner 1, mit rechts muesste er zum zweiten springen, nun kommt die Abfrage, ob Gegner 2 auch wirklich tot ist, was er ja ist, darum springt er gleich zum dritten.
Soweit so gut. Allerdings ist daher bei jedem Tastendruck ein wirklich uebel langes hin und her in der Abfrage. Nach dem If Var[XXX] == 3 folgt daher eine Abfrage aller moeglichen Ziele, also zunaechst "In welchem Sektor ist befinden wir uns, Gegner oder Gefaehrte?", dann "Welches waere das naechste logische Ziel?", dann "Welches waere das naechste logische Ziel, wenn das erste logische Ziel nicht mehr da ist?", dann "Welches waere das naechste logische Ziel, wenn dieses logische Ziel auch nicht mehr da ist?", und so weiter und so fort.
Das ganze ist selbst fuer mich extrem unuebersichtlich und darum wollte ich gerne fragen, ob jemand eine Idee hat, wie man diesen ganzen Kram verkuerzen koennte.
Das ist zwar nicht wirklich ein Problem, allerdings mag ich es, meine Scripte uebersichtlich zu halten und habe die Befuerchtung, dass ich nach einiger Zeit nicht mehr durchblicken werde. Naja, fuer meinen ersten Beitrag ist das vielleicht eine ziemlich wirre Frage (ja, ich weiss, was ein Switch ist :)), aber Ihr koennt mir sicher trotzdem weiterhelfen.
Gruss,
Omnideath