Ergebnis 1 bis 16 von 16

Thema: RM2k3(Ultimate-2009) Teleport-Befehl wird ignoriert

  1. #1

    RM2k3(Ultimate-2009) Teleport-Befehl wird ignoriert

    Hallo Leute!
    Ewig her, dass ich mal eine techn. Frage geschrieben habe, aber ich habe wohl ausnahmsweise mal ein technisches Problem, bei dem ich akut nicht weiter weiß.

    Situation ist folgende:

    Ich habe einen Autostart, mit mehreren Conditional Branches, welche entweder den Autostart beenden
    und sowohl einen PP, als auch ein weiteres Autostart-Event triggern, oder einen Teleport aktivieren.

    Problem ist nun:
    Wird der Teleport aktiviert und der 1. Autostart nicht geschlossen, wird der Teleport einfach ignoriert und der Autostart läuft weiter, als wenn es den Teleport nicht gegeben hätte.

    Ist irgendeinem alten Hasen dieses Problem bekannt?

    Hier nochmal der übersichthalber:

    AUTOSTART-EVENT
    >condition-branch-1
    >>text, etc. - Jump to Label:1
    >
    >condition-branch-2
    >>teleport (wird ignoriert)
    >
    >condition-branch-3
    >>text,etc. - Jump to Label:2
    >
    >Label2
    >>text,etc.
    >Label1
    >>Autostart - Switch-Off & Erase Event


    Meine einzige Erklärung wäre, dass wenn das Event nicht gelöscht, oder deaktiviert wurde, der Teleport einfach nicht ausgeführt wird, ich habe allerdings keine Ahnung warum das so ist.

    FRAGE:

    Muss das Autostart-Event gelöscht werden (und der dazugehörige Switch deaktiviert), damit der Teleport durchgeführt wird?
    Oder sollte ich einfach das Event löschen (und off-switchen) und den Teleport in ein separat aktiviertes Autostart-Event packen?

    MfG und in freudiger Erwartung auf Antworten:
    ~ Räb!

  2. #2
    Kann es sein dass du die Bedingung in einem anderem Event vorher deaktivierst?
    Das kann z.B: durch ungeschicktes setzen von Waits geschehen, da der Maker bei jedem Frame alle Bedinungen nochmal durchgeht und dir ggf. dadurch das Autostart-Event oder die Bedingung vorhrer schon aushebeln weil du einen Switch/eine Variable änderst und dann einen Wait-Befehl gesetzt hast.
    Sowas hast mal ein Kampfsystem von mir komplett einfrieren lassen, weil durch einen Wait-Befehl sich die Bedingung für ein Event geändert hatte und dann nicht komplett ausgeführt wurde.

  3. #3
    Leider nein.
    Die Bedingungen sind alle erfüllt, bzw. die anderen befehle werden ja auch komplett ausgeführt.
    Bis auf den Teleport-Befehl, der wird komplett ignoriert.
    habe es jetzt mal mit einem Workaround probiert, bei dem ich das Autostart-Event kille und einen separaten Autostart, nur mit dem Teleport-event gestartet.

    Hat zwar funktioniert, aber nur wenn man ein Autostart-event killt und ein anderes startet.
    Was nicht funktioniert hat, ist ein laufendes PP zu killen (gleiches Problem mit dem teleport) und einen Autostart, oder Callevent (nur mit dem telepoert-befehl) zu rufen.
    Wenn also noch jemand Ideen hat ...

  4. #4
    Wenn ich deinen Code so nachbaue, wie im Beispiel, findet der Teleport bei mir statt, danach erst werden auf der neuen Map die Befehle unter den If-Abfragen ausgeführt und das Event beendet. Sicher, dass die Bedingung wirklich erfüllt wird?

  5. #5
    Zitat Zitat von Maister-Räbbit Beitrag anzeigen
    Leider nein.
    Die Bedingungen sind alle erfüllt, bzw. die anderen befehle werden ja auch komplett ausgeführt.
    Bis auf den Teleport-Befehl, der wird komplett ignoriert.
    Leider bin ich sicher-
    habe es jetzt mit einem Workaround gelöst.
    (Alle events gekillt und ein neues gestartet, dass dort weitermacht, wo das andere hätte weiterarbeiten müssen)
    Das ist zwar unelegant, aber es funktioniert. Es wundert mich zwar trotzdem noch immer, was da nicht stimmte, aber wenn niemand so etwas schon gesehen hat, wird das wohl ein Geheimnis bleiben : P

  6. #6
    Eigentlich müsste das auch so funktionieren, kannst du nicht einfach mal den gesamten Code hier posten? Cherry hat da doch ein nettes tool gehabt um Code schnell zu kopieren.

  7. #7
    Der Code existiert leider nicht mehr, da ich die betroffenen Events bereits umgebaut habe.

    Hauptproblem war wohl, das ein weiteres Autostart-Event auf eine Tasten-Abfrage gewartet hat (Quick-Time-Event) und dadurch der Maker anscheinend auf Stur geschaltet hat, als es zu einer map-transition kommen sollte.
    Warum allerdings das erste Autostart-Event und nicht das mit der Tasten-Abfrage weiterlief, kann ich mir dennoch nicht erklären.

    So oder so, es wurde gelöst, wenn auch nicht wie gewünscht ; )

  8. #8
    Wenn ich mich richtig erinnere ist das Autostart-Event mit der niedrigeren Event-ID aktiv.

  9. #9
    Hmm, da bin ich mir nciht ganz sicher...

    Die Event-IDs werden in einem Array gespeichert, sprich einem langen strang in der am Anfang die ID 0 und am Ende die ID X ist. Der Maker geht normalerweise hin und durchsucht diesen ganzen Array, je nachdem was er braucht. Sobald der Maker etwas gefunden hat, hört er aber nicht auf zu suchen sondern läuft solange durch den Array bis er am Ende angekommen ist, sprich das AutoEvent mit der höchsten ID müsste aktiv sein...

    Das kann man auch gut mit dem Befehl ausprobieren der einem die ID eines Events an einer gewissen Position angibt(Keine Ahnung wie dieser Befehl nochmal hieß, kann gerade auch nicht nachsehen)
    Wenn man nun beachtet das der Maker bis zum ende des Arrays läuft findet der Maker immer das Event mit der höchsten ID an dieser Position (Für den Fall das an der Position sich 2 Events überlappen). Deswegen habe ich eben ein Plugin geschrieben das genau das verhindern soll^^(Schleichwerbung FTW)

  10. #10
    Hab's mal schnell ausprobiert, indem ich 5 Autostart-Events erstellt hab die mir A, B, C, D oder E ausgeben und wie ich sagte, ist dass mit der niedrigesten ID aktiv. Mir wurde immer "A" ausgegeben und dieses Event hatte die ID1.

    Da mich jetzt mal interessiert hat wie es denn mit Common Events aussieht habe ich eins erstellt in dem F ausgegeben wird. Was nun interessant ist: Wenn man nun startet, werden sowohl das Autostart-Event auf der Map als auch das Autostart-Common Event ausgeführt.
    Die Ausgabe die ich erhielt war: A, F, A, F, A, F usw. Jetzt frag ich mich nur ob die beiden Events parallel ablaufen oder hintereinander...

  11. #11
    Zitat Zitat
    Jetzt frag ich mich nur ob die beiden Events parallel ablaufen oder hintereinander...
    Events laufen nicht gleichzeitig, sondern müssen warten, bis der Fluss von dem, das verarbeitet wird, durch irgendwas
    unterbrochen wird, wodurch ein Event an einem Punkt stehen bleibt und bis zum nächsten Frame nicht mehr vom
    Interpreter angerührt wird.

    Deinem Ergebnis nach hatte einfach nur Vorrang, was sich auf der Map abspielt und dann wird in die von selbst aktiv
    laufenden CEs getrennt geschaut. Ist nicht sonderlich verwunderlich, dass danach dort ebenfalls ein Auto-Event seinen
    Dienst verrichtet.

  12. #12
    Zitat Zitat von MagicMaker Beitrag anzeigen
    Events laufen nicht gleichzeitig, sondern müssen warten, bis der Fluss von dem, das verarbeitet wird, durch irgendwas
    unterbrochen wird, wodurch ein Event an einem Punkt stehen bleibt und bis zum nächsten Frame nicht mehr vom
    Interpreter angerührt wird.
    Das erklärt im Zusammenhang aber irgendwie immer noch nicht, warum dann der teleport ignoriert wurde, welcher im laufenden Autostart-Event eingebaut war.
    (Parallel lief noch ein PP (welcher dann nach meinem Wissen gestoppt wird?!))
    Aber wie kann es sein, dass der Teleport-Befehl komplett ignoriert wird?) - Hatte sowas bis jetzt noch nie, und danach auch nicht mehr.

  13. #13
    Ich kann mir das nur erklären wenn im selben Frame noch ein Teleport ausgeführt wird (z.B. auf dieselbe Map), denn der Teleportbefehl setzt nur ein Flag und im nächsten Frame wird der Teleport erst wirklich durchgeführt.

  14. #14
    @Cherry:
    Leider negativ ~ war der einzige teleport-Befehl in dem Event.
    Ist aber auch wirklich der kurioseste Bug den ich je gesehen habe ...

    Ich saß eine geschlagene Stunde vor dem Code und habe keinen Fehler gefunden, zumal ich das höchstens auf dieses spezifische Event zurückführen konnte, da das Killen des Events (Teleport in neuem Autostart-Event) das Problem gelöst hatte.
    Ich bin mir auch fast 100%ig sicher, dass es nichts mit dem Ultimate zu tun hat.

    Vielleicht werde ich irgendwann einmal versuchen dass ganze zu reproduzieren, damit ich die Kenntnisse darüber hier mal gut dokumentiert teilen kann.
    Das Event habe ich zwar schon umgebaut, aber ich weiß noch genau, wie der Code strukturiert war ( ... wie immer, wo es normalerweise funktioniert ^^)


  15. #15
    Wenn es noch eine Livedemo von dem Fehler gäbe, hätte ich einfach mal mit meinem Debugaddon aufzeichnen lassen, was genau ausgeführt wurde (welche Zeilen, etc.)

  16. #16
    @cherry:
    Sehr gut, ich versuche es zu mal nachzustellen, die Codebestandteile sind alle noch da, insofern sollte das kein Problem darstellen.
    Würde dir das dann bei der nächsten Gelegenheit mal zusenden!

Berechtigungen

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