Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Zuweisung von Zielen bei Objekten in Urwigo

Adventure-Cartridges für PDAs oder Garmin Colorado/Oregon

Moderator: m.zielinski

Benutzeravatar
PapaGei139
Geocacher
Beiträge: 36
Registriert: Mi 1. Jan 2014, 23:03
Wohnort: Bärlin

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von PapaGei139 » So 26. Jan 2014, 22:05

Das heißt, eine Zufallsereignis mit verschiedenen Meldungen wäre ja dann ausgeschlossen.
Ich meine, wenn weder Stein noch Seil da ist, sagt er beim "benutze Schere mit" mal "Autsch" oder "das mach ich nicht" oder "sonst irgendwas".

Es geht also nur dieser eine Text den ich bei "Leerer Text" eingeben kann. (Der ja wie oben gezeigt) bei Android wegrationalisiert ist. Versteh ich das richtig?
Das Leben ist zu kurz um sich mit (allen) Filmdosen zu beschäftigen.

Werbung:
Charlenni
Geomaster
Beiträge: 755
Registriert: Di 17. Aug 2010, 15:27

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von Charlenni » So 26. Jan 2014, 22:43

Du kannst natürlich den Wert immer wieder ändern. Das ist ja kein Problem in Lua. Allerdings bin ich nicht sicher, ob es möglich ist, dort auch eine Funktion zu hinterlegen. Ich denke aber nicht.

Sabeta
Geocacher
Beiträge: 143
Registriert: Di 22. Jun 2010, 23:56

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von Sabeta » So 26. Jan 2014, 23:17

Der Text lässt sich natürlich ändern, nur leider nicht zum Zeitpunkt wenn er angezeigt wird. Ist ein Ziel vorhanden, kann man entsprechend zielbasierend reagieren, aber dann ist der Text nicht notwendig.

Sabeta

Benutzeravatar
PapaGei139
Geocacher
Beiträge: 36
Registriert: Mi 1. Jan 2014, 23:03
Wohnort: Bärlin

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von PapaGei139 » Mo 27. Jan 2014, 09:18

Guten Morgen,

leider bin ich mit Lua nicht so vertraut, sonst müsste ich hier nicht so viel fragen.
Ich muss aber sagen, dass ich dieses Forum echt prima finde. Dadurch hab ich schon viel dazugelernt.

Leider funktioniert es nicht, was ich gebastelt habe.
Mit welchem Lua-Code bekomme ich das "Problem" mit der Zuweisung von zufälligem Textmeldungen bei nicht verfügbaren Items mit Urwigo gelöst?
siehe verlinktes Bild
Bild
Das Leben ist zu kurz um sich mit (allen) Filmdosen zu beschäftigen.

Sabeta
Geocacher
Beiträge: 143
Registriert: Di 22. Jun 2010, 23:56

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von Sabeta » Mo 27. Jan 2014, 11:27

Wie ich schon schrieb, es ist nicht möglich. leider, ich würde das selbst auch gerne anpassen. :(

Der Text wird nur dann angezeigt wenn es kein Ziel gibt, die "Routine" in der du aber den Text anpassen möchtest, wird nur aufgerufen wenn es mindestens ein Ziel gibt.

Du müsstest also einen Schritt voran schon reagieren und wenn dies überhaupt geht, dann nur in LUA, ich denke aber eher das es nicht möglich ist, da es eine Funktionalität der Wherigo-Bibliothek ist. Man bräuchte quasi ein Event "Kein Ziel" und müsste dann einen eigenen Event-Handler schreiben.

Mir ist aber kein Event derart bekannt.Das einzige verfügbare Event bei Gegenständen ist onClick und das sollte man nicht verwenden.

Wenn man onClick ohne Problem verwenden könnte, könnte man darüber den Text durch eigenständigen Prüfen, ob Ziele vorhanden sind, anpassen, weil dieses Event vor dem Click auf dem Befehl ausgeführt wird.


Sabeta

Charlenni
Geomaster
Beiträge: 755
Registriert: Di 17. Aug 2010, 15:27

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von Charlenni » Mo 27. Jan 2014, 11:40

Ist doch schon fast alles richtig. Nur mußt Du im oberen roten Kasten natürlich auch noch einen Text zuweisen. Also

Code: Alles auswählen

Schere.benutze.EmptyTargetListText="blablabla"
Ansosnten ist er natürlich leer. Und funktionieren tut es nur zur Laufzeit. Ist klar, oder?

Wichtig ist, dass Du Dir klar wirst, dass die Anzeige des Textes nichts ist, was Du direkt beeinflussen kannst. Der Text wird einfach vom Player aus angezeigt. Dazu gibt es also kein Ereignis und nichts, wo man eine MessageBox auf den Schirm werfen kann. Damit wird es dann schwierig, wo Du den Text ändern möchtest. Da fällt mir spontan auch nichts ein außer einem Timer.

Benutzeravatar
satanklaus
Geomaster
Beiträge: 643
Registriert: Di 14. Jul 2009, 12:31

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von satanklaus » Mi 21. Jan 2015, 23:21

Charlenni hat geschrieben:Ich würde es mal mit

Code: Alles auswählen

objGeld.Commands["Geben"].MakeReciprocal = false
versuchen. Höchstens Du hast das Commando mit einem Namen versehen, der "cmdGeben" lautet. Ansonsten sollte es funktionieren. Wengistens auf Garmin Playern.

Eventuell noch darauf achten, dass der Befehl vor einem "Enabled" ausgeführt wird. Dort wird nämliche der Wert abgeprüft und das reziproke Commando bei Bedarf erstellt.

Ein Jahr später ist doch ein prima Zeitpunkt nochmal nachzuhaken :D
Hier wird ja mehrfach berichtet, dass das funktioniert.
Tut es bei mir aber leider nicht.
Ich habe den Code in den OnStart-Handler gepackt, der Interpreter meckert nicht, ich sehe am Debug-Output im Emulator, dass er ausgeführt wird. Scheint aber nichts zu bewirken: die Verknüpfung besteht weiterhin bidirektional. :???:

Tipps?

(Noch ein kleiner Urwigo-Demonstrator im Anhang.)
Dateianhänge
reciprocal-test.zip
(2.04 KiB) 10-mal heruntergeladen

jonny65
Geomaster
Beiträge: 628
Registriert: Do 22. Sep 2011, 17:58

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von jonny65 » Do 22. Jan 2015, 07:37

2 Fehler ... etwas auskommentiertes wird natürlich nicht verarbeitet :D

Und bei der Flasche fehlt das Objekt "Commands"

Also vorher :

Code: Alles auswählen

-- Flasche.Geben.MakeReciprocal = false
Nachher :

Code: Alles auswählen

Flasche.Commands.Geben.MakeReciprocal = false

Benutzeravatar
satanklaus
Geomaster
Beiträge: 643
Registriert: Di 14. Jul 2009, 12:31

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von satanklaus » Do 22. Jan 2015, 09:40

jonny65 hat geschrieben:2 Fehler ... etwas auskommentiertes wird natürlich nicht verarbeitet :D
Das ist klar, der aktive Code stand im OnStart-Handler der Cartridge.

Aber ich habe jetzt meinen Denkfehler erkannt:
Bisher war ich der Meinung, dass der User fuctions View lediglich als Container für alle möglichen Funktionen dient, die dann noch von irgendwo aufgerufen werden müssen, um abgearbeitet zu werden.
Es scheint aber zusätzlich so zu sein, dass alles, was nicht in einer function gekapselt ist, als globaler Code ausgeführt wird (Wann?).
Ich bin also nicht auf die Idee gekommen, dass ich die Codezeile einfach so ohne function dort reinschmeißen kann. Ich habe da nur den Code editiert, weil der Bereich größer ist als der im Lua User Code Element von Urwigo. Anschließend hab ich es dann rüberkopiert und auskommentiert.

Nun habe ich jedenfalls die endgültige Form des Befehles wieder in die User Functions kopiert und siehe da - funktioniert. Jetzt würde ich nur noch gerne verstehen, warum es so rum geht, der gleiche Code im OnStart Handler der Cartridge aber keinen Effekt hat.

Danke - mal wieder - jonny65

Charlenni
Geomaster
Beiträge: 755
Registriert: Di 17. Aug 2010, 15:27

Re: Zuweisung von Zielen bei Objekten in Urwigo

Beitrag von Charlenni » Do 22. Jan 2015, 10:01

Der komplette Lua Code wird beim Laden der Cartridge ausgeführt. Zu diesem Zeitpunkt werden die Zonen und Gegenstände erzeugt. Alle Funktionen werden in der Lua Umgebung definiert, so dass sie später aufgerufen werden können. Am Ende übergibt der Code das erzeugte Cartridgeobjekt mit einem return an den Player. Dieser kann dann einzelne Funktionen aufrufen, was er z.B. beim Start macht. Dort wird dann nämlich die Funktion OnStart des Cartridgeobjektes aufgerufen.

Beim Start der Cartridge (nachdem diese geladen ist), passiert nun folgendes: der Player erstellt alle Commands und die dazugehörigen ReciprocalCommands. Diese können später nicht mehr verändert werden, also auch nicht mehr im OnStart Ereignis, das nach dem Start der Cartridge aufgerufen wird.

Aus dem oben gesagten folgt dann, dass man MakeReciprocal während des Ladens setzen kann, aber nicht während des Startens oder später. Deshalb funktioniert es in den Lua Benutzer Funktionen außerhalb einer Funktion, aber nicht in OnStart.

Ich hoffe, ich konnte es verständlich erklären :D

Antworten