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

Position des Players direkt nach dem Start der Catridge

SG_Pirat

Geocacher
Hallo,
ich wollte mich mal wieder mit der Programmierung eines WIG beschäftigen, aber gleich am Anfang stolpere ich über ein Problem. Könnt ihr mir evtl. helfen?

Der Spieler soll sich als erstes zum Marktplatz (Zone) begeben, um dort Informationen zu bekommen. Wenn er sich aber beim Start der Catrige schon hier befindet, ist es unnötig, ihn hierher laufen zu lassen. Die Marktplatz-Zone ist ein Viereck.

Es wird dabei folgender Lua-Code genutzt, der im on-Start-Event der Catridge aufgerufen wird :

Code:
function introductions()
    displayDialog("Message",{messageKey="introText_1"});
    displayDialog("Message",{messageKey="introText_2"});
    -- if the player is already at the market square, some information are not necessary
    -- TODO: does not work as expected - player is always outside of the zone. Simulator problem ? Or concurrency?
    if Marketsquare:Contains(Player) then
        displayDialog("Message",{messageKey="introText_3a"});
        activateFirstZones()
    else
        displayDialog("Message",{messageKey="introText_3b"});
        Marketsquare.Active  = true;
        Marketsquare.Visible = true;
    end
end


Aber sowohl mit dem UrWiGo-Simulator als auch mit einer kompilierten Test-Catridge für den WhereYou-Player auf einem Android Smartphone befindet sich der Spieler immer außerhalb dieser Zone.

Habt ihr Ideen, warum es nicht funktioniert oder Tipps?

Vielen lieben Dank schon einmal im Voraus und viele Grüße
 

schatzi-s

Geowizard
Ich habe keine Ahnung von WhereIGo-Programmierung, aber kann es sein, dass beim Aufruf dieses Events das GPS noch nicht zwingendermassen initialisiert ist, bzw. gueltige Werte liefert und der Spieler deswegen als ausserhalb der Zone gewertet wird?
 

capoaira

Geomaster
Anhand des Codes würde ich vermuten, dass `Marketsquare:Contains(Player)` nur den Player enthält, wenn die Zone bereits aktive ist. Die Zone wird aber nur innerhalb des else Blockes aktiv gestellt.
 
Oben