Also:

Du brauchst genau ein einziges PP oder Autostart, nur eines und das ist deine Hauptschleife. Für Unterfunktionen überall PPs machen, macht es komplizierter weil du zwischen ihnen synchronisieren musst.Mach das so wenig wie möglich, je sequenzieller dein Code ist, desto einfacher fällt es die Funktion zu überprüfen und Fehler zu finden.

Zitat Zitat
Common Event "Hauptschleife" [Switch:001(KS läuft)]: ParallelProcess
  • Initialisierung, alles was nur einmal beim Kampfbeginn passiert. Wahlweise auch ein CE in dem das passiert, dadurch hälst du diesen CE übersichtlich
  • Label X
  • Aufruf CE(z.B. Anzeigen aktualisieren)
  • Aufruf CE( Bestimmen, wer dran ist)
  • Aufruf CE( Kampfhandlung für Teilnehmer, der an der Reihe ist)
  • Aufruf CE(Sind noch Feinde/Helden am Leben?)
  • Bedingung: Wenn Switch:002(Beende KS)=Off dann: Jump to Label X // Wenn der Kampf nicht vorbei ist, springe wieder nach oben
  • Entladen, alles was am Ende eines Kampfes passieren muss. ( Grafiken wegräumen etc. )
  • Switch:002(Beende KS) = Off
  • Switch:001(KS läuft)=Off // Letzte Aktion, das Event deaktiviert sich selbst
Der Kniff besteht nun daraus, dass dein CE "Bestimmen, wer dran ist" nicht das CE für die Kampfhandlung aufruft, sondern nur rausfindet und hinterlegt, wer dran ist. Dann läuft das CE durch und die Hauptschleife startet die Kampfhandlung Kampfteilnehmers. Darin kannst du dann wenn es ein Held ist die Zielauswahl, die Skillauswahl, Animation anzeigen und Schaden ebrechnen etc. machen


Zitat Zitat von IndependentArt
ich verstehe leider nicht genau, was damit gemeint ist. den code zwischendrin zu beenden, geht ja schlecht.
Das Switch, an das der PP/Autostart gebunden ist wird in dem Beispiel in der allerletzten Zeile auf Off gesetzt. Kein anderer Code darf das tun. In der Hauptschleife kann man dann einen CE machen wie im Beispiel CE"(Sind noch Feinde/Helden am Leben?)". Ein Gewonnen/Gameover-Check. Der Kampf ist ja dann zuende wenn entweder alle Monster oder Helden tot sind. In dem CE wird dann Switch:002(Beende KS) auf On gesetzt. Das ist der Befehl an die Hauptschleife, das Kampfsystem zu beenden. Anstatt nun wieder nach oben zu springen läuft der Code nach unten durch. Du kannst noch Grafiken entladen, oder wenn der Kampf gewonnen wurde Exp und Items verteilen, solche Dinge. Als allerletzte Zeile deaktiviert sich der CE selbst. Nur so kannst du ganz sicher sein in welchem Zustand das System ausläuft.