Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Odpoczynek-problem z if'em
ArekJ
post 23.11.2008, 17:28:30
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

Ostrzeżenie: (0%)
-----


Witam,
piszę modyfikację odpoczynku do skryptu gry RPG, ale niestety napotkałem problem. Chce osiągnąć takie coś, że czynność(w tym wypadku odpoczynek) musi trwać X minut, a przez ten czas nie można nic wykonywać. Nie wiem zabardzo gdzie tkwi problem, ale IF sprawdzający czy śpię czy nie jest olewany przez serwer.
Kod:
  1. <?php
  2. $title = 'Dziurawy Kocioł';
  3. $title1 = 'Dziurawy Kocioł';
  4.  
  5. require_once('includes/head.php');
  6.  
  7. if ($player -> location != 'Altara') error ('Zapomnij o tym');
  8.  
  9. $czasczynnosci = var_dump($player -> czasczynnosci);
  10.  
  11. echo $czasczynnosci;
  12.  
  13. if ((int)$player -> czasczynnosci <= time())
  14. {
  15.  
  16. $cost = array(($player -> level * 3), ($player -> level * 5), ($player -> level * 10));
  17.  
  18.  
  19. $smarty -> assign (array('Cost' => $cost[0],'Cost2' => $cost[1],'Cost3' => $cost[2]));
  20.  
  21.  
  22. if(isset ($_GET['pokoj']) && isset ($_GET['step']) && $_GET['step'] == 'wybierz'){
  23.  
  24.  
  25.  
  26. if ($_GET['pokoj'] == 'maly')
  27. {
  28.     if ($player -> credits < $cost[0]) error ('Nie masz tyle pieniędzy!');
  29.  
  30.        $czas = time()+180;
  31.        $zapytanie = mysql_query('UPDATE players SET czasczynnosci = '.$czas.' WHERE id='.$player -> id)  or die(mysql_error());
  32.    
  33.           if($player -> energy + 1 > $player -> max_energy)
  34. {
  35.       $db -> Execute('UPDATE players SET credits=credits-'.$cost[0].', energy=max_energy WHERE id='.$player -> id);
  36. }
  37.           else
  38. {
  39.        
  40.           $db -> Execute('UPDATE players SET credits=credits-'.$cost[0].', energy= energy+0.5 WHERE id='.$player -> id);
  41. }
  42. }
  43.  
  44.  
  45.  
  46. if ($_GET['pokoj'] == 'sredni')
  47. {
  48.  
  49.     if ($player -> credits < $cost[1]) error ('Nie masz tyle pieniędzy!');
  50.  
  51.        $czas = time()+300;
  52.        $zapytanie = mysql_query('UPDATE players SET czasczynnosci = '.$czas.' WHERE id='.$player -> id)  or die(mysql_error());
  53.  
  54.           if($player -> energy + 1.5 > $player -> max_energy)
  55. {
  56.       $db -> Execute('UPDATE players SET credits=credits-'.$cost[1].', energy=max_energy WHERE id='.$player -> id);
  57. }
  58.           else
  59. {
  60.        
  61.           $db -> Execute('UPDATE players SET credits=credits-'.$cost[1].', energy= energy + 1.5 WHERE id='.$player -> id);
  62. }
  63.  
  64. }
  65.  
  66.  
  67.  
  68. if ($_GET['pokoj'] == 'duzy') {
  69.  
  70.     if ($player -> credits < $cost[2]) error ('Nie masz tyle pieniędzy!');
  71.  
  72.        $czas = time()+420;
  73.        $zapytanie = mysql_query('UPDATE players SET czasczynnosci = '.$czas.' WHERE id='.$player -> id)  or die(mysql_error());
  74.  
  75.    $db -> Execute('UPDATE players SET credits=credits-'.$cost[2].', energy=max_energy WHERE id='.$player -> id);
  76.  
  77.  
  78. }
  79.  
  80. }else{
  81. if(!isset($_GET['pokoj'])) $_GET['pokoj'] = '';
  82.  
  83.    $_GET['step'] = '';
  84.  
  85. }
  86. }
  87. else
  88. {
  89. echo 'Spisz';
  90. }
  91.  
  92. $smarty -> assign (array('Pokoj' => $_GET['pokoj'], 'Step' => $_GET['step']));
  93.  
  94. $smarty -> display ('hotel.tpl');
  95.  
  96. require_once('includes/foot.php');
  97.  
  98. ?>

Z góry dzięki za odpowiedź!


--------------------

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
erix
post 23.11.2008, 18:20:17
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
piszę modyfikację odpoczynku do skryptu gry RPG

Tak nawiasem, hostingi niezbyt przychylnym okiem patrzą na Vallheru. tongue.gif

Cytat
Nie wiem zabardzo gdzie tkwi problem, ale IF sprawdzający czy śpię czy nie jest olewany przez serwer.

Masz błąd w logice warunku; powinno być coś w tym stylu:

JEŻELI (time_podjęcia_akcji+czas_blokady>=time()){
śpi;
}


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
ArekJ
post 24.11.2008, 21:40:19
Post #3





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

Ostrzeżenie: (0%)
-----


Dobra potem spróbuję. A co do patrzenia na Vallheru... Z vallheru zostawiłem tylko karczmę i bank, resztę sam pisze smile.gif
P.S. A przynajmniej się staram bo nie zawsze mi to jak widać wychodzi tongue.gif

Witam,
na początku przepraszam za 2 posty pod sobą. Potem przepraszam, że tak długo, ale miałem problemy z internetem...
A więc. Napisałem tak:
  1. <?php
  2. $title = 'Dziurawy Kocioł';
  3. $title1 = 'Dziurawy Kocioł';
  4.  
  5. require_once('includes/head.php');
  6.  
  7. if ($player -> location != 'Altara') error ('Zapomnij o tym');
  8.  
  9. if ((int)$player -> czasczynnosci+startczynnosci>=time())
  10. {
  11. echo 'Śpisz';
  12. }
  13. else
  14. {
  15.  
  16. $cost = array(($player -> level * 3), ($player -> level * 5), ($player -> level * 10));
  17.  
  18.  
  19. $smarty -> assign (array('Cost' => $cost[0],'Cost2' => $cost[1],'Cost3' => $cost[2]));
  20.  
  21.  
  22. if(isset ($_GET['pokoj']) && isset ($_GET['step']) && $_GET['step'] == 'wybierz'){
  23.  
  24.  
  25.  
  26. if ($_GET['pokoj'] == 'maly')
  27. {
  28.     if ($player -> credits < $cost[0]) error ('Nie masz tyle pieniędzy!');
  29.  
  30.        $zapytanie1 = mysql_query('UPDATE players SET czasczynnosci = 180 WHERE id='.$player -> id)  or die(mysql_error());
  31.    $zapytanie2 = mysql_query('UPDATE players SET startczynnosci = time() WHERE id='.$player -> id)  or die(mysql_error());
  32.    $zapytanie3 = mysql_query('UPDATE players SET czynnosc = Śpisz WHERE id='.$player -> id)  or die(mysql_error());
  33.    
  34.           if($player -> energy + 1 > $player -> max_energy)
  35. {
  36.       $db -> Execute('UPDATE players SET credits=credits-'.$cost[0].', energy=max_energy WHERE id='.$player -> id);
  37. }
  38.           else
  39. {
  40.        
  41.           $db -> Execute('UPDATE players SET credits=credits-'.$cost[0].', energy= energy+0.5 WHERE id='.$player -> id);
  42. }
  43. }
  44.  
  45.  
  46.  
  47. if ($_GET['pokoj'] == 'sredni')
  48. {
  49.  
  50.     if ($player -> credits < $cost[1]) error ('Nie masz tyle pieniędzy!');
  51.  
  52.        $czas = time()+300;
  53.        $zapytanie = mysql_query('UPDATE players SET czasczynnosci = '.$czas.' WHERE id='.$player -> id)  or die(mysql_error());
  54.  
  55.           if($player -> energy + 1.5 > $player -> max_energy)
  56. {
  57.       $db -> Execute('UPDATE players SET credits=credits-'.$cost[1].', energy=max_energy WHERE id='.$player -> id);
  58. }
  59.           else
  60. {
  61.        
  62.           $db -> Execute('UPDATE players SET credits=credits-'.$cost[1].', energy= energy + 1.5 WHERE id='.$player -> id);
  63. }
  64.  
  65. }
  66.  
  67.  
  68.  
  69. if ($_GET['pokoj'] == 'duzy') {
  70.  
  71.     if ($player -> credits < $cost[2]) error ('Nie masz tyle pieniędzy!');
  72.  
  73.        $czas = time()+420;
  74.        $zapytanie = mysql_query('UPDATE players SET czasczynnosci = '.$czas.' WHERE id='.$player -> id)  or die(mysql_error());
  75.  
  76.    $db -> Execute('UPDATE players SET credits=credits-'.$cost[2].', energy=max_energy WHERE id='.$player -> id);
  77.  
  78.  
  79. }
  80.  
  81. }else{
  82. if(!isset($_GET['pokoj'])) $_GET['pokoj'] = '';
  83.  
  84.    $_GET['step'] = '';
  85.  
  86. }
  87. }
  88.  
  89. $smarty -> assign (array('Pokoj' => $_GET['pokoj'], 'Step' => $_GET['step']));
  90.  
  91. $smarty -> display ('hotel.tpl');
  92.  
  93. require_once('includes/foot.php');
  94.  
  95. ?>

I niestety wywala mi...
Something is wrong in your syntax obok ') WHERE id=1' w linii 1
Przy próbie odpoczynku. Można prosić o sugestie?


--------------------

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
erix
post 24.11.2008, 22:17:55
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. UPDATE players SET startczynnosci = time()

Poczytaj o polach timestamp w MySQL, bo funkcji time" title="Zobacz w manualu PHP" target="_manual w nim nie ma. tongue.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mike
post 24.11.2008, 22:22:04
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(erix @ 24.11.2008, 22:17:55 ) *
  1. UPDATE players SET startczynnosci = time()

Poczytaj o polach timestamp w MySQL, bo funkcji time" title="Zobacz w manualu PHP" target="_manual w nim nie ma. tongue.gif
TIME() Poczytaj mówisz ... ? tongue.gif
Go to the top of the page
+Quote Post
ArekJ
post 24.11.2008, 22:27:17
Post #6





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

Ostrzeżenie: (0%)
-----


Nie za bardzo moge tam cos zmalezc... sad.gif A moge wczesniej zadeklarowac $time = time(); i potem tylko wstawiac do zapytania wynik?


--------------------

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
erix
post 24.11.2008, 22:29:47
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~mike - oooo, ale to i tak nie w tym kontekście. winksmiley.jpg Dobrze wiesz, którą funkcję miałem na myśli. ;P

~ArekJ - zajrzyj tam, gdzie zalinkował ~mike


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
ArekJ
post 24.11.2008, 22:32:58
Post #8





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

Ostrzeżenie: (0%)
-----


Dobra dzieki! Mam nadzieje, ze jutro uda mi sie osiagnac cel, a teraz ide spac, dobranoc. Punkty za pomoc jutro wlepie, bo z konsolki niewygodnie winksmiley.jpg


--------------------

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2025 - 03:41