Autor Zpráva
Jurra
Profil
Potřebuji takový script, na obrazovce budu mít třeba číslo 1 a za každou minutu se mi toto číslo navýší + 1.
Vím, jak na to, mám zkušenosti co se týče hodnot a proměnných s těmi problém nemám, ovšem nejsem si jist, jak říci " každou "minutu. Myslím si, že to bude fungovat pomocí skrytého časovače nemýlím-li se.
Děkuji předem všem, co si s mým problémem budou namáhat hlavu. ( v javascriptu to nechici )
Nox
Profil
Proč to nechceš v JavaScriptu? Dobře ti tak, je to jediná možnost;)

Alespoň pokud by se to muselo zvýšit aniž by uživatel refreshnul, pokud ne, potom by to šlo přes uložení proměnné a buď funkce času nebo CRON, ale nedal si moc informací, takže...
hansk
Profil
Tak bohužel v php žádný skrytý časovač není (pokud se nemýlím). Řešením by určitě mohl být javascript, další možností případně může být cron, to by jsi ale musel uvést konrétní problém.
Jurra
Profil
Konkrétně dělám on-line hru a tam je za potřebí tohoto - navyšování surovin
každou minutu by přibývalo třeba 20 "hlíny".
Ale stejně děkuji za snahu ;)
Sventek
Profil
Možná by bylo lepší při každém načtení stránky zjistit čas, kdy tam byl uživatel naposled a ty jednotky mu dopočítat podle rozdílu času.
suky
Profil
Jurra
Takovy veci by se meli resit cronem, ale chtelo by to domyslet. Pokud si ukazoval jen nazorny priklad, pak je to ok.
suky
Profil
Sventek
Hodne zjednodusene by to slo taky, ale co udelas, kdyz se v prubehu hracovy nepritomnosti se surovinami bude manipulovat? Popr. se bude menit jejich produkce?

edit: pravopis :D
Sventek
Profil
suky
Já hry toho typu nehraju, proto mě vůbec nenapadlo, že když hráč není u pc, tak by mohl někdo manipulovat jeho surovinami nebo měnit jejich produkci, v tom případě je opravdu nejlepší dobře vyladěný cron.
Nox
Profil
Jj, přesně tak - CRON, ale můžeš ho skombinovat i s JavaScriptem, tak to má myslim třeba trafian, aby se to hráčovi přičítalo, ikdyž nerefreshuje
suky
Profil
Nox
Tak to uz jsou hratky s UI. =)
Ssob
Profil
Cron v takovem pripade nic neresi, server by to nerozchodil. Takove veci se resi, ze se uklada mnozstvi surovin a cas posledni aktualizace. Pri kazde manipulaci se surovinama se vypocita nove mnozstvi surovin a cas se nastavi na aktualni.
suky
Profil
Ssob
Tak to je neefektivni zpusob. Predstav si, ze vypocet surovin hracu zobrazovanych v zebricku se bude provadet a hrace, ktery s nimi nema nic spolecneho.

Cron v takovem pripade nic neresi, server by to nerozchodil.
Tomuhle teda nerozumim...
Ssob
Profil
suky
Tak to je neefektivni zpusob. Predstav si, ze vypocet surovin hracu zobrazovanych v zebricku se bude provadet a hrace, ktery s nimi nema nic spolecneho.
Tomu nerozumim zase ja. :) Slo mi o to, ze by se suroviny aktualizovaly pouze v pripade, kdyz do nich bude zasahovat nejaky vnejsi zdroj (np. kradez, postaveni budovy, zmena rychlosti vydelavani - i kdyz nad tim by se dalo distkutovat, ...).

Tomuhle teda nerozumim...
Tim jsem chtel rict, ze pokud by mel server kazdou minutu (nedejboze sekundu) upravovat mnozstvi surovin kazdeho hrace, tak by to byla opravdu velka zatez.
suky
Profil
Ssob
Zalezi to na te hre, ale pokud by mela byt dukladneji zpracovana, tak to proste musi byt cronem, tomu se nevyhne. A urcite je efektivnejsi vytahnout si hotovy vysledek nez ho pokazdy obnovovat u vsech pristupu k nemu.

