Ergebnis 1 bis 6 von 6

Thema: Weder IF noch ELSE??

  1. #1

    Weder IF noch ELSE??

    Hallo!

    Ich habe ein Problem, zu verstehen, wieso bei einer if-abfrage bei mir weder der if, noch der else teil ausgeführt wird:
    Code:
    @>Conditional Branch: Script: $game_map.events[1].x == 19 and game_map.events[1].y == 8
      @>Conditional Branch: Script: !$m2_bool2
        @>Text: okay
        @>Script: $m2_bool2 = true
       :  Branch End
      @>
     : Else
      @>Conditional Branch: Script: $m2_bool2
        @>Script: $m2_bool2 = false
        @>
       :  Branch End
      @>
     : Branch End
    @>
    Das ganze läuft in einem Paralelprozess und soll überprüfen, ob das 1. Event auf den Koordinaten x=19 und y=8 ist.
    Wenn dies der Fal ist, soll "okay" gesagt werden (nur 1 mal) und wenn das Event nichtmehr auf den Koordinaten ist und wieder rauf geht, soll wieder "okay" gesagt werden.

    Problem: Es wird nur 1x "okay" gesagt wenn das Event das 1. mal auf das Feld geht. Danach kann es sooft daraufgehen wie es will, und nix passiert!
    Warum?

  2. #2
    So sollte es funktionieren. Ich hab das jetzt mal als reines Script gemacht, also ohne Conditional Branch zu benutzen. Falls das "okay" nicht nur eine Debugausgabe sein soll, musst du das dann wohl doch mit Conditional Branch machen.

    Code:
    if $game_map.events[1].x == 19 and $game_map.events[1].y == 8
      if $game_switches[1] == false
        $game_switches[1] = true
        p "okay"
      end
    else
      $game_switches[1] = false
    end

  3. #3
    hilft manchmal nicht auch wenn man zu if auch noch then am ende der zeile hinzufügt?
    also: if $game_switches[1] == true then

    manchmal gehts bei mir so. weiss aber nicht genau, was dieses then auslöst.

  4. #4
    Zitat Zitat von Fluch des Grauens Beitrag anzeigen
    hilft manchmal nicht auch wenn man zu if auch noch then am ende der zeile hinzufügt?
    also: if $game_switches[1] == true then

    manchmal gehts bei mir so. weiss aber nicht genau, was dieses then auslöst.
    Then? Das kenne ich kaum in Ruby. Das ist eigentlich nicht nötig...

  5. #5
    Genau, das then ist nicht nötig, es sei denn man möchte den Ausdruck in eine Zeile schreiben.

  6. #6
    Man sollte vermeiden bei einem Script ein false als Rückgabewert zu haben. Aus irgendeinem mir nicht verständlichen Grund fasst der Maker dies so auf, als hätte das Script einen Fehler und müsste wiederholt werden.
    Darum am Ende des Script-Befehls am besten ein
    Code:
    true
    dranhängen, sollte der letzte Begriff ein false sein (oder man schreibt den Interpreter um).

Berechtigungen

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