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%)
-----


Mam kod, który był umieszczony w pliku odpowiedzialnym za kilka innych rzeczy, ale mam nadzieję, że to jest to czego szukałem. Wkleję może część kodu, bo ponad 600 linijek raczej mogłoby namieszać niż pomóc (chyba, że stwierdzicie, że cały plik wrzucić) :


  1. $diameter = floor(pow(mt_rand(10, 20) + 3 * $chance, 0.5) * 1000);
  2. }
  3.  
  4. $maxTemperature = $parentPlanet['temp_max'] - mt_rand(10, 45);
  5. $minTemperature = $parentPlanet['temp_min'] - mt_rand(10, 45);
  6.  
  7. if(empty($moonName))
  8. {
  9. $moonName = $LNG['type_planet'][3];
  10. }
  11.  
  12. $sql = "INSERT INTO %%PLANETS%% SET
  13. name = :name,
  14. id_owner = :owner,
  15. universe = :universe,
  16. galaxy = :galaxy,
  17. system = :system,
  18. planet = :planet,
  19. last_update = :updateTimestamp,
  20. planet_type = :type,
  21. image = :image,
  22. diameter = :diameter,
  23. field_max = :fields,
  24. temp_min = :minTemperature,
  25. temp_max = :maxTemperature,
  26. metal = :metal,
  27. metal_perhour = :metPerHour,
  28. crystal = :crystal,
  29. crystal_perhour = :cryPerHour,
  30. deuterium = :deuterium,
  31. deuterium_perhour = :deuPerHour;";
  32.  
  33. $db->insert($sql, array(
  34. ':name' => $moonName,
  35. ':owner' => $userId,
  36. ':universe' => $universe,
  37. ':galaxy' => $galaxy,
  38. ':system' => $system,
  39. ':planet' => $position,
  40. ':updateTimestamp' => TIMESTAMP,
  41. ':type' => 3,
  42. ':image' => 'mond',
  43. ':diameter' => $diameter,
  44. ':fields' => 1,
  45. ':minTemperature' => $minTemperature,
  46. ':maxTemperature' => $maxTemperature,
  47. ':metal' => 0,
  48. ':metPerHour' => 0,
  49. ':crystal' => 0,
  50. ':cryPerHour' => 0,
  51. ':deuterium' => 0,
  52. ':deuPerHour' => 0,
  53. ));
  54.  

Da radę coś z tym zrobić?
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: 12.10.2025 - 12:42