wherigo - bug v builderu (n. playeru?)

Našel jsem další nefunkčnost, nepříjemnou hlavně pro vývojáře. Při ukončení nebo obnovení hry se nevolají příslušné eventy "When a cartridge is ended" a "When a cartridge is resumed".
Obzvlášť druhá varianta se hodí pro kontrolu stavu proměnných a stavu jednotlivých zón a itemů, případně zjištění aktuální lokality hráče. z čehož lze pak vyvodit správné akce, případně obnovu stavu po nějaké vyjímce.

Takže pokud někdo píšete další cartridge, zatím se na tyto eventy nespoléhejte.
Nefunguje to ani v emulátoru, ani na Coloradu. PDA bohužel nemám.

Mimochodem těch bugů je v Builderu i Playeru víc.
V Builderu např. špatná práce s jiným formáty souřadnic než ddd.ddddd , nemožnost změny názvu zóny která už je součástí scriptů (resp. takový postup rozhasí celou cartridge), nefunguje mi při Inputu porovnávání proměnných formatu String…
V Playeru pak už zmiňovaná nekompatibilita s čtvercovými displeji 240x240 a bohužel i možnost potvrzovat stisknutím joysticku nebo jiné klávesy, čímž by to šlo částečně obejít.

Ten formát souřadnic není kritický, nijak zvlášť mne to nevadilo. On je dokonce výhodnější, protože pro zápis v tomto formátu stačí jedno reálné číslo. Pokud jde o zobrazení, lze si napsat jednoduchou fci:


