Přejít na obsah


Fotka

Dynamická zóna


  • Pokud chcete vložit odpověď, přihlašte se
18 odpovědí na toto téma

#1 mandevil

mandevil

    Advanced Member

  • Members
  • PipPipPip
  • 521 příspěvků(y)

Publikováno 15 červen 2022 - 19:11

Ahoj, jde ve Wherigu mít zónu, jejíž souřadnice se spočítají až při běhu cartridge (z dat, které nasbírá hráč)?


  • 0

#2 doodle_cz

doodle_cz

    Advanced Member

  • Members
  • PipPipPip
  • 69 příspěvků(y)

Publikováno 16 červen 2022 - 7:51

Zadne Wigo sice na konte nemam, ale presto jsem si takrka jisty, ze to jde.


  • 0

#3 mh.mail

mh.mail

    Advanced Member

  • Members
  • PipPipPip
  • 1 781 příspěvků(y)

Publikováno 16 červen 2022 - 13:43

Ano, jde to.
  • 0
„Normální je nepodvádět.“
http://gc.i-mh.net/ | gc@i-mh.net

#4 None

None

    Advanced Member

  • Members
  • PipPipPip
  • 1 286 příspěvků(y)

Publikováno 16 červen 2022 - 19:55

Počítám, že to bude podobná konstrukce jako v "hýbavých" zónách. Ovšem tam bylo pár problémků s funkčností. Poté, co jsem pár kačerům hodně pokazil zábavu při hledání kešky "Go West", opustil jsem náhodu (náhoda je blbec) a začal vše dělat pseudonáhodně. Tím pádem mám vše pod kontrolou a třeba takový "Houbičky" fungujou jak z praku už docela dlouho. Samozřejmě pokud to udělá Miloš, tak to fungovat bude.


  • 0

#5 mandevil

mandevil

    Advanced Member

  • Members
  • PipPipPip
  • 521 příspěvků(y)

Publikováno 21 červen 2022 - 18:50

Tak jsem se doprogramoval do stavu, že mi wigo funguje, ale zjistil jsem, že u dynamické zóny mi funguje jen první update. Pokud uživatel změní vstupní hodnotu, tak už k updatu souřadnic zóny nikdy nedojde. Po dvou hodinách debugování jsem si skoro jist, že mi kód dělá to co má a problém je někde v tom updatování samotném. Netušíte, v čem může být problém?

 

Edit: Ted jsem zjistil, ze pri update se zona presune na mape tam, kam ma, ale navigace (sipka, vzdalenost) porad miri k puvodnimu mistu.


Tento příspěvek byl upraven od mandevil: 21 červen 2022 - 20:54

  • 0

#6 mh.mail

mh.mail

    Advanced Member

  • Members
  • PipPipPip
  • 1 781 příspěvků(y)

Publikováno 21 červen 2022 - 21:08

Zkus před přesunem zónu deaktivovat a po přesunu znovu aktivovat.
  • 0
„Normální je nepodvádět.“
http://gc.i-mh.net/ | gc@i-mh.net

#7 mandevil

mandevil

    Advanced Member

  • Members
  • PipPipPip
  • 521 příspěvků(y)

Publikováno 21 červen 2022 - 21:10

Zkus před přesunem zónu deaktivovat a po přesunu znovu aktivovat.

To jsem zkusil, ale nepomáhá.

    objFinalka.Active = false
    objFinalka.Visible = false
    objFinalka.Points = bounding_box(n, e)
    objFinalka.OriginalPoint = ZonePoint(n, e, 0)
    objFinalka.Visible = true
    objFinalka.Active = true

 


  • 0

#8 mh.mail

mh.mail

    Advanced Member

  • Members
  • PipPipPip
  • 1 781 příspěvků(y)

Publikováno 21 červen 2022 - 21:41

Hm, ono se to v mapě nezaktualizuje, když z mapy vyskočíš a pak se vrátíš, tak by se to mělo zaktualizovat. Tohle je věc WhereYouGo a asi s tím nic neuděláš. Ale ta zóna by měla být aktivní na tom novém místě (událost při vstupu atd.), takže funkční by to mělo být.

