Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak dodać minimalną i maksymalną wartość w pliku php (gra online)?
cascader
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 1.02.2014

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


Witam! Edytuje silnik pewnej gry, jednak mam problem, nie mam pojęcia jak się za to zabrać (laik, dopiero się uczę). Chodzi konkretnie o plik, który odpowiada za tworzenie przedmiotu- w tym wypadku księżyca (gra kosmiczna), jest tutaj zawarty fragment, który odpowiada za wielkość księżyca, jednak chciałbym dodać linie, która mówi, że minimalny rozmiar księżyca to 1000, niezależnie od obliczeń(czyli nawet jeśli nie przekroczy progu liczby z obliczeń, który stwierdziłby, że może powstać księżyc z taką średnicą) i maksymalną wartość 9000. Mam nadzieje, że wyjaśniłem o co mi chodzi dość jasno. Czy jest to w ogóle możliwe? Liczę na Wasze sugestie.

fragment kodu z zawartym wzorem na tworzenie księżyca:

  1. function CreateOneMoonRecord($Galaxy, $System, $Planet, $Universe, $Owner, $MoonName, $Chance, $time = 0, $Size = 0)
  2. {
  3. global $USER;
  4.  
  5. $SQL = "SELECT id_luna,planet_type,id,name,temp_max,temp_min FROM ".PLANETS." ";
  6. $SQL .= "WHERE ";
  7. $SQL .= "universe = '".$Universe."' AND ";
  8. $SQL .= "galaxy = '".$Galaxy."' AND ";
  9. $SQL .= "system = '".$System."' AND ";
  10. $SQL .= "planet = '".$Planet."' AND ";
  11. $SQL .= "planet_type = '1';";
  12. $MoonPlanet = $GLOBALS['DATABASE']->getFirstRow($SQL);
  13.  
  14. if ($MoonPlanet['id_luna'] != 0)
  15. return false;
  16.  
  17. if($Size == 0) {
  18. $size = floor(pow(mt_rand(10, 20) + 3 * $Chance, 0.5) * 200);
  19. } else {
  20. $size = $Size;
  21. }
  22.  
  23. $maxtemp = $MoonPlanet['temp_max'] - mt_rand(10, 45);
  24. $mintemp = $MoonPlanet['temp_min'] - mt_rand(10, 45);
  25.  
  26. $GLOBALS['DATABASE']->multi_query("INSERT INTO ".PLANETS." SET
  27. name = '".$MoonName."',
  28. id_owner = ".$Owner.",
  29. universe = ".$Universe.",
  30. galaxy = ".$Galaxy.",
  31. system = ".$System.",
  32. planet = ".$Planet.",
  33. last_update = ".TIMESTAMP.",
  34. planet_type = '3',
  35. image = 'mond',
  36. diameter = ".$size.",
  37. field_max = '1',
  38. temp_min = ".$mintemp.",
  39. temp_max = ".$maxtemp.",
  40. metal = 0,
  41. metal_perhour = 0,
  42. crystal = 0,
  43. crystal_perhour = 0,
  44. deuterium = 0,
  45. deuterium_perhour = 0;
  46. SET @moonID = LAST_INSERT_ID();
  47. UPDATE ".PLANETS." SET
  48. id_luna = @moonID
  49. WHERE
  50. id = ".$MoonPlanet['id'].";");
  51.  
  52. return true;
  53. }
  54.  


PS. W tym wypadku, fields nie ma nic do wielkości księżyca, to jest wartość, która określa ile można zbudować budynków na danym księżycu.

Ten post edytował cascader 1.02.2014, 18:42:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cascader
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 1.02.2014

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


To jest tak: Chcę, żeby minimalny księżyc jaki powstanie (jeśli powstanie) miał średnice 1000 jednostek, a maksymalny (po tym jak ze skryptu wyjdzie, że osiągnął wymagany do tego wynik) 9000 jednostek. Rozmiar księżyca nie jest losowy, W pewnych chwilach szansa na powstanie księżyca waha się od 1 do 20% (zależnie od sytuacji), a gdy już się trafi na to, że ma powstać to wielkość liczy się ze skryptu:
  1. " $diameter = floor(pow(mt_rand(10, 20) + 3 * $chance, 0.5) * 200); "
. I z tego skryptu, czasem tworzą się bardzo małe księżyce (np. 100 jednostek) lub bardzo duże (20.000 jednostek). I chcę to tak zrobić, że w momencie kiedy obliczenia wskażą, że księżyc ma powstać z rozmiarem mniejszym niż 999 jednostek to żeby mimo to powstał księżyc z rozmiarem 1000 jednostek. W drugą stronę podobnie, jeśli ma wyjść księżyc 15000 to zamiast tego ma powstać księżyc 9000 jednostek.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 26.12.2025 - 05:19