Jump to content
bures.peter

Editor visual scripting - help for my game Sky Battlegrounds in Czech language

Recommended Posts

Posted (edited)

Hello, i have simple question. Is there someone who can help me with sophisticated problems in visual scripting, but in Czech language? In English i´m not good enough for understand or explain my problem...

 

My problem in short: useing or saving a lot of arrays values (score rating etc. )for hundreds ( ? ) of players but without load on server when players go offline (For example: load old arrays from storage, when player come online again and no active when go off?) 

(My game is Sky Battlegrounds)

 

Edited by bures.peter

Share this post


Link to post
Share on other sites

Zdravím. :) Arraye nebudou na tohle potřeba.
Když vytvoříš nějaké scenario, pod tímhle tlačítkem se skrývá game storage. Můžeš tam vytvořit persistentní data, která pak zůstávají každému hráči uložená v jeho zařízení. 
image.png

Takže vytvoříš například proměnnou SCORE, a každému online hráči pak můžeš tuhle proměnnou aktualizovat. I když hráč odejde offline a pak přijde zpět, score bude mít pořád stejné.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Aha, to zní super!!! Díky ;-) 

Musím se na to podívat ingame, abych byl schopen reagovat, ale určitě se na něco ještě zeptám ;-) 

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

Tak jsem narazil na jednu věc, kterou nedokážu překonat. Nejde mi uložit inventář a to ani jak upravené předměty, tak ani ty defaultní. Když nastavím k uložení pole a jako hodnotu dám "ZISKAT INVENTÁŘ postava", tak mi to napíše chybu: " [item XXX] NENÍ PODPOROVÁN SERVEROVÝMI PROMĚNNÝMI NEZNÁMÁ INTERNÍ CHYBA (#17) in.... "

Ať dělám co dělám, vždycky se to ukáže a je úplně jedno, co to je za předmět, který v inventáři mám.

Jiný způsob, jak vytvořit kopii inventáře, než přes pole a použití zmiňované proměnné neznám 😞 


Předem díky za pomoc.

PS: Rating byl pro uchování jednoduchý, to jsem měl hned, díky 😉 

Edit: tak jsem vymyslel, jak by se to dalo obejít - ještě to zkouším, ale uložím - li item jako typ entity, tak to funguje... Kdyžtak později upřesním 

Edited by bures.peter

Share this post


Link to post
Share on other sites

Game proměnné bohužel neumí ukládat entity, no. :) Můžeš to vyřešit například tak, že budeš ukládat entity type pro každou z těch entit. 
image.png
 

  • Thanks 2

Share this post


Link to post
Share on other sites

Ano, přesně takto jsem to nakonec vyřešil....Ale dochází k jednomu problému, který nedokážu vyřešit. Pokud chci následně entity-itemy znovu obnovit (při opětovném lognutí hráče), tak se, ať dělám co dělám, při načtení více "stackových" entit (jako např. bandáže, náboje apod.) načte vždy všechny stacky s prvním použitým množstvím, pokud je v inventáři při uložení více "stacků".

Pokud je stack itemů při uložení pouze jeden (např. 65 nábojů v jednom stacku), načte se počet správně. Jakmile ale je "stack" rozdělen do dvou "stacků" (např. 60+5), tak se vždy načte celkový počet nábojů 120 - tj. 60+60, protože si command "for each item" pamatuje jen první proměnnou s daným typem. Absolutně nechápu proč, pořadí indexů je v pořádku, ověřoval jsem, že uložení jednotlivých stacků je v pořádku, vždy se uloží jak entita, tak její počet do odpovídajícího array. Jakmile ale použiji command "for each item", neumí to použít daný item množství a vždy využije 1. ( =index 0, resp. 1. index pro daný typ entity). Pokud zadám index ručně (nikoli jako "index pole daného itemu"), vše se nahraje správně ve správném počtu - pokud to budu stíhat, nahraji samozřejmě i nějaký screen "testovacího scriptu", kde script udělám trošku jednodušší, ať se to dá lépe replikovat. 

PS: Napíšu sem ještě jeden bug, ať nemusím zakládat nové téma, protože bych to v češtině stejně nedokázal popsat.

Hra mi občas dělá, že jednotlivé kolonky "visual scriptů", dokonce i objekty (vše v editoru) nejdou regulérně chytnout myší. Prostě je uchytím (pro posun scriptů / objektů, či rotaci - cokoli) a sami od sebe se, ač stále držím tlačítko myši, pustí, pak hned zase chytí, někdy script / objekt jiný, co je poblíž atd. Tady to vypadnutí a znovu uchycení se stane třeba 10x za vteřinu, kdy se snažím daný script/objekt posunout a vypadá to, jakoby mi na milisekundy vypadávala funkčnost levého tlačítka myši. Situace pak vede k tomu, že chci-li cokoli posunout/otočit, stane se to doslova hororovým úkonem, protože scripty/objekty označuji a pouštím, a opět označuji jiné v dosahu...Popsal už někdo tento bug? Pokud ne, pokusím se nahrát video, kde se to děje. Je to docela častý bug, co se mi furt dokola vrací (myš mám dozajista v pořádku - ověřeno)

