VX ACE - Befehl "Bilder löschen" erzeugt Error

  • Hallo guten Abend, ich weiß nicht recht wohin mit der Frage, bestimmt stehe ich nur auf dem Schlauch. Seit gefühlt 2 Stunden probiere und suche ich herum, und finde keine Lösung - ständig erhalte ich im Maker nachstehende Fehlermeldung (mit der ich nichts anfangen kann).


    Eine Fackel hatte ich mir gebaut, nach einem Tutorial. Zuerst ein Bild erstellt, doppelt so groß wie der Ace-Screen. Gestartet wird mit einem parrallenen Alg. Event, das wiederum durch einen Schalter an/ausgetellt werden soll. Leider bricht das Tut ab, bevor es daran geht die Taschenlampe wieder auszuknipsen.


    Also im Detail. Dies ist das Allg. Event; ein paralleler Prozess mit Bedingungs-Schalter...




    ... welcher bei TP auf die Map automatisch AN gestellt wird (und somit das Allg. Event anschubst.) Das Anschubs-Event soll mit dem gleichen Schalter von Auto auf Normal-Event umschalten ( = leere 2. Seite).




    Soweit scheint es zu funktionieren: mein Held läuft mit Fackel im Keller...


    Aber er kommt nur mit Fehlermeldung (siehe oben) wieder hinaus. Und ich verstehe nicht wieso.

    Hier noch das Teleportevent raus aus dem Keller und das "Bild löschen"-Event. (Das ist nun sogar ein gesonderts Event ganz außerhalb des Kellers - und funktioniert dennoch nicht, prich: es erzeugt immer noch obige Fehlermeldung. Bis zum Teleport raus aus dem Keller funktioniert es - zumindest dem Anschein nach. Aber wie bekomme ich das Bild wieder weg? Wo stehe ich mir selbst im Weg?


  • Die Fehlermeldung bedeuted im Endeffekt, dass Du versucht hast ein Bild zu löschen das nicht mehr existiert - üblicherweise weil es schon früher gelöscht wurde.


    Das passiert normalerweise wenn der Befehl mehrfach gegeben wird, z.B. als Teil eines Parallel oder Autorun. Und genau den Teil hast Du von dem Screenshot weggeschnitten...

  • Ich denke auch, dass es daran liegt.
    Einfach den Bild Löschen Befehl beim Verlassen der Map setzen; am besten ebenfalls als Allgemeines Event, dann kannst du da auch den Switch für das Lichtkegel-Event drin auf OFF setzen und rufst letztlich nur dass das neue Allgemeine Event "Lichtkegel AUS" auf.


    So gehst du auch sicher, dass du nicht mal ausversehen die falsche Bild-ID angibst, etc.


    Ich würde im Lichtkegel Event auch noch ein Warten mit 4 bis 6 Frames als letzte Zeile ergänzen, weil du ansonsten permanent ein Bild lädst und anzeigst (strenggenommen muss es ja auch nur neu angezeigt werden, wenn sich die Position des Spielers verändert hat).


    MfG Der Schilderich
    Team FervorCraft

  • Vielen Dank schon mal für den Versuch einer Erklärung!


    - Den Wartebefehl habe ich eingebaut, danke für den Hinweis!


    - "Bild löschen" war anfangs Teil des Teleport-Events aus der Kellermap hinaus. Ausschließlich zum Zweck der Fehlersuche habe ich es mittlerweile separiert: ich wollte sichergehen, dass ich das allgemeine Event nicht versehentlich irgendwie anstoße und dann wegen des fehlenden Bildes die Meldung erzeuge.


    "Bild löschen" ist nun ein simples Event mit Berührung-durch-den-Spieler als Auslöser. Es erzeugt aber weiterhin die Fehlermeldung. Konkret sieht es so aus: das Pentagram im Bild ist das Event. Man sieht auch, dass das betreffende Bild "Lichtkegel" zwar noch vorhanden ist aber - (vermutlich) weil das Allgemeine Event bereits aus ist - nicht mehr mit dem MC mitwandert.



    Auslöser und Priorität für das "Bild Löschen"-Event von oben reiche ich hiermit noch im Screenshot nach.




    Mein Walkaround ist jetzt: ein anderes, neues kleines Bild als Bild 5 laden und dieses dann löschen. Das funktioniert dann sogar. Warum geht es nicht direkt?



    ratlose Grüße,

    Forelle

  • Auslöser und Priorität für das "Bild Löschen"-Event von oben reiche ich hiermit noch im Screenshot nach.

    Es ist eine ganze schlechte Idee, nur Ausschnitte von Screenshots zu zeigen wenn man Hilfe sucht.

    Bitte gewöhne Dir an, immer das ganze Event im Screenshot zu zeigen.

    Am besten geht das mit [Alt]-[PrtScrn], das begrenzt den Screenshot automatisch auf das aktive Fenster, und das ist was man zur Hilfe braucht.


    Denke mal darüber nach:

    Wenn Du Hilfe suchst, dann bedeutet das Du nicht weißt, wo der Fehler ist und schon vergeblich danach gesucht hast.

    Uns dann nur die Stellen zu Zeigen, wo Du bereits vergeblich nach dem Fehler gesucht hast, bring nichts wenn der Fehler irgendwo ist wo Du noch nicht gesucht hast.

    Und wie schon oben gesagt, wenn Du das ganze Event gezeigt hättest dann hätten wir für Dich auch dort gucken können, wo Du nicht wusstest das es den Fehler verursachen kann.

    Mein Walkaround ist jetzt:

    Und das ist kein Workaround, das ist ein Verstecken des Fehlers ohne die Ursache (das das Bild breits woanders gelöscht wurde) zu beheben.

    Eine Frage:

    Wenn bei Dir am Auto die Öl-Warnleuchte angeht, was machst Du dann?

    1) Wagen zum Ölwechsel bringen und ggfs auf Defekte überprüfen lassen

    2) Warnleuchte mit schwarzem Klebeband abkleben (damit Du die Fehlerleuchte nicht mehr siehst) und warten, bis der Motor ganz kaput geht?

  • Eine kleine Zwischenfrage, weil es mich wundert: Wirft der Ace denn normalerweise eine Fehlermeldung, wenn auf ein Bild zugegriffen wird, das gerade nicht angezeigt wird? Der XP macht das nämlich nicht, dort setzt "Erase Picture" das Bild nicht auf nil.


    Edit:

    Es könnte sein, dass es beim Ace einen Bug in der Methode zum Löschen gab (in einer älteren Version?). Schau mal nach, wie bei dir die Methode "erase" in der Klasse "Game_Picture" aussieht. Also Skript-Editor öffnen, Game Picture suchen und dann nach "Erase Picture" suchen. Dort sollte Folgendes stehen:


    Code
    1. def erase
    2. @name = ""
    3. @origin = 0
    4. end


    Falls das @origin = 0 fehlt, solltest du es einfügen.


  • Falls das @origin = 0 fehlt, solltest du es einfügen.

    Ja, DANKE Hotzenplotz!

    Genau die Zeile fehlte. Ich habe es ergänzt und nun löscht VX ACE das große Bild ganz ohne Walkaround und vor allem ohne Fehlermeldung!


    Den VX Ace hatte ich von von Steam geholt, Versionsnummer ist 1.02a.

    Als Faultier bin ich daran gewöhnt, das Steam für mich updated, muss ich hier aktiv nach neuen Versionen suchen? Ein kurzes schnelles googlen brachte updates mal nur für Plugins.

    LG

    Forelle

    (grad superdankbar)


    @Andar

    @Walkaround: Mir ist wichtig, dass wir von gleichen Dingen reden, sonst entstehen Missverständnisse. Ein Walkaround ist per Definition "eine fehlerhafte Funktion in einem Programm umgehendes Verfahren, das zum gewünschten Ergebnis führt, aber den Fehler nicht beseitigt". Demnach wäre mein Walkaround doch ein tatsächlich solcher? Mein "Verfahren" ersetzt das Bild zuerst statt es zu löschen und es führt am Ende zum gewünschten Ergebnis. Für mich ein Walkaround wie er im Buche steht. Wenn ich auch nicht verstehe, warum ein (kleines) Bild gelöscht werden kann, ein anderes (großes) aber nicht.


    Sehr gerne packe ich nochmal die Screenshots in einen Spoiler, auch wenn das Hauptproblem nun gelöst scheint.


    PS: woher bekomme ich eigentlich die Nutzer-ID für dieses Stück Forencode? -> Mustermann

  • PS: woher bekomme ich eigentlich die Nutzer-ID für dieses Stück Forencode? -> Mustermann

    Du musst nur das @-Zeichen eingeben und dahinter den Namen des Users, z.B. Forelle . Der Name erscheint dann schon beim Tippen. Dass die Verlinkung geklappt hat, siehst du auch in der Vorschau oder wenn du den Post gesendet hast.

  • Demnach wäre mein Walkaround doch ein tatsächlich solcher?

    Das Problem ist nicht mit dem Namen, sondern mit dem Effekt. Natürlich hast Du mit der Lösung einen Walkaround - aber das Problem ist das der Walkaround den Fehler selber nicht beseitigt, und das kann sich zu jeder Menge anderer Probleme summieren.


    Die korrekte Lösung wäre es, das Bild löschen in demselben Event zu haben wo das Bild produzierende Common Event abgeschaltet wird.

    Nach dem Control Switch OFF brauchst Du ein wait(1) um die letzte Version des CE laufen zu lassen, und dann das Bild löschen - schon ist alles OK.