Ergebnis 1 bis 11 von 11

Thema: Abbrechen der Bildanzeige im eigenen Menü

  1. #1

    Abbrechen der Bildanzeige im eigenen Menü

    Hallo zusammen,

    ich arbeite gerade an einem Menü für eine Verwaltung die zum Spiel gehört und komme an einer Stelle nicht weiter.

    Es gibt Menüeinträge, wo Bilder angezeigt werden. Mit "Enter" kann man dann zum nächsten Bild blättern. Dies funktioniert auch soweit. Das Problem entsteht erst, wenn ich mit ESC "Abbrechen" will.

    Ich habe schon festgestellt, dass das nur passiert, wenn ich mehr als zwei Bilder anzeigen lassen will. Hier mal der Code, den ich verwendet habe:

    Code:
    <>Move Picture Cursor, Transparenz 100% (soll ja nicht mehr gezeigt werden)
    <>Show Picture Infobild 1, Transparenz 100% + Magnification 300
    <>Move Picture Infobild 1, Transparenz 0% + Magnification 100%
    <>Enter Password (Wait until Key Hit - Decision 5 + Cancel 6)
    <>Wenn Key Hit = 5
    <><>Show Picture Infobild 2
    <>Else
    <><>Wenn Key Hit = 6
    <><><>Erase Picture Infobild 1
    <><><>Change Switch Infomenü OFF
    <><><>Change Switch Obermenü ON
    #########################
    #########################
    <>Enter Password (Wait until Key Hit - Decision 5 + Cancel 5)
    <>Wenn Key Hit = 5
    <><>Erase Picture Infobild 2
    <><>Change Switch Infomenü OFF
    <><>Change Switch Obermenü ON
    <>Else Case
    <><>Wenn Key Hit = 6
    <><><>Erase Picture Infobild 2
    <><><>Change Switch Infomenü OFF
    <><><>Change Switch Obermenü ON
    Bei dem Menüeintrag wo mehrere Bilder angezeigt werden, habe ich einfach den blauen Abschnitt an der Stelle wo die ############# sind in entsprechender Anzahl kopiert. Wie bereits gesagt, klappt es auch, wenn ich mit Key 5 (Enter) durch die Bilder blätter. Danach gelange ich mit dem letzten Enter wieder ins Obermenü und kann dieses wie es sein soll bedienen. Der Fehler mit ESC tritt auf, sobald ich nach Anzeige des zweiten Bildes abbreche. Ich gelange wieder ins Obermenü, jedoch hänge ich dort fest. Ich kann keine Cursor (1, 2, 3, 4) betätigen, lediglich mit Enter wieder ins Untermenü rein (dort wird dann komischerweise die Cursorgrafik nicht mehr transparent angezeigt), mit Enter komplett durch die Bilder blättern und dann wieder zurück. Danach funktioniert es wieder.

    Hat jemand eine Idee?
    LG Jadoo

    EDIT: Es klappt mit dem ESC bereits nach dem ersten Bild nicht, hab es eben probiert. Liegt es wahrscheinlich generell an diesem Befehl?

    Geändert von Jadoo (18.10.2009 um 12:50 Uhr)

  2. #2
    Hmhh... ja, keine Ahnung. Ich würde es ganz anders machen. Wenn Du nur eine Abfrage reinnimmst und für jeden Enterdruck eine Variable hochzählst, kannst Du danach einfach eine Art Datenbank schreiben, wo dann, je nach ID, ein anderes Bild angezeigt wird; eben per Variable.

    Ganz ehrlich, diese mehrfachen Befehle funktionieren zwar normalerweise, aber wo jetzt genau der Fehler liegt, kann ich Dir nicht sagen.

  3. #3
    Mit dem Codeausschnitt wird es etwas schwierig zu helfen. Der sieht nämlich schon von der Struktur her falsch aus. Poste doch doch mal den kompletten Eventcode als Screenshot. Oder benutze den Exporteur von Cherry.

    An sich sieht das alles was du da machst nämlich auch unnötig komplex aus. Mehr als ein ausfaden mit anschließendem Löschen des Bildes ist an sich nicht nötig. Ich denke es happert an der Struktur des Menüs. Darum bitte einmal das ganze Konstrukt posten. Mehr als ein Enter PW Befehl ist meist auch nicht nötig.

  4. #4
    Schalte das Obermenü an bevor du das Infomenü schliesst!
    ICh denke dein Event hier wird mit dem Switch Infomenü angeschaltet (korriegier mich wenn ich falsch liege). Wenn es davor wieder geschlossen wird, is klar, dass die Befehle unter dem Switch-Off Befehl nicht mehr durchgeführt werden. Ich denke daran liegts.

    @cilence
    meinst du? Ich mach diesen Fehler ständig bei meinen KI's wo ich mich schlussendlich dumm und dämlich ärgere, weil ich den fehler nicht finde x_X

    Geändert von Supermike (18.10.2009 um 16:11 Uhr)

  5. #5
    @Supermike:
    Das geht normalerweise trotzdem, weswegen ich danach öfters ein jump to label mache, der bis zum Eventende springt. Dann geht es sicher aus, so aber eigentlich auch.
    edit: ja, habs vorhin probiert, ist so.

    Geändert von cilence (18.10.2009 um 17:00 Uhr)

  6. #6
    Bitte exportiere das ganze Event (nicht nur den Code) mit dem EasyEventExporter als Text, damit wir dir ordentlich helfen können.

    Bei der Frage nach einem Formatting Template klick auf "Ja" und wähle die Datei "vbcode_lightbg.eft" im Ordner "ftemplates", damit es auch im Forum gut aussieht.

    mfG Cherry

  7. #7
    Hallo zusammen und erstmal Danke für eure Antworten!

    Zitat Zitat von makenshi Beitrag anzeigen
    An sich sieht das alles was du da machst nämlich auch unnötig komplex aus. Mehr als ein ausfaden mit anschließendem Löschen des Bildes ist an sich nicht nötig. Ich denke es happert an der Struktur des Menüs. Darum bitte einmal das ganze Konstrukt posten. Mehr als ein Enter PW Befehl ist meist auch nicht nötig.
    Zwischen der Anzeige der einzelnen Bilder muss doch aber noch etwas rein, damit es auch sichtbar bleibt. Einfach nur ein paar Show Pictures nacheinander funktioniert ja nicht.

    Das Bild soll solange eingeblendet bleiben, bis der Spieler weiterblättert oder eben abbricht. Und dazu denke ich ist diese Passwortabfrage+Fork zuständig, die eben wartet, bis der Spieler Enter oder ESC drückt.

    Zitat Zitat von Supermike Beitrag anzeigen
    Schalte das Obermenü an bevor du das Infomenü schliesst!
    ICh denke dein Event hier wird mit dem Switch Infomenü angeschaltet (korriegier mich wenn ich falsch liege). Wenn es davor wieder geschlossen wird, is klar, dass die Befehle unter dem Switch-Off Befehl nicht mehr durchgeführt werden. Ich denke daran liegts.
    Daran hatte ich auch schon gedacht. Aber es funktioniert ja bei allen anderen Events auch so, und bei dem genannten eben nur mit dem Enter Befehl. Ich meine aber mich zu erinnern, dass es mit der Bildanzeige probleme gab, wenn ich erst den neuen Switch anschalte ... dann schaltet er den anderen nicht mehr aus. Meine ich zumindest, ich weiß es nicht mehr...

    Hier jedenfalls mal der gesamte Code aus dem Editor (danke für den Tipp mit dem EEE, kannte ich noch nicht )

    Zitat Zitat von EasyEventExporter
    - SCRIPT -
    <> Move Picture: #10, (31, 108), Mgn 100%, Tsp 100%, 0,0 sec., Wait
    <> Show Picture: #7, verw-einnahmenübersicht1, (160, 120), Mgn 300%, Tsp 100%, No trans. color
    <> Play Sound Effect: buch, Volume 100%, Speed 100%, Pan Center
    <> Move Picture: #7, (160, 120), Mgn 100%, Tsp 0%, 0,4 sec., Wait
    <> Key Input Processing: Var. [1001], Wait until key pressed, Keys: Decision, Cancel
    <> Fork Condition: If Variable [1001] == 5 then ...
    . <> Play Sound Effect: buch, Volume 100%, Speed 100%, Pan Center
    . <> Show Picture: #7, verw-einnahmenübersicht2, (160, 120), Mgn 100%, Tsp 0%, No trans. color
    . <>
    : Else ...
    . <> Fork Condition: If Variable [1001] == 6 then ...
    . . <> Move Picture: #7, (160, 120), Mgn 300%, Tsp 100%, 0,4 sec., Wait
    . . <> Erase Picture: #7
    . . <> Move Picture: #10, (31, 108), Mgn 100%, Tsp 0%, 0,0 sec.
    . . <> Change Switch: [1065] = OFF
    . . <> Change Switch: [1062] = ON
    . . <>
    . : End of fork
    . <>
    : End of fork
    <> Key Input Processing: Var. [1001], Wait until key pressed, Keys: Decision, Cancel
    <> Fork Condition: If Variable [1001] == 5 then ...
    . <> Move Picture: #7, (160, 120), Mgn 300%, Tsp 100%, 0,4 sec., Wait
    . <> Erase Picture: #7
    . <> Move Picture: #10, (31, 108), Mgn 100%, Tsp 0%, 0,0 sec.
    . <> Change Switch: [1065] = OFF
    . <> Change Switch: [1062] = ON
    . <>
    : Else ...
    . <> Fork Condition: If Variable [1001] == 6 then ...
    . . <> Move Picture: #7, (160, 120), Mgn 300%, Tsp 100%, 0,4 sec., Wait
    . . <> Erase Picture: #7
    . . <> Move Picture: #10, (31, 108), Mgn 100%, Tsp 0%, 0,0 sec.
    . . <> Change Switch: [1065] = OFF
    . . <> Change Switch: [1062] = ON
    . . <>
    . : End of fork
    . <>
    : End of fork

  8. #8
    Ich verstehe trotzdem nicht, warum Du das so kompliziert machst.

    Den Teil kannst Du ja lassen:
    Code:
    <> Move Picture: #10, (31, 108), Mgn 100%, Tsp 100%, 0,0 sec., Wait
    <> Show Picture: #7, verw-einnahmenübersicht1, (160, 120), Mgn 300%, Tsp 100%, No trans. color
    <> Play Sound Effect: buch, Volume 100%, Speed 100%, Pan Center
    <> Move Picture: #7, (160, 120), Mgn 100%, Tsp 0%, 0,4 sec., Wait
    Das brauchst Du, ist klar warum. Direkt danach hätte ich das so gemacht:

    Code:
    Label 1
    key input process 'key' (Enter; Cansel; Wait) // key ist die Variable für die Taste
    if (key == 5)
    menu_point++ // einmal plus eins rechnen
    <> Play Sound Effect: buch, Volume 100%, Speed 100%, Pan Center
    else if (key == 6)
    // Abbruch
    // ----------
    if (menu_point == 1)
    // hier Deine move sowie show Befehle
    jump to label 1 // hier springt das Skript wieder nach oben zur Tastenabfrage, nachdem es fertig durchgelaufen ist
    if (menu_point == 2)
    // nochmal fürs nächste Bild
    ... // was hier kommt, dürfte ja klar sein
    jump to label 1 // hier springt das Skript wieder nach oben zur Tastenabfrage, nachdem es fertig durchgelaufen ist
    ...
    ...
    Wäre wesentlich einfacher. Den Fehler bei Dir sehe ich trotzdem nicht.

    Geändert von cilence (18.10.2009 um 22:22 Uhr)

  9. #9
    Stimmt, du hast Recht. Die Forks zum Abbrechen tauchen insgesamt drei mal auf. Dies lässt sich vermeiden, indem man ein Label erstellt und die Abfrage darüber wiederholen lässt.

    Ich werde es mal so wie du vorgeschlagen hast ausprobieren, melde mich dann zurück.

    Edit: Mit der Label-Variante scheint zumindest das Problem mit dem Abbrechen behoben zu sein. Jetzt muss noch eine Lösung her, mit der man das Label wieder beendet, nachdem alle x Bilder durchgeschaut wurden. Sonst zeigt sich das ganze Event in einer Endlosschleife, wenn man nicht direkt nach dem ersten Bild ESC drückt

    Edit 2: So, habe nun nach der Abfrage vom letzten Bild wieder den Codeschnipsel zum Abbrechen eingefügt:

    Code:
    if (menu_point == 1)
    // hier Deine move sowie show Befehle
    jump to label 1 // 
    if (menu_point == 2)
    // nochmal fürs nächste Bild
    if (menu_point == 3)
    // Abbruch
    Es scheint zu funktionieren, zumindest bei dem eben getesteten Eintrag mit 2 Bildern. Werde es gleich nochmal mit mehreren Bildern probieren, aber ich denke dass es auch dort klappen wird. Der Fehler lag anscheinend doch in meiner "komplexen" Version und lässt sich durch die einfache mit den Labels beheben

    Achso ... ganz am Anfang vom Event, direkt als erstes, muss die key Variable auf 0 gesetzt werden (Set - Set - 0), damit alles beim erneuten Aufruf des Menüs auch schön wieder von vorne beginnt.

    Geändert von Jadoo (18.10.2009 um 23:00 Uhr)

  10. #10
    Wenn die Tastenabfrage mit wait versehen ist, wartet das Skript normalerweise, bis Du die nächste Taste drückst. Den Sprungbefehl habe ich nur deshalb reingeschrieben, damit der Anfang nicht wiederholt wird. Btw würde ich den nicht ans Ende setzen, sondern immer in die IDAbfragen. Sonst sollte das Event aber abbrechen, sobald Du esc drückst. Egal nach welchem Bild.
    €: Sorry, Du hast ja schon editiert.

  11. #11
    Habe jetzt mal das Event mit mehr als 2 Bildern getestet. Dort tauchte dann das Problem auf, dass trotzdem man nach ESC zurück im Menü war, weiterhin die Bilder angezeigt wurden - man musste sie alle per Enter durchklicken damit es sich beendete.

    Abhilfe schaffte aber das Set Variable Key - Set 0 - und zwar vor dem Switch und nicht am Anfang. So wird jetzt die Variable wieder auf 0 gesetzt, bevor das Menü geschlossen wird und eine weitere Anzeige von Bildern wird verhindert.

    Hier mal der komplett neue Code:
    Zitat Zitat von EasyEventExporter
    - SCRIPT -
    <> Move Picture: #10, (31, 144), Mgn 100%, Tsp 100%, 0,0 sec., Wait
    <> Show Picture: #7, verw-ausgabenübersicht1, (160, 120), Mgn 300%, Tsp 100%, No trans. color
    <> Play Sound Effect: buch, Volume 100%, Speed 100%, Pan Center
    <> Move Picture: #7, (160, 120), Mgn 100%, Tsp 0%, 0,4 sec., Wait
    <> Label: 1
    <> Key Input Processing: Var. [1001], Wait until key pressed, Keys: Decision, Cancel
    <> Fork Condition: If Variable [1001] == 5 then ...
    . <> Change Variable: [65] += 1
    . <> Play Sound Effect: buch, Volume 100%, Speed 100%, Pan Center
    . <>
    : Else ...
    . <> Fork Condition: If Variable [1001] == 6 then ...
    . . <> Move Picture: #8, (160, 120), Mgn 0%, Tsp 100%, 0,4 sec.
    . . <> Move Picture: #7, (160, 120), Mgn 300%, Tsp 100%, 0,4 sec., Wait
    . . <> Erase Picture: #8
    . . <> Erase Picture: #7
    . . <> Move Picture: #10, (31, 144), Mgn 100%, Tsp 0%, 0,0 sec.
    . . <> Change Variable: [65] = 0
    . . <> Change Switch: [1069] = OFF
    . . <> Change Switch: [1066] = ON
    . . <>
    . : End of fork
    . <>
    : End of fork
    <> Fork Condition: If Variable [65] == 1 then ...
    . <> Show Picture: #7, verw-ausgabenübersicht2, (160, 120), Mgn 100%, Tsp 0%, No trans. color
    . <> Jump To Label: 1
    . <>
    : End of fork
    <> Fork Condition: If Variable [65] == 2 then ...
    . <> Show Picture: #7, verw-ausgabenübersicht3, (160, 120), Mgn 100%, Tsp 0%, No trans. color
    . <> Jump To Label: 1
    . <>
    : End of fork
    <> Fork Condition: If Variable [65] == 3 then ...
    . <> Show Picture: #7, verw-ausgabenübersicht4, (160, 120), Mgn 100%, Tsp 0%, No trans. color
    . <> Show Picture: #8, verw-ausgabenliste, (160, 120), Mgn 0%, Tsp 100%
    . <> Move Picture: #8, (160, 120), Mgn 100%, Tsp 0%, 0,4 sec., Wait
    . <> Jump To Label: 1
    . <>
    : End of fork
    <> Fork Condition: If Variable [65] == 4 then ...
    . <> Move Picture: #8, (160, 120), Mgn 0%, Tsp 100%, 0,4 sec.
    . <> Move Picture: #7, (160, 120), Mgn 300%, Tsp 100%, 0,4 sec., Wait
    . <> Erase Picture: #8
    . <> Erase Picture: #7
    . <> Move Picture: #10, (31, 144), Mgn 100%, Tsp 0%, 0,0 sec.
    . <> Change Variable: [65] = 0
    . <> Change Switch: [1069] = OFF
    . <> Change Switch: [1066] = ON
    . <>
    : End of fork
    Und so funktioniert es jetzt wie es soll - man kann per Enter durch die Bilder blättern und mit ESC jederzeit wieder abbrechen.

    Vielen Dank für die Unterstützung!
    LG Jadoo

Stichworte

Berechtigungen

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