Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: [php] problem z funkcjami
Forum PHP.pl > Forum > Przedszkole
Lethys
Pisze gre php ( wiem ze jestem noobem w php ) ale krok po kroku jakos idzie i teraz mam problem zwiazany z walka w grze , mam kod :

battle.php

  1. <?php $title = "Walka"; include("config.php"); ?>
  2.  
  3. <?
  4. global $stat;
  5. global $enemy;
  6.  
  7. ?>
  8.  
  9. <?php
  10. function attack() {
  11. global $stat;
  12. global $enemy;
  13.  
  14.  
  15. if ($stat[costam] >= $enemy[costam]) {
  16.  
  17. print "Twoj chowaniec wygral";
  18.  
  19.  
  20. mysql_query("update players set walka=walka-1 where id=$stat[id]");
  21. mysql_query("update players set wins=wins+1 where id=$stat[id]");
  22. mysql_query("update players set losses=losses+1 where id=$enemy[id]");
  23.  
  24. } else {
  25.  
  26. print "Twoj chowaniec przegral";
  27.  
  28.  
  29. mysql_query("update players set walka=walka-1 where id=$stat[id]");
  30. mysql_query("update players set wins=wins+1 where id=$enemy[id]");
  31. mysql_query("update players set losses=losses+1 where id=$stat[id]");
  32. }
  33. }
  34.  
  35.  
  36.  
  37. ?>
  38.  
  39. <?php
  40.  
  41.  
  42. if ($battle) {
  43. global $stat;
  44. global $enemy;
  45.  
  46.  
  47. $enemy = mysql_fetch_array(mysql_query("select * from players where id=$battle"));
  48. $stat = mysql_fetch_array(mysql_query("select * from players where email='$email' and pass='$pass'"));
  49.  
  50.  
  51. if (!$enemy[id]) {
  52. print "Nie ma takiego gracza !";
  53. }
  54. if ($enemy[id] == $stat[id]) {
  55. print "Nie mozesz atakowac siebie";
  56. include("footer.php");
  57. }
  58. if ($enemy[page] <= !Chat) {
  59. print "$enemy[user] nie jest w karczmie.";
  60. }
  61. if ($stat[walka] < 1) {
  62. print "Walczyles juz w czasie tej godziny !";
  63. }
  64. $span = ($stat[wiek] - $enemy[wiek]);
  65. if ($span > 5) {
  66. print "Nie mozesz atakowac chowancow o 5 dni starszych/mlodszych !";
  67. }
  68. if ($stat[wiek] < 3) {
  69. print "Nie mozesz atakowac poniewaz twoj chowaniec jeszcze sie nie urodzil !";
  70. }
  71. if ($enemy[wiek] < 3) {
  72. print "Nie mozesz atakowac poniewaz chowaniec wroga jeszcze sie nie urodzil !";
  73. }
  74.  
  75.  
  76. }
  77.  
  78.  
  79. ?>


i kiedy w przegladarce wpisuje .............../battle.php?battle=1
to wyswietla sie biala strona i nic wiecej sad.gif co jest zle ?
Cysiaczek
  1. <?php
  2. if ($_GET['battle']==1) {
  3. ?>


Manual
Lethys
Cos nie dziala ten twoj sposob ...
nospor
wlacz se obsluge bledow, bo Twoj kod generuje full NOTICOW, o ERRORACH nie wspomne.
Ustaw se w php.ini error_reporting na E_ALL oraz display_errors na ON.

wszelkie odwolywania sie do indexow tablic nie powinno byc tak:
$tab[costam]
a tak:
$tab['costam']

odwolywanie sie do zmiennych z url to $_GET['zmienna'] a nie $zmienna.

No i to co powoduje biala strone:
  1. <?php
  2. if ($enemy[page] <= !Chat) {
  3. ?>

a niby te Chat to co to jest? zmienna? to chyba powiino byc: $Chat. No i co tam ten ! robi?

ps: przenosze
Lethys
Chodzi o te ze jak wchodzisz do karczmy to zmienia ci w bazie page na chat a chce zeobic ze jak ktos nie jest na czacie to wyswiwetla ....
nospor
no i dobrze, skoro chat to tekst, to ma to byc tekst a nie jakis wykrzyknik.
i jesli to ma byc rozne od czat, to ma byc rozne a nie mniejsze rowne.

  1. <?php
  2. if ($enemy['page'] != 'Chat') {
  3. ?>
Lethys
Teraz moj kod wyglada :


  1. <?php $title = "Battle Arena"; include("config.php"); ?>
  2.  
  3. <?
  4. global $stat;
  5. global $enemy;
  6.  
  7. ?>
  8.  
  9. <?php
  10. function attack() {
  11. global $stat;
  12. global $enemy;
  13.  
  14.  
  15. if ($stat[wiek] >= $enemy[wiek]) {
  16.  
  17. print "Twoj chowaniec wygral";
  18.  
  19.  
  20. mysql_query("update players set walka=walka-1 where id=$stat[id]");
  21. mysql_query("update players set wins=wins+1 where id=$stat[id]");
  22. mysql_query("update players set losses=losses+1 where id=$enemy[id]");
  23.  
  24. } else {
  25.  
  26. print "Twoj chowaniec przegral";
  27.  
  28.  
  29. mysql_query("update players set walka=walka-1 where id=$stat[id]");
  30. mysql_query("update players set wins=wins+1 where id=$enemy[id]");
  31. mysql_query("update players set losses=losses+1 where id=$stat[id]");
  32. }
  33. }
  34.  
  35.  
  36.  
  37. ?>
  38.  
  39. <?php
  40.  
  41.  
  42. if ($_GET['battle']==1) {
  43. global $stat;
  44. global $enemy;
  45.  
  46.  
  47. $enemy = mysql_fetch_array(mysql_query("select * from players where id=$battle"));
  48. $stat = mysql_fetch_array(mysql_query("select * from players where email='$email' and pass='$pass'"));
  49.  
  50.  
  51. if (!$enemy[id]) {
  52. print "Nie ma takiego gracza !";
  53. }
  54. if ($enemy[id] == $stat[id]) {
  55. print "Nie mozesz atakowac siebie";
  56. include("footer.php");
  57. }
  58. if ($enemy[page] != 'Chat') {
  59. print "$enemy[user] nie jest w karczmie.";
  60. }
  61. if ($stat[walka] < 1) {
  62. print "Walczyles juz w czasie tej godziny !";
  63. }
  64. $span = ($stat[wiek] - $enemy[wiek]);
  65. if ($span > 5) {
  66. print "Nie mozesz atakowac chowancow o 5 dni starszych/mlodszych !";
  67. }
  68. if ($stat[wiek] < 3) {
  69. print "Nie mozesz atakowac poniewaz twoj chowaniec jeszcze sie nie urodzil !";
  70. }
  71. if ($enemy[wiek] < 3) {
  72. print "Nie mozesz atakowac poniewaz chowaniec wroga jeszcze sie nie urodzil !";
  73. }
  74.  
  75.  
  76. }
  77.  
  78.  
  79. ?>


A problem ten sam sad.gif nie pakozuje nic ...

Sry za posty pod soba ale niech ktos pomoze bo nie wiem co zle sad.gif
UDAT
Posłuchaj nospor'a

Cytat(nospor @ 4.11.2006, 11:28:41 ) *
wszelkie odwolywania sie do indexow tablic nie powinno byc tak:
$tab[costam]
a tak:
$tab['costam']


Tzn. $enemy i $stat też
Lethys
Przeciez bez tego tez powinno dzialac , poprawilem i nic ( tzn biala strona jak poprzednio ) sad.gif
UDAT
Cytat( @ 4.11.2006, 18:39:52 ) *
Przeciez bez tego tez powinno dzialac , poprawilem i nic ( tzn biala strona jak poprzednio ) sad.gif


Tak samo jak z superglobalami powinno działać.
Jedak w tym wypadku nie chodzi o to a raczej o to że zapomniałeś dać wywołania funkcji attack
Lethys
Czyli jak powinno byc ? prosze niech ktos napisze jak powinien wygladac kod ...
UDAT
W linii 82 wpisz
  1. <?php
  2. attack();
  3. ?>
Lethys
I tak nic sie nie zmienilo sad.gif
UDAT
To znaczy ¿e nie masz w adresie w $_GET pozycji battle czyli nie masz w adresie koñcówki
Kod
?battle=1
Lethys
wpisuje ........../battle.php?battle=1
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.