Ergebnis 1 bis 15 von 15

Thema: Event-Call-Verschachtelungen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    du hast mich falsch verstanden.

    Zitat Zitat
    wo mindestens ein Event vor seinem Ablauf wieder und wieder gecallt wird.
    Diese Zeile legte ich so aus, das er vorhat ein Event permanent sich selber zu callen, was ja nun durch einen Cycel in einem Event sicherlich sinniger zu lösen ist, da man diesen erst unterbrechen lässt, wenn das ganze Event vorbei ist.

    Zitat Zitat
    Find ich nicht so statisch wie den vorgegebenen cycle...
    Das Label schneller ablaufen ist sicherlich auch noch erwähnenswert, nur wollte ich vermeiden zuschreiben, einen mit Label gestalteten Cycel...


    Btw. hab ich mal ein Tut zur Umsetzung einer Ablaufkette im Maker geschrieben, was quasi dein gewünschtes Verfahren darstellt. Behandelt wird Pixelmovement. Vll. schaust du mal rein, unbedingt negativ ist es sicherlich nicht.

    http://forum.rpg2000.4players.de/vie...739&highlight=

  2. #2
    Thx für die Hilfe Das Tut werd ich mir mal anschauen.
    So naiv, ein sich selbst callendes Event zu machen, bin ich natürlich nicht. Vielmehr habe ich folgende Sorge:

    Meine Events:

    - Teleport auf KS-Map
    Legt einige wichtige Startparameter fest, merkt sich Position des Helden und warpt dann auf KS-Map. am Schluss wird "Startscript" gecallt.

    -Startscript
    Hier werden die von mir zuvor einzeln zusammengebastelten Startevents gecallt, das "Gegnerevent" (Lässt Gegner erscheinen und weist ihnen Werte zu), und das "Aktualisieren" (Zerlegt die Werte HP und MP aller Helden in einzelne Stellen, für das Interface. Rechnet dazu noch die Prozentwerte für die Balken aus). Aktualisieren setzt sich wiederum aus zwei anderen Events zusammen, welche die gewünschten Umrechnungen mit Platzhaltern vornehmen. Am Ende des Scripts wird dann erstmals die "Zugreihenfolge" gecallt.

    -Zugreihenfolge
    Hier wird ausgerechnet, wer an die Reihe kommt. Das Ganze habe ich so gelöst, dass ich für jeden Kampfteilnehmer einen "Punktepool" in Form einer Variable erstellt habe. Die wird in einem Cycle immer weiter hochgezählt und sobald eine gewisse Grenze überschritten wurde, wird der Grenzwert von ihr abgezogen. Klappt ganz gut. Jedenfalls wird dann ein Switch "Kampfteilnehmer X am zug" On gesetzt und der Cycle verlassen. Am Ende des Cycles wird das "Zugbestimmer-Event" gecallt.

    -Zugbestimmer
    Je nachdem, wer am Zug ist, wird der entsprechende Kampfteilnehmer kurz animiert und kann dann seinen Zug beginnen. So weit habe ich momentan gescriptet.

    Nun habe ich Angst, dass irgendwo einmal irgendein Event niemals enden könnte. Gedacht ist ja, dass Event A Event B callt, dieses callt C, das läuft zuende, dann läuft B zuende, dann geht A weiter.... Bis halt alles wieder von vorne wiederholt wird, ohne ein Event offen zu lassen.
    Nun könnte es aber passieren, dass Event A Event B callt, dieses C callt und dieses wiederum A callt (Viel komplexer natürlich, aber nur mal um zu zeigen was ich meine...)

    Das mit dem Masterevent find ich eine gute Idee, das könnte aber auch ein Call-Event in einem Cycle sein, welches gleich am Anfang gecallt wird...?

  3. #3
    Da irgendwann bei dir die Charaktere mit dem Zug drankommen, müßte es doch immer einen Zeitpunkt geben in dem alle Events außer dem zur Aktionsabfrage terminiert worden sind. Normalerweise solltest du dort nicht an die 1000er Grenze kommen.

  4. #4
    Stimmt schon, vielleicht mache ich mir auch einfach zu viele Sorgen... Ich werde das ganze mal fertigscripten, ausführlich testen und den Thread hier aktualisieren, falls das Problem dann auftauchen sollte.
    Danke für die Tipps und das Tutorial fürs Pixelmovement

  5. #5
    wenn man gaaaaaanz lang serges ks spielt, dann kommt man reichlich bald an die 1000er-grenze. vorallem, wenn man vorher die zeit, die zur vorhandenen zeit addiert wird, bis man drankommt, ein bischen verringert, geht das ziemlich schnell, wirklich.

  6. #6
    Dann ist dieses sagenumwobene KS von Serge ja scheinbar doch nicht unfehlbar o.O Naja, wie gesagt, da in jeder Spielevorstellung mit eigenem KS nur steht "Warum kopiert ihr alle Serges KS" hab ich mich dazu entschlossen, ein SKS ohne Einfluss von diesem Ks von Serge zu machen. Dann hoffe ich, dass auch dieser Fehler bei mir net auftaucht^^ Bin jetzt jedenfalls alles turnbased am Verschachteln, also dass jedes mal, wenn der Zug eines Spielers oder Gegners beendet ist, damit auch alle offenen gecallten Events fertig werden und das ganze so jede Runde von vorne losgeht... Sollte klappen.

  7. #7
    Ich glaube, der besagte "Fehler" in Serges KS ist denkbar einfach und noch einfacher zu vermeiden. Er liegt in dem rekursiven Aufruf seines Common Events "ATB Verfahren". Dieses ruft sich nämlich am Ende immer wieder selbst auf, d.h. dieses Event hat niemals die Chance durchzulaufen (und den Prozess abzuschließen), ohne dass es sich selbst wieder neu aufruft (während der Durchlauf davor noch NICHT beendet ist!!). Das geht gut, wenn der Kampf kurz genug ist. Sollte der Kampf aber erfordern, dass dieses Common Event sich 1000mal aufrufen muss, dann stürzt der Maker ab.
    Dies passt auch zur Aussage von Marian, dass es schneller geht, wenn man die Agilität-Werte, die zum ATB-Balken addiert werden, herunterschraubt. Das ATB-Event muss sich öfter aufrufen, weil es länger dauert, bis mal jemand dran ist.

    Geändert von S!r !ronh@nd (08.10.2006 um 15:34 Uhr)

  8. #8
    Das wäre in diesem Fall ganz einfach zu vermeiden, indem man (wie ich das in mienem KS gemacht habe) die rekursive Funktion, also den Selbstcall am Ende des Turnscriptes, entfernt, und stattdessen ein PP macht, welches nur den Befehl <Call Event: "Turnscript"> beinhaltet... So wird immer erst jedes CallEvent beendet, bevor ein neuer Zug beginnt.

  9. #9
    yep, oder man macht es so wie Serge und regelt es aber anstatt der Rekursion einfach über ein Label oder einen Cycle. Kann man sich aussuchen. Allerdings mag ich diesen Aufbau des KS eh nicht so, da man dort immer nur ein passives ATB erhält (Balken laufen nicht, während man Aktionen auswählt und ausführt). Um das flexibel einstellen zu können, empfiehlt es sich aus meiner Sicht auf jeden Fall, den Weg über ein unabhängiges PP-Event, das die Balken auffüllt, zu wählen.

    Geändert von S!r !ronh@nd (11.10.2006 um 07:57 Uhr)

  10. #10
    Ich hab eh ein rein turnbasiertes (iiiks.. deutsches englisch) KS ohne Timeleiste...
    Das schwierigste ist es aber imo, den Helden und Monstern passende Animationen zuzuweisen... also das Picture alle 0.3 Sekunden auswechseln, damit es so aussieht, als atmen die Dinger, dann aber, falls jemand stirbt, im passenden Moment die Sterbeani und dann das Liegenbleiben, bei der Wiederbelebung wieder was anderes etc... Und dann das richtige Animationstiming, wenn eine Attacke oder ein Skill kommt... Um die Posen zu regeln, brauch ich bis jetzt für 3 fixe Helden (ohne Angriffe, Skills und Items) schon 9 CEs, das kann ja nicht der Sinn sein...

  11. #11
    Zitat Zitat von Noshire Beitrag anzeigen
    Ich hab eh ein rein turnbasiertes (iiiks.. deutsches englisch) KS ohne Timeleiste...
    Das schwierigste ist es aber imo, den Helden und Monstern passende Animationen zuzuweisen... also das Picture alle 0.3 Sekunden auswechseln, damit es so aussieht, als atmen die Dinger, dann aber, falls jemand stirbt, im passenden Moment die Sterbeani und dann das Liegenbleiben, bei der Wiederbelebung wieder was anderes etc... Und dann das richtige Animationstiming, wenn eine Attacke oder ein Skill kommt... Um die Posen zu regeln, brauch ich bis jetzt für 3 fixe Helden (ohne Angriffe, Skills und Items) schon 9 CEs, das kann ja nicht der Sinn sein...
    Also ich mache das so. Ich habe 3 Events, fuer jeden Hero einen. Diese haben ein Loop mit deren Atem Animation. Diese Loops werden nun unterbrochen, wenn eine Attacke folgt, der Hero stirbt etc. Vielleicht hilft dir das weiter...

  12. #12
    Habs jetzt entsprechend abgeändert. Also für jeden Helden ein Call-Common. Am Anfang werden die gecallt und laufen mit geloopten Animationen weiter, solange die Helden atmen oder tot sind. Wenn sie einen Move machen, wird ein Skillanimationsdurchlauf gemacht, danach gehts wieder zum normalen zurück.
    Nur ist das Problem, dass ich nicht genau weiss, wie ich das Angriffskommando mit der Schlaganimation synchronisieren kann, da in diesen Loops zB beim Atmen ja immer ein bisschen gewaitet wird und dadurch zwischen Druck auf Enter und Angriffsanimation Unstimmigkeiten von bis zu 0.3 sec entstehen...

Berechtigungen

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