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

Wherigo und globale Scripte

mwflipper

Geonewbie
Hallo,
weiß jemand zufällig wie ich in nem Wherigo globale Scripte definieren kann? Also wiederverwertbare Programmteile, die ich von jeder Zone aufrufen kann. Ich plane ein dynmasiches Wherigo-Spiel, bei dem die Reihenfolge der Zone nicht fest definiert ist und möchte immer wiederkehrende Aufgaben ( Rundenzähler erhöhen, Statusabfrage ob Zieltask erreicht ist, Ausgabe an den User) nicht in jeder Runde neu definieren.

Ich hab schon ein wenig mit Timerevents gesteuert bei dem ich den Timer Tick beim Erreichen einer Zone aufrufe, aber so richtig klappt das noch nicht.

Kann man eigentlich in ner Messagebox Variablen ausgeben. So was wie "Du befindest dich in Runde $round " ?
 

sax76

Geocacher
mwflipper schrieb:
Hallo,
weiß jemand zufällig wie ich in nem Wherigo globale Scripte definieren kann? Also wiederverwertbare Programmteile, die ich von jeder Zone aufrufen kann. Ich plane ein dynmasiches Wherigo-Spiel, bei dem die Reihenfolge der Zone nicht fest definiert ist und möchte immer wiederkehrende Aufgaben ( Rundenzähler erhöhen, Statusabfrage ob Zieltask erreicht ist, Ausgabe an den User) nicht in jeder Runde neu definieren.

Das Problem hatte ich vor kurzem auch, als ich ein runden basiertes Kampfsystem in eine Cartrigde einbauen wollte. Mit dem offiziellen Builder geht das meines Wissens nicht ohne selber im Lua file rumzuschreiben.
Ich würde dir empfehlen dir den Earwigo Builder mal anzusehen. Mit diesem hast du Möglichkeit Funktionen zu definieren.

mwflipper schrieb:
kann man eigentlich in ner Messagebox Variablen ausgeben. So was wie "Du befindest dich in Runde $round " ?
hier im Forum habe ich diesen Threadzudem Thema gefunden
http://www.geoclub.de/viewtopic.php?f=74&t=42252
(auch das geht mit Earwigo einfach, indem du ~~var_variablename~~ im Text schreibst)
 

sax76

Geocacher
Wenn du es mit dem offiziellen Builder machen willst, kannst du es z.B. wie folgt machen.
Lege im Builder eine Messagebox an, die dein "globales" Script erhält. Dann öffne das Lua File und suche die Message Box, das müsste ungefähr so aussehen:
Code:
Wherigo.MessageBox{Text=[[Du befindest dich in Runde] variableName],Buttons={"okay",},Callback=cartCartrigename.MsgBoxCBFuncs.MsgBoxCB1}
end
Im dem Teil Text=[[ ... ]] steht innerhalb der inneren Klamern der Text der Messagebox, eine Variable gibst du aus, indem du die MSG Box wie oben veränderst.

Wenn du nun das selbe Script für verschiedene Message Boxen verwenden willst, lege die Messageboxen im Builder an, öffne dann das lua File und ändere die Callback Funktion so, das sie auf dein "globales" Script aufruft. Also gib bei allen Boxen, die das Script der zuerst angelegen Box aufrufen sollen Callback=cartCartrigename.MsgBoxCBFuncs.MsgBoxCB1 ein.
Danach kannst du die Cartrigde wieder im Builder laden und kommst dann auch immer zu dem selben Script, wenn du die Messagebox editierst.

Bevor du das Lua File per Hand editierst, solltest du aber eine Sicherheitskopie machen. Wenn du einen Fehler machst lässt sich das File nicht mehr mit dem Builder öffnen und ist unter Umständen nicht mehr verwendbar.

Das meiner Meinung nach aber alles sehr Umständlich, viel besser geht es mit dem inoffiziellem Earwigo Builder.
 
Oben