function showcoords(cPt)
local cN = {math.modf(cPt.latitude)}
local cE = {math.modf(cPt.longitude)}
 return  string.format("N%d %02.3f  E%d
%02.3f",cN[1],cN[2]*60,cE[1],cE[2]*60)
end

a pak zavolat jen např.


Wherigo.MessageBox{Text=[[Souradnice cache jsou:
]] .. showcoords(zonefinalnistagescache.OriginalPoint),}
end

Stringy z inputu je nejlépe porovnávat nezávisle na velikosti písmen, pak to funguje dobře


if Wherigo.NoCaseEquals(stringvar,"Nalevo" ) then ... end

Názvy zón, tásků, itemů a pod nelze za běhu bezpečně měnit - vypadá to se s touto možností se v této fázi nepočítalo. Pokud je potřeba změnit jméno, lze to nahradit dvojicí podobných položek a prohodit pak mezi nimi visibility/active status - a pak to vypadá, jako by došlo k přejmenování.

Několik mých "poučení z krizového vývoje" - jsou to blbosti, ale možná to někomu pomůže
(bohužel ne vše jsem si zapsal)

Ve jménu cartridge nepoužívat podtržítka - byl problém s vnořenýmy scripty (podobně to vadí i u proměnných - viz http://forums.groundspeak.com/GC/index.php?showtopic=188234)

Ve jménu commandů nepoužívat číslice (chtěl jsem je mít prostě pěkně pojmenované typu "Otazka cislo 1" )

Series of Dialog - nepoužívat čárku, po znovuotevření cartridge v builderu hlásí chybu syntaxe, protože to blbě rozparsuje (možná je třeba čárku prefixovat nějakám escapem ?)

Něco z toho jsem už také četl na GS fóru.. Například s těmi podtržítky jsem se ale hodně navztekal, než jsem zjistil, že si ze mne dělá builder legraci.

K těm číslicím v názvu CMD - nezkoušel jsi použít číslici bez mezery, nebo oddělenou třeba jen tečkou (např. "1.save", "2.check" ) ?

Series of dialog - aneb k rozparsovaní zdrojáků - bohužel jsem došel už tak daleko, že Builder používám jen na vytvoření a modifikaci základní konstrukce cartridge, zbytek píšu přímo do lua souboru v texteditoru. Spousta věcí totiž builderem vůbec nejde zařídit :frowning: A builder dokonce některé konstrukce kódů poškodí i při samotném ukládání do lua file - obvykle proměnné vloží do uvozovek a udělá z nich text, nebo naopak z konstant udělá proměnné odstraněním uvozovek :expressionless:

owneři, zobrazují se vám uložené hry ve "View Device Logs" ? Mnimálně jeden lovec u mě logoval přes uloženou hru, ale nic tam nemám.

Teprve včera jsem tam tuhle volbu zaregistroval, možná jsem se dřív blbě díval, ale spíš je to tam nově.
Zobrazí se mi pouze:
Cartridge Logs
Page 1 of 0 >
Page 1 of 0 >
Takže si myslím, že je to nedoprogramované.
A bude to zřejmě pro zobrazování logových souborů .gwl které lze volitelně nahrát (kdežto "logování přes uloženou hru" se dělá souborem .gws)

ZCh

Mám dotaz - má owner u své WIG cge přístup k uploadnutým GWS souborům z logování?

to už vůbec ne, podle té dikce by měl mít spíš přístup k dobrovolně nahraným .gwl . Jenže ani ty v současné době nejsou vidět :frowning:

GWL soubory nehodlam nechat vubec generovat. Staci, kdyz se jeden takovy GWL soubor rozsiri do ruky dalsim cacherum a ti pak hned maji k dispozici spravne odpovedi na vsechny potencionalni otazky, co cartridge predklada hraci :expressionless:

Před chvílí jsem zaregistroval na www.wherigo.com nové verze builderu a playeru.
V playeru jsou mj.

ZCh

!!!
Fíha, díky za zprávu.
Teď přemýšlím, zda rychle instalovat tyto nové neozkoušené verze, nebo zůstat na starých zabugovaných, ale ozkoušených :slight_smile:

chjo…:@
Moje pracně vypiplaná cartridge z různými, ne zrovna jednoduchými úpravami, aby šla v předchozí verzi builderu a současně na webu uložit i zkompilovat, se v novém builderu nepřeloží (hláška error creating cartridge bez bližší informace) a ani neuloží (builder spadne do vyjímky a konec zdrojového souboru ořízne, pokaždé někde jinde).
Tak a co teď s tím… asi se na to vykašlu a tuto moji první cartridge už budu updatovat jen ve staré verzi builderu. Jinak bych zase dlouhé noci hledal, co tomu novému builderu vadí.
takže sice něco opravili, pár funkcí přidali, ale zase vznikly nějaké nové chyby :expressionless:

Nezoufej
To bude nějaký drobný prohřešek proti syntaxi
Já v poslední verze na doporučení (beta)testerů mírně modifikoval dialog


Wherigo.Dialog{
  {Text=[[Poklad ...]],},
  {Text=[[Nejdrive si ale poznacte odemykaci kod ktery prokazuje dokonceni hry: ]] .. Player.CompletionCode,},
  {Text=[[Timto Wherigo hra konci, a muzete se podle sipky vydat k vlastnimu pokladu (kesce)]],},}

no a ta čárka "konci, a muzete" způsobila že nová verze builderu se zachovala podobně jako u tebe

ZCh

Takže jestli to dobře chápu, tak mám odmazat všechny čárky ve větach? :o
Nebo pomůžou ty přidané složené závorky vně textu?

Myslel jsem že je chyba u mě, ale podle PaBova logu na Stříbrné Lhotě mi připadá pravděpodobné, že funkce nejnovější verze Playeru, výběr adresáře pro cartridge, je hodně nestabilní. Takže zatím doporučuji cartridge ukládat raději do implicitního adresáře v My Documents…

No, presne to jsem vcera udelal ;). Ale on tam doprostred jmena pridal CRLF (coz u adresare docela vadi) a nasledne zkolaboval. Po chvili pokusu jsem skoncil tak, ze jsem mel CRLF po kazdych dvou znacich :p! Nepomohlo ani smazani konfiguracniho souboru - pak to zase lehlo na autodetekci GPS, takze nakonec jsem ten konfiguracni soubor rucne zeditoval a bylo to…

Navíc jsme s Fénixem zjistili, že nový player neumí updatovat u zón změny souřadnic.
Teda, když to tak sleduju, tak to tam snad v té Americe programují naprostí amatéři. :@
Takové fatální chyby, jako že se objeví CRLF v názvu souboru, že změna formátu souřadnic zmrší hodnoty v proměnných souřadnic zón, nebo že čárka v textu je chápána jako oddělovač v příkazech - to snad ani není možný! Takové jednoduché a přitom fatální chyby přece musejí umět opravit ze dne na den, a ne aby po měsíci čekání tyto chyby byly v novém builderu i nadále!!!
Hlavně že přidali pár dalších příkazů a fcí (Alerty, podpora mp3…) No to mne tak vytrhne, když cartridge padá i při přehrávání obyčejného krátkého WAVu…
4/5 času programování vlastní cartridge jsem strávil, tím, že jsem musel řešit, jak obejít problémy, co builder nebyl schopen správně interpretovat, nebo po sobě po uložení znovu korektně načíst!
A ten nový builder teď na těch mých zdrojácích padá, jak hruška a bůhví proč. Tak jsem se vrátil ke starému builderu.

Přijde mi to jak v té pohádce z Rumcajse kde byla kněžna, která pletla punčochu a uměla to tak, že vždycky dvě očka upletla a tři upárala…:expressionless:

Objevila se nová verze playeru 2.0.5004.4972 která by to podle release notes snad mohla řešit:

To Mion:
Tak přece jen se na na to Amíci nevykašlali, i když ti neodpověděli. Těžko tuhle vlastnost mohli ignorovat, vždyť na ní jsou snad postaveny cartridge typu "Play anywhere", nebo ne ?

Odpověděla mi nakonec Annie před dvěma dny, že se na to podívají :slight_smile:
Ověřím, zda to opravdu funguje, ale jsem rád, že se oplatilo je o tom informovat - zřejmě s tímto bugem zatim neměl nikdo co do činění.