Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skrypty atakow typu gry ogae
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Masakrator
elo sadsmiley02.gif mam problem nie wiem jak wprowadzic ataki w gierce potrzebowl bym gotowego skryptu do gry takiego typu www.ogame.pl jak ktos by cos na ten temat wiedzial prosil bym o kontakt na gg 5810292 smile.gif z gory dziekuje biggrin.gif
LonelyKnight
Rotfl... chyba niczego takiego tutaj nie znajdziesz smile.gif

// edit

uff musiałem wygooglać bo nie pamiętałem jak to się nazywało - masz cały engine do gry:

http://www.vallheru-tech.livenet.pl/index....%C5%82%C3%B3wna
Masakrator
kurka to nie to ale dzieki za fatyge smile.gif bede szukal dalej szkoda ze nie umiem programowac w php tak to bym to zrobil sam a tak to chyba programisty bede musial szukac

gierka juz jest zrobiona zreszta tylko ataki by trzeba dodac link do gierki http://www.xgame.abc.pl/ jak ktos bylby w stanie pomoc bylbym wdzieczny mam tam jakies pliki do tych atakow moge nawet z kolega zaplacic za robocizne smile.gif tylko zeby bylo gitez:)
L_Devil
"XGame"
"Uni1"
"Ochrona ciot"
biggrin.gif

Jestem pod wrażeniem haha.gif

Żeby napisać skrypt ataku, musisz po pierwsze zdać sobie sprawę czym on jest - a jest niczym innym jak matematycznym wzorem, które przyjmuje pewne dane wejściowe (np. siłę dwóch flot) i wypluwa dane wyjściowe (która strona wygrała, jakie poniosła straty). Nikt tego nie zrobi za ciebie, musisz sam wykombinować tzw. algorytm. Kiedyś podszedłem do tego problemu czysto teoretycznie (chciałem komuś wyjaśnić na przykładzie bitwy kosmicznej projektowanie obiektowe biggrin.gif ) i wymyśliłem takie coś: (Oczywiście jest to przerost formy nad treścią winksmiley.jpg )
  1. <?php
  2.  
  3. /* Statek kosmiczny: */
  4.  
  5. class starship
  6. {
  7. var $health;
  8. var $weapon_power;
  9. };
  10.  
  11. /* Pole bitwy: */
  12.  
  13. class battlefield
  14. {
  15. var $starships; // wszystkie zaangażowane statki kosmiczne
  16. function add_starship($starship, $side)
  17. {
  18. $this->starships[$side][] = $starship;
  19. }
  20. function do_battle()
  21. {
  22. $current_ship = array(); // do oznaczania, który z nich się aktualnie rusza
  23. $count = 0;
  24. $total_sides = count($this->starships);
  25. while(true)
  26. {
  27. $count ++ ;
  28. if($count>100)
  29. return "Bitwa nieroztrzygnięta";
  30. print "Początek rundy<br />";
  31. for($i=0; $i<$total_sides; $i++)
  32. {
  33. if(!isset($this->starships[$i]))
  34. continue;
  35. if(count($this->starships)==1)
  36. {
  37. return "Raport z bitwy. Zwycięzka strona: " . $i . ", ocalało " . count($this->starships[$i]) . " statków";
  38. }
  39. print "Tura " . $i . '<br />';
  40. $current_ship[$i]++;
  41. if(!isset($this->starships[$i][$current_ship[$i]]))
  42. {
  43. $current_ship[$i] = 0;
  44. }
  45. $rand = $i;
  46. while($rand==$i && isset($this->starships[$rand]))
  47. $rand = rand(0, count($this->starships)-); // wybieramy losową cudzą floty
  48. $id = rand(0, count($this->starship[$rand])-1); // losowy cel z określonej wyżej cudzej floty
  49. $this->starships[$rand][$id]->health -= ($this->starships[$i][$current_ship[$i]]->weapon_power*rand(50, 150)/100); // dodamy trochę losowości
  50. echo "Celem jest flota " . $rand . " i statek o id " . $id . ", który ma jeszcze " . $this->starships[$rand][$id]->health . " punktów życia<br />";
  51. if($this->starships[$rand][$id]->health<=0)
  52. { 
  53. echo "Statek zestrzelony<br />";
  54. unset($this->starships[$rand][$id]);
  55. if(count($this->starships[$rand])==0)
  56. {
  57. unset($this->starships[$rand]);
  58. }
  59. else
  60. {
  61. $temp = array();
  62. foreach($this->starships[$rand] as $key => $value)
  63. {
  64. $temp[] = $value;
  65. }
  66. $this->starships[$rand] = $temp;
  67. }
  68. }
  69. }
  70. }
  71. }
  72. };
  73.  
  74. /* Jakieś przykładowe dane: */
  75.  
  76. $battlefield = new battlefield;
  77. $enterprise = new starship;
  78. $enterprise->health = 500;
  79. $enterprise->weapon_power = 150;
  80. $battlefield->add_starship($enterprise, 0);
  81. $borg_sphere = new starship;
  82. $borg_sphere->health = 750;
  83. $borg_sphere->weapon_power = 125;
  84. $battlefield->add_starship($borg_sphere, 1);
  85. $result_of_battle = $battlefield->do_battle();
  86. die($result_of_battle);
  87.  
  88. ?>


Wynik tego skryptu wygląda podobnie do tego:

Kod
Początek rundy
Tura 0
Celem jest flota 1 i statek o id 0, który ma jeszcze 607.5 punktów życia
Tura 1
Celem jest flota 0 i statek o id 0, który ma jeszcze 430 punktów życia
Początek rundy
Tura 0
Celem jest flota 1 i statek o id 0, który ma jeszcze 525 punktów życia
Tura 1
Celem jest flota 0 i statek o id 0, który ma jeszcze 295 punktów życia
Początek rundy
Tura 0
Celem jest flota 1 i statek o id 0, który ma jeszcze 412.5 punktów życia
Tura 1
Celem jest flota 0 i statek o id 0, który ma jeszcze 142.5 punktów życia
Początek rundy
Tura 0
Celem jest flota 1 i statek o id 0, który ma jeszcze 237 punktów życia
Tura 1
Celem jest flota 0 i statek o id 0, który ma jeszcze -8.75 punktów życia
Statek zestrzelony
Początek rundy
Raport z bitwy. Zwycięzka strona: 1, ocalało 1 statków
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-2024 Invision Power Services, Inc.