Možná bych to zkusil řešit pomocí dvou zón, např. A a B. Aktivní a viditelná je A, deaktivovaná je B. Nastavím nové souřadnice do B. Deaktivuji A a aktivuji B. Nastavím nové souřadnice do A. Deaktivuji B a aktivuji A. A tak pořád dokola.
Pro události vytvořím funkce a budu je volat u A i u B. Anebo ten kód budu mít 2x a při změnách to budu muset udělat na dvou místech. Funkce je v tomhle lepší.
  • 0
„Normální je nepodvádět.“
http://gc.i-mh.net/ | gc@i-mh.net

#9 mandevil

mandevil

    Advanced Member

  • Members
  • PipPipPip
  • 521 příspěvků(y)

Publikováno 21 červen 2022 - 21:46

Hm, ono se to v mapě nezaktualizuje, když z mapy vyskočíš a pak se vrátíš, tak by se to mělo zaktualizovat. Tohle je věc WhereYouGo a asi s tím nic neuděláš. Ale ta zóna by měla být aktivní na tom novém místě (událost při vstupu atd.), takže funkční by to mělo být.


Vzhledem k tomu, že ke updatu té zóny může dojít jen v inventáři, tak tou mapou to asi nebude.
 

Možná bych to zkusil řešit pomocí dvou zón, např. A a B. Aktivní a viditelná je A, deaktivovaná je B. Nastavím nové souřadnice do B. Deaktivuji A a aktivuji B. Nastavím nové souřadnice do A. Deaktivuji B a aktivuji A. A tak pořád dokola.
Pro události vytvořím funkce a budu je volat u A i u B. Anebo ten kód budu mít 2x a při změnách to budu muset udělat na dvou místech. Funkce je v tomhle lepší.

 
No já to zatím testuju ve webwigo.net. Ještě mě napadlo, jestli tu zónu pokaždé nevytvořit dynamicky znovu -- akorát nevím, jak smažu tu starou. Metodu se dvěma zónami zkusím, stejně mi nic jiného nezbývá.


Tento příspěvek byl upraven od mandevil: 21 červen 2022 - 22:28

  • 0

#10 mh.mail

mh.mail

    Advanced Member

  • Members
  • PipPipPip
  • 1 781 příspěvků(y)

Publikováno 21 červen 2022 - 22:35

Jo počkej, ten problém máš ve webwigu? Tak si zkompiluj cartridge a vyzkoušej to přímo v telefonu. Tam to může fungovat dobře.
Bohužel ty emulátory nelze brát doslova, určité rozdíly oproti telefonům tam jsou. Tyhle technické vychytávky se musí ladit přímo v telefonu.
  • 0
„Normální je nepodvádět.“
http://gc.i-mh.net/ | gc@i-mh.net

#11 mandevil

mandevil

    Advanced Member

  • Members
  • PipPipPip
  • 521 příspěvků(y)

Publikováno 22 červen 2022 - 8:39

Jo počkej, ten problém máš ve webwigu? Tak si zkompiluj cartridge a vyzkoušej to přímo v telefonu. Tam to může fungovat dobře.
Bohužel ty emulátory nelze brát doslova, určité rozdíly oproti telefonům tam jsou. Tyhle technické vychytávky se musí ladit přímo v telefonu.

 

Tak jsem to teda zkusil v telefonu ... a jsem zděšen. To co vidím ve WhereYouGo moc nepřipomíná to, co je v emulátoru. Hned na začátku WYG vyhodí nějakou kryptickou chybu, ale kartridž běží dál. Proměnné se z nějakých důvodů neinicializují, takže nevidím finálku, když mám zadat vstup, tak mi přes to WYG hodí okno s inventářem, v úkolech nejsou vůbec vidět popisy... prostě běs a hrůza.

 

Asi budu chvíli přemýšlet, jestli fakt chci dělat wherigo.

 

GKVykpG.jpg


