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

Externe Source einbinden

Krolock

Geocacher
Hallo,
hat jemand schon einmal externe Sourcen (lua-Dateien) eingebunden?

Bei der aktuellen Cachopolyimplementierung stehe ich vor dem Problem, dass das Script unter "User functions" mittlerweile die 1000 Zeilen überschreitet und immer unübersichtlicher wird.
Da ein Großteil der Zeilen Initialisierungsbefehle sind (Zonen festlegen, Sprüche für Ereigniskarten, Grundstückskosten und Mieten festlegen) wäre es praktisch diesen Code in eine extra Datei auszulagern und einzubinden.

Hat jemand so etwas schon mal gemacht und läuft es auch auf allen Geräten?

VG Markus
 
OP
Krolock

Krolock

Geocacher
Als eine Möglichkeit, den "User functions" Bereich zu reduzieren, hab ich mal versucht möglichst viel der Initialroutinen nach "User directives" zu verschieben.

Dieser Workaround ist allerdings mit Vorsicht zu genießen. So ist es nicht möglich hier die von Urwigo definierten Objekte zu überschreiben (z.B Zonepoints zu sezten).
Dies liegt daran, dass im generierten lua-Script der "User directives" Teil zu Beginn des Scripts und damit vor den genierten "Klicki-Bunti" Teil eingefügt wird.
Man kann hier also die Points einer Zone setzen, diese werden aber später vom gernierten Teil überschrieben. "User functions" wird nach dem generierten Teil angehangen. Die hier gemachten Änderungen / Definitionen werden folglich nicht überschrieben.

Man kann sich bei großen Datenmengen aber folgendermaßen "durchpfuschen":
in "User directives" wird ein Pseudoobjekt generiert und aufgebaut.

Code:
myComplexObject = {}
myComplexObject.name = "blub"
myComplexObject.street = "main street"
myComplexObject.streetnumber = 6
myComplexObject.zip = 38942
myComplexObject.city = "london"
myComplexObject.price = 230000
...

Dieses Pseudoobjekt wird dann im "User functions" Bereich dem Urwigogenerierten zugewiesen.
Code:
objHouse1 = myComplexObject

Somit hat man die Anzahl der Zeilen in "User functions" zur Initialisierung auf eine reduziert.
Bei diesem Beispiel mag sich auf den ersten Blick nicht zeigen, wer sich mit Abspeichern/Wiederherstellen von selbstdefinierten Objekten beschäftigt hat, dem wird das Beispiel bestimmt was sagen.
 
Oben