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

Funktionsaufruf über Variable

Ich arbeite gerade an einem Projekt, bei dem die Zonen zunächst unsichtbar sind. Der Spieler hat aber einen Gegenstand mit verschiedenen Befehlen im Inventory, mit dem er die Zonen aktivieren kann, sofern er genügend nah dran ist.

Da er dies mit mehreren Zonen so machen soll, wollte ich das ganze in eine Funktion packen.
2.jpg

Nun möchte ich es bei den einzelnen Befehlen so lösen, dass ich jeweils eine Variable setze, wo ich als String den Namen des Zonenobjektes reinschreibe und dann die Funktion aufrufe.
Funktionsaufruf.jpg

Intuitiv ist klar, dass das so nicht funktioniert: Meine Funktion zum berechnen der Distanz braucht ja als Argument eine Zone und keinen String. Nur wie löse ich das Problem, dass der String in das richtige Zonen-Objekt umgewandelt wird?

Braucht es dazu eine LUA-Funktion so ähnlich wie die zum austauschen der Bilder bei bodenseepingus Türme von Hanoi? Wie ganz konkret muss ich das lösen?

Besten Dank für eure Tips!
 

Charlenni

Geomaster
So ganz spontan würde ich sagen, Du übergibst keine Zeichenkette, sondern die Zone. Würde dann im Beispiel statt
Code:
ZoneToActivate = "objBrunnen"
die Zuweisung
Code:
ZoneToActivate = objBrunnen
ergeben. Lua ist das egal ;) .
 

Krolock

Geocacher
Der Vorschlag von Charlenni ist ne recht schnelle und einfache Lsg. Vorausgesetzt du bildest die Zuweisung als lua statement und nicht mit nem Urwigo-Baustein.
Wenn sich der String nicht vermeiden lässt, so kannst du über alle Zonen iterieren (siehe Mit lua alle Zonen des Wherigos erfassen und vergleichst den Zonennamen mit deinem String. Ein manuelle getZoneByName Methode quasi
 
Oben