コード例 #1
0
ファイル: szpiegowanie.php プロジェクト: WlasnaGra/Tribal2
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);
    }
}
コード例 #2
0
ファイル: trenuj.php プロジェクト: WlasnaGra/Tribal
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;
}
コード例 #3
0
ファイル: buduj.php プロジェクト: WlasnaGra/Tribal2
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;
}
コード例 #4
0
ファイル: wyslij_szpiegow.php プロジェクト: WlasnaGra/Tribal2
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;
}
コード例 #5
0
ファイル: ulepsz.php プロジェクト: WlasnaGra/Tribal2
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;
}
コード例 #6
0
ファイル: bitwa.php プロジェクト: WlasnaGra/Tribal2
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);
    }
}
コード例 #7
0
ファイル: atakuj.php プロジェクト: WlasnaGra/Tribal2
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;
}