function main_town($miasto) { fx('usun_event'); $eventy_budynki = all("select * from tribal_eventy where miasto_id = {$miasto} and typ = 1 and koniec <= " . time()); if (is_array($eventy_budynki)) { foreach ($eventy_budynki as $wybudowany) { usun_event($wybudowany['event']); call("update tribal_gracze g inner join tribal_miasta on g.gracz = gracz_id set g.punkty = g.punkty + 1 where miasto = " . $miasto); $info = one("select count(*) from tribal_budynki_miasta where miasto_id = {$miasto} and budynek_id = " . $wybudowany['podtyp']); $obiekt = row("select * from tribal_budynki where budynek = " . $wybudowany['podtyp']); if (!empty($info)) { call($q = "update tribal_budynki_miasta set \n\t\t\t\tdrewno = drewno * ((100 + " . $obiekt['wzrost_koszt_surowce'] . " )/100), \n\t\t\t\tkamien = kamien * ((100 + " . $obiekt['wzrost_koszt_surowce'] . " )/100),\n\t\t\t\tjedzenie = jedzenie * ((100 + " . $obiekt['wzrost_koszt_surowce'] . " )/100),\n\t\t\t\tzelazo = zelazo * ((100 + " . $obiekt['wzrost_koszt_surowce'] . " )/100),\n\t\t\t\tpopulacja = populacja * ((100 + " . $obiekt['wzrost_koszt_surowce'] . " )/100),\n\t\t\t\tczas_budowy = czas_budowy * ((100 + " . $obiekt['wzrost_czasu_budowy'] . " )/100),\n\t\t\t\tpoziom = poziom + 1\n\t\t\t\twhere miasto_id = {$miasto} and budynek_id = \n\t\t\t\t" . $wybudowany['podtyp']); $poziom = 1; } else { call($q = "insert into tribal_budynki_miasta(miasto_id, budynek_id, drewno, kamien, zelazo, jedzenie, populacja, czas_budowy, poziom) value ({$miasto}, " . $wybudowany['podtyp'] . ", " . $obiekt['drewno'] . ", " . $obiekt['kamien'] . ", " . $obiekt['zelazo'] . ", " . $obiekt['jedzenie'] . ", " . $obiekt['populacja'] . ", " . $obiekt['czas_budowy'] . ", 1)"); $poziom = 0; } switch ($wybudowany['podtyp']) { case 1: if ($poziom == 0) { call("update tribal_miasta set drewno_przyrost = drewno_przyrost + 50 where miasto = {$miasto}"); } else { call("update tribal_miasta set drewno_przyrost = drewno_przyrost * 1.2 where miasto = {$miasto}"); } break; case 2: if ($poziom == 0) { call("update tribal_miasta set kamien_przyrost = kamien_przyrost + 50 where miasto = {$miasto}"); } else { call("update tribal_miasta set kamien_przyrost = kamien_przyrost * 1.2 where miasto = {$miasto}"); } break; case 3: if ($poziom == 0) { call("update tribal_miasta set zelazo_przyrost = zelazo_przyrost + 50 where miasto = {$miasto}"); } else { call("update tribal_miasta set zelazo_przyrost = zelazo_przyrost * 1.2 where miasto = {$miasto}"); } break; case 4: if ($poziom == 0) { call("update tribal_miasta set jedzenie_przyrost = jedzenie_przyrost + 50 where miasto = {$miasto}"); } else { call("update tribal_miasta set jedzenie_przyrost = jedzenie_przyrost * 1.2 where miasto = {$miasto}"); } break; case 5: call("update tribal_miasta set populacja_max = populacja_max * 1.3 where miasto = {$miasto}"); break; case 6: call("update tribal_miasta set surowce_max = surowce_max * 1.3 where miasto = {$miasto}"); break; } } } $eventy_technologie = all("select * from tribal_eventy where miasto_id = {$miasto} and typ = 2 and koniec <= " . time()); if (is_array($eventy_technologie)) { foreach ($eventy_technologie as $wybudowany) { usun_event($wybudowany['event']); $info = one("select count(*) from tribal_technologie_miasta where miasto_id = {$miasto} and technologia_id = " . $wybudowany['podtyp']); $obiekt = row("select * from tribal_technologie where technologia = " . $wybudowany['podtyp']); if (!empty($info)) { call("update tribal_technologie_miasta set \n\t\t\t\tdrewno = drewno * ((100 + " . $obiekt['wzrost_koszt_surowce'] . " )/100), \n\t\t\t\tkamien = kamien * ((100 + " . $obiekt['wzrost_koszt_surowce'] . " )/100),\n\t\t\t\tjedzenie = jedzenie * ((100 + " . $obiekt['wzrost_koszt_surowce'] . " )/100),\n\t\t\t\tzelazo = zelazo * ((100 + " . $obiekt['wzrost_koszt_surowce'] . " )/100),\n\t\t\t\tczas_rozwoju = czas_rozwoju * ((100 + " . $obiekt['wzrost_czasu_budowania'] . " )/100),\n\t\t\t\tpoziom = poziom + 1\n\t\t\t\twhere miasto_id = {$miasto} and technologia_id = \n\t\t\t\t" . $wybudowany['podtyp']); $poziom = 1; } else { call("insert into tribal_technologie_miasta(miasto_id, technologia_id, drewno, kamien, zelazo, jedzenie, czas_rozwoju, poziom) value ({$miasto}, " . $wybudowany['podtyp'] . ", " . $obiekt['drewno'] . ", " . $obiekt['kamien'] . ", " . $obiekt['zelazo'] . ", " . $obiekt['jedzenie'] . ", " . $obiekt['czas_rozwoju'] . ", 1)"); $poziom = 0; } } } $eventy_jednostki = all("select * from tribal_eventy where miasto_id = {$miasto} and typ = 3 and koniec <= " . time()); if (is_array($eventy_jednostki)) { foreach ($eventy_jednostki as $wybudowany) { usun_event($wybudowany['event']); $info = one("select count(*) from tribal_jednostki_miasta where miasto_id = {$miasto} and jednostka_id = " . $wybudowany['podtyp']); if (!empty($info)) { call("update tribal_jednostki_miasta set \n\t\t\t\tilosc = ilosc + " . $wybudowany['ilosc'] . "\n\t\t\t\twhere miasto_id = {$miasto} and jednostka_id = \n\t\t\t\t" . $wybudowany['podtyp']); } else { call("insert into tribal_jednostki_miasta(miasto_id, jednostka_id, ilosc) value ({$miasto}, " . $wybudowany['podtyp'] . "," . $wybudowany['ilosc'] . ")"); } } } fx('rozwiaz_armie'); $eventy_ataki_powrot = all("select * from tribal_eventy where miasto_id = {$miasto} and typ = 11 and koniec <= " . time()); if (is_array($eventy_ataki_powrot)) { foreach ($eventy_ataki_powrot as $atak) { usun_event($atak['event']); rozwiaz_armie($atak['ilosc']); } } fx('bitwa'); $eventy_bitwy = all("select * from tribal_eventy where miasto_id = {$miasto} and typ = 10 and koniec <= " . time()); if (is_array($eventy_bitwy)) { foreach ($eventy_bitwy as $atak) { usun_event($atak['event']); bitwa($atak); } } fx('rozwiaz_szpiegow'); $eventy_szpiedzy_powrot = all("select * from tribal_eventy where miasto_id = {$miasto} and typ = 21 and koniec <= " . time()); if (is_array($eventy_szpiedzy_powrot)) { foreach ($eventy_szpiedzy_powrot as $atak) { usun_event($atak['event']); rozwiaz_szpiegow($atak); } } fx('szpiegowanie'); $eventy_szpiegowanie = all("select * from tribal_eventy where miasto_id = {$miasto} and typ = 20 and koniec <= " . time()); if (is_array($eventy_szpiegowanie)) { foreach ($eventy_szpiegowanie as $atak) { usun_event($atak['event']); szpiegowanie($atak); } } }
function gra_start($dane) { //na początku dodaj surowce fx('dodaj_surowce'); dodaj_surowce(); $czas = time(); //pobierz listę wybudowanych obiektów $kolejka_budowy = mysql_query("select * from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and koniec < " . $czas); $ile = mysql_num_rows($kolejka_budowy); //dla każdego budynku while ($obiekt = mysql_fetch_array($kolejka_budowy)) { //SEKCJA 1: ten element jest ważny dla każdego budynku //pobierz aktualny poziom $lvl = mysql_fetch_array(mysql_query("select poziom from planetx_budynki_planety where planeta_id = " . $dane['aktywna_planeta'] . " and budynek = " . $obiekt['budynek'])); if (!empty($lvl['poziom'])) { //jeżeli budynek poziom > 0 to zwiększ poziom danego budynku mysql_query("update planetx_budynki_planety set poziom = poziom + 1 where planeta_id = " . $dane['aktywna_planeta'] . " and budynek = " . $obiekt['budynek']); //zaznacz, że zwiększono poziom $lvl['poziom']++; } else { //jeżeli poziom == 0 dodaj budynek mysql_query("insert into planetx_budynki_planety (planeta_id, budynek) value (" . $dane['aktywna_planeta'] . "," . $obiekt['budynek'] . ")"); //zaznacz, że wybudowano 1 poziom $lvl['poziom'] = 1; } //w zależności od wybudowanego poziomu dodaj punkty dla gracza mysql_query("update planetx_gracze set punkty = punkty + " . $lvl['poziom'] . " where gracz = " . $dane['gracz']); //SEKCJA 1 koniec //SEKCJA 2: tu ustawiamy dodatkowe bonusy za wybudowanie budynku $metal = 0; $krysztaly = 0; $paliwo = 0; $populacja_max = 0; $surowce_max = 0; //w zależności od budynku switch ($obiekt['budynek']) { case 1: //kopalnia metalu //w zależności od wybudowanego poziomu switch ($lvl['poziom']) { case 1: //pierwszy poziom daje sporego kopa $metal += 50; break; case 2: $metal += 10; break; case 3: $metal += 15; break; case 4: $metal += 20; break; case 5: $metal += 30; break; case 6: $metal += 40; break; case 7: $metal += 50; break; case 8: $metal += 60; break; case 9: $metal += 70; break; case 10: $metal += 100; break; } break; case 2: //kopalnia kryształów //w zależności od wybudowanego poziomu switch ($lvl['poziom']) { case 1: //pierwszy poziom daje sporego kopa $krysztaly += 50; break; case 2: $krysztaly += 10; break; case 3: $krysztaly += 15; break; case 4: $krysztaly += 20; break; case 5: $krysztaly += 30; break; case 6: $krysztaly += 40; break; case 7: $krysztaly += 50; break; case 8: $krysztaly += 60; break; case 9: $krysztaly += 70; break; case 10: $krysztaly += 100; break; } break; case 3: //rafineria //w zależności od wybudowanego poziomu switch ($lvl['poziom']) { case 1: //pierwszy poziom daje sporego kopa $paliwo += 50; break; case 2: $paliwo += 10; break; case 3: $paliwo += 15; break; case 4: $paliwo += 20; break; case 5: $paliwo += 30; break; case 6: $paliwo += 40; break; case 7: $paliwo += 50; break; case 8: $paliwo += 60; break; case 9: $paliwo += 70; break; case 10: $paliwo += 100; break; } break; case 4: //gildia górników //w zależności od wybudowanego poziomu switch ($lvl['poziom']) { case 1: //pierwszy poziom daje sporego kopa $metal += 20; break; case 2: $metal += 5; break; case 3: $metal += 10; break; case 4: $metal += 15; break; case 5: $metal += 20; break; case 6: $metal += 25; break; case 7: $metal += 30; break; case 8: $metal += 35; break; case 9: $metal += 40; break; case 10: $metal += 50; break; } break; case 5: //centrum jonizacji //w zależności od wybudowanego poziomu switch ($lvl['poziom']) { case 1: //pierwszy poziom daje sporego kopa $krysztaly += 20; break; case 2: $krysztaly += 5; break; case 3: $krysztaly += 10; break; case 4: $krysztaly += 15; break; case 5: $krysztaly += 20; break; case 6: $krysztaly += 25; break; case 7: $krysztaly += 30; break; case 8: $krysztaly += 35; break; case 9: $krysztaly += 40; break; case 10: $krysztaly += 50; break; } break; case 6: //silos //w zależności od wybudowanego poziomu switch ($lvl['poziom']) { case 1: //pierwszy poziom daje sporego kopa $paliwo += 20; break; case 2: $paliwo += 5; break; case 3: $paliwo += 10; break; case 4: $paliwo += 15; break; case 5: $paliwo += 20; break; case 6: $paliwo += 25; break; case 7: $paliwo += 30; break; case 8: $paliwo += 35; break; case 9: $paliwo += 40; break; case 10: $paliwo += 50; break; } break; case 9: //magazyn //w zależności od wybudowanego poziomu switch ($lvl['poziom']) { case 1: //pierwszy poziom daje sporego kopa $surowce_max += 5000; break; case 2: $surowce_max += 1000; break; case 3: $surowce_max += 1200; break; case 4: $surowce_max += 1500; break; case 5: $surowce_max += 2000; break; case 6: $surowce_max += 2600; break; case 7: $surowce_max += 3300; break; case 8: $surowce_max += 4100; break; case 9: $surowce_max += 5000; break; case 10: $surowce_max += 10000; break; } break; case 10: //osiedla mieszkaniowe //w zależności od wybudowanego poziomu switch ($lvl['poziom']) { case 1: //pierwszy poziom daje sporego kopa $populacja_max += 500; break; case 2: $populacja_max += 100; break; case 3: $populacja_max += 120; break; case 4: $populacja_max += 150; break; case 5: $populacja_max += 200; break; case 6: $populacja_max += 260; break; case 7: $populacja_max += 330; break; case 8: $populacja_max += 410; break; case 9: $populacja_max += 500; break; case 10: $populacja_max += 1000; break; } break; } mysql_query("update planetx_planety set metal_przyrost = metal_przyrost + " . $metal . ", krysztaly_przyrost = krysztaly_przyrost + " . $krysztaly . ", paliwo_przyrost = paliwo_przyrost + " . $paliwo . ", surowce_max = surowce_max + " . $surowce_max . ", populacja_max = populacja_max + " . $populacja_max . " where planeta = " . $dane['aktywna_planeta']); //SEKCJA 2 koniec } //na końcu trzeba jeszcze wywalić zakończone zdarzenia w kolejce mysql_query("delete from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and koniec < " . $czas); //ustaw aktywność planety mysql_query("update planetx_planety set ostatnio_aktywna = " . $czas . " where planeta = " . $dane['aktywna_planeta']); //pobierz listę wytrenowanych jednostek $kolejka_treningu = mysql_query("select * from planetx_jednostki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and koniec < " . $czas); $ile += mysql_num_rows($kolejka_treningu); //dla każdego budynku while ($obiekt = mysql_fetch_array($kolejka_treningu)) { //SEKCJA : ten element jest ważny dla każdej jednostki //sprawdz czy istnieje $jest = mysql_fetch_array(mysql_query("select ilosc from planetx_jednostki_planety where planeta_id = " . $dane['aktywna_planeta'] . " and jednostka = " . $obiekt['jednostka'])); if (isset($jest['ilosc'])) { //jeżeli jest już taka jednostka mysql_query("update planetx_jednostki_planety set ilosc = ilosc + " . $obiekt['ilosc'] . " where planeta_id = " . $dane['aktywna_planeta'] . " and jednostka = " . $obiekt['jednostka']); } else { //jeżeli poziom == 0 dodaj budynek mysql_query("insert into planetx_jednostki_planety (planeta_id, jednostka, ilosc) value (" . $dane['aktywna_planeta'] . "," . $obiekt['jednostka'] . "," . $obiekt['ilosc'] . ")"); } //SEKCJA koniec } //na końcu trzeba jeszcze wywalić zakończone zdarzenia w kolejce mysql_query("delete from planetx_jednostki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and koniec < " . $czas); fx('rozwiaz_armie'); $powracajaca_armia = mysql_query("select * from planetx_ataki where status = 1 and koniec < " . $czas . " and planeta_id = " . $dane['aktywna_planeta']); while ($atak = mysql_fetch_array($powracajaca_armia)) { rozwiaz_armie($atak['atak']); } fx('bitwa'); $bitwy = mysql_query("select * from planetx_ataki where status = 0 and koniec < " . $czas . " and planeta_id = " . $dane['aktywna_planeta']); while ($atak = mysql_fetch_array($bitwy)) { bitwa($atak); } return $ile; }