function szpiegowanie($event) { require_once 'dodaj_event.php'; //atakujący $miasto1 = mysql_fetch_array(mysql_query("select * from tribal_miasta inner join tribal_gracze on gracz_id = gracz where miasto = " . $event['miasto_id'])); //obrońca $miasto2 = mysql_fetch_array(mysql_query("select * from tribal_miasta inner join tribal_gracze on gracz_id = gracz where miasto = " . $event['podtyp'])); //pobierz dane broniących się szpiegów $obronca = mysql_fetch_array(mysql_query("select * from tribal_jednostki_miasta inner join tribal_jednostki on jednostka_id = jednostka where miasto_id = " . $event['podtyp'] . " and jednostka_id = 5 and ilosc > 0")); $tekst1 = "Twoi szpiedzy z miasta " . $miasto1['nazwa'] . " szpiegują miasto " . $miasto2['nazwa'] . "<br/>"; if (empty($obronca)) { $tekst1 .= "Nie napotkano oporu<br/>"; $tekst2 = "Szpiedzy z wrogiego szpiegują Twoje miasto " . $miasto2['nazwa'] . "<br/>"; } else { //zabij odpowiednią ilość szpiegów po obu stronach $ilu = $event['ilosc']; $event['ilosc'] -= $obronca['ilosc']; $obronca['ilosc'] -= $ilu; if ($event['ilosc'] < 0) { $event['ilosc'] = 0; } if ($obronca['ilosc'] < 0) { $obronca['ilosc'] = 0; } //jeżeli obrońca w ogóle zabił jakiegoś szpiego to pokaż mu info z którego miasta przyszedł atak if ($ilu == $event['ilosc']) { $tekst2 = "Szpiedzy z miasta " . $miasto1['nazwa'] . " szpiegują Twoje miasto " . $miasto2['nazwa'] . "<br/>"; } else { $tekst2 = "Szpiedzy z wrogiego szpiegują Twoje miasto " . $miasto2['nazwa'] . "<br/>"; } } if (empty($obronca['ilosc']) && !empty($event['ilosc'])) { $zwyciezca = 1; //zabij obrońcę mysql_query("update tribal_jednostki_miasta set ilosc = 0 where miasto_id = " . $miasto2['miasto'] . " and jednostka_id = 5"); $tekst1 .= "Udało Ci się przeszpiegować miasto<br/>\n\t\t\tZdobyte informacje:<br/>\n\t\t\tDrewno: " . $miasto2['drewno'] . "\n\t\t\tKamień: " . $miasto2['kamien'] . "\n\t\t\tŻelazo: " . $miasto2['zelazo'] . "\n\t\t\tJedzenie: " . $miasto2['jedzenie'] . "\n\t\t\tPopulacja: " . $miasto2['populacja'] . "/" . $miasto2['populacja_max'] . "\n\t\t\t"; $tekst2 .= "Twoi szpiedzy ponieśli klęskę<br/>"; } elseif (empty($obronca['ilosc']) && empty($event['ilosc'])) { $zwyciezca = 0; //zabij obrońcę mysql_query("update tribal_jednostki_miasta set ilosc = 0 where miasto_id = " . $miasto2['miasto'] . " and jednostka_id = 5"); $tekst1 .= "Twoi szpiedzy ponieśli klęskę<br/>"; $tekst2 .= "Twoi szpiedzy zginęli ale nie dopuścili do infiltracji miasta<br/>"; } else { $zwyciezca = 2; //zabij obrońcę mysql_query("update tribal_jednostki_miasta set ilosc = " . $obronca['ilosc'] . " where miasto_id = " . $miasto2['miasto'] . " and jednostka_id = 5"); $tekst1 .= "Twoi szpiedzy ponieśli klęskę<br/>"; $tekst2 .= "Twoi szpiedzy nie dopuścili do infiltracji miasta<br/>"; } require_once 'raport.php'; $a = raport($miasto1['login'], $tekst1); $a = raport($miasto2['login'], $tekst2); if ($zwyciezca == 1) { //jeżeli wygrał to resztę szpiegów wyślij do domu $czas = $event['koniec'] - $event['start']; require_once 'dodaj_event.php'; dodaj_event($event['miasto_id'], 21, $event['podtyp'], $event['ilosc'], $czas); } }
function trenuj($gracz, $typ, $id, $ilu, $kolejka_trenowania) { //zabezpiecz zmienne $id = (int) $id; $ilu = (int) $ilu; $obiekt = one("select poziom from tribal_budynki_miasta where miasto_id = " . $gracz['id_miasta'] . " and budynek_id = " . $typ . " limit 1"); if (empty($obiekt)) { $error = "nie posiadasz wymaganego budynku"; } elseif ($ilu < 1) { $error = "muszisz trenować minimum 1 jednostkę"; } else { $jednostka = row("select * from tribal_jednostki where wymagany_budynek = " . $typ . " and jednostka = " . $id . " and poziom_wymaganego_budynku <= " . $obiekt); if (empty($jednostka)) { $error = "nie ma takiej jednostki, lub nie masz wymaganego budynku na odpowiednim poziomie"; } elseif ($jednostka['drewno'] * $ilu > $gracz['dane_miasta']['drewno'] || $jednostka['kamien'] * $ilu > $gracz['dane_miasta']['kamien'] || $jednostka['zelazo'] * $ilu > $gracz['dane_miasta']['zelazo'] || $jednostka['jedzenie'] * $ilu > $gracz['dane_miasta']['jedzenie'] || $jednostka['populacja'] * $ilu > $gracz['dane_miasta']['populacja_max'] - $gracz['dane_miasta']['populacja']) { $error = "nie masz wystarczającej ilości surowców"; } else { $kolejka = row("select \n\t\t\t(select count(*) from tribal_eventy where typ = 3 and miasto_id = " . $gracz['id_miasta'] . ") as kolejka,\n\t\t\t(select count(*) from tribal_eventy where typ = 3 and podtyp = " . $id . " and miasto_id = " . $gracz['id_miasta'] . ") as w_kolejce\n\t\t\t"); if ($kolejka['kolejka'] == $kolejka_trenowania) { $error = "kolejka zajęta"; } else { //dodaj event fx('dodaj_event'); dodaj_event($gracz['id_miasta'], 3, $id, $ilu, $jednostka['czas_treningu'] * $ilu); fx('surowce'); surowce($gracz['id_miasta'], -$jednostka['drewno'] * $ilu, -$jednostka['kamien'] * $ilu, -$jednostka['zelazo'] * $ilu, -$jednostka['jedzenie'] * $ilu, $jednostka['populacja'] * $ilu); //zabierz surowce $error = "rozpoczęto trening"; } } } return $error; }
function buduj($gracz, $id, $kolejka_budowy) { //zabezpiecz zmienne $id = (int) $id; $info = mysql_fetch_array(mysql_query("select bm.poziom as poziom, bm.drewno as bmdrewno, bm.kamien as bmkamien, bm.zelazo as bmzelazo, bm.jedzenie as bmjedzenie, bm.populacja as bmpopulacja, bm.czas_budowy as bmczas_budowy, b.* from tribal_budynki b left join tribal_budynki_miasta bm on b.budynek = bm.budynek_id and bm.miasto_id = " . $gracz['id_miasta'] . " where b.budynek = " . $id . " limit 1")); if (empty($info)) { $error = "nie ma takiego obiektu"; } else { if (!empty($info['poziom'])) { $info['drewno'] = $info['bmdrewno']; $info['kamien'] = $info['bmkamien']; $info['zelazo'] = $info['bmzelazo']; $info['jedzenie'] = $info['bmjedzenie']; $info['populacja'] = $info['bmpopulacja']; $info['czas_budowy'] = $info['bmczas_budowy']; } else { $info['poziom'] = 0; } $budowany = mysql_fetch_array(mysql_query("select count(*) from tribal_eventy where typ = 1 and podtyp = {$id} and miasto_id = " . $gracz['id_miasta'])); $budowany = $budowany[0]; if ($budowany > 0) { $error = "budujesz już ten budynek"; } else { $kolejka = mysql_fetch_array(mysql_query("select count(*) from tribal_eventy where typ = 1 and miasto_id = " . $gracz['id_miasta'])); $kolejka = $kolejka[0]; if ($kolejka == $kolejka_budowy) { $error = "kolejka budowy zajęta"; } else { if ($info['drewno'] > $gracz['dane_miasta']['drewno'] || $info['kamien'] > $gracz['dane_miasta']['kamien'] || $info['zelazo'] > $gracz['dane_miasta']['zelazo'] || $info['jedzenie'] > $gracz['dane_miasta']['jedzenie'] || $info['populacja'] > $gracz['dane_miasta']['populacja_max'] - $gracz['dane_miasta']['populacja']) { $error = "nie masz wystarczającej ilości surowców"; } elseif ($info['poziom'] == $info['max_poziom']) { $error = "osiągnięto maksymalny poziom"; } else { $wymagania = mysql_fetch_array(mysql_query("\n\t\t\t\t\tselect\n\t\t\t\t\t\tcase when count(*) >=\n\t\t\t\t\t\t(select count(*) from tribal_budynki_wymagania\n\t\t\t\t\t\twhere budynek_id = {$id})\n\t\t\t\t\t\tthen 1 else 0 end\n\n\t\t\t\t\t\tfrom tribal_budynki_wymagania t2,\n\t\t\t\t\t\ttribal_budynki_miasta t1\n\t\t\t\t\t\twhere t2.budynek_id = {$id}\n\t\t\t\t\t\tand t1.budynek_id = t2.wymagany_budynek_id\n\t\t\t\t\t\tand t1.miasto_id = " . $gracz['id_miasta'] . " \n\t\t\t\t\t\tand t1.poziom >= t2.wymagany_poziom\n\t\t\t\t\t")); $wymagania = $wymagania[0]; if ($wymagania == 1) { //dodaj event require_once 'dodaj_event.php'; dodaj_event($gracz['id_miasta'], 1, $id, 1, $info['czas_budowy']); require_once 'surowce.php'; surowce($gracz['id_miasta'], -$info['drewno'], -$info['kamien'], -$info['zelazo'], -$info['jedzenie'], $info['populacja']); //zabierz surowce $error = "rozpoczęto budowę"; } else { $error = "nie spełniono wymagań do budowy tego budynku"; } } } } } return $error; }
function wyslij_szpiegow($gracz, $cel, $ilu) { //zabezpiecz zmienne $cel = vText($cel); $ilu = (int) $ilu; if ($ilu < 1) { $error = 'wyślij minimum 1 jednostkę'; } else { $ma = mysql_fetch_array(mysql_query("select ilosc from tribal_jednostki_miasta where jednostka_id = 5 and miasto_id =" . $gracz['id_miasta'])); $ma = $ma[0]; if ($ma < $ilu) { $error = 'nie posiadasz tylu szpiegów'; } else { $vs = mysql_fetch_array(mysql_query("select * from tribal_miasta where nazwa='" . $cel . "' limit 1")); if (empty($vs)) { $error = 'nie ma takiego miasta'; } elseif ($vs['gracz_id'] == $gracz['gracz']) { $error = 'nie szpieguj swoich miast'; } else { $x = mysql_fetch_array(mysql_query("select * from tribal_mapa where miasto_id = " . $gracz['id_miasta'])); $y = mysql_fetch_array(mysql_query("select * from tribal_mapa where miasto_id = " . $vs['miasto'])); if ($x['x'] != $vs['x'] && $x['y'] == $vs['y']) { $zasieg = abs($vs['x'] - $x['x']) * 300; } elseif ($x['x'] == $vs['x'] && $x['y'] != $vs['y']) { $zasieg = abs($vs['y'] - $x['y']) * 300; } else { $zasieg = floor(sqrt(pow(abs($vs['x'] - $x['x']), 2) + pow(abs($vs['y'] - $x['y']), 2))) * 300; } mysql_query("update tribal_jednostki_miasta set ilosc = ilosc - {$ilu} where jednostka_id = 5 and miasto_id =" . $gracz['id_miasta']); require_once 'dodaj_event.php'; dodaj_event($gracz['id_miasta'], 20, $vs['miasto'], $ilu, $zasieg); $error = 'wysłano'; } } } return $error; }
function ulepsz($gracz, $id, $kolejka_technologii) { //zabezpiecz zmienne $id = (int) $id; $tech = mysql_fetch_array(mysql_query("select \n\t\ttt.technologia,\n\t\ttt.drewno as drewno1, ttm.drewno as drewno2,\n\t\ttt.kamien as kamien1, ttm.kamien as kamien2, \n\t\ttt.zelazo as zelazo1, ttm.zelazo as zelazo2,\n\t\ttt.jedzenie as jedzenie1, ttm.jedzenie as jedzenie2,\n\t\ttt.czas_rozwoju as czas_rozwoju1, ttm.czas_rozwoju as czas_rozwoju2,\n\t\ttt.nazwa, ttm.poziom, tt.max_poziom,\n\t\t(select koniec - " . time() . " from tribal_eventy where typ = 2 and podtyp = tt.technologia and miasto_id = " . $gracz['id_miasta'] . ") as w_kolejce\n\tfrom tribal_technologie tt \n\tleft join tribal_technologie_miasta ttm \n\ton tt.technologia = ttm.technologia_id \n\tand ttm.miasto_id = " . $gracz['id_miasta'] . " where tt.technologia = " . $id . " limit 1\n\t")); if (empty($tech)) { $error = "nie ma takiego obiektu"; } else { if (!empty($tech['poziom'])) { $tech['drewno1'] = $tech['drewno2']; $tech['kamien1'] = $tech['kamien2']; $tech['zelazo1'] = $tech['zelazo2']; $tech['jedzenie1'] = $tech['jedzenie2']; $tech['czas_rozwoju1'] = $tech['czas_rozwoju2']; } else { $tech['poziom'] = 0; } if ($tech['drewno1'] > $gracz['dane_miasta']['drewno'] || $tech['kamien1'] > $gracz['dane_miasta']['kamien'] || $tech['zelazo1'] > $gracz['dane_miasta']['zelazo'] || $tech['jedzenie1'] > $gracz['dane_miasta']['jedzenie']) { $error = "nie masz wystarczającej ilości surowców"; } elseif ($tech['poziom'] == $tech['max_poziom']) { $error = "osiągnięto maksymalny poziom"; } elseif ($kolejka == $kolejka_technologii) { $error = "kolejka zajęta"; } elseif (!empty($tech['w_kolejce'])) { $error = "rozwijasz tą naukę"; } else { //dodaj event require_once 'dodaj_event.php'; dodaj_event($gracz['id_miasta'], 2, $id, 1, $tech['czas_rozwoju1']); require_once 'surowce.php'; surowce($gracz['id_miasta'], -$tech['drewno1'], -$tech['kamien1'], -$tech['zelazo1'], -$tech['jedzenie1'], 0); //zabierz surowce $error = "rozpoczęto budowę"; } } return $error; }
function bitwa($event) { //atakujący $miasto1 = mysql_fetch_array(mysql_query("select * from tribal_miasta inner join tribal_gracze on gracz_id = gracz where miasto = " . $event['miasto_id'])); //obrońca $miasto2 = mysql_fetch_array(mysql_query("select * from tribal_miasta inner join tribal_gracze on gracz_id = gracz where miasto = " . $event['podtyp'])); $a = mysql_query($q = "select * from tribal_ataki_jednostki inner join tribal_jednostki on jednostka_id = jednostka where atak_id = " . $event['ilosc']); while ($as = mysql_fetch_array($a)) { $atakujacy[] = $as; } $o = mysql_query("select * from tribal_jednostki_miasta inner join tribal_jednostki on jednostka_id = jednostka where miasto_id = " . $event['podtyp'] . " and ilosc > 0"); while ($as = mysql_fetch_array($o)) { $obronca[] = $as; } $tekst1 = "Twoja armia z miasta " . $miasto1['nazwa'] . " zaatakowała miasto " . $miasto2['nazwa'] . "<br/>"; $tekst2 = "Wrogowie z miasta " . $miasto1['nazwa'] . " zaatakowali Twoje miasto " . $miasto2['nazwa'] . "<br/>"; $mur = $miasto2['mur'] * 1000; $mur_o = $miasto2['mur'] * 100; $mur_a = $miasto2['mur'] * 100; if (empty($obronca) && empty($mur)) { $tekst1 .= "Nie napotkano oporu<br/>"; } $runda = 0; if (!empty($mur)) { $tekst1 .= "miasto posiada mur obronny<br/>"; } while (!empty($atakujacy) && $mur > 0) { $runda++; if ($runda > 10) { break; } foreach ($atakujacy as $oddzial) { if (!empty($obronca)) { $rany = $oddzial['atak'] * $oddzial['ilosc'] - $mur_o; if ($rany < $oddzial['ilosc']) { $rany = $oddzial['ilosc']; } $mur -= $rany; } } if (!empty($atakujacy)) { shuffle($atakujacy); $key = array_rand($atakujacy); $przeciwnik = $atakujacy[$key]; if (!empty($przeciwnik)) { $atak = $mur_a; $obrona = $przeciwnik['obrona'] * $przeciwnik['ilosc']; $rany = $atak - $obrona; if ($rany < 1) { $rany = 1; } $zabito = floor($rany / $przeciwnik['wytrzymalosc']); if ($zabito < 1) { $zabito = 1; } if ($zabito > $przeciwnik['ilosc']) { $zabito = $przeciwnik['ilosc']; } $przeciwnik['ilosc'] -= $zabito; if ($przeciwnik['ilosc'] < 1) { unset($atakujacy[$key]); } else { $atakujacy[$key] = $przeciwnik; } } } } $runda = 0; while (!empty($atakujacy) && !empty($obronca)) { $runda++; if ($runda > 20) { break; } foreach ($atakujacy as $oddzial) { if (!empty($obronca)) { shuffle($obronca); $key = array_rand($obronca); $przeciwnik = $obronca[$key]; if (!empty($przeciwnik)) { $atak = $oddzial['atak'] * $oddzial['ilosc']; $obrona = $przeciwnik['obrona'] * $przeciwnik['ilosc']; $rany = $atak - $obrona; if ($rany < $oddzial['ilosc']) { $rany = $oddzial['ilosc']; } $zabito = floor($rany / $przeciwnik['wytrzymalosc']); if ($zabito < 1) { $zabito = 1; } if ($zabito > $przeciwnik['ilosc']) { $zabito = $przeciwnik['ilosc']; } $przeciwnik['ilosc'] -= $zabito; if ($przeciwnik['ilosc'] < 1) { unset($obronca[$key]); } else { $obronca[$key] = $przeciwnik; } } } } foreach ($obronca as $oddzial) { if (!empty($atakujacy)) { shuffle($atakujacy); $key = array_rand($atakujacy); $przeciwnik = $atakujacy[$key]; if (!empty($przeciwnik)) { $atak = $oddzial['atak'] * $oddzial['ilosc']; $obrona = $przeciwnik['obrona'] * $przeciwnik['ilosc']; $rany = $atak - $obrona; if ($rany < $oddzial['ilosc']) { $rany = $oddzial['ilosc']; } $zabito = floor($rany / $przeciwnik['wytrzymalosc']); if ($zabito < 1) { $zabito = 1; } if ($zabito > $przeciwnik['ilosc']) { $zabito = $przeciwnik['ilosc']; } $przeciwnik['ilosc'] -= $zabito; if ($przeciwnik['ilosc'] < 1) { unset($atakujacy[$key]); } else { $atakujacy[$key] = $przeciwnik; } } } } } if (empty($obronca) && !empty($atakujacy)) { $wybraniec = 0; $zwyciezca = 1; //zabij obrońcę mysql_query("update tribal_jednostki_miasta set ilosc = 0 where miasto_id = " . $miasto2['miasto']); //zabij atakującego wg zabitych mysql_query("update tribal_ataki_jednostki set ilosc = 0 where jednostka_id = " . $oddzial['jednostka_id'] . " and atak_id = " . $event['ilosc']); $max = 0; foreach ($atakujacy as $oddzial) { mysql_query("update tribal_ataki_jednostki set ilosc = " . $oddzial['ilosc'] . " where jednostka_id = " . $oddzial['jednostka_id'] . " and atak_id = " . $event['ilosc']); $max += $oddzial['ilosc'] * $oddzial['udzwig']; //jeżeli przeżył wybraniec to zabiera o 5 * ilość wybrańców morale więcej niż normlanie if ($oddzial['jednostka_id'] == 11 && $oddzial['ilosc'] > 0) { $wybraniec = 5 * $oddzial['ilosc']; } } mysql_query("delete from tribal_ataki_jednostki where ilosc = 0 and atak_id = " . $event['ilosc']); $tekst1 .= "Wygrałeś bitwę<br/>"; $tekst2 .= "Przegrałeś bitwę<br/>"; if ($max > 0) { $d = $miasto2['drewno']; $k = $miasto2['kamien']; $z = $miasto2['zelazo']; $j = $miasto2['jedzenie']; if ($d + $k + $z + $j <= $max) { $add[0] = $d; $add[1] = $k; $add[2] = $z; $add[3] = $j; } else { $res = array($d, $k, $z, $j); $add = array(0, 0, 0, 0); $dec = $d + $k + $z + $j - $max; $per = (int) ($max / 4); if ($d >= $per) { $res[0] -= $per; $add[0] = $per; $max -= $per; } elseif ($d > 0) { $res[0] = 0; $add[0] = $d; $max -= $d; } if ($k) { $res[1] -= $per; $add[1] = $per; $max -= $per; } elseif ($k > 0) { $res[1] = 0; $add[1] = $k; $max -= $k; } if ($z >= $per) { $res[2] -= $per; $add[2] = $per; $max -= $per; } elseif ($z > 0) { $res[2] = 0; $add[2] = $z; $max -= $z; } if ($j >= $per) { $res[3] -= $per; $add[3] = $per; $max -= $per; } elseif ($j > 0) { $res[3] = 0; $add[3] = $j; $max -= $j; } if ($res[0] == 0) { unset($res[0]); } if ($res[1] == 0) { unset($res[1]); } if ($res[2] == 0) { unset($res[2]); } if ($res[3] == 0) { unset($res[3]); } while ($max > 0) { shuffle($res); $keyr = array_rand($res); $take = $res[$keyr]; if ($res[$keyr] >= $max) { $add[$keyr] += $max; $max = 0; } else { $add[$keyr] += $res[$keyr]; $max -= $res[$keyr]; unset($res[$keyr]); } } } mysql_query("update tribal_ataki set drewno = " . $add[0] . ", kamien = " . $add[1] . ", zelazo = " . $add[2] . ", jedzenie = " . $add[3] . " where atak = " . $event['ilosc']); mysql_query("update tribal_miasta set drewno = drewno - " . $add[0] . ", kamien = kamien - " . $add[1] . ", zelazo =zelazo - " . $add[2] . ", jedzenie = jedzenie- " . $add[3] . " where miasto = " . $event['podtyp']); } $tekst1 .= "Zdobyłeś " . $add[0] . " drewna, " . $add[1] . " kamienia, " . $add[2] . " żelaza i " . $add[3] . " jedzenia<br/>"; $tekst2 .= "Straciłeś " . $add[0] . " drewna, " . $add[1] . " kamienia, " . $add[2] . " żelaza i " . $add[3] . " jedzenia<br/>"; if ($miasto2['morale'] > 10) { mysql_query("update tribal_miasta set morale = morale - 10 - " . $wybraniec . " where miasto =" . $miasto2['miasto']); } else { mysql_query("update tribal_miasta set gracz_id = " . $miasto1['gracz_id'] . ", morale = 100 where morale < 11 and miasto = " . $miasto2['miasto']); $tekst1 .= 'Przejąłeś miasto ' . $miasto2['nazwa'] . ' !!<br/>'; $tekst2 .= 'Straciłeś miasto ' . $miasto2['nazwa'] . ' !!<br/>'; mysql_query("update tribal_gracze set id_miasta = 0 where id_miasta =" . $miasto2['miasto']); } } elseif (empty($obronca) && empty($atakujacy)) { $zwyciezca = 0; //zabij obrońcę mysql_query("update tribal_jednostki_miasta set ilosc = 0 where miasto_id = " . $miasto2['miasto']); //zabij atakującego mysql_query("delete from tribal_ataki_jednostki where ilosc = 0 and atak_id = " . $event['ilosc']); mysql_query("delete from tribal_ataki where atak = " . $event['ilosc']); $tekst1 .= "Bitwa nierozstrzygnięta<br/>"; $tekst2 .= "Bitwa nierozstrzygnięta<br/>"; mysql_query("update tribal_miasta set morale = morale + 5 where miasto =" . $miasto2['miasto']); } else { $zwyciezca = 2; //zabij obrońcę mysql_query("update tribal_jednostki_miasta set ilosc = 0 where miasto_id = " . $miasto2['miasto']); foreach ($obronca as $oddzial) { mysql_query("update tribal_jednostki_miasta set ilosc = " . $oddzial['ilosc'] . " where jednostka_id = " . $oddzial['jednostka_id'] . " and miasto_id = " . $miasto2['miasto']); } //zabij atakującego mysql_query("delete from tribal_ataki_jednostki where ilosc = 0 and atak_id = " . $event['ilosc']); mysql_query("delete from tribal_ataki where atak = " . $event['ilosc']); $tekst2 .= "Wygrałeś bitwę<br/>"; $tekst1 .= "Przegrałeś bitwę<br/>"; mysql_query("update tribal_miasta set morale = morale + 10 where miasto =" . $miasto2['miasto']); } require_once 'raport.php'; $a = raport($miasto1['login'], $tekst1); $a = raport($miasto2['login'], $tekst2); if ($zwyciezca == 1) { $czas = $event['koniec'] - $event['start']; require_once 'dodaj_event.php'; dodaj_event($event['miasto_id'], 11, $event['podtyp'], $event['ilosc'], $czas); } }
function atakuj($gracz, $cel, $armia) { //zabezpiecz zmienne $cel = vText($cel); $count = 0; foreach ($armia as $key => $value) { $key = (int) $key; $armia[$key] = (int) $value; if ($value < 1) { unset($armia[$key]); } $count += (int) $value; } if ($count < 1) { $error = 'wyślij minimum 1 jednostkę'; } else { $query = ''; $jj = ""; foreach ($armia as $key => $value) { $jj .= $key . ","; $query .= "(select count(*) from tribal_jednostki_miasta where jednostka_id = {$key} and miasto_id =" . $gracz['id_miasta'] . " and ilosc >= {$value})+"; } $jj = substr($jj, 0, -1); $najwolniejszy = mysql_fetch_array(mysql_query("select min(szybkosc) from tribal_jednostki where jednostka in(" . $jj . ")")); $najwolniejszy = $najwolniejsz[0]; $query = substr($query, 0, -1); $query = "select {$query}"; $can = mysql_fetch_array(mysql_query($query)); $can = $can[0]; if ($can < count($armia)) { $error = 'nie posiadasz tyle jednostek'; } else { $vs = mysql_fetch_array(mysql_query("select * from tribal_miasta inner join tribal_gracze on gracz_id = gracz where nazwa='" . $cel . "' limit 1")); if (empty($vs)) { $error = 'nie ma takiego miasta'; } elseif ($vs['gracz_id'] == $gracz['gracz']) { $error = 'nie szpieguj swoich miast'; } elseif ($vs['urlop'] > time()) { $error = 'ten gracz jest na urlopie'; } elseif ($vs['ochrona'] > time()) { $error = 'te miasto jest chronione'; } else { $x = mysql_fetch_array(mysql_query("select * from tribal_mapa where miasto_id = " . $gracz['id_miasta'])); $y = mysql_fetch_array(mysql_query("select * from tribal_mapa where miasto_id = " . $vs['miasto'])); if ($x['x'] != $vs['x'] && $x['y'] == $vs['y']) { $zasieg = abs($vs['x'] - $x['x']) * 300; } elseif ($x['x'] == $vs['x'] && $x['y'] != $vs['y']) { $zasieg = abs($vs['y'] - $x['y']) * 300; } else { $zasieg = floor(sqrt(pow(abs($vs['x'] - $x['x']), 2) + pow(abs($vs['y'] - $x['y']), 2))) * 300; } $zasieg = $zasieg / $najwolniejszy * 10; $query1 = ''; mysql_query("insert into tribal_ataki(miasto_id, cel)\n\t\t\t\t\t\t\t\tvalue (" . $gracz['id_miasta'] . "," . $vs['miasto'] . ")"); $id = mysql_insert_id(); $bonus_atak_piechota = mysql_fetch_array(mysql_query("select poziom * 2 from tribal_technologie_miasta where technologia_id = 1 and miasto_id=" . $gracz['id_miasta'])); if (empty($bonus_atak_piechota)) { $bonus_atak_piechota = 0; } else { $bonus_atak_piechota = $bonus_atak_piechota[0]; } $bonus_pancerz_piechota = mysql_fetch_array(mysql_query("select poziom * 2 from tribal_technologie_miasta where technologia_id = 2 and miasto_id=" . $gracz['id_miasta'])); if (empty($bonus_pancerz_piechota)) { $bonus_pancerz_piechota = 0; } else { $bonus_pancerz_piechota = $bonus_pancerz_piechota[0]; } $bonus_atak_kawaleria = mysql_fetch_array(mysql_query("select poziom * 5 from tribal_technologie_miasta where technologia_id = 3 and miasto_id=" . $gracz['id_miasta'])); if (empty($bonus_atak_kawaleria)) { $bonus_atak_kawaleria = 0; } else { $bonus_atak_kawaleria = $bonus_atak_kawaleria[0]; } $bonus_pancerz_kawaleria = mysql_fetch_array(mysql_query("select poziom * 5 from tribal_technologie_miasta where technologia_id = 4 and miasto_id=" . $gracz['id_miasta'])); if (empty($bonus_pancerz_kawaleria)) { $bonus_pancerz_kawaleria = 0; } else { $bonus_pancerz_kawaleria = $bonus_pancerz_kawaleria[0]; } foreach ($armia as $key => $value) { if ($key <= 5) { $a = $bonus_atak_piechota; $d = $bonus_pancerz_piechota; } elseif ($key <= 8) { $a = $bonus_atak_kawaleria; $d = $bonus_pancerz_kawaleria; } else { $a = 0; $d = 0; } mysql_query("update tribal_jednostki_miasta set ilosc = ilosc - {$value} where jednostka_id = {$key} and miasto_id =" . $gracz['id_miasta']); $query1 .= "({$id}, {$key}, {$value}, {$a} + (select atak from tribal_jednostki where jednostka = {$key}), {$d} + (select obrona from tribal_jednostki where jednostka = {$key}), (select wytrzymalosc from tribal_jednostki where jednostka = {$key})),"; } $query1 = substr($query1, 0, -1); mysql_query("insert into tribal_ataki_jednostki(atak_id, jednostka_id, ilosc, atak, obrona, wytrzymalosc) values {$query1}"); require_once 'dodaj_event.php'; dodaj_event($gracz['id_miasta'], 10, $vs['miasto'], $id, $zasieg); $error = 'wysłano'; } } } return $error; }