tak by to byla opravdu velka zatez.
Urcite ale vyhodnejsi, nez kdyz se to bude projevovat u jednotlivych uzivatelu! Predstav si, ze kazdy uzivatel bude obnovovat vsechny suroviny vsech hracu, se kterymi ma co docineni... To se mu bude stranka nacitat peknou chvili...
pokker
Profil
ja tu sice len preplavam , mozno som nepochopil pointu , ale co Ajax ?
Jurra
Profil
Všem Vám moc děkuji za dobré rady,
zkusím se tedy kouknout na ten cron, přeji příjemný den :D
Ssob
Profil
suky
kazdy uzivatel bude obnovovat vsechny suroviny vsech hracu, se kterymi ma co docineni
Nevim o jakou hru se jedna. Jedina online hra, kterou jsem hral byl ******* a tam v podstate nebylo treba obnovovat suroviny jinych hracu. Nechce se mi to rozebirat, asi mame kazdy na mysli neco jineho, protoze opravdu nedokazu pochopit jak to myslis..

EDIT: misto hvezdicek ma by t*r*a*v*i*a*n ... asi zakazane slovo.
suky
Profil
Ssob
Tuto hru jsem hral taky, a "v podstate nebylo treba obnovovat suroviny jinych hracu" neni pravda, prece kdyz utocis svymi vojaky na jeho vesnici, musi se vedet, kolik surovin druhy hrac ve vesnici ma. Zrovna pracuji na webove hre a tak koukam na takove hry uz i z druhe strany.
Ssob
Profil
suky
Dobre, bavme se o t r a v i a n u. Kdyz nekdo poslal utok, tak se ten utok jenom zaradil do databaze spolecne s casem prichodu, zatim se nic nevyhodnocovalo. Pak vsechny akce samozrejme zpracovaval cron v kazde sekunde. Po zpracovani utoku pouze pribylo hlaseni s vysledkem utoku. Nacitani stranky nebylo zpozdeno zpracovavanim udaju. Rozdil je v tom, ze cron zpracovava v kazde sekunde suroviny (plus dostaveni budov, bitvy, atd.) pouze hracu, u kterych to je potreba.
Jurra
Profil
Potřeboval jsem jen ten script, který jsem popsal - nic víc nic mín.
Prostě a jednoduše každou hodinu nebo minutu to je jedno (to bych si dokázal přenastavit) by se mi přičetl určitý počet surovin - na změnu produkce za "hodinu" (jako že by se mi po zvýšení úrovně dolu zvýšila i produkce )nedbám - to teď neřeším. prostě za určitý čas + 1.
A žádné že by nepřítel znal mé suroviny apod. Nějak to jít musí, protože to tak má spousta online her
t r a v i a n , i k a r i a m , d i v o ke km e ny, i m p e r i a a mnoho dalších...... Vůbec by mi nevadilo kdyby
to bylo v javascriptu pokud ovšem by šla hodnota "výďelek za hodinu" použít v php a mysql a dále s ní počítat či pracovat v php
Jurra
Profil
Teď mi doufám rozumíte ---
TSD
Profil
Proč v každé sekundě, probůh?

javascript je špatně, protože ten běží v browseru a změnu hodnoty v databázi nezařídí, tzn. je použitelný tak maximálně pro refreshnutí stránky.
cron není z principu špatně, záleží na logice hry.

A: Když půjde o hru, která bude od X hráčů generovat stejné požadavky, tak bych možná použil cron, který by každou minutu přepočítal data.
B: Když budu mít aktivních - přihlášených průběžně 10, tak budu hodnoty - jen ty, které potřebuju zobrazit - přepočítávat při načtení stránky. Samozřejmě jen ty hodnoty, které s tou danou stránkou daného usera souvisí.
Počet registrovaných podle mě nehraje roli.

To první řešení připadá v úvahu jen v extrémních případech, kdy by ta druhá varianta generovala velké množství skupin stejných požadavků, typicky třeba v situaci, že na sebe útočí dvě pětice hráčů a všechny zajímají stejná čísla.

Varianta A mi nepřipadá moc pravděpodobná, ty hry neznám, jen uvažuju, jak bych to dělal. Volil bych B.
suky
Profil
Ssob
Pak vsechny akce samozrejme zpracovaval cron v kazde sekunde
Asi sme si nerozumneli, samozrejme by cron nepripocitaval vsechny suroviny za sekundu, ale resilo by se to nejak logicky, podle typu logiky hry.

TSD
B: Když budu mít aktivních - přihlášených průběžně 10, tak budu hodnoty - jen ty, které potřebuju zobrazit - přepočítávat při načtení stránky. Samozřejmě jen ty hodnoty, které s tou danou stránkou daného usera souvisí.
Nj, to by byly ty suroviny, u nich se to vyplati, ale nechat bezet vse u ostatnich hracu, je nerealne. Kombinoval bych A a B.

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:

0