Beispiel #1
0
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);
        }
    }
}
Beispiel #2
0
function gra_start($dane)
{
    //na początku dodaj surowce
    fx('dodaj_surowce');
    dodaj_surowce();
    $czas = time();
    //pobierz listę wybudowanych obiektów
    $kolejka_budowy = mysql_query("select * from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and koniec < " . $czas);
    $ile = mysql_num_rows($kolejka_budowy);
    //dla każdego budynku
    while ($obiekt = mysql_fetch_array($kolejka_budowy)) {
        //SEKCJA 1: ten element jest ważny dla każdego budynku
        //pobierz aktualny poziom
        $lvl = mysql_fetch_array(mysql_query("select poziom from planetx_budynki_planety  where planeta_id = " . $dane['aktywna_planeta'] . " and budynek = " . $obiekt['budynek']));
        if (!empty($lvl['poziom'])) {
            //jeżeli budynek poziom > 0 to zwiększ poziom danego budynku
            mysql_query("update planetx_budynki_planety set poziom = poziom + 1 where planeta_id = " . $dane['aktywna_planeta'] . " and budynek = " . $obiekt['budynek']);
            //zaznacz, że zwiększono poziom
            $lvl['poziom']++;
        } else {
            //jeżeli poziom == 0 dodaj budynek
            mysql_query("insert into planetx_budynki_planety (planeta_id, budynek) value (" . $dane['aktywna_planeta'] . "," . $obiekt['budynek'] . ")");
            //zaznacz, że wybudowano 1 poziom
            $lvl['poziom'] = 1;
        }
        //w zależności od wybudowanego poziomu dodaj punkty dla gracza
        mysql_query("update planetx_gracze set punkty = punkty + " . $lvl['poziom'] . " where gracz = " . $dane['gracz']);
        //SEKCJA 1 koniec
        //SEKCJA 2: tu ustawiamy dodatkowe bonusy za wybudowanie budynku
        $metal = 0;
        $krysztaly = 0;
        $paliwo = 0;
        $populacja_max = 0;
        $surowce_max = 0;
        //w zależności od budynku
        switch ($obiekt['budynek']) {
            case 1:
                //kopalnia metalu
                //w zależności od wybudowanego poziomu
                switch ($lvl['poziom']) {
                    case 1:
                        //pierwszy poziom daje sporego kopa
                        $metal += 50;
                        break;
                    case 2:
                        $metal += 10;
                        break;
                    case 3:
                        $metal += 15;
                        break;
                    case 4:
                        $metal += 20;
                        break;
                    case 5:
                        $metal += 30;
                        break;
                    case 6:
                        $metal += 40;
                        break;
                    case 7:
                        $metal += 50;
                        break;
                    case 8:
                        $metal += 60;
                        break;
                    case 9:
                        $metal += 70;
                        break;
                    case 10:
                        $metal += 100;
                        break;
                }
                break;
            case 2:
                //kopalnia kryształów
                //w zależności od wybudowanego poziomu
                switch ($lvl['poziom']) {
                    case 1:
                        //pierwszy poziom daje sporego kopa
                        $krysztaly += 50;
                        break;
                    case 2:
                        $krysztaly += 10;
                        break;
                    case 3:
                        $krysztaly += 15;
                        break;
                    case 4:
                        $krysztaly += 20;
                        break;
                    case 5:
                        $krysztaly += 30;
                        break;
                    case 6:
                        $krysztaly += 40;
                        break;
                    case 7:
                        $krysztaly += 50;
                        break;
                    case 8:
                        $krysztaly += 60;
                        break;
                    case 9:
                        $krysztaly += 70;
                        break;
                    case 10:
                        $krysztaly += 100;
                        break;
                }
                break;
            case 3:
                //rafineria
                //w zależności od wybudowanego poziomu
                switch ($lvl['poziom']) {
                    case 1:
                        //pierwszy poziom daje sporego kopa
                        $paliwo += 50;
                        break;
                    case 2:
                        $paliwo += 10;
                        break;
                    case 3:
                        $paliwo += 15;
                        break;
                    case 4:
                        $paliwo += 20;
                        break;
                    case 5:
                        $paliwo += 30;
                        break;
                    case 6:
                        $paliwo += 40;
                        break;
                    case 7:
                        $paliwo += 50;
                        break;
                    case 8:
                        $paliwo += 60;
                        break;
                    case 9:
                        $paliwo += 70;
                        break;
                    case 10:
                        $paliwo += 100;
                        break;
                }
                break;
            case 4:
                //gildia górników
                //w zależności od wybudowanego poziomu
                switch ($lvl['poziom']) {
                    case 1:
                        //pierwszy poziom daje sporego kopa
                        $metal += 20;
                        break;
                    case 2:
                        $metal += 5;
                        break;
                    case 3:
                        $metal += 10;
                        break;
                    case 4:
                        $metal += 15;
                        break;
                    case 5:
                        $metal += 20;
                        break;
                    case 6:
                        $metal += 25;
                        break;
                    case 7:
                        $metal += 30;
                        break;
                    case 8:
                        $metal += 35;
                        break;
                    case 9:
                        $metal += 40;
                        break;
                    case 10:
                        $metal += 50;
                        break;
                }
                break;
            case 5:
                //centrum jonizacji
                //w zależności od wybudowanego poziomu
                switch ($lvl['poziom']) {
                    case 1:
                        //pierwszy poziom daje sporego kopa
                        $krysztaly += 20;
                        break;
                    case 2:
                        $krysztaly += 5;
                        break;
                    case 3:
                        $krysztaly += 10;
                        break;
                    case 4:
                        $krysztaly += 15;
                        break;
                    case 5:
                        $krysztaly += 20;
                        break;
                    case 6:
                        $krysztaly += 25;
                        break;
                    case 7:
                        $krysztaly += 30;
                        break;
                    case 8:
                        $krysztaly += 35;
                        break;
                    case 9:
                        $krysztaly += 40;
                        break;
                    case 10:
                        $krysztaly += 50;
                        break;
                }
                break;
            case 6:
                //silos
                //w zależności od wybudowanego poziomu
                switch ($lvl['poziom']) {
                    case 1:
                        //pierwszy poziom daje sporego kopa
                        $paliwo += 20;
                        break;
                    case 2:
                        $paliwo += 5;
                        break;
                    case 3:
                        $paliwo += 10;
                        break;
                    case 4:
                        $paliwo += 15;
                        break;
                    case 5:
                        $paliwo += 20;
                        break;
                    case 6:
                        $paliwo += 25;
                        break;
                    case 7:
                        $paliwo += 30;
                        break;
                    case 8:
                        $paliwo += 35;
                        break;
                    case 9:
                        $paliwo += 40;
                        break;
                    case 10:
                        $paliwo += 50;
                        break;
                }
                break;
            case 9:
                //magazyn
                //w zależności od wybudowanego poziomu
                switch ($lvl['poziom']) {
                    case 1:
                        //pierwszy poziom daje sporego kopa
                        $surowce_max += 5000;
                        break;
                    case 2:
                        $surowce_max += 1000;
                        break;
                    case 3:
                        $surowce_max += 1200;
                        break;
                    case 4:
                        $surowce_max += 1500;
                        break;
                    case 5:
                        $surowce_max += 2000;
                        break;
                    case 6:
                        $surowce_max += 2600;
                        break;
                    case 7:
                        $surowce_max += 3300;
                        break;
                    case 8:
                        $surowce_max += 4100;
                        break;
                    case 9:
                        $surowce_max += 5000;
                        break;
                    case 10:
                        $surowce_max += 10000;
                        break;
                }
                break;
            case 10:
                //osiedla mieszkaniowe
                //w zależności od wybudowanego poziomu
                switch ($lvl['poziom']) {
                    case 1:
                        //pierwszy poziom daje sporego kopa
                        $populacja_max += 500;
                        break;
                    case 2:
                        $populacja_max += 100;
                        break;
                    case 3:
                        $populacja_max += 120;
                        break;
                    case 4:
                        $populacja_max += 150;
                        break;
                    case 5:
                        $populacja_max += 200;
                        break;
                    case 6:
                        $populacja_max += 260;
                        break;
                    case 7:
                        $populacja_max += 330;
                        break;
                    case 8:
                        $populacja_max += 410;
                        break;
                    case 9:
                        $populacja_max += 500;
                        break;
                    case 10:
                        $populacja_max += 1000;
                        break;
                }
                break;
        }
        mysql_query("update planetx_planety set metal_przyrost = metal_przyrost + " . $metal . ", krysztaly_przyrost = krysztaly_przyrost + " . $krysztaly . ", paliwo_przyrost = paliwo_przyrost + " . $paliwo . ", surowce_max = surowce_max + " . $surowce_max . ", populacja_max = populacja_max + " . $populacja_max . " where planeta = " . $dane['aktywna_planeta']);
        //SEKCJA 2 koniec
    }
    //na końcu trzeba jeszcze wywalić zakończone zdarzenia w kolejce
    mysql_query("delete from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and koniec < " . $czas);
    //ustaw aktywność planety
    mysql_query("update planetx_planety set ostatnio_aktywna =  " . $czas . " where planeta = " . $dane['aktywna_planeta']);
    //pobierz listę wytrenowanych jednostek
    $kolejka_treningu = mysql_query("select * from planetx_jednostki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and koniec < " . $czas);
    $ile += mysql_num_rows($kolejka_treningu);
    //dla każdego budynku
    while ($obiekt = mysql_fetch_array($kolejka_treningu)) {
        //SEKCJA : ten element jest ważny dla każdej jednostki
        //sprawdz czy istnieje
        $jest = mysql_fetch_array(mysql_query("select ilosc from planetx_jednostki_planety  where planeta_id = " . $dane['aktywna_planeta'] . " and jednostka = " . $obiekt['jednostka']));
        if (isset($jest['ilosc'])) {
            //jeżeli jest już taka jednostka
            mysql_query("update planetx_jednostki_planety set ilosc = ilosc + " . $obiekt['ilosc'] . " where planeta_id = " . $dane['aktywna_planeta'] . " and jednostka = " . $obiekt['jednostka']);
        } else {
            //jeżeli poziom == 0 dodaj budynek
            mysql_query("insert into planetx_jednostki_planety (planeta_id, jednostka, ilosc) value (" . $dane['aktywna_planeta'] . "," . $obiekt['jednostka'] . "," . $obiekt['ilosc'] . ")");
        }
        //SEKCJA koniec
    }
    //na końcu trzeba jeszcze wywalić zakończone zdarzenia w kolejce
    mysql_query("delete from planetx_jednostki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and koniec < " . $czas);
    fx('rozwiaz_armie');
    $powracajaca_armia = mysql_query("select * from planetx_ataki where status = 1 and koniec < " . $czas . " and planeta_id = " . $dane['aktywna_planeta']);
    while ($atak = mysql_fetch_array($powracajaca_armia)) {
        rozwiaz_armie($atak['atak']);
    }
    fx('bitwa');
    $bitwy = mysql_query("select * from planetx_ataki where status = 0 and koniec < " . $czas . " and planeta_id = " . $dane['aktywna_planeta']);
    while ($atak = mysql_fetch_array($bitwy)) {
        bitwa($atak);
    }
    return $ile;
}