Share this post


Link to post
Share on other sites

Mmm jediné co mě napadá u těch stacků je to, že pokud v poli vyhledáváš například náboje přes nějaký loop kde to hledá tu entitu od začátku, tak ono to vždy použije tu první co to najde.. To znamená že to poprvé hledá náboj, a najde ho to na indexu 2 kde je 60x. Potom to hledá další náboj ale zase od začátku, takže to znovu najde ten na indexu 2 co tam je 60x. :) Také se mi to už párkrát stalo, a vždy jsem byl zmatený. :D Musíš nějak ošetřit aby to nemohlo znovu najít ten samý item, třeba ten array promazávat postupně? Pokud tě nic nenapadne můžeš poslat scenario se scriptem nebo ten screen, a poradím lépe přímo na příkladu. :) 

Co se týká toho druhého issue, nevím že by jsme něco takového měli reportnuté.. takže určitě prosím poslat logy a video, to by bylo super. :) output_log a output_log_clean soubory najdeš pod Steam\steamapps\common\Ylands\Ylands_Data, pomohou nám lépe identifikovat problém, pokud tam bude. :)

  • Upvote 1

Share this post


Link to post
Share on other sites

Aha, tak to jsem netušil, že to vyhledává takto. Díky, to to opravdu vysvětluje. Já myslel, že jakmile to daný "item" použije, už ho znovu nepoužívá. S tímto vědomím se dá pracovat, díky 😉 

Druhý problém pošlu, uvidíme, kdy se k tomu dostanu, včera jsem nahrál novou verzi hry, tak ji chci nyní ve volném čase spíše trošku otestovat, jestli se tam nevyskytují nějaké závažné bugy - než začnu provádět další změny v editoru 😉 

Ještě jednou mockrát děkuji za ochotu, moc si ji vážím. 😉 

Share this post


Link to post
Share on other sites

Tak jsem problém díky Vašemu popostrčení zdárně vyřešil - mockrát děkuji 😉 

Problém byl opravdu v tom, že jakmile jsem použil script "pro každý item…", tak tento script, jakmile našel daný "item" se shodným jménem, použil pro množství tento index - tzn. ten první. Vyřešil jsem to použitím scriptu "opakovat x-krát" a opakování jsem dal délku pole. Index jsem každé opakování zvednul o +1 jak pro "druh itemu", tak pro "množství itemu". Šlape jako po másle 😉 

Co se druhého bugu týče, včera se zrovna ani na chvíli nevyskytnul, tak jsem ho nemohl nahrát na video...Jakmile se znovu vyskytne, obratem ho sem pošlu. Bohužel čím je tento bug způsoben jsem nedokázal vypozorovat, takže jsem odkázán na to, až se tak prostě zase stane...Nejsem schopen ho replikovat.

  • Like 1

Share this post


Link to post
Share on other sites

Tak jsem očekával, že se ten mnou popisovaný bug vyskytne v brzké době a musím přiznat, že od té doby, co jsem zde reagoval se nevyskytl. Jsem zmaten, vzhledem k tomu, že se ten bug opakoval každý druhý den a nyní již ani jednou.... Ale tím lépe, že se již nevyskytl, snad to nezakřiknu...

Prozatím tedy je vše v pořádku a pokračuji v tvorbě ničím nelimitován 😉 

Do budoucna bych se snad jen chtěl zeptat, zda-li je nějaká možnost uložit do hry určité hodnoty tak, jak jste mi poradil uložit hodnotu pro každého hráče (např. inventory)

Chtěl bych docílit toho, že by si hra pamatovala jednu hodnotu (průměrný rating hráčů, kteří ve hře byli) a při restartu serveru (z důvodu odlognutí všech hráčů) by se všechna vstupní data nesmazala.

Napadla mě alternativa, že by se tato hodnota měnila pomocí určitého vzorce dle hráčů, kteří do hry vstoupily a navzájem by si tuto hodnotu zprůměrovaly. Postupně by se tak hodnota stávala průměrem přesnějším a přesnějším. Nevýhoda ale je, že když je menší stav hráčů (1!?), tak tato průměrná hodnota neodpovídá naprosto ničemu...

Děkuji.

Share this post


Link to post
Share on other sites
Posted (edited)

Zdravím po delší době.

@NaruTheHuman
Našel jsem jeden velmi nepříjemný bug.

