Autor Zpráva
opsidiam
Profil
dobrý den mam problem, napisal som konecne low script na ospocen percent
<a href="javascript:lvl11()">ODPOCITAJ</a>
<br /><span><span id="zelezo1">0</span> % = LVL 3</span><script type="text/javascript">
function lvl11()

{
var poc = document.getElementById('zelezo1');

var cakaj = 0;

var timer = window.setInterval( function() {

  poc.innerHTML = cakaj;

  if (cakaj==100)

  {

    clearInterval(timer);

    window.location = 'javascript:zastavovac(),zel1()';

    return;

  }

  cakaj++;

}, 100);

}
</script>
<br />
je na 100% funkcný
1. neviem ako mam window.location = 'javascript:zastavovac(),zel1()'; dat to aby spravil to ze by hracovy vypisalo "Dostavane" alebo nieco ine.
2.aby tento script pripocitaval aj ked uzivatel nieje na stranke
dakujem dopredu a ospravedlnujem sa za pravopis
juriad
Profil
opsidiam:
Každý skript napsaný v JS může fungovat jen po čas, kdy je zobrazená stránka.

Co vlastně se snažíš vytvořit? Hru pro více hráčů, kde se těží suroviny a staví budovy?
Pokud ano, tak to se řeší úplně jinak (za účasti severu - PHP) a odpočítávání v JS je až poslední problém.
opsidiam
Profil
juriad
ano ma to bit na hru ale ked si to zoberem trochu inak tak ak to bude fungovat cez php tak by sa to dalo aj podla aktualneho datumu a casu
presnejsie , script zisti aky je datum a cas a zapise to, a nasledne k tomu pripocita dobu napr. stavania budovy ale ak som to pochopil spravne tak na kazdi lvl budovy by musel bit samostatni script a to je podla mna velmy vela tak som mislel ze by to slo cez javu ale asi nie tak teda ak by som to chcel cez php tak ako by som dosiahol ze by to slo aj ked uzivatel nebude online??
tazatel
Profil *
opsidiam:
Někde, velmi pravděpodobně v databázi, budeš mít informaci, že ta a ta budova, level 8, se staví třeba 18000 sekund. Stisknutím tlačítka "Stavěj" si přes ajax sáhneš do databáze, zjistíš, že aktuální level je 7 a stavba dalšího bude trvat 18000 sekund. Javascriptem zobrazíš odpočet, zařídíš dekrementaci po sekundě a přes php pošleš do databáze informaci "začal jsem stavět level 8 přesně v tuto sekundu".

Při každém refreshi stránky si nejdřív sáhneš do databáze. Když v tabulce rozestavěných staveb něco najdeš, ověříš, jak dlouho se to mělo stavět a kolik od začátku uběhlo. Když ten druhý čas je menší, jejich rozdíl promítneš do JS, který zobrazuje odpočet. Když je ten čas větší, updatneš level té stavby na +1.

Obojí samozřejmě ve vazbě na konkrétního hráče.
Jestli tomu nerozumíš, začni něčím jednodušším.
Marti_n
Profil
opsidiam:

Javascript sa nevykonáva na strane serveru, ale u klienta.
Ten odpočet je len na oko pre klienta, inú funkciu nemá.
Pravý čas dokončenia budovy musíš mať uložený v databáze, ktorý budeš kontrolovať či už nevypršal, ak vypršal, postavíš budovu (teda updatneš jej hodnotu + 1 v databáze a vymažeš riadok s aktuálnou výstavbou, ktorá vypršala)

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