• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Parse Error

AoiSora

Geocacher
Hi,
hab meinen zweiten WIG fast fertig und hätte da mal ne Frage.
Im GS Builder wird mir Parse Errors angezeigt.
Was der Builder wohl nicht mag ist:
If
If
Action
end
end

Jedoch wird dies nur als Fehler angezeigt, wenn die 2 IFs direkt hintereinander stehen. Wenn ich If action If action end end mache wird dies nicht als Fehler bewertet.

Meine Frage wäre, ob jemand weiß ob es auf irgendeinem Player zu Problemen kommen kann.

Aufm Oregon sowie Emulator scheint alles ohne Probleme durchzulaufen.
Zudem ist der GS Builder ziemlich zickig was Fehler angeht und öffnet normalerweise Lua-Files nicht, die Fehler aufweisen. Da er diese öffnet und die Abschnitte "nur" als fehlerhaft anzeigt kanns ja nicht so schlimm sein ;)
 

Aceacin

Geowizard
Warum 2mal If hintereinander? Ich kenne die Scriptsprache nicht, aber bei Basic und bei Pascal hätte ich eine logische Verknüpfung gemache mit IF x AND y Action1 ELSE Action2
Als Logische Verknüpfung kann man bei Pascal z.B. NOT, AND, OR und XOR verwenden. Ob es das auch bei Wherigo gibt, weiß ich nicht, aber wenn ja, wäre das die elegantere Lösung...
 
OP
A

AoiSora

Geocacher
Das weiß ich auch, dass es and und or gibt.

Ich habe aber einmal
IF a and b and c then
IF d or e then
Action
end

Sprich Bedingung a,b,c müssen erfüllt sein + entweder d oder e.

Ich gehe davon aus, wenn ich and und or in nur einem IF vereine das or die Bedingungen trennt.

Also bei IF a and b and c and d or e gehe ich davon aus, dass es bedeutet, entweder müssen a,b,c und d erfüllt sein oder nur e. Das ist aber nicht genau das was ich wollte.

Die einzige Möglichkeit die ich sehe es in einem IF unterzubringen wäre:
IF a and b and c and d or a and b and c or e
Aber soll das eleganter sein? Ich weiß ja nicht und obs auch so funktioniert wie vorgestellt weiß ich auch nicht.
 
OP
A

AoiSora

Geocacher
So wie ich das verstehe, willst du zusätzlich noch 2 Variablen einführen.
Aber was für ein Typ sollen diese Variablen sein, wenn ich ne boolean, nen string und ne number addiere?
Das würde doch nur gehen, wenn die Bedingungen als function definiert werden. Ersten wäre das ja noch umständlicher und zweitens würde der GS Builder bei functions sofort abschmieren und die Datei ließe sich gar nicht mehr öffnen.

Deshalb will ich eigentlich nur eine einfache Antwort. Gibt es auf diversen Playern Probleme mit 2 IFs hintereinander?
 

docfred

Geocacher
AoiSora schrieb:
So wie ich das verstehe, willst du zusätzlich noch 2 Variablen einführen.
Aber was für ein Typ sollen diese Variablen sein, wenn ich ne boolean, nen string und ne number addiere?
Das würde doch nur gehen, wenn die Bedingungen als function definiert werden. Ersten wäre das ja noch umständlicher und zweitens würde der GS Builder bei functions sofort abschmieren und die Datei ließe sich gar nicht mehr öffnen.
Das kann funktionieren, da LUA sehr tolerant mit variablentypen umgeht.
z.B.
var1 = 4
var2 = "5Männer"
print var1 + var2
-> 9
Mit AND und OR müsste alles als boolean interpretiert werden (Alles was nicht false ist, ist true)
docfred
 

jonny65

Geomaster
AoiSora schrieb:
Die einzige Möglichkeit die ich sehe es in einem IF unterzubringen wäre:
IF a and b and c and d or a and b and c or e

Ungeklammert zündet diese Bedingung 100%ig auch dann wenn sie nicht soll, z.b wenn nur a true ist.
Meinst du so ein Konstrukt ?

ifif.JPG

Wäre ja schon ziemlich simpel und geht natürlich.
 
OP
A

AoiSora

