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

String.Left in Urwigo

tower27

Geowizard
Hallo,

ich habe bisher mit Urwigo immer nur "gepuzzelt" und komme jetzt an eine Stelle, an der ich einen "Leftstring" auswerten muss.
Ich frage den Spieler in einem Rätsel nach einer Farbe, die richtige Antwort ist "Weiß".

Jetzt habe ich aber vorausssichtlich das Problem, dass ale Eingaben der Form "Weiss", "WEIß", "weiß", WEISS" usw. gelten sollen.

Also würde ich gerne folgendes programmieren:
If (Left(Uppercase(answer)) = "WEI" then "richtig" else "falsch".

Wie mache ich das mit Urwigo oder überhaupt mit Wherigo/Lua?

Ich habe das hier verucht, ich komme aber nicht weiter, da mein Objekt "Answer" immer NIL ist. Wie heißt den das auszuwertende Objekt? Kann mir dda jemand helfen?
Wo finde ich denn die beste Referenz zu solchen Fragen?

Thomas
 

Anhänge

  • Urwigo_StringLeft_error.png
    Urwigo_StringLeft_error.png
    79,9 KB · Aufrufe: 695
  • Urwigo_StringLeft.png
    Urwigo_StringLeft.png
    28,5 KB · Aufrufe: 695

bodenseepingu

Geomaster
Tipp für user-Functions / User-Code:

1. Obfuscating ausschalten
2. Einmal als gwz abspeichern, die gwz mit zip entpacken (Windows-Benutzer müssen evtl. die Datei noch als .zip umbenennen) und die lua-Datei anschauen.
3. normalerweise macht Uwigo ein obj vor einen Variablennamen und entfernt Blanks.
4. Achtung bei gleicher Benennung von Zonen, Items, Charakteren, Media-Dateien, Tasks, Inputs, Timern...Urwigo nummeriert durch.
 
OP
tower27

tower27

Geowizard
Dank dieses Tipps war es relativ einfach, das hier zu programmieren und dann als Ergebnis "hal" als Dialogausgabe zu bekommen.

Dabei ist mir auch noch aufgefallen, dass bei einem "Compare ... Answer = ..." automatisch die Gross-Klein Schreibung nicht beachtet wird, da Urwigo folgenden Code erzeugt:

Code:
function objFuchsFrage:OnGetInput(input)
	if input == nil then
		input = ""
	end
	if (Wherigo.NoCaseEquals(input, "Gross") or Wherigo.NoCaseEquals(input, "GROSS")) or Wherigo.NoCaseEquals(input, "gross") then


Das kann ich mir sparen, denn die Funktion Wherigo.NoCaseEquals übernimmt das für mich.

Danke für deine Tipps !
 

Anhänge

  • 31.01.png
    31.01.png
    13,5 KB · Aufrufe: 643

Krolock

Geocacher
tower27 schrieb:
Dabei ist mir auch noch aufgefallen, dass bei einem "Compare ... Answer = ..." automatisch die Gross-Klein Schreibung nicht beachtet wird, da Urwigo folgenden Code erzeugt:
In Urwigo kann man bei der Equals-Operation über die Checkbox entscheiden, ob man case sensitive vergleichen möchte oder nicht. Standart ist "Ignore case"
 

Anhänge

  • UrwigoIgnoreCase.PNG
    UrwigoIgnoreCase.PNG
    28,6 KB · Aufrufe: 588
Oben