V neděli (22.8.2010) jsem uploadoval GWZ soubor s novou verzí cartridge "Zatraceny mudla!". Asi od té doby se při stahování objevuje chybové hlášení: "Error During Upload".
Upozornil mne na to KUZA, který též napsal dotaz Groundspeaku, ale protže neměl dost informací, GS se domníval, že chyba je u mne.
Chybové hlášení uvádí při DOWNloadu chybu UPLOADu přesto, že na konci uploadu jsem dostal potvrzení, že upload se zdařil.
Upload jsem opakoval (opět potvrzení, že OK), ale i pak při downloadu stejné hlášení "Error During Upload".
Zkusil jsem cartridge přeložit pomocí jednorázové služby "Compile a Cartridge GWZ File" na adrese: http://www.wherigo.com/cartridge/compile.aspx. Tato služba vrátila funkční cartridge. Zřejmě tedy chyba není na mé straně.
Groundspeak jsem oslovil, uvidíme, co bude dál.
Máte někdo podobnou zkušenost z posledních dní?
Zdravím ProKesToma!
Úplně stejný problém jsem měl sám, když jsem nahrával finální verzi svého Labyrintu. Všechno se zdálo v pořádku, pokud jsem vygeneroval gwc v Urwigu a nahrál ho do navigace nebo mobilu, tak to chodilo, ale po nahrání na wherigo.com se při pokusu o stahování objevila tato chyba.
Nakonec jsem zjistil, že problém je v tom, že jsem použil něco, co je sice v jazyce LUA syntakticky správně, ale kompilátor pro Wherigo si s tím nerozumí. U mě to bylo konkrétně použití víceřádkových komentářů ve tvaru
--[[
komentář
komentář
]]--
Toto je v jazyce LUA v pořádku, ale komplikátor na wherigo.com to nezkousnul. Jakmile jsem tuto konstrukci vyhodil, bylo vše v pořádku.
Pokud se nejedná přímo o tento případ, pak určitě používáš něco, co to prostě nezkousne. Podle mého názoru je to přímo vepsaný kód v jazyce LUA, tedy něco v User Code.
Pokud na to sám nepřijdeš, zkus mi poslat soubor projektu a já se na to zkusím mrknout.
Hmmm… no, jediné v UserCode, co tam dřív nebylo, je:
- ošetření nil chyby a funkce:
Ale je mi divné, že přes jedno kompilační rozhraní to projde a přes druhé ne. Že by za tím byly dva různé kompilátory?
Zdroják pošlu přes SZ…
Problém již spolu řešíme e-mailem. Tady odpovím taky pro ostatní: Už to tak vypadá, že jsou tam různé kompilátory. Fakt jsem si s tím v dubnu užil. Nakonec jsem postupně z uživatelského kódu vyhazoval postupně části kódu, až jsem přišel na to, co zlobí. A přesně, jak píšeš - zkoušel jsem to taky přes online vygenerování souboru a to prošlo.
On bude problém především v tom, že to při stahování doplní do kódu odemykací kód a pak to online kompiluje výsledný gwc soubor. A tady bude někde rozdíl.
No, on i ten funkční online kompilátor do kódu vkládá jméno a odemykací kód. Jméno správně, odemykací kód je řetězec "none" - tedy nefunkční. Ale to nemění nic na tom, že něco tam stejně dělá. Počkám na vyjádření Groundspeaku, pak uvidíme.
Mimochodem - zkusil jsem v tom online kompilovaném gwc otestovat chybu nil (storno textového vstupu), ošetření zabralo, hra nespadla.
[center]:@ Zatracenej Groundspeak! :([/center]
Zatracenýho mudlu už zase můžete stahovat. Ale …
:@ Server wherigo se stal podstatně citlivější na obsah uploadovaného souboru, bylo nutno předělat i jednu funkci, která tam byla od počátku a některé funkce a dialogy z "Při spuštění" odstranit - využil jsem časovač. Zdá se, že v "Při spuštění" nyní nesmí být reference na jméno postavy, ani vlastnosti hráče nebo hry. Co vlastně vadilo v té funkci, která tam už byla dřív, ale teď bylo nutno ji smazat, na to jsem nepřišel. Postupně jsem tuto funkci postavil znovu a funguje. :o Jo… a taky v "Při spuštění" nesmí být volání VSTUPu.
Hodně mi pomohl MH.MAIL, který analýzou problému strávil dost nočního času. Nebýt jeho, nepřišel bych na to, že je problém i v té dlouho neměněné funkci, která dřív fungovala. Tímto ještě jednou děkuji.
Pro info: hru jsem doplnil několika ochranami (např. lze stornovat zadání textu) a pokud hra spadne a budete znovu hru načítat, pokusí se o opravu některých vnitřních proměnných. Jako poslední zabezpečení hra v určitém okamžiku nabídne k zapamatování heslo, kterým se po restartu hry dá dostat přibližně do stavu, v jakém se heslo zobrazilo. Toto heslo nejde nikdy jindy vyvolat a je pro každého hráče jiné.