Když vendorovi (Human NPC) označím lištu zdraví jako "nikdy nezobrazovat" - bugne se celá hra tak, že nejdou označovat žádné itemy, entity, prostě nic, resp. označit jdou, ale nezobrazí se "výběr vlastností".

Přikládám screen, kde jsem lištu zdravý volil. Pokud se zvolí možnost "vždy zobrazovat" nebo "zobrazit jen když je plný" bug se nestane.

20200509121416_1.jpg

Edited by bures.peter

Share this post


Link to post
Share on other sites

Zdravím. Tak nedokážeme to zreproduktovat. Poslal byste nám prosím logy a mapu, na které se to děje? A děje se to pokaždé, když to vendorovi přepnete?

  • Upvote 1

Share this post


Link to post
Share on other sites
Posted (edited)
20 hours ago, Adam Snellgrove said:

Zdravím. Tak nedokážeme to zreproduktovat. Poslal byste nám prosím logy a mapu, na které se to děje? A děje se to pokaždé, když to vendorovi přepnete?

Ano, děje se to pokaždé, co jsem to zkoušel (což je cca 5x - snažím se tomu spíše vyhnout). Ty logy jsem chtěl poslat hned, ale nenašel jsem je (podle jiného vlákna, kde jste napsal cestu k souboru) - zkusím ještě jednou, třeba existuje někde zdvojená složka. Ale zeptám se - ten log musím nahrát hned po onom bugu? Protože to je už pár dní, co se to stalo a od té doby se tomu úspěšně vyhýbám (nové NPC kopíruju z již správně nastavených - dříve vytvořených a upravuji jen vzhled a script)

Mapa je daná na workshopu jako "Sky Battlegrouns". Pokud je možné si ji stáhnout z tama. Pokud ne, jak ji mám poslat? Nechci ji zveřejňovat (zatím) všem, dokud nebude hotová.

Soubor mapy poslat umím - ale ten není pokud vím nijak chráněn proti otevření a kopírování mých scriptů, které ještě dát veřejně nechci.

edit: Zkusím bug zreprodukovat též na jiné mapě - přiznám se, že jsem to nezkoušel😞 

(Pokud by to šlo zreprodukovat, mohu poslat tuto mapu bez omezení 😉

Edited by bures.peter

Share this post


Link to post
Share on other sites
Posted (edited)

@Adam Snellgrove

log_userscripts.txtoutput_log_clean.txtoutput_log.txt

Zde přikládám logy - byly pod trošku jiným umístěním, než jsem je hledal prvně (tedy: "D:\Steam\steamapps\common\Ylands\Ylands_Data")

Mapa poslána přes osobní zprávu (a přes odkaz na uloz.to). Nešlo mi nahrát soubor zde na forum, resp. nevím jak...

Prosím o případné informování.
Ještě doplním, že jsem si všiml, že když se ten bug děje, což je pokaždé jak jsem zmiňoval výše, tak mohu zakliknout všechny tři možnosti zobrazování životů - viz. poslaný screen.

Kdybyste měl jakékoli upřesňující dotazy, neváhejte se zeptat.
Předem díky za odpověď.

edit: zapomněl jsem zmínit ještě jednu situaci, která se vyskytuje. Když dám při této situaci, tedy když změním ono zobrazování životů, a následně dám "upravit script", tak z editování scriptů už nevylezu. Sice můžu normálně editovat, ale ani přes tlačítko "hotovo" se z editování nedostanu. Jediná možnost je hru nechat shodit a rozjet znovu. Nevím, jestli to v logu bude vidět, protože se tím pádem nedá hra uložit. Jinak jsem hru poté rozjel podruhé a změnil jsem ono zobrazení a nic označit poté už nelze, avšak save jde, takže jsem hru uložil. Bohužel mi pak nejde udělat ani export, takže jsem musel poslat verzi starou dva dny, kde není onen modrej panáček, ale jinak by to mělo být v podstatě shodné...

Snad to je takto dostačující. Pak už by mě napadlo snad jen poslat video...

20200512172250_1.jpg

Edited by bures.peter

Share this post


Link to post
Share on other sites
Posted (edited)

@Adam Snellgrove

Objevil se další bug - a opět s NPC. Ze mě neznámých důvodů nejsem schopen přiřadit trvale AI NPCčku v šabloně.  Ačkoli AI přiřadím, při testu hry je NPC bez AI. Jakmile se vrátím zpět do editoru a kouknu na šablonu NPC, tak AI je opět nepřiřazené (prázdné). Přiřadit AI NPCčku mimo šablonu lze normálně bez potíží a dříve jsem v šabloně AI normálně přiřazoval a doteď ve hře NPC šablony jsou zcela funkční - ale nové neudělám.. :( . Pokud chci přiřadit AI pomocí skriptu, ani to nelze...

Chci se zeptat. Mám posílat znovu soubor hry na Vás, tak jako předtím? Či mám zvolit jiný postup?

Jedná se o stejnou, mnou vytvořenou hru s vyšší game verzí - ale je velmi podobná, udělal jsem spíše jen vizuální změny.

Edited by bures.peter

Share this post


Link to post
Share on other sites

@Adam Snellgrove
Zdvořile se připomínám. Nějaké novinky? A hlavně - jak mám řešit poslední zmíněný bug? Eliminuje mi to možnost tvořit jakékoli NPC, které se respawnují….To je pro mou hru dost kritické...Momentálně jsem zastavil tvorbu, protože mi nejde v tomto směru pokračovat 😞

Share this post


Link to post
Share on other sites
Posted (edited)
2 hours ago, RedEagle_P1. said:

Id love to see more about this game :D

 

Look here: 

Thank´s for favor 😉 

Edited by bures.peter

Share this post


Link to post
Share on other sites

@NaruTheHuman @Adam Snellgrove
Mohu na Vás mít prosím další dotaz?
Začínám se potýkat s mírnou zátěží hry, když je ve hře hodně hráčů a tak už přemýšlím nad lepší optimalizací hry.

Napadlo mě hned několik možností a krom zjednodušení mnohých mých vlastních scriptů z mých "těžkých" začátků, které jsou zbytečně náročné, tak mě hlavně zajímá, jak funguje samotná hra Ylands - a už bych s tím chtěl operovat do budoucnosti, abych to pak nemusel předělávat. Jde o následující:

Ve hře mám nyní několik "létajících ostrovů" a na každém z nich jsou NPC, které jsou spawnuty. Nejsou to (zatím) nijak velké počty, ale vzhledem k rozšiřování obsahu hry (a tímto směrem mám do budoucna velké plány) by to mohlo dělat velké problémy na výkonu. Jaký má vliv na výkon spawnuté NPC, které není v dosahu hráče? A jaký je vlastně onen dosah? Chodí, i když ho nikdo nevidí? Případně mám všechny NPC despawnout, pokud není hráč poblíž? Nebo se NPC, když hráč není v dosahu, dostane do nějakého HW nenáročného "módu", kdy NPC zůstává pouze jako neaktivní uložená entita?

Předem díky za jakoukoli odpověď 😉 

Share this post


Link to post
Share on other sites

Zdravím :) Pokud jsou NPC mimo loadnutý chunk, nepočítá se pro ně AI ani nic jiného, jsou to jen uložené entity. Takže pokud jsou na oddělených ostrovech, nemělo by to vadit. :)

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
1 hour ago, NaruTheHuman said:

