function buduj($dane, $budynki, $id_budynku) { //zabezpiecz zmienne $id_budynku = (int) $id_budynku; //ile budynków można mieć w kolejce $max_kolejka = 3; if (empty($budynki[$id_budynku])) { return "nie ma takiego budynku"; } elseif ($budynki[$id_budynku]['poziom'] == $budynki[$id_budynku]['poziom_max']) { return "osiągnięto poziom maksymalny"; } else { //pobierz funkcję do obsługi pobierania kosztów budynku fx('budynki_koszta'); //pobierz funkcję do obsługi pobierania wymagań budynku fx('budynki_wymagania'); //pobierz koszta dla następnego kolejnego poziomu budynku (stąd te $budynek['poziom'] +1 bo następny) $koszta = budynki_koszta($id_budynku, $budynki[$id_budynku]['poziom'] + 1); //pobierz wymagania obiektu $wymagania = budynki_wymagania($id_budynku, $budynki[$id_budynku]['poziom'] + 1, $budynki); if ($dane['planeta']['metal'] < $koszta['metal'] || $dane['planeta']['krysztaly'] < $koszta['krysztaly'] || $dane['planeta']['paliwo'] < $koszta['paliwo'] || $dane['planeta']['populacja_max'] - $dane['planeta']['populacja'] < $koszta['populacja']) { return "planeta nie posiada wystarczającej ilości surowców"; } elseif ($wymagania['mozna'] == 0) { $opcje = "nie spełniono wymagań budowy"; } else { //sprawdź czy budynek nie jest już w kolejce budowania $wkolejce = mysql_fetch_array(mysql_query("select kolejka from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and budynek = " . $id_budynku)); if (!empty($wkolejce)) { return "ten obiekt jest już w kolejce rozbudowy"; } else { //sprawdź ile aktualnie jest budowanych budynków $kolejka = mysql_fetch_array(mysql_query("select count(*) as ile from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'])); if ($kolejka['ile'] == $max_kolejka) { return "kolejka rozbudowy zajęta"; } else { //pobierz ostatni budynek z kolejki $ostatni = mysql_fetch_array(mysql_query("select koniec from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " order by koniec desc limit 1")); if (empty($ostatni['koniec'])) { //jeżeli nic nie jest budowane to ustaw aktualny czas jako start budowy $start = time(); } else { //jest coś budowane, więc dodaj budynek na koniec kolejki rozbudowy $start = $ostatni['koniec']; } $koniec = $start + $koszta['czas_budowy']; //dodaj do kolejki mysql_query("insert into planetx_budynki_kolejka (planeta_id, budynek, start, koniec) value (" . $dane['aktywna_planeta'] . "," . $id_budynku . "," . $start . "," . $koniec . ")"); //odbierz surowce mysql_query("update planetx_planety set metal = metal -" . $koszta['metal'] . ", krysztaly = krysztaly - " . $koszta['krysztaly'] . ", paliwo = paliwo -" . $koszta['paliwo'] . ", populacja = populacja +" . $koszta['populacja'] . " where planeta = " . $dane['aktywna_planeta']); return "rozpoczęto budowę"; } } } } }
//pobierz funkcję do obsługi pobierania kosztów budynku fx('budynki_koszta'); //pobierz funkcję do obsługi pobierania wymagań budynku fx('budynki_wymagania'); //wyświetl wszystkie budynki foreach ($budynki as $budynek) { //wyświetl nagłówek budynku wraz z obrazkiem echo "\n\t\t<div style='width:100%; '>\n\t\t\t\t<div style='width:120px; text-align:center; float:left;'>\n\t\t\t\t\t\n\t\t\t\t\t<img src='www/buildings/" . $budynek['budynek'] . ".gif' alt='' title='" . $budynek['nazwa'] . "' />\n\t\t\t\t\t\n\t\t\t\t</div>\n\t\t\t\t<div style='margin-left:120px; min-height:200px; background:#01498D; color:#fff; padding:5px'>\n\t\t\t\t\t<span style='color:#66FF00;'>" . $budynek['nazwa'] . " [ " . $budynek['poziom'] . " ] </span><hr/>\n\t\t\t\t\t" . $budynek['opis'] . "<hr/>\t\t\n\t\t\t\t\t<u style='color:#FF0000'><b>Maksymalny poziom: " . $budynek['poziom_max'] . "</b></u><br/>\n\t\t\t\t\t<hr/>\n\t\t"; //jeżeli poziom budynku nie jest jeszcze poziomem maksymalnym to pobierz koszta rozbydowy i wyświetl tabelkę if ($budynek['poziom'] < $budynek['poziom_max']) { //pobierz koszta dla następnego kolejnego poziomu budynku (stąd te $budynek['poziom'] +1 bo następny) $koszta = budynki_koszta($budynek['budynek'], $budynek['poziom'] + 1); echo "\t<table style='text-align:center'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>metal</td>\n\t\t\t\t\t\t\t<td>kryształy</td>\n\t\t\t\t\t\t\t<td>paliwo</td>\n\t\t\t\t\t\t\t<td>populacja</td>\n\t\t\t\t\t\t\t<td>czas</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>" . $koszta['metal'] . "</td>\n\t\t\t\t\t\t\t<td>" . $koszta['krysztaly'] . "</td>\n\t\t\t\t\t\t\t<td>" . $koszta['paliwo'] . "</td>\n\t\t\t\t\t\t\t<td>" . $koszta['populacja'] . "</td>\n\t\t\t\t\t\t\t<td>" . $koszta['czas_budowy'] . "</td>\t\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t"; } //pobierz wymagania obiektu $wymagania = budynki_wymagania($budynek['budynek'], $budynek['poziom'] + 1, $budynki); $opcje = ""; if ($budynek['kolejka'] == 0) { //oblicz ile czasu pozostało do zakończenia budowy $pozostało = $budynek['kolejka_koniec'] - time(); //pokaż informacje o tym, że buduje się dany obiekt $opcje = "<span style='color:#FF0000;'>budynek jest w kolejce budowania, do zakończenia budowy pozostało: "; //dołącz licznik czasu $opcje .= "<span id='b" . $budynek['budynek'] . "'></span></span>"; //dołącz funkcję odliczającą czas $opcje .= "<script type='text/javascript'>liczCzas('b" . $budynek['budynek'] . "'," . $pozostało . ")</script>"; //dołącz guzik przerwania budowy $opcje .= "<a href='?akcja=planeta&budynek=" . $budynek['budynek'] . "&przerwij'>[ x ]</a>"; } elseif ($budynek['poziom'] == $budynek['poziom_max']) { //osiągnięto maksymalny poziom $opcje = "<span style='color:#FF0000;'>osiągnięto maksymalny poziom rozbudowy danego budynku</span>";