Tento příspěvek byl upraven od mandevil: 22 červen 2022 - 9:06

  • 0

#12 mh.mail

mh.mail

    Advanced Member

  • Members
  • PipPipPip
  • 1 781 příspěvků(y)

Publikováno 22 červen 2022 - 10:13

A v čem tu cartridge vyvíjíš? Přímo v tom webwigu? Jestli ano, tak důrazně doporučuji Urwigo, ten builder je bez konkurence.

Btw. Ta chyba, kterou jsi vyfotil, říká, že je použitá nějaká funkce s názvem "__len", která neexistuje. Čert ví, kdo ji tam používá. Přímo ty sám, nebo webwigo?
A jestli to píšeš přímo v Lua, tak to není úplně to nejlepší.

Jak jsem psal výše - nainstaluj si Urwigo a většinu funkčnosti vytvoř pomocí diagramů, Lua použij jen výjimečně.

Já teď pár dnů nebudu k dispozici, ale případně bych ti pak mohl pomoci radou. Odkud jsi? Jestli z Prahy a okolí, mohli bychom se i sejít.

Budu si sice přihřívat vlastní polívčičku, ale jestli to neznáš, tak mrkni zatím sem:
http://gc.i-mh.net/w...wigo/index.html
  • 0
„Normální je nepodvádět.“
http://gc.i-mh.net/ | gc@i-mh.net

#13 mandevil

mandevil

    Advanced Member

  • Members
  • PipPipPip
  • 521 příspěvků(y)

Publikováno 22 červen 2022 - 10:48

A v čem tu cartridge vyvíjíš? Přímo v tom webwigu? Jestli ano, tak důrazně doporučuji Urwigo, ten builder je bez konkurence.


Základ jsem udělal v Urwigo a pak nějakou dodatečnou logiku dodělal přímo v Lua skriptu.
 

Btw. Ta chyba, kterou jsi vyfotil, říká, že je použitá nějaká funkce s názvem "__len", která neexistuje. Čert ví, kdo ji tam používá. Přímo ty sám, nebo webwigo?
A jestli to píšeš přímo v Lua, tak to není úplně to nejlepší. Jak jsem psal výše - nainstaluj si Urwigo a většinu funkčnosti vytvoř pomocí diagramů, Lua použij jen výjimečně.


"__len" je nějaká haluz, obecně je to metametoda u typu "table", která je k dispozici až od Lua 5.2, zatímco pokud vím, tak Wherigo jede na Lua 5.1. Proč se to něco snaží použít není jasné, můj kód to rozhodně není.

 

Jinak osobně radši píšu program než klikám v builderu, ale jestli to jinak nepůjde, tak budu muset přilézt zpátky ke křížku. Potíž je, že když děláš 10x stejnou věc, tak ve skriptu je to ctrl-c ctrl-v, zatímco v builderu se uklikáš k smrti.
 

Já teď pár dnů nebudu k dispozici, ale případně bych ti pak mohl pomoci radou. Odkud jsi? Jestli z Prahy a okolí, mohli bychom se i sejít.
Budu si sice přihřívat vlastní polívčičku, ale jestli to neznáš, tak mrkni zatím sem:
http://gc.i-mh.net/w...wigo/index.html


Nejsem z Prahy. Na tvoje stránky se podívám, nějak jsem je nenašel, když jsem hledal.


  • 0

#14 mh.mail

mh.mail

    Advanced Member

  • Members
  • PipPipPip
  • 1 781 příspěvků(y)

Publikováno 22 červen 2022 - 11:02

I v Urwigu se dají pomocí Ctrl-C a Ctrl-V kopírovat celé části diagramů (ale pouze v rámci stejného projektu, nelze to takto zkopírovat do jiného souboru). Navíc existuje entita "Funkce", která se dá volat z vícero míst.

Já jsem taky programátor, ale je lepší vše, co půjde, naklikat přes diagramy. Urwigo totiž vygeneruje prověřený kód a odpadne spousta problémů. Lua si nech jenom na speciality, na které diagramy nestačí. Ale člověk musí být fest opatrný - Lua 5.1 a všechno si ověřovat nejlépe přímo v telefonu.
  • 0
