Autor Zpráva
Šuter
Profil
Takže prosím Vás o radu ohladne pripočítavania surovín na webe.

Keď sa hráč zaregistruje a prihlási obdrží 500 dreva viď. $drevo_mysql = vytiahnuté z tabulky (hodnota 500)
Drevo ťaží 3600/hodinu, teda 60/minutu, teda 1/sekundu viď $tazba_sekunda = 1

Prejdem k veci.
Potrebujem aby mi to každú sekundu pridalo +1drevo teda: $drevo = $drevo_mysql + $tazba_sekunda
A potrebujem aby ta hodnota ostala, nie, že vypnem stránku a začína sa znova od 500. Potrebujem aby to nebralo ohlad na to, či je užívatel na stránke. Chcem aby to pripočítavalo aj keď tam nebude.

Napadlo ma vytiahnuť údaj z mysql a potom ho každú sekundu updatetovať + 1, ale to by pri viacerých užívateloch tá databáza vybuchla :D

Ďakujem za Vaše odpovede.
Tori
Profil
Šuter:
A kdy se má přestat připočítávat? (např. pokud se zaregistruju a pak znova přijdu na web za 3 měsíce, budu mít 8 milionů dřeva, nebo ne?)
Šuter
Profil
Samozrejme to by som obmedzil podmienkou. Príklad do 5000.
abc
Profil
Řekl bych, že se to obvykle přepočítává až ve chvíli, kdy jsou ta data potřebná - tzn. např. při přihlášení uživatele.
Spočítate si, jak dlouho uživatel nebyl na webu a přičtete mu dřevo..
Šuter
Profil
Keď si príklad, klikneš na divoke-kmene, tak tam to rastie každú sekundu.
margin
Profil *
Za předpokladu, že zanedbáš, že čas u pohybujícího se uživatele plyne jinou rychlostí, než na serveru, tak můžeš počítat množství dříví u uživatele třebas každou sekundu javascriptem a výsledek zobrazit.
Anonymní
Profil *
A co kdyby se prostě suroviny přičítaly(nebo odečítaly) pouze v případě obnovení stránky, přihlášení či podobné akce? Počítání surovin na straně uživatele, jako je například v divokých kmenech by zajištoval javascript(suroviny se ti počítaj v prohlížeči i přesto že odpojíš internet). A prostě při každém obnovení stránky(či jiný akci), by se v databázi zkontrolovala časově poslední akce a od toho by se udělal časový rozdíl a prostě by se vypočítal rozdíl času * sekundová produkce. Nebo nějak tak já to jen tak teď plácnul, jak by to možná šlo udělat. Netvrdím, že to takhle má být. Ale aktualizace každou sekundu nepřipadá v úvahu už jenom z důvodu zbytečné zátěže serveru a ošetřovat tohle pouze přes javascript nepřipadá v úvahu už jenom z důvodu že by ti to kdokoliv a kdykoliv mohl zneužít.
tiso
Profil
Šuter: robí sa to zhruba tak, ako píše Anonymní:
- v databáze máš uloženú hodnotu suroviny, čas kedy bola tá hodnota uložená a produkcia (rýchlosť akou má pribúdať)
- pri načítaní stránky si vypočítaš aktuálnu hodnotu suroviny (uložená hodnota + (rozdiel času * produkcia)) a na stránke ju meníš pomocou javascriptu
- do databázy stačí zapisovať údaje pri zmene stavu (nákup, zmena produkcie, útok), môže sa zapisovať častejšie (napríklad raz denne cronom)
- aktuálnu hodnotu môžeš obmedziť na nejakú maximálnu hodnotu
1Pupik1989
Profil
hodnotu v databázi aktualizuješ s časem akorát při úbytku surovin. jinak to je naposledy_surovin + naposledy_cas_v_sekundach + produkce_za_sekundu. Při každé obnově na serveru spočítáš čas a pošleš ho javascriptu na přičítání.
Šuter
Profil
Tiso, urobil by si mi prosím ten skript? E-mail: frendly@centrum.cz
tiso
Profil
Šuter: nie. Skús niekoho iného a napíš čo za to ponúkaš.
Anonymní
Profil *
Šuter:
urobil by si mi prosím ten skript
Takhle já bych ho byl taky schopnej vytvořit na druhou stranu proč bych to dělal. Očividně se snažíš udělat nějakou kopii některé online hry a promiň pokud nejsi schopný vytvořit takovouhle poměrně jednoduchou věc tak by mě docela zajímalo jak by finální verze hry vypadala.

Btw: Nejlépe se naučíš když si to sám vyhledáš(zkopíruješ více kódů) či vymyslíš, když to za tebe udělá někdo jinej nedá ti to vůbec nic..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: