Ergebnis 1 bis 11 von 11

Thema: CommonEvent-Schleifen definitiv beenden - Wie?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    ich verstehe, was ihr meint.

    aber wie genau lass ich es so auslaufen, dass ich es dann auch wieder aufgreifen kann?

    könnte ich zB statt dem call einen swicht machen, der ein PP event betätigt, welches das ATB called?

    Zitat Zitat
    dass im Evencode dazu führt, dass die Funktion sich selbst beendet, also durchläuft bis auf die unterste Ebene der Aufrufe und dort das Switch "off" setzt.
    ich verstehe leider nicht genau, was damit gemeint ist. den code zwischendrin zu beenden, geht ja schlecht.

  2. #2
    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.

  3. #3
    bin dann grad dabei, es umzustellen, was mal wieder in einer von diesen größeren umstrukturierungsaktionen mündet, wo man versucht nichts zu vergessen ^^

    danke für die hilfe.

  4. #4
    Wenn du dieses Tool noch nicht hast:
    http://www.multimediaxis.de/threads/...eckt-HOT-STUFF

    Lerne es zu benutzen ist sehr einfach und simpel in der Handhabung und pures Gold.

  5. #5
    Zitat Zitat
    Nach Switches, Variablen (auch bei Pointern und in Event Start Conditions!), Events, Texten, Dateinamen (!), Eventnamen suchen - mit vielen Suchoptionen
    du beziehst dich in dem fall wohl auf die suchfunktionen? ^^

    edit: hattest wieder mal recht

    Geändert von IndependentArt (20.05.2013 um 23:11 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •