Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Gra przeglądarkowa zloto
xxdrago
post 13.04.2011, 08:07:32
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


Witam, robię grę przeglądarkową na gotowym silniku (tylko go edytuje) i problem polega na tym że już kombinuje z 2h i nie wymyśliłem a wiec jak mogę tutaj
zmienić zlot za każdą prace chodzi mi o to że są 3 prace stolarz , myśliwy , łowienie ryb i ze by każda miała inną stawkę próbowałem przenieść

  1. $zloto = 15 + 5 * $uzytkownik['punkty'] ;
ale to nic nie dawało to znaczy że po kliknięciu w prace dodawało kasę a jak się kliknęło przerwij no to zostawała kasa.

  1. //sprawdzamy czy gracz pracuje
  2. if( ($uzytkownik['pracuje'] > 0) && ($uzytkownik['pracuje'] < time()) ){
  3. //jeżeli gracz ma ustawione, że pracuje, ale czas pracy już się zakończył to wydaj mu odpowiednią ilość złota za pracę i ustaw, że już nie pracuje
  4.  
  5. //w naszym przykładzie ilość otrzymanego złota za wykonanie pracy zależy od posiadanych punktów
  6. $zloto = 15 + 5 * $uzytkownik['punkty'] ;
  7.  
  8.  
  9. //wysyłamy polecenie do bazy danych
  10. mysql_query("update gracze set pracuje = 0, zloto = zloto + ".$zloto." where gracz = ".$uzytkownik['gracz']);
  11.  
  12. //odświeżamy stronę
  13. header("Location: praca.php");
  14. } elseif ($uzytkownik['pracuje'] > 0){
  15. if(isset($_GET['przerwij'])){
  16. //jeżeli wciśnięto przerwanie pracy
  17. mysql_query("update gracze set pracuje = 0 where gracz = ".$uzytkownik['gracz']);
  18. //odświeżamy stronę
  19. header("Location: praca.php");
  20. }
  21. //obliczamy ile czasu pozostało do końca pracy
  22. $pozostalo = $uzytkownik['pracuje'] - time();
  23. ?>
  24. <script type="text/javascript">
  25. function liczCzas(ile) {
  26. godzin = Math.floor(ile / 3600);
  27. minut = Math.floor((ile - godzin * 3600) / 60);
  28. sekund = ile - minut * 60 - godzin * 3600;
  29. if (godzin < 10){ godzin = "0"+ godzin; }
  30. if (minut < 10){ minut = "0" + minut; }
  31. if (sekund < 10){ sekund = "0" + sekund; }
  32. if (ile > 0) {
  33. ile--;
  34. document.getElementById("zegar").innerHTML = godzin + ':' + minut + ':' + sekund;
  35. setTimeout("liczCzas("+ile+")", 1000);
  36. } else {
  37. document.getElementById("zegar").innerHTML = "[zakończono]";
  38. }
  39. }
  40. </script>
  41. Twoja postać jest w pracy, do jej zakończenia pozostało: <span id="zegar"></span> <a href="praca.php?przerwij">[ przerwij ]</a> <?php echo "<script type='text/javascript'>liczCzas(".$pozostalo.")</script>"; ?>
  42. <?php
  43.  
  44. } else {
  45. //gracz nie pracuje
  46.  
  47.  
  48. //jeżeli wciśnięto pracwanie
  49.  
  50. //koniec pracy = aktualny czas + ilość_godzin * 3600
  51. $ktora_czesc=$_GET['praca'];
  52. if ($ktora_czesc=="lownieryb")
  53. {
  54. $koniec = time() + 3600;
  55. mysql_query("update gracze set pracuje = ".$koniec." where gracz = ".$uzytkownik['gracz']);
  56. //odświeżamy stronę
  57. header("Location: praca.php");
  58. }
  59. if ($ktora_czesc=="mysliwy")
  60. {
  61. $koniec = time() + 3600;
  62. mysql_query("update gracze set pracuje = ".$koniec." where gracz = ".$uzytkownik['gracz']);
  63. //odświeżamy stronę
  64. header("Location: praca.php");
  65. }
  66. if ($ktora_czesc=="stolarz")
  67. {
  68. $koniec = time() + 28800;
  69. mysql_query("update gracze set pracuje = ".$koniec." where gracz = ".$uzytkownik['gracz']);
  70. //odświeżamy stronę
  71. header("Location: praca.php");
  72. }


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
askone
post 13.04.2011, 08:30:50
Post #2





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Spróbuj coś takiego:
  1. $rodzaj_pracy = $_GET['praca'];
  2. switch($rodzaj_pracy)
  3. {
  4. case 'lownieryb' : $stawka = 1;
  5. break;
  6. case 'mysliwy' : $stawka = 2;
  7. break;
  8. case 'stolarz' : $stawka = 3;
  9. break;
  10. }
  11. $zloto = $stawka * 3 + (5 * $uzytkownik['punkty'] );


Pozdrawiam


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
xxdrago
post 13.04.2011, 08:39:38
Post #3





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


Tylko gdzie ja mam to dodać na początku?


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
askone
post 13.04.2011, 08:41:16
Post #4





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Cytat(xxdrago @ 13.04.2011, 08:39:38 ) *
Tylko gdzie ja mam to dodać na początku?


Zamiast linii 5 i 6 - przecież tam jest właśnie wyliczana ilość złota


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
xxdrago
post 13.04.2011, 08:54:58
Post #5





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


zaraz powiem czy działa smile.gif

Jeszcze jedno jak zrobić zamienne exp na lvl i żeby po każdym wbitym lvl resetował się exp?


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
askone
post 13.04.2011, 08:58:38
Post #6





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Cytat(xxdrago @ 13.04.2011, 08:54:58 ) *
zaraz powiem czy działa smile.gif

Jeszcze jedno jak zrobić zamienne exp na lvl i żeby po każdym wbitym lvl resetował się exp?


A skąd niby mam to wiedziećquestionmark.gif Nie jestem jasnowidzem smile.gif Nie mam pojęcia jakiego silnika do gier używasz. Nie znam żadnego silnika do gier. Umiem tylko czytać kod i myśleć smile.gif

Pozdrawiam


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
xxdrago
post 13.04.2011, 09:04:46
Post #7





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


Chodzi o to że za każdego potworka dostaje tam powiedzmy + 10 exp 100 exp = 1 lvl i ten pierwszy lvl idzie do bazy po prostu jak wymienić exp na lvl. powinieneś wiedzieć o co chodzi


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
drozdii07
post 13.04.2011, 09:29:30
Post #8





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


Sprawdzaj ifem ile masz expa. jeśli exp > 100 to robisz update do bazy. robisz +1 Lvl i exp 0. sory ze bez kodu i wszystko z małej litery, ale jestem na telefonie


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
xxdrago
post 13.04.2011, 09:40:29
Post #9





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


o to mi chodzi ale jak mam zrobić tak 60 lvl?


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
drozdii07
post 13.04.2011, 09:57:20
Post #10





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


  1. $lvl = lvl gracza * 2
tworzysz sobie taki algorytm i na każdym lvlu jest inny exp.


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
xxdrago
post 13.04.2011, 10:46:25
Post #11





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


coś takiego?
Tylko jak mam zapisać z tym lvl? musze przypisać jakaś wartość temu algorytmowi?

Kod
if($uzytkownik['punkty'] > $lvl)
  echo "Zdobyłeś nowy lvl!";


Ten post edytował xxdrago 13.04.2011, 10:47:03


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
drozdii07
post 13.04.2011, 10:52:23
Post #12





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


Właśnie o taki kod mi chodziło biggrin.gif oczywiście $lvl to jest to co napisałem wcześniej ?


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
askone
post 13.04.2011, 10:58:43
Post #13





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Może będę brutalny, ale odnoszę wrażenie że zabrałeś się za tworzenie gry nie mając większego pojęcia o procesie jej tworzenia. Prawdopodobnie nie znasz silnika w oparciu o który chcesz ją zbudować, a zabierasz się do jego przeróbki. Osobiście zanim napisałbym choćby linię kodu wpierw poświęciłbym czas na opisanie zasad jakie mają obowiązywać w grze reguły.

Przed zadaniem kolejnego pytania zastanów się, pomyśl a nie czekaj na gotowca...

ps. wiem, że to dział przedszkolem ale nawet tutaj powinien obowiązywać pewien poziom wiedzy

Pozdrawiam


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
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.07.2025 - 05:31