„Normální je nepodvádět.“
http://gc.i-mh.net/ | gc@i-mh.net

#15 mandevil

mandevil

    Advanced Member

  • Members
  • PipPipPip
  • 521 příspěvků(y)

Publikováno 25 červen 2022 - 19:37

Tak jsem to teda zkusil v telefonu ... a jsem zděšen. To co vidím ve WhereYouGo moc nepřipomíná to, co je v emulátoru. Hned na začátku WYG vyhodí nějakou kryptickou chybu, ale kartridž běží dál. Proměnné se z nějakých důvodů neinicializují, takže nevidím finálku, když mám zadat vstup, tak mi přes to WYG hodí okno s inventářem, v úkolech nejsou vůbec vidět popisy... prostě běs a hrůza.

 

Asi budu chvíli přemýšlet, jestli fakt chci dělat wherigo.

 

GKVykpG.jpg

 

BTW, přišel jsem na to, co způsobuje výše uvedenou chybu -- dám sem řešení, kdyby to někdo hledal.

 

Potíž spočívá v tom, že ve funkci

string.len(s)

operand "s" není správně převeden na typ řetězec, pokud je náhodou typu číslo. Když si to zkusíte v normálním interpreteru lua v počítači, tak to úplně normálně funguje:

Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> print(string.len(123))
3

Ve Wherigo runtimu to ale je nějak zmršené a musíte explicitně převádět čísla na řetězce:

string.len(tostring(s))

Super platforma, kde nemůžete věřit vůbec ničemu... ani že programovací jazyk se chová podle specifikace.


Tento příspěvek byl upraven od mandevil: 25 červen 2022 - 19:38

  • 0

#16 mh.mail

mh.mail

    Advanced Member

  • Members
  • PipPipPip
  • 1 781 příspěvků(y)

Publikováno 25 červen 2022 - 21:44

Ve WherYouGo je jako Lua virtual machine použita knihovna Krka/Kahlua (odkaz je v aboutu), jejíž poslední aktualizace je z listopadu 2011. Tvůj příklad je v Lua z roku 2012. Podstatu problému se string.len bych hledal někde tady, je tam prostě hodně stará Lua.
  • 0
„Normální je nepodvádět.“
http://gc.i-mh.net/ | gc@i-mh.net

#17 mandevil

mandevil

    Advanced Member

  • Members
  • PipPipPip
  • 521 příspěvků(y)

Publikováno 25 červen 2022 - 22:27

Ve WherYouGo je jako Lua virtual machine použita knihovna Krka/Kahlua (odkaz je v aboutu), jejíž poslední aktualizace je z listopadu 2011. Tvůj příklad je v Lua z roku 2012. Podstatu problému se string.len bych hledal někde tady, je tam prostě hodně stará Lua.

 

I podle dokumentace k verzi 5.1 se mají provádět automatické převody mezi typy. Tohle mi přijde jako chyba, ale kdoví, jak to je. Každopádně Wherigo už mi funguje, díky za výpomoc.


  • 0

#18 mh.mail

mh.mail

    Advanced Member

  • Members
  • PipPipPip
  • 1 781 příspěvků(y)

Publikováno 26 červen 2022 - 6:13

Jo, chyba to nejspíš bude, ale přímo v Kahlua, samotné wherigo bych v tomto případě nevinil. Ale to je koneckonců jedno.

V každém případě držím pěsti, abys vytrval a dotáhnul ho do konce. A kdykoliv budeš potřebovat, tak se ozvi.
  • 0
„Normální je nepodvádět.“
http://gc.i-mh.net/ | gc@i-mh.net

#19 davidb11

davidb11

    Advanced Member

  • Members
  • PipPipPip
  • 1 087 příspěvků(y)

Publikováno 26 červen 2022 - 7:20

Naprosto nerozumím řeči vašeho kmene!
  • 0




0 uživatel(ů) prochází toto téma

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

Reklama