Zdravím :) Pokud jsou NPC mimo loadnutý chunk, nepočítá se pro ně AI ani nic jiného, jsou to jen uložené entity. Takže pokud jsou na oddělených ostrovech, nemělo by to vadit. :)

Díky moc! Přesně to jsem chtěl slyšet! 😉 
 

Share this post


Link to post
Share on other sites
Posted (edited)

@Adam Snellgrove @NaruTheHuman
Po delší době jsem opět narazil na problém a chtěl bych Vás poprosit o pomoc.

image.png.fbb04f59ccef8220a7c955eb5f1f7167.png

Toto se stane (pouze v editoru), protože nemám povolený tým hráče (který je vytvořený a zadaný jako testovací - Kingdom)

image.png.57c990cdf7f6ec6b3e3f54907741f3ec.png

image.png.73112162b85a40539d4db17a666155a4.png

A  ačkoli pokud se pokusím v editoru nové hry tento problém nasimulovat, nedokážu jej replikovat.
To mi po (při nepovolení) znemožňuje týmy využívat, protože se nový hráč respawne na random respawn pointu, místo na předem určeném místě, kde naběhnou všechny scripty.

Potřebuji, aby se nedal tým volit mimo povolené speciální místa (aby nešlo změnit roli např. při každé jednotlivé smrti, nebo při zapnutí hry)
tímto způsobem: (navíc to ukazuje chybně roly a tým...)

image.png.bee5d566d892b937324120f48c603be9.png

Ale abych mohl týmy nadále využívat (kvůli budoucím scriptům a friendly fire)'

Zkusil jsem to vyřešit tak, že týmy vypnu a přiřadím je k hráči scriptem - to funguje¨, hráč tým skutečně dostane a hra s tím dokáže pracovat, ale hráč se spawnuje naprosto random a já nevím, jak bez týmů určit spawn point při začátku hry...

Zde se omlouvám za diletantismus, ale skutečně nevím, jak z toho ven.
Pokud tedy mohu požádat o pomoc, pak jak určím, kde se má hráč spawnout jako 1. spawn, bez týmů a rolí? To by asi situaci vyřešilo. Typuji, že to souvisí s tím errorem, který jsem posílal.

Předem Vám děkuji za odpověď.

 

 

 

image.png

Edited by bures.peter

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×