function login($login, $pass) { $msg = ''; $login = real_string($login); $pass = md5(real_string($pass)); $user = row("select user from hellpit_users where login = '******' and pass = '******' limit 1"); if (!empty($user) && is_numeric($user->user) && $user->user > 0) { $_SESSION = array(); $_SESSION['user'] = $user->user; $msg = 'zalogowano '; header('Location: ?x=account'); } else { $msg = 'Wprowadzono błędne dane '; } return $msg; }
function klan_ustaw_zastepce($gracz, $id) { //zabezpiecz zmienne $id = (int) $id; //jeżeli gracz nie jest w klanie to nie może nic usunąć if ($gracz['id_klanu'] == 0) { $msg = "nie jesteś w klanie"; } else { //sprawdź rangę gracza w klanie $ranga = one($q = "select status from tribal_klany_gracze where gracz_id = " . $gracz['gracz'] . " and klan_id = " . $gracz['id_klanu'] . " limit 1"); //jeżeli to nie mistrz klanu if ($ranga != 3) { $msg = "nie jesteś mistrzem klanu"; } else { //pobierz dane klanowicza $podanie = row("select * from tribal_klany_gracze where gracz_id = " . $id . " and klan_id = " . $gracz['id_klanu'] . " and status = 1"); if (empty($podanie)) { $msg = "nie ma takiego klanowicza"; } else { //ustaw prawa zastępcy call("update tribal_klany_gracze set status = 2 where gracz_id = " . $id); $msg = "ustawiono zastępcę mistrza klanu"; } } } return $msg; }
function kup_auto($gracz, $id) { //zabezpiecz zmienne $gracz = (int) $gracz; $id = (int) $id; $dane = row("select * from driver_gracze where gracz = " . $gracz); //pobierz dane auta o podanym $id $auto = row("select a.* from driver_auta a left join driver_auta_gracze on a.auto = id_auta and id_gracza = " . $dane['gracz'] . " where id_gracza is null and auto != " . $dane['auto'] . " and auto = {$id}\n\t"); if (empty($auto)) { //jeżeli nie ma takiego auta return "nie ma takiego auta lub posiadasz już takie auto"; } else { //jeżeli jest to sprawdź czy gracz ma odpowiednią ilość gotówki if (empty($dane['kasa'])) { //jeżeli nie ma tyle gotówki return "nie posiadasz tyle gotówki"; } else { //ma //odbierz gotówkę call("update driver_gracze set kasa = kasa - " . $auto['cena'] . " where gracz = {$gracz}"); //dodaj auto do listy aut gracza call($q = "insert into driver_auta_gracze (id_gracza, id_auta, vmax, do100, wartosc) value ({$gracz}, {$id}, " . $auto['vmax'] . ", " . $auto['do100'] . "," . floor($auto['cena'] * 0.9) . ")"); return "kupiono auto " . $auto['nazwa']; } } }
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 nowa_osada($gracz) { if ($gracz['id_miasta'] == 0) { $posiadane = one("select miasto from tribal_miasta where gracz_id = " . $gracz['gracz'] . " limit 1"); if (empty($posiadane)) { call("insert into tribal_miasta (nazwa, gracz_id, ochrona) value ('" . $gracz['nazwa_miasta'] . "'," . $gracz['gracz'] . ", " . (time() + 10 * 86400) . ")"); $id = mysql_insert_id(); if ($id == 0) { call("insert into tribal_miasta (nazwa, gracz_id, czas_przyrostu, ochrona) value ('" . $gracz['nazwa_miasta'] . date("His") . "'," . $gracz['gracz'] . ", " . time() . ", " . (time() + 10 * 86400) . ")"); $id = mysql_insert_id(); } if ($id > 0) { $map = row("select count(*) as wolne, (select max(x) from tribal_mapa) as x_max, (select max(y) from tribal_mapa) as y_max from tribal_mapa where miasto_id = 0"); if ($map['wolne'] < 30) { $x = $map['x_max']; $y = $map['y_max']; $insert = "insert into tribal_mapa(x,y) values "; for ($i = 1; $i < $x + 6; $i++) { for ($j = 1; $j < $y + 6; $j++) { if ($i > $x || $j > $y) { $insert .= "({$i},{$j}),"; } } } $insert = substr($insert, 0, -1); call($insert); } call("update tribal_gracze set id_miasta = {$id} where gracz = " . $gracz['gracz']); call("update tribal_mapa set miasto_id = {$id} where miasto_id = 0 order by rand() limit 1"); } } else { call("update tribal_gracze set id_miasta = " . $posiadane . " where gracz = " . $gracz['gracz']); } } }
function ulepsz_auto($gracz, $id, $czesc) { //zabezpiecz zmienne $gracz = (int) $gracz; $id = (int) $id; $czesc = (int) $czesc; //pobierz dane auta o podanym $id - sprawdź czy gracz takie posiada $auto = row("select * from driver_auta_gracze where id_gracza = {$gracz} and id_auta = {$id} limit 1"); if (empty($auto)) { //jeżeli nie ma takiego auta return "nie ma takiego auta"; } else { $sprzet = row("select * from driver_czesci where czesc = {$czesc} "); if (empty($sprzet)) { return "nie ma takiej części"; } else { //pobierz dane gracza $data = row("select * from driver_gracze where gracz = {$gracz}"); //jeżeli gracz ma za mało kasy if ($data['kasa'] < $sprzet['cena']) { return "masz za mało gotówki"; } else { //ma kasę, zapłać za sprzęt call("update driver_gracze set kasa = kasa - " . $sprzet['cena'] . " where gracz = {$gracz}"); call("update driver_auta_gracze set vmax = vmax + " . $sprzet['vmax'] . ", do100 = do100 + " . $sprzet['do100'] . ", wartosc = wartosc + " . $sprzet['cena'] * 0.9 . " where id_gracza = {$gracz} and id_auta = {$id} limit 1"); call("update driver_auta_gracze set do100 = 3 where do100 < 3"); return "ulepszono auto"; } } } }
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 klan_akceptuj_podanie($gracz, $id) { //zabezpiecz zmienne $id = (int) $id; //jeżeli gracz nie jest w klanie to nie może nic usunąć if ($gracz['id_klanu'] == 0) { $msg = "nie jesteś w klanie"; } else { //sprawdź rangę gracza w klanie $ranga = one("select status from tribal_klany_gracze where gracz_id = " . $gracz['gracz'] . " and klan_id = " . $gracz['id_klanu'] . " limit 1"); //jeżeli to nie mistrz klanu to nie może usunąć nic if ($ranga == 1) { $msg = "nie jesteś mistrzem klanu ani jego zastępcą"; } else { //pobierz dane podania $podanie = row("select * from tribal_klany_gracze where id = " . $id); //akceptuj podanie call("update tribal_klany_gracze set status = 1 where id = " . $id . " and klan_id = " . $gracz['id_klanu'] . " and status = 0"); if (mysql_affected_rows() == 0) { $msg = "nie ma takiego podania"; } else { //na wszelki wypadek usuń pozostałe podania gracza call("delete from tribal_klany_gracze where gracz_id = " . $podanie['gracz_id'] . " and status = 0"); call("update tribal_gracze set id_klanu = " . $gracz['id_klanu'] . " where gracz = " . $podanie['gracz_id']); $msg = "zaakceptowano podanie"; } } } return $msg; }
function zaloz_ciuch($gracz, $id) { $gracz = (int) $gracz; $id = (int) $id; $dane = row("select * from driver_gracze where gracz = " . $gracz); $ciuch = row($q = "select * from driver_ciuchy_gracze inner join driver_ciuchy on id = c_id and gracz_id = " . $gracz . " where id = {$id} and status = 0 and gracz_id = " . $gracz . ""); if (empty($ciuch)) { return "nie masz takiego sprzętu"; } else { switch ($ciuch['typ']) { case 1: $zajety = one("select 1 from driver_ciuchy_gracze inner join driver_ciuchy on c_id = id where typ = 1 and status = 1 and gracz_id = " . $gracz); break; case 2: $zajety = one("select 1 from driver_ciuchy_gracze inner join driver_ciuchy on c_id = id where typ = 2 and status = 1 and gracz_id = " . $gracz); break; case 3: $zajety = one("select 1 from driver_ciuchy_gracze inner join driver_ciuchy on c_id = id where typ = 3 and status = 1 and gracz_id = " . $gracz); break; case 4: $zajety = one("select 1 from driver_ciuchy_gracze inner join driver_ciuchy on c_id = id where typ = 4 and status = 1 and gracz_id = " . $gracz); break; } if ($zajety == 1) { return "masz już założony sprzęt tego typu"; } call("update driver_gracze set bonus_vmax = bonus_vmax + " . $ciuch['vmax'] . ", bonus_do100 = bonus_do100 + " . $ciuch['do100'] . " where gracz = {$gracz}"); call("update driver_ciuchy_gracze set status = 1 where gracz_id = {$gracz} and c_id = {$id} limit 1"); return "założono sprzęt"; } }
function zaloguj($login, $haslo) { //zabezpiecz zmienne $login = vText($login); $haslo = vText($haslo); //zaszyfruj hasło $haslo = md5($haslo); //pobierz dane z gabeli graczy o takim samym loginie i poprwanym haśle $id = row("select * from tribal_gracze where login = '******' and haslo ='" . $haslo . "' limit 1"); if (!empty($id)) { //jeżeli coś pobrało //jeżeli gracz jest zbanowany if ($id['zbanowany'] == 1) { return "administracja zbanowała tego gracza"; } if ($id['urlop'] > time()) { return "ten gracz jest na urlopie"; } //jeżeli nie to zaloguj //wyczyść sesje $_SESSION = ''; $_SESSION = array(); //zapisz id gracza w sesji $_SESSION['gracz'] = $id['gracz']; //przejdź do strony konta gracza reload("konto"); } else { return "podano niepoprawne dane"; } }
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 getUser($id) { $gracz = row("select * from genix_gracze where gracz = {$id}"); if (empty($gracz)) { $gracz['rola'] = -1; } return $gracz; }
function pvp($gracz, $przeciwnik) { //zabezpiecz zmienne $przeciwnik = (int) $przeciwnik; $gracz2 = row("select * from genix_gracze where gracz = " . $przeciwnik); if (empty($gracz2)) { return "nie spotkałeś przeciwnika i śmiało możesz ruszać dalej"; } elseif ($gracz['gracz'] == $gracz2['gracz']) { return "nie możesz walczyć sam ze sobą"; } elseif ($gracz['lvl'] - $gracz2['lvl'] > 10 || $gracz2['lvl'] - $gracz['lvl'] > 10) { return "nie możesz z tym graczem, za duża różnica poziomów"; } elseif ($gracz['lvl'] == 1 || $gracz2['lvl'] == 1) { return "w pojedynkach mogą brać udział tylko gracze o poziomie wyższym niż 2"; } elseif ($gracz['zycie'] == 0) { return "jesteś ciężko ranny i nie możesz walczyć"; } elseif ($gracz2['zycie'] == 0) { return "przeciwnik jest ciężko ranny i nie możesz walczyć"; } else { $tekst = "\n\t\t<table style='width:100%'>\n\t\t<tr>\t\t\t\n\t\t\t<td>\n\t\t\tWyzwałeś na pojedynek gracza <b>" . $gracz2['nazwa'] . "</b><br/><br/>\n\n\t\t\t<table style='text-align:center'>\n\t\t\t<tr>\n\t\t\t\t<th colspan=6>Statystyki</th>\n\t\t\t</tr>\n\t\t\t<tr style='background:#BB9986; color:#000'>\n\t\t\t\t<td>Atak</td>\n\t\t\t\t<td>Obrona</td>\n\t\t\t\t<td>Obrażenia</td>\n\t\t\t\t<td>Życie</td>\n\t\t\t\t<td>Absorbcja:</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>" . $gracz2['atak'] . "</td>\n\t\t\t\t<td>" . $gracz2['obrona'] . "</td>\n\t\t\t\t<td>" . $gracz2['obrazenia_min'] . " - " . $gracz2['obrazenia_max'] . "</td>\n\t\t\t\t<td>" . $gracz2['zycie'] . "</td>\n\t\t\t\t<td>" . $gracz2['absorbcja'] . "</td>\n\t\t\t</tr>\n\t\t\t</table>\n\t\t\t<br/>Przebieg walki:<hr/>\n\t\t"; $bonus = floor($gracz['atak'] / $gracz2['obrona']); $gracz['obrazenia_min'] = floor($gracz['obrazenia_min'] * $bonus); $gracz['obrazenia_max'] = floor($gracz['obrazenia_max'] * $bonus); $bonus = floor($gracz2['atak'] / $gracz['obrona']); $gracz2['obrazenia_min'] = floor($gracz2['obrazenia_min'] * $bonus); $gracz2['obrazenia_max'] = floor($gracz2['obrazenia_max'] * $bonus); while ($gracz['zycie'] > 0 && $gracz2['zycie'] > 0) { $dam = rand($gracz['obrazenia_min'], $gracz['obrazenia_max']) - $gracz2['absorbcja']; if ($dam < 1) { $dam = 1; } $gracz2['zycie'] -= $dam; $tekst .= "+ Zadałeś przeciwnikowi <i style='color:#339900'>" . $dam . "</i> obrażeń<br>"; if ($gracz2['zycie'] < 1) { $gracz['exp'] += $gracz2['exp']; $gracz['zloto'] += $gracz2['zloto']; call("update genix_gracze set zycie = " . $gracz['zycie'] . ", exp = exp + " . $gracz2['poziom'] * 100 . " where gracz = " . $gracz['gracz']); call("update genix_gracze set zycie = 0 where gracz = " . $gracz2['gracz']); $tekst .= "<br>Decydujące uderzenie posyła " . $gracz2['nazwa'] . " na ziemię, wygrałeś<br><br> Zdobywasz " . $gracz2['poziom'] * 100 . " doświadczenia"; } else { $dam = rand($gracz2['obrazenia_min'], $gracz2['obrazenia_max']) - $gracz['absorbcja']; if ($dam < 1) { $dam = 1; } $gracz['zycie'] -= $dam; $tekst .= "+ " . $gracz2['nazwa'] . " trafia i zadaje <i style='color:#FF0000'>" . $dam . "</i> obrażeń<br>"; if ($gracz['zycie'] < 1) { call("update genix_gracze set zycie = 0 where gracz = " . $gracz['gracz']); call("update genix_gracze set zycie = " . $gracz2['zycie'] . ", exp = exp + " . $gracz['poziom'] * 100 . " where gracz = " . $gracz2['gracz']); $tekst .= "<br>Decydujące uderzenie potwora posyła Cię na ziemię, padasz nieprzytomny...<br><br> Budzisz się... ledwo wstajesz i powoli wracasz do domu opatrzyć rany..."; } } $tekst .= "<hr/>"; } $tekst .= "</td>\n\t\t</tr>\n\t\t</table>"; return $tekst; } }
function tri($n, $m, $l) { if ($n - 1 == $m) { return; } row($l, $n); echo PHP_EOL; return tri($n + 1, $m, $l); }
/** * index function. * * @access public * @return void */ public function index() { $this->output->enable_profiler(false); $this->benchmark->mark('auth_start'); if (!$this->auth->loggedin()) { redirect('user/login'); } $uid = intval($this->auth->userid()); $this->benchmark->mark('auth_end'); $user = $this->user_model->get_user($uid); $greeting = ''; if (isset($user['firstname'])) { $greeting = ' ' . $user['firstname']; $data['firstname'] = $user['firstname']; } else { $greeting = ' ' . $user['username']; $data['firstname'] = $user['firstname']; } $data['title'] = $this->system_model->get('app_name'); $data['stylesheets'] = array('buttons_purple'); $data['partial'] = 'home'; $data['org_name'] = $this->system_model->get('org_name'); $data['app_name'] = $this->system_model->get('app_name'); $data['members'] = $this->member_model->count_members(); $data['users'] = $this->user_model->count_users(); $memberdata = heading(ucfirst(lang('members')), 5); $ofeachtype = array(); $this->benchmark->mark('members_process_start'); foreach ($this->member_model->get_types() as $type) { $count = $this->member_model->count_members_type($type['id']); array_push($ofeachtype, $count . ' ' . strtolower($type['plural'])); } $data['membertypes'] = $ofeachtype; $memberdata .= p(ucfirst($data['org_name']) . ' har totalt ' . anchor('members', $data['members'] . ' ' . lang('members')) . ' varav:'); $memberdata .= ul($data['membertypes'], array('class' => 'disc')); $memberdata .= button_group(array(button_anchor('members', ucfirst(lang('administer')) . ' ' . lang('members'), 'radius'), button_anchor('member/register', ucfirst(lang('register_member')), 'radius')), 'radius'); $this->benchmark->mark('members_process_end'); $userdata = heading(ucfirst(lang('users')), 5); $this->benchmark->mark('users_process_start'); $userdata .= p(ucfirst($data['app_name']) . ' har totalt ' . anchor('admin/users', $data['users'] . ' ' . lang('users')) . '.'); $active = $this->user_model->get_active(); $ausers = array(); foreach ($active as $aid) { $auser = $this->user_model->get_user($aid); array_push($ausers, $auser['firstname'] . ' ' . $auser['lastname']); } $data['loggedon'] = $ausers; $userdata .= heading(ucfirst(lang('currently_logged_on')) . ':', 6) . ul($ausers, array('class' => 'disc')); $userdata .= button_group(array(button_anchor('admin/users', ucfirst(lang('administer')) . ' ' . lang('users'), 'radius'), button_anchor('user/create', ucfirst(lang('create_user')), 'radius')), 'radius'); $this->benchmark->mark('users_process_end'); $content = heading(ucfirst(lang('welcome')) . $greeting . '!', 1); $content .= row(columns($memberdata, 6) . columns($userdata, 6)); $html = $content; $data['html'] = $html; $this->system_model->view('template', $data); }
function walcz($gracz, $lokacja) { //zabezpiecz zmienne $lokacja = (int) $lokacja; $potwor = row("select * from genix_potwory inner join genix_potwory_lokacje on potwor = potwor_id where lokacja_id = " . $lokacja . " order by rand() limit 1"); $potwor['absorbcja'] = 0; if (empty($potwor)) { return "nie spotkałeś przeciwnika i śmiało możesz ruszać dalej"; } elseif ($gracz['zycie'] == 0) { return "jesteś ciężo ranny i nie możesz walczyć"; } else { call("update genix_gracze set akcje = akcje - 1 where gracz = " . $gracz['gracz'] . " and akcje > 0"); if (mysql_affected_rows() == 0) { return "nie posiadasz punktów akcji"; } $tekst = "\n\t\tnowy ekran walki jest samodzielnym dodatkiem, nie ma go w paczce genix_mapa<hr/>\n\t\t\n\t\t<table style='width:100%'>\n\t\t<tr>\n\t\t\t<td align=center valign=top><img src='" . $potwor['obrazek'] . "' alt='' style='border: solid 1px #BB9986'/>\n\t\t\t</td>\n\t\t\t<td>\n\t\t\tZostałeś zaatakowany przez <b>" . $potwor['nazwa'] . "</b><br/><br/>\n\n\t\t\t<table style='text-align:center'>\n\t\t\t<tr>\n\t\t\t\t<th colspan=6>Statystyki</th>\n\t\t\t</tr>\n\t\t\t<tr style='background:#BB9986; color:#000'>\n\t\t\t\t<td>Atak</td>\n\t\t\t\t<td>Obrona</td>\n\t\t\t\t<td>Obrażenia</td>\n\t\t\t\t<td>Życie</td>\n\t\t\t\t<td>EXP</td>\n\t\t\t\t<td>Złoto</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>" . $potwor['atak'] . "</td>\n\t\t\t\t<td>" . $potwor['obrona'] . "</td>\n\t\t\t\t<td>" . $potwor['obrazenia_min'] . " - " . $potwor['obrazenia_max'] . "</td>\n\t\t\t\t<td>" . $potwor['zycie'] . "</td>\n\t\t\t\t<td>" . $potwor['exp'] . "</td>\n\t\t\t\t<td>" . $potwor['zloto'] . "</td>\n\t\t\t</tr>\n\t\t\t</table>\n\t\t\t<br/>Przebieg walki:<hr/>\n\t\t"; $bonus = floor($gracz['atak'] / $potwor['obrona']); $gracz['obrazenia_min'] = floor($gracz['obrazenia_min'] * $bonus); $gracz['obrazenia_max'] = floor($gracz['obrazenia_max'] * $bonus); $bonus = floor($potwor['atak'] / $gracz['obrona']); $potwor['obrazenia_min'] = floor($potwor['obrazenia_min'] * $bonus); $potwor['obrazenia_max'] = floor($potwor['obrazenia_max'] * $bonus); while ($gracz['zycie'] > 0 && $potwor['zycie'] > 0) { $dam = rand($gracz['obrazenia_min'], $gracz['obrazenia_max']) - $potwor['absorbcja']; if ($dam < 1) { $dam = 1; } $potwor['zycie'] -= $dam; $tekst .= "+ Zadałeś przeciwnikowi <i style='color:#339900'>" . $dam . "</i> obrażeń<br>"; if ($potwor['zycie'] < 1) { $gracz['exp'] += $potwor['exp']; $gracz['zloto'] += $potwor['zloto']; call("update genix_gracze set zycie = " . $gracz['zycie'] . ", zloto = zloto + " . $potwor['zloto'] . ", exp = exp + " . $potwor['exp'] . " where gracz = " . $gracz['gracz']); $tekst .= "<br>Decydujące uderzenie posyła " . $potwor['nazwa'] . " na ziemię, wygrałeś<br><br> Zdobywasz " . $potwor['exp'] . " doświadczenia i " . $potwor['zloto'] . " złota"; } else { $dam = rand($potwor['obrazenia_min'], $potwor['obrazenia_max']) - $gracz['absorbcja']; if ($dam < 1) { $dam = 1; } $gracz['zycie'] -= $dam; $tekst .= "+ " . $potwor['nazwa'] . " trafia i zadaje <i style='color:#FF0000'>" . $dam . "</i> obrażeń<br>"; if ($gracz['zycie'] < 1) { call("update genix_gracze set zycie = 0 where gracz = " . $gracz['gracz']); $tekst .= "<br>Decydujące uderzenie potwora posyła Cię na ziemię, padasz nieprzytomny...<br><br> Budzisz się... ledwo wstajesz i powoli wracasz do domu opatrzyć rany..."; } } $tekst .= "<hr/>"; } $tekst .= "</td>\n\t\t</tr>\n\t\t</table>"; return $tekst; } }
function walcz($gracz, $lokacja) { //zabezpiecz zmienne $lokacja = (int) $lokacja; $potwor = row("select * from genix_potwory inner join genix_potwory_lokacje on potwor = potwor_id where lokacja_id = " . $lokacja . " order by rand() limit 1"); $potwor['absorbcja'] = 0; if (empty($potwor)) { return "nie spotkałeś przeciwnika i śmiało możesz ruszać dalej"; } elseif ($gracz['zycie'] == 0) { return "jesteś ciężo ranny i nie możesz walczyć"; } else { call("update genix_gracze set akcje = akcje - 1 where gracz = " . $gracz['gracz'] . " and akcje > 0"); if (mysql_affected_rows() == 0) { return "nie posiadasz punktów akcji"; } $bonus = floor($gracz['atak'] / $potwor['obrona']); $gracz['obrazenia_min'] = floor($gracz['obrazenia_min'] * $bonus); $gracz['obrazenia_max'] = floor($gracz['obrazenia_max'] * $bonus); $bonus = floor($potwor['atak'] / $gracz['obrona']); $potwor['obrazenia_min'] = floor($potwor['obrazenia_min'] * $bonus); $potwor['obrazenia_max'] = floor($potwor['obrazenia_max'] * $bonus); $tekst = "Na swojej drodze spotkałeś " . $potwor['nazwa'] . ", szykuj się do walki<br><br>"; while ($gracz['zycie'] > 0 && $potwor['zycie'] > 0) { $dam = rand($gracz['obrazenia_min'], $gracz['obrazenia_max']) - $potwor['absorbcja']; if ($dam < 1) { $dam = 1; } $potwor['zycie'] -= $dam; $tekst .= "Zadałeś przeciwnikowi " . $dam . " obrażeń<br>"; if ($potwor['zycie'] < 1) { $gracz['exp'] += $potwor['exp']; $gracz['zloto'] += $potwor['zloto']; call("update genix_gracze set zycie = " . $gracz['zycie'] . ", zloto = zloto + " . $potwor['zloto'] . ", exp = exp + " . $potwor['exp'] . " where gracz = " . $gracz['gracz']); $tekst .= "<br>Decydujące uderzenie posyła " . $potwor['nazwa'] . " na ziemię, wygrałeś<br><br> Zdobywasz " . $potwor['exp'] . " doświadczenia i " . $potwor['zloto'] . " złota"; } else { $dam = rand($potwor['obrazenia_min'], $potwor['obrazenia_max']) - $gracz['absorbcja']; if ($dam < 1) { $dam = 1; } $gracz['zycie'] -= $dam; $tekst .= $potwor['nazwa'] . " trafia i zadaje " . $dam . " obrażeń<br>"; if ($gracz['zycie'] < 1) { call("update genix_gracze set zycie = 0 where gracz = " . $gracz['gracz']); $tekst .= "<br>Decydujące uderzenie potwora posyła Cię na ziemię, padasz nieprzytomny...<br><br> Budzisz się... ledwo wstajesz i powoli wracasz do domu opatrzyć rany..."; } } $tekst .= "<br>---------------<br>"; } return $tekst; } }
function zdejmij_ciuch($gracz, $id) { $gracz = (int) $gracz; $id = (int) $id; $dane = row("select * from driver_gracze where gracz = " . $gracz); $ciuch = row($q = "select * from driver_ciuchy inner join driver_ciuchy_gracze on id = c_id and gracz_id = " . $gracz . " where id = {$id} and status = 1"); if (empty($ciuch)) { return "nie masz takiego sprzętu"; } else { call("update driver_gracze set bonus_vmax = bonus_vmax - " . $ciuch['vmax'] . ", bonus_do100 = bonus_do100 - " . $ciuch['do100'] . " where gracz = {$gracz}"); call("update driver_ciuchy_gracze set status = 0 where gracz_id = {$gracz} and c_id = {$id} limit 1"); return "zdjęto sprzęt"; } }
/** * [login 처리] * @param [Array] $authData [사용자 로그인정보] * @return [Boolean/Object] 로그인 실패->false, 성공->object */ public function login($auth_data) { $user = ['name' => $auth_data['username'], 'pw' => $auth_data['password']]; $sql = "SELECT username, email, user_id FROM {$this->user_table} "; $sql .= "WHERE username='******'name'] . "' AND password = '******'password'] . "'"; $query = $this->db->query($sql); //num_row() 쿼리 결과 갯수 반환 if ($query->num_row() > 0) { // row() 한줄의 결과만 반환 return $query - row(); } else { return FALSE; } }
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 deaktywuj_auto($gracz) { //zabezpiecz zmienne $gracz = (int) $gracz; //pobierz dane gracza $data = row("select * from driver_gracze where gracz = {$gracz}"); if ($data['auto'] > 0) { //jeżeli gracz ma już jakieś ustawione auto to wycofaj je do boksu call("insert into driver_auta_gracze (id_gracza, id_auta, vmax, do100, wartosc) value (" . $gracz . "," . $data['auto'] . "," . $data['vmax'] . "," . $data['do100'] . "," . $data['wartosc'] . ")"); //ustaw, że gracz nie ma auta call("update driver_gracze set auto = 0, vmax = " . $data['vmax'] . ", do100 = " . $data['do100'] . ", wartosc = 0 where gracz = {$gracz}"); return "odstawiono auto do garażu"; } else { return "nie masz aktywnego auta"; } }
function sprzedaj($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"; } else { call("delete from genix_przedmioty_gracze where id = " . $przedmiot . " limit 1"); call("update genix_gracze set zloto = zloto + " . $dane['cena'] . " where gracz = " . $gracz['gracz']); if (mysql_affected_rows() == 0) { return "nieokreślony błąd, spróbuj ponownie"; } else { return "sprzedano przedmiot"; } } }
function sprzedaj_auto($gracz, $id) { //zabezpiecz zmienne $gracz = (int) $gracz; $id = (int) $id; //pobierz dane auta o podanym $id - sprawdź czy gracz takie posiada $auto = row("select * from driver_auta_gracze where id_gracza = {$gracz} and id_auta = {$id} limit 1"); if (empty($auto)) { //jeżeli nie ma takiego auta return "nie ma takiego auta"; } else { //dodaj gotówkę call("update driver_gracze set kasa = kasa + " . $auto['wartosc'] . " where gracz = {$gracz}"); //usuń auto z listy aut gracza call("delete from driver_auta_gracze where id_gracza = {$gracz} and id_auta = {$id} limit 1"); return "sprzedano auto za " . $auto['wartosc'] . " gotówki"; } }
function nowy_gracz($login, $haslo, $email, $nazwa) { //sprawdź czy login ma odpowiednią ilość znaków $error = ''; if (strlen($login) < 5 || strlen($login) > 15) { $error .= 'niepoprawna długość pola login, 5 - 15 znaków<br>'; } //sprawdź czy hasło ma odpowiednią ilość znaków if (strlen($haslo) < 5 || strlen($haslo) > 15) { $error .= 'niepoprawna długość pola hasło, 5 - 15 znaków<br>'; } //sprawdź czy miasto ma odpowiednią ilość znaków if (strlen($nazwa) < 5 || strlen($nazwa) > 15) { $error .= 'niepoprawna długość pola nazwa, 5 - 15 znaków<br>'; } //zabezpiecz zmienne $login = vText($login); $haslo = vText($haslo); $email = vText($email); $nazwa = vText($nazwa); if (!empty($error)) { //jeżeli zmienna $error nie jest pusta i zawiera informacje o błędzie to przerwij działanie i pokaż błąd return $error; } else { //jeżeli jest wszystko ok //pobierz dane z gabeli graczy o takim samym loginie lub email $test = row("select gracz from genix_gracze where login = '******' or email ='" . $email . "' or nazwa ='" . $nazwa . "' limit 1"); if (!empty($test)) { //jeżeli coś pobrało, to wyświetl błąd return "taki login i/lub email i/lub nazwa postaci są zajęte"; } else { //zaszyfruj hasło $haslo = md5($haslo); //dodaj gracza call("insert into genix_gracze (login, haslo, email, nazwa, ostatnio_zalogowany) value ('" . $login . "','" . $haslo . "','" . $email . "', '" . $nazwa . "', " . mktime() . ")"); $id = mysql_insert_id(); if (!empty($id)) { return "poprawnie zarejestrowano gracza " . $login; } else { return "wystąpił nieoczekiwany błąd, spróbuj ponownie"; } } } }
public function __construct(Table $table, $indexName, $keyFunction = null) { if (!isset($keyFunction)) { $keyFunction = row($indexName); } if (!\is_string($indexName)) { throw new RqlDriverError("Index name must be a string."); } if (!(is_object($keyFunction) && is_subclass_of($keyFunction, "\\r\\Query"))) { $keyFunction = nativeToFunction($keyFunction); } else { if (!(is_object($keyFunction) && is_subclass_of($keyFunction, "\\r\\FunctionQuery"))) { $keyFunction = new RFunction(array(new RVar('_')), $keyFunction); } } $this->setPositionalArg(0, $table); $this->setPositionalArg(1, new StringDatum($indexName)); $this->setPositionalArg(2, $keyFunction); }
function kup($gracz, $przedmiot) { //zabezpiecz zmienne $przedmiot = (int) $przedmiot; $dane = row("select * from genix_przedmioty where przedmiot = " . $przedmiot . " limit 1"); if (empty($dane)) { return "nie ma takiego przedmiotu"; } elseif ($dane['cena'] > $gracz['zloto']) { return "nie stać Cię na ten przedmiot"; } else { call("update genix_gracze set zloto = zloto - " . $dane['cena'] . " where gracz = " . $gracz['gracz']); if (mysql_affected_rows() == 0) { return "nieokreślony błąd, spróbuj ponownie"; } else { call("insert into genix_przedmioty_gracze(gracz_id, przedmiot_id) value (" . $gracz['gracz'] . "," . $dane['przedmiot'] . ")"); return "kupiono przedmiot"; } } }
function getPlayer($id) { $player = row("select *, (select count(*) from hellpit_messages where m_type = 1 and m_to = {$id} and m_status - 0) as msg, (select count(*) from hellpit_events where e_pit_id = actual_pit) as events ,(select count(*) from hellpit_events where e_pit_id = actual_pit and e_end <= unix_timestamp()) as end_events , unix_timestamp() as user_time,(select pit_name from hellpit_pits where pit_id = actual_pit) as actual_pit_name from hellpit_users where user = "******"select * from hellpit_pits where pit_user = "******"Chochlik"; break; case 2: $player->rang = "Chowaniec"; break; case 3: $player->rang = "Gog"; break; case 4: $player->rang = "Magog"; break; case 5: $player->rang = "Demon"; break; case 6: $player->rang = "Rogaty Demon"; break; case 7: $player->rang = "Czart"; break; case 8: $player->rang = "Czarci Lord"; break; case 9: $player->rang = "Pan Piekieł"; break; default: $player->rang = "Szatański Pomiot"; break; } } else { $player->rang = "Pan Piekieł"; } query("update hellpit_users set last_action = unix_timestamp() where user = " . $id); return $player; }
function kup_ciuch($gracz, $id) { //zabezpiecz zmienne $gracz = (int) $gracz; $id = (int) $id; $dane = row("select * from driver_gracze where gracz = " . $gracz); $ciuch = row($q = "select * from driver_ciuchy left join driver_ciuchy_gracze on id = c_id and gracz_id = " . $gracz . " where gracz_id is null and id = {$id}\t"); if (empty($ciuch)) { return "nie ma takiego sprzętu"; } else { if ($dane['kasa'] < $ciuch['cena'] || $dane['monety'] < $ciuch['monety']) { return "nie posiadasz tyle gotówki/monet"; } else { call("update driver_gracze set kasa = kasa - " . $ciuch['cena'] . ", monety = monety - " . $ciuch['monety'] . " where gracz = {$gracz}"); call($q = "insert into driver_ciuchy_gracze (gracz_id, c_id) value ({$gracz}, {$id})"); return "kupiono " . $ciuch['nazwa']; } } }
function sprzedaj_ciuch($gracz, $id) { $gracz = (int) $gracz; $id = (int) $id; $dane = row("select * from driver_gracze where gracz = " . $gracz); $ciuch = row($q = "select * from driver_ciuchy inner join driver_ciuchy_gracze on id = c_id and gracz_id = " . $gracz . " where id = {$id}\t"); if (empty($ciuch)) { return "nie masz takiego sprzętu"; } elseif ($ciuch['status'] == 1) { return "ten sprzęt jest używany, zdejmij go najpierw"; } else { //jeżeli to był przedmiot vip to za 1 monetę zwraca 500$ if ($ciuch['monety'] > 0) { $ciuch['cena'] += $ciuch['monety'] * 500; } call("update driver_gracze set kasa = kasa + " . floor($ciuch['cena'] * 0.9) . " where gracz = {$gracz}"); call("delete from driver_ciuchy_gracze where gracz_id = {$gracz} and c_id = {$id} limit 1"); return "sprzedano sprzęt za " . $ciuch['cena'] . " gotówki"; } }
/** * index function. * * @access public * @return void */ public function index() { $this->output->enable_profiler(false); if (!$this->auth->loggedin()) { redirect('user/login'); } $data['title'] = $this->system_model->get('app_name'); $html = row(columns(heading(ucfirst(lang('about')) . ' ' . $this->system_model->get('app_name'), 1), 12)); $uptime_array = explode(" ", exec("cat /proc/uptime")); $seconds = round($uptime_array[0], 0); $minutes = $seconds / 60; $hours = $minutes / 60; $days = floor($hours / 24); $hours = sprintf('%02d', floor($hours - $days * 24)); $minutes = sprintf('%02d', floor($minutes - $days * 24 * 60 - $hours * 60)); if ($days == 0) { $uptime = $hours . ":" . $minutes; } elseif ($days == 1) { $uptime = $days . " " . lang('day') . ", " . $hours . ":" . $minutes; } else { $uptime = $days . " " . lang('days') . ", " . $hours . ":" . $minutes; } $infolist = ul(array(heading('Applikation', 5) . ul(array(strong('Klubb-' . lang('version') . ': ') . KLUBB_VERSION, strong('CodeIgniter-' . lang('version') . ': ') . CI_VERSION, strong(ucfirst(lang('database')) . ': ') . $this->db->platform() . ', ' . lang('version') . ': ' . $this->db->version(), strong(ucfirst(lang('environment') . ': ')) . lang(ENVIRONMENT))), heading('Server', 5) . ul(array(strong('Namn: ') . php_uname('n'), strong('System: ') . php_uname('s') . ' ' . php_uname('r') . ' ' . php_uname('v') . ' ' . php_uname('m'), strong('Upptid: ') . $uptime, strong('PHP-version: ') . phpversion(), strong('PHP-moduler: ') . implode(', ', get_loaded_extensions())))), array('class' => 'no-bullet')); $html .= row(columns($infolist)); $data['breadcrumbs'] = array(array('data' => anchor('/', $this->system_model->get('app_name')), 'mode' => 'unavailable'), array('data' => anchor('about', ucfirst(lang('about') . ' ' . $data['title'])), 'mode' => 'current')); $data['html'] = $html; $this->system_model->view('template', $data); }