Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js]Gra via www w php
Forum PHP.pl > Forum > Przedszkole
RobaczekPL
pisze z kolegą grę w php i mamy problem postac gracza ma możliwość pracowania wybiera od 1 do 8 godzin i za to dostaje złoto przelicznik lvl razy 35 razy ilość godzin pracy lecz problem jest w tym ze po rozpoczeńcu jak kliknie sie otswierz albo wyłonczy strone to tamto sie anuluje i odlicza od poczontku gdy znowu sie wejdze a po odczekanej godzine nie dostaje sie złota
  1. <form action="odliczanie.php?czas" method="post">
  2. Czas:
  3. <select name="czas">
  4. <option value="100">10 minut</option>
  5. <option value="1200">20 minut</option>
  6. <option value="1800">30 minut</option>
  7. <option value="2400">40 minut</option>
  8. <option value="3000">50 minut</option>
  9. <option value="3600">60 minut</option>
  10. <option value="4200">70 minut</option>
  11. <option value="4800">80 minut</option>
  12. <option value="5400">90 minut</option>
  13. <option value="6000">100 minut</option>
  14. <option value="6600">110 minut</option>
  15. <option value="7200">120 minut</option>
  16. </select><br><br><input name="" value="Odliczaj" type="submit">
  17.  
  18.  
  19.  <?php
  20.  
  21.  if ($czas) {
  22.  {
  23.  print "<div id='czas'>
  24. <script language='JavaScript' type='text/javascript'>
  25. function t(){
  26. v = new Date();
  27. n = new Date();
  28. o = new Date();
  29. for (cn = 1; cn <= anz; cn++) {
  30. bxx = document.getElementById('bxx' + cn);
  31. ss = bxx.title;
  32. s = ss - Math.round((n.getTime() - v.getTime()) / 1000.);
  33. m = 0;
  34. h = 0;
  35. if (s < 0) {
  36. bxx.innerHTML = '---';
  37. mysql_query('update players set credits=credits+5000 where id=$stat[id]');
  38. <head><meta http-equiv='Refresh' content='1; url=odliczanie.php' /></head>
  39. } else {
  40. if (s > 59) {
  41.  m = Math.floor(s/60);
  42.  s = s - m * 60;
  43. }
  44. if (m > 59) {
  45.  h = Math.floor(m / 60);
  46.  m = m - h * 60;
  47. }
  48. if (s < 10) {
  49.  s = '0' + s;
  50. }
  51. if (m < 10) {
  52.  m = '0' + m;
  53. }
  54. bxx.innerHTML = h + ':' + m + ':' + s + '';
  55. }
  56. bxx.title = bxx.title - 1;
  57. }
  58. window.setTimeout('t();', 999);
  59. }
  60. </script>
  61. <br>
  62.  
  63. <td width='100%'><b>
  64.  
  65.  
  66. Czas: </b></td>
  67.  
  68. <tr align='left'>
  69. <td bgcolor='#4d4d4d'> <div id='bxx1' title='$czas'></div>
  70. </td>
  71. </tr>
  72.  
  73. </tbody></table>
  74.  
  75. <script language=''javascript''>anz=1;t();</script>
  76. "; }
  77. }
  78.  
  79. ?>
qwaq
a gdyby tak moment rozpoczęcia pracy zapisywany był do pliku?
Maro400
do pliku czy do bazy lepiej?
i jakim sposobem potem sprawdzac czy czas minal czy nie? a jak minal to dodaje jakis rekord do bazy - jak moge to zrobic ?
qwaq
czy do pliku czy do bazy to już twoj wybór

a co do sprawdzania
to mając zmienną $początek stworzoną w momencie rozpoczęcia pracy za pomocą funkcji time()
tworzysz zmienną $koniec za pomocą time() i porównujesz

poczytaj o time()

przykładowy kod:
Kod
//z bazy lub pliku pobierasz zmienną $początek

$koniec=time();
$sekundy=$koniec-$początek;
//$sekundy to czas jaki upłynął od początku do teraz (w sekundach)
Maro400
sporbuje zrobic -> ale bedize trzeba wtedy przerobic skrypt odliczania ?
Louner
Skrypt odliczania jest szczerze mówiąc najmniej ważny. Liczy się to, gdzie będzie przechowywany moment w którym się ono rozpocznie i informacja jak długo ma trwać. tongue.gif
Maro400
sad.gif nie wiem jak sie za to zabrac :/ mzoe jakas wskazowka ?

----
dane bede przechowywal w bazie danych - wiec zrobie kolumne: czas INT 5
tak?
qwaq
$poczatek=time(); //to czas rozpoczęcia pracy

  1. <?php
  2. $teraz=time();
  3. $ilesekund=$teraz-$poczatek;
  4. ?>

$ilesekund - to czas w sekundach jaki upłynął od początku pracy.

jeśli chcesz w danym momencie "wypłacić" pracownikowi pieniądze to
wyliczasz należność za $ilesekund (czyli aktualny czas pracy) i ustawiasz $poczatek na aktualny czas

edit:

funkcja time() zwraca ci ilość sekund od 1970 roku wiec będzie to 10-cio cyfrowa liczba
Maro400
Kod
<form action="odliczanie.php?czas" method="post">
Czas:
<select name="czas">
<option value="600">10 minut</option>
<option value="1200">20 minut</option>
<option value="1800">30 minut</option>
<option value="2400">40 minut</option>
<option value="3000">50 minut</option>
<option value="3600">60 minut</option>
<option value="4200">70 minut</option>
<option value="4800">80 minut</option>
<option value="5400">90 minut</option>
<option value="6000">100 minut</option>
<option value="6600">110 minut</option>
<option value="7200">120 minut</option>
</select><br><br><input name="" value="Odliczaj" type="submit">


       <?php

if ($czas) {
           {
     print "<div id='czas'>
<script language='JavaScript' type='text/javascript'>
function t(){
  v = new Date();
  n = new Date();
  o = new Date();
  for (cn = 1; cn <= anz; cn++) {
    bxx = document.getElementById('bxx' + cn);
    ss = bxx.title;
    s = ss - Math.round((n.getTime() - v.getTime()) / 1000.);
    m = 0;
    h = 0;
    if (s < 0) {
      bxx.innerHTML = '---';
          mysql_query('update players set credits=credits+5000 where id=$stat[id]');
          <head><meta http-equiv='Refresh' content='1; url=odliczanie.php' /></head>
    } else {
      if (s > 59) {
    m = Math.floor(s/60);
    s = s - m * 60;
      }
      if (m > 59) {
    h = Math.floor(m / 60);
    m = m - h * 60;
      }
      if (s < 10) {
    s = '0' + s;
      }
      if (m < 10) {
    m = '0' + m;
      }
      bxx.innerHTML = h + ':' + m + ':' + s + '';
    }
    bxx.title = bxx.title - 1;
  }
  window.setTimeout('t();', 999);
}
</script>
    <br>

<td width='100%'><b>

<?php
$teraz=time();
$ilesekund=$teraz-$czas;
?>
Czas: </b></td>

<tr align='left'>
<td bgcolor='#4d4d4d'> <div id='bxx1' title='$ilesekund'></div>
</td>
</tr>

</tbody></table>

<script language=''javascript''>anz=1;t();</script>
                                                  ";        }
                                                    }

?>



i po kliknieciu odlicaj zrobic ze dodaje do bazy - ale jak ma to dodac?
zrobilem 2 tabele: czas i czas2
czas - to bedzie na ile sekund ustawilem
czas2 - ile sekund pozostalo ?

bo zalezy mi na tym ze jak sie wezmie odliczanie to odlicza nawet jak nie mamy wlaczonej strony, mozna zmienic strone a skrypt dalej odlciza i nawet jak nas na stornie nie ma to po uplynieciu czasu wykonuje jakies zapytanie sql
qwaq
po perwsze jedno pytanko:
Kod
  <?php

if ($czas) {
           {
     print "<div id='czas'>
<script language='JavaScript' type='text/javascript'>


skoro piszesz w javascript to po co ładujesz to w php?questionmark.gif
Maro400
a to zle ? :/
qwaq
jeśli poza javascriptem pomiędzy <?php a ?> nie ma nic to nie widze potrzeby używania php

pozatym napisz do mnie na gg bo nie bedziemy zaśmiecać forum
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.