Geocacher
So hab mal eine Testcartridge gebastelt mit 2 IFs halt hintereinander.

Da ich in Urwigo mich nicht so auskenne, wollte ich mal sehen, wie Urwigo das Gebilde grafisch darstellt. Im Grunde ist das selbe rausgekommen wie Jonny es schon gemacht hat.
Urwigo hat also keine Probleme mit 2 IFs hintereinander. Scheint also mehr eine Laune des GS Builders zu sein. Wär ja auch unverständlich warum das nicht gehen sollte. Vorallem wenn man eine sinnlose action wie das sichtbarschalten eines schon sichtbaren items zwischen den beiden IFs steckt, wird dies vom Builder als 100% korrekt hingenommen und ohne sinnloses Zeug als Error. Betaversion lässt grüßen.
Wenn trotzdem mal jemand die Testcartridge zumindest mal aufm Droiden oder gar nen Apfel testen könnte wär super.

Achja und beim Bauen der Testcartridge ist mir was aufgefallen. In den verschiedenen Buildern kann man als Input doch auch true/false abfragen. Hab ich bislang noch nie gemacht und jetzt beim testen wollte ich das mal mitreinnehmen und da ist mir der Emu immer beim zweiten Durchgang abgeschmiert und das Oregon wollte einen Zahleninput anstatt true oder false abzufragen.... :???:
Kann man als Input sowas nicht abfragen oder hab ich da was falsch gemacht?

scrn.JPG
Anhang anzeigen bedingppc.zip
 

Krolock

Geocacher
Im UrwigoBuilder schmiert bei einer Boolean-Abfrage nichts ab, aber es wird kein true / false Feld angezeigt, sondern eine normale String-Eingabe. Merkwürdig
 
OP
A

AoiSora

Geocacher
Naja so ähnlich war es beim Oregon ja auch. Anstatt mir 2 Buttons zu geben wollte er einen String bzw. eher ne Number, weil es wurde sofort der Ziffernblock aufgerufen, anstatt, wie üblich bei Strings, der Buchstabenblock. :???:

Naja werd sowas wohl eh nicht brauchen und wenn doch, dann wird es einfach über MultipleChoice geregelt. Da weiß man was man hat^^
 

Krolock

Geocacher
Die aktuelle Version von Urwigo hat eh noch die ein oder andere Macke.
Man nehme nur die schöne Funktion "Close All But This" (Schließe alle Fenster außer dem diesem) beim RMT auf ein Fenster, z.B. myZone.OnEnter.
Urwigo schließt auch alle Fenster, nur das aktuelle schließt er leider auch mit. :irre:
 
OP
A

AoiSora

Geocacher
Wollte mal im Earwigo nen Booleaninput machen aber da kam gleich diese Meldung hier.
fehler.JPG

Anscheind ist das also nicht Builder bedingt, sondern wird vom Player/Emu falsch interpretiert.
 

jonny65

Geomaster
AoiSora schrieb:
So hab mal eine Testcartridge gebastelt mit 2 IFs halt hintereinander.

Also die Testcartridge macht (anscheinend) das was sie machen soll, zumindest kommt nix unlogisches raus. Mach ich aus meinem Gebilde oben (statt Comments halt Messaegboxen) ein GWZ und extrahier das LUA daraus, sieht das so aus :


Code:
	if ((obja == true) and (objb == true)) and (objc == true) then
		if (objd == true) or (obje == true) then
			_Urwigo.MessageBox{
				Text = "Hier kommt die Aktion"
			}
		else
			_Urwigo.MessageBox{
				Text = "d und e ist falsch"
			}
		end
	else
		_Urwigo.MessageBox{
			Text = "mindestens 1 Variable aus a,b und c ist falsch"
		}
	end

Wurstet der GS Builder was andres zusammen ? Könnt ja auch daran liegen, daß es prinzipiell geht vom Aufbau her, der Code aber falsch erzeugt wird.
Verschachtelte if/else Konstrukte auflösen oder erweitern sind ja beim GS Builder auch ne Katastrophe und wer weiß was für ein LUA Code da rauskommt. Dieser wird ja im Emulator ausgeführt, nachdem er temporär erzeugt wurde.
 
Oben