function format_size($bytes) { // GB if ($bytes >= 1073741824) { return game::format_number(round($bytes / 1073741824, 3), 3) . " GB"; } // MB if ($bytes >= 1048576) { return game::format_number(round($bytes / 1048576, 2), 2) . " MB"; } // KB if ($bytes >= 1024) { return game::format_number(round($bytes / 1024, 2), 2) . " KB"; } // bytes return $bytes . " bytes"; }
/** * Vis meldinger */ protected function show_messages() { // hent meldinger $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, login::data_get("innboks_per_side", 15)); $meldinger = $this->inbox->get_messages($pagei, $this->show_deleted); $this->css(); echo ' <div style="margin-top: 1em; font-size: 15px"> <h1' . ($pagei->active > 1 && ($show_deleted = false ? ' id="scroll_here"' : '')) . ' style="float: left; margin-top: 0">Meldinger</h1> <p class="h_right" style="margin: 10px 0 0 0 !important"> <a href="innboks_ny">Opprett ny melding</a>' . ($pagei->total > 0 ? ' <a href="' . htmlspecialchars($this->addr(null, null, "innboks_sok")) . '">Søk</a>' : '') . ' </p> </div>'; // ingen meldinger å vise? if (!$meldinger) { echo ' <p class="clear">Du har ingen meldinger i din innboks eller utboks.</p> <p>Så fort du sender eller mottar en melding vil den komme opp på denne siden.</p>'; } else { $this->js(); // flere sider? if ($pagei->pages > 1) { echo ' <p class="c" style="margin: 25px auto 10px; width: 250px">' . $pagei->pagenumbers() . '</p>'; } echo ' <form action="" method="post"> <table class="table clear" width="100%" id="meldinger"> <thead> <tr> <th>Emne (<a href="#" class="box_handle_toggle" rel="it_id[]">Merk alle</a>)</th> <th><abbr title="Antall meldinger i meldingstråden">Ant.</abbr></th> <th><abbr title="Antall deltakere utenom deg selv">De.</abbr></th> <th>Siste</th> <th class="nowrap" colspan="1">Tid siste (<a id="skift_tid">veksle</a>)</th> </tr> </thead> <tbody>'; $i = 0; $c = access::has("crewet"); foreach ($meldinger as $row) { $o = $row['up_prev_other'] ? '<user id="' . $row['up_prev_other']['im_up_id'] . '" /> <span class="im_utg">(utgående)</span>' : ($row['up_prev'] && !$row['up_prev'][0] ? '<user id="' . $row['up_prev'][1] . '" />' : (count($row['receivers']) > 1 ? '<user id="' . $row['receivers'][0]['ir_up_id'] . '" /> <span class="im_utg">(utgående)</span>' : '<span class="dark">Ingen</span>')); // låst? // TODO: Skal ikke tråden se ut som den er låst når man er i crewet? Man har uansett mulighet til å svare når man går inn i tråden $locked = false; if (!$row['receivers_ok']) { $locked = true; } elseif ($row['ir_up_id'] != $this->inbox->u->player->id || !$this->inbox->u->player->active && !$row['receivers_crew']) { $locked = true; } echo ' <tr class="box_handle' . ($row['ir_unread'] > 0 ? ' not_viewed' : (++$i % 2 == 0 ? ' color' : '')) . '"> <td class="it_e"> <input type="checkbox" name="it_id[]" value="' . $row['it_id'] . '" /> <a href="innboks_les?id=' . $row['it_id'] . '" class="it_a"> <span class="it_t_w"> <span class="it_t">' . htmlspecialchars($row['it_title']) . '</span>' . ($row['ir_unread'] == 1 ? ' <span class="ny">(Ny!)</span>' : ($row['ir_unread'] > 1 ? ' <span class="ny">(' . $row['ir_unread'] . ' nye!)</span>' : '')) . ($row['ir_deleted'] != 0 ? ' <span class="slettet">(Slettet)</span>' : '') . ($locked ? ' <span class="it_locked">(Låst)</span>' : '') . ($row['ir_marked'] != 0 ? '<span class="ir_marked"> (Til oppfølging)</span>' : '') . ' </span>' . ($row['id_text'] != "" ? '<br /> <span class="id_text_w"><span class="id_text">' . $row['id_text'] . '</span> <span class="id_up">(' . ($row['up_prev'][0] ? 'meg' : '<user id="' . $row['up_prev'][1] . '" nolink />') . ')</span></span>' : '') . ' </a> </td> <td class="c">' . game::format_number($row['num_messages']) . '</td> <td class="c">' . (count($row['receivers']) - 1) . '</td> <td class="it_u"> ' . $o . ' <div class="im_deltakere_det hide" rel="' . $row['it_id'] . ',' . $row['ir_marked'] . '"> <table class="table"> <thead> <tr> <th>Spiller</th> <th>Antall</th> <th>Uleste</th>' . (access::has("mod") ? ' <th>Vis</th>' : '') . ' <th>Status</th> </tr> </thead> <tbody>'; foreach ($row['receivers'] as $r) { echo ' <tr> <td><user id="' . $r['ir_up_id'] . '" /></td> <td class="r">' . $r['num_messages'] . '</td> <td class="r">' . ($r['ir_unread'] > 0 ? '<b>' . $r['ir_unread'] . '</b>' : $r['ir_unread']) . '</td>' . (access::has("mod") ? ' <td>' . $r['ir_views'] . '</td>' : '') . ' <td>' . ($r['up_access_level'] == 0 ? '<span class="dark">Død' . ($c && $r['u_access_level'] != 0 && $r['u_active_up_id'] == $r['ir_up_id'] ? ', men bruker aktiv' : '') . '</span>' : ($r['ir_deleted'] != 0 ? '<span class="dark">Slettet meldingen</span>' : 'Mottar nye meldinger')) . '</td> </tr>'; } echo ' </tbody> </table> </div> </td> <td class="it_dato_w"> <span class="it_dato_f it_dato_hide">' . ess::$b->date->get($row['ir_restrict_im_time'])->format(date::FORMAT_SEC) . '</span> <span class="it_dato_f">' . game::timespan($row['ir_restrict_im_time'], game::TIME_ABS) . '</span> </td> </tr>'; } echo ' </tbody> </table> <p style="float: right; line-height: 25px" class="r red"> ' . show_sbutton("Slett merkede meldinger", 'name="slett" onclick="return confirm(\'Er du sikker på at du vil slette de merkede meldingene?\')"') . '<br /> ' . show_sbutton("Slett alle meldingene", 'name="slettalle"') . ' </p> </form> <form action="" method="post"> <p style="float: left"> <select name="ps">'; $list = array(10, 15, 20, 25, 30, 40, 50, 75, 100); if (!in_array($pagei->per_page, $list)) { $list[] = $pagei->per_page; sort($list); } foreach ($list as $a) { echo ' <option value="' . $a . '"' . ($a == $pagei->per_page ? ' selected="selected"' : '') . '>Vis ' . $a . ' meldinger</option>'; } echo ' </select> </p> </form>'; // flere sider? if ($pagei->pages > 1) { echo ' <p class="c" style="margin: 13px auto 10px; width: 250px">' . $pagei->pagenumbers() . '</p>'; } } $this->load_page(); }
</noscript> </div> <p>Denne listen viser hvem som har vært aktive i løpet av siste ' . game::timespan($time, game::TIME_FULL) . '</p> </form>'; // hent brukerne $result = \Kofradia\DB::get()->query("SELECT up_id, up_name, up_access_level FROM users_players WHERE up_last_online >= " . (time() - $time) . " ORDER BY up_name"); // sett opp alfabetisk liste $liste = array(); while ($row = $result->fetch()) { $liste[mb_strtolower(mb_substr($row['up_name'], 0, 1))][] = game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']); } echo ' <table class="table tablemb"> <thead> <tr> <th colspan="2">Spillere pålogget - ' . game::format_number($result->rowCount()) . ' spiller' . ($result->rowCount() == 1 ? '' : 'e') . '</th> </tr> </thead> <tbody>'; foreach ($liste as $char => $rows) { echo ' <tr> <th>' . htmlspecialchars($char) . '</th> <td>' . implode(", ", $rows) . '</td> </tr>'; } echo ' </tbody> </table> </div> </div>';
$result = \Kofradia\DB::get()->query("SELECT lv_up_id, time, won, total_lodd, total_users, type FROM smafia_database.lotto_vinnere WHERE time >= {$first} AND time < {$last} ORDER BY type"); $rounds = array(); // legg i riktig gruppe while ($row = $result->fetch()) { $end = ceil(($row['time'] - 900) / 1800) * 1800 + 900; if (!isset($rounds[$end])) { $rounds[$end] = array("time" => $end, "total_lodd" => $row['total_lodd'], "total_users" => $row['total_users'], "users" => array()); } $rounds[$end]['users'][$row['type']] = array($row['lv_up_id'], $row['won']); } krsort($rounds); foreach ($rounds as $round) { echo ' <div class="section"> <h2>' . $_base->date->get($round['time'])->format() . '</h2> <p class="h_right">' . game::format_number($round['total_lodd']) . ' lodd, ' . game::format_number($round['total_users']) . ' spiller' . ($round['total_users'] == 1 ? '' : 'e') . '</p> <dl class="dd_right">'; foreach ($round['users'] as $num => $row) { echo ' <dt>' . $num . ' - <user id="' . $row[0] . '" /></dt> <dd>' . game::format_cash($row[1]) . '</dd>'; } echo ' </dl> </div>'; } // vis side echo ' <p class="c">' . $pagei->pagenumbers() . '</p>'; } echo '
function handle_data($cid, $line) { global $_base; $this->debug($cid, "Handling data: {$line}"); if (!isset($this->sockets[$cid])) { $this->debug($cid, "Socket not found. Aborting data check."); return; } #$this->debug($cid, "Data received: " . $line); $matches = false; if (preg_match('/^:([^ ]+)\\s+(.+?)\\s+(.+?)(?:\\s+:(.+?))?\\r?$/s', $line, $matches)) { $from = $matches[1]; $type = $matches[2]; $arg = $matches[3]; $content = isset($matches[4]) ? $matches[4] : ''; $user = $this->nickinfo($from); switch ($type) { // nick i bruk case "433": $this->handle_error($cid, "Nick is in use.."); return; // motd innhold // motd innhold case "372": $this->debug($cid, "MOTD: " . $content); break; // motd mangler // motd mangler case "422": #$this->debug($cid, "MOTD mangler"); #$this->debug($cid, "MOTD mangler"); case "376": $this->debug($cid, "MOTD avsluttet"); // sette som den aktive? if (!$this->connected_cid) { $this->connected_cid = $cid; } // join kanaler foreach ($this->settings['channels'] as $chan) { $args = isset($chan[1]) ? " :" . $chan[1] : ""; $this->send_data($cid, "JOIN {$chan[0]}{$args}\n"); } // oper if ($this->settings['name'] == "SMAFIA" || $this->settings['name'] == "SMAFIA_BETA") { $this->send_data($cid, "OPER SMAFIA StreetzMafiaBoten\n"); } // merk som klar for timers $this->connected = true; break; // invitasjon // invitasjon case "INVITE": $chan = explode(" ", $arg); if ($chan != "#StreetzMafia" && $chan != "#kofradia") { break; } $this->send_data($cid, "JOIN {$chan[1]}\n"); break; // meldinger // meldinger case "PRIVMSG": case "NOTICE": if (($this->settings['name'] == "SMAFIA" || $this->settings['name'] == "SMAFIA_BETA") && $this->irc_info || $this->settings['name'] == "QuakeNet" && $user["nick"] == "henrist" && $user["ident"] == "henrik" && $user["host"] == "hsw.no") { $match = false; $log = true; $break = false; if (substr($content, 0, 3) == ".r ") { $this->send_data($cid, "NOTICE {$user['nick']} :Sending raw data..\n"); $this->send_data($cid, substr($content, 3) . "\n"); $break = true; } elseif ($content == ".vars") { $this->msg($cid, $arg, "Kofradia Announcer - Loglimit: {$this->loglimit} - Skiptime: " . game::format_number($this->select_delay / 1000, 1) . " ms - Log delay: " . game::format_number($this->timers["CHECKLOG"][1] * 1000) . " ms"); } elseif ($content == ".queue") { $w = $this->settings['name'] == "SMAFIA_BETA" ? '1' : " li_network = " . \Kofradia\DB::quote($this->settings['name']); $result = \Kofradia\DB::get()->query("SELECT COUNT(*) FROM log_irc WHERE {$w}"); $ant = $result->fetchColumn(0); unset($result); $this->msg($cid, $arg, "Message queue: " . game::format_number($ant)); } elseif (preg_match("/^\\.loglimit\\s(\\d+)\$/", $content, $match)) { $num = intval($match[1]); if ($num <= 0) { $msg = "Must be more than 0."; } elseif ($num > 1500) { $msg = "Must be less than or equal to 1500."; } else { $this->loglimit = $num; $msg = "Log limit set to {$num}."; } $this->msg($cid, $arg, $msg); } elseif (preg_match("/^\\.logdelay\\s(\\d+)\$/", $content, $match)) { $num = intval($match[1]); if ($num < 100) { $msg = "Must be more than or equal 100."; } else { $this->timers["CHECKLOG"][1] = $num / 1000; $msg = "Log delay set to " . game::format_number($num / 1000, 1) . " sec."; } $this->msg($cid, $arg, $msg); } elseif ($content == ".logtimer") { $this->timers["CHECKLOG"][2] = 0; $this->next = 0; $msg = "Timer reset."; $this->msg($cid, $arg, $msg); } elseif (preg_match("/^\\.skiptime\\s(\\d+)\$/", $content, $match)) { $num = intval($match[1]); if ($num < 5) { $msg = "Must be more than or equal to 5."; } elseif ($num > 60000) { $msg = "Must be less than or equal to 60000."; } else { $this->select_delay = $num * 1000; $msg = "Skiptime set to {$num}."; } $this->msg($cid, $arg, $msg); } elseif (preg_match("/^\\.s(\\s|\$)/", $content) && ($arg[0] != "#" || $this->connected_cid == $cid)) { if (strstr($content, " ") == " disconnect") { $this->connect = false; $this->msg($cid, $arg, "State set to disconnect."); } else { $this->connect = true; $this->msg($cid, $arg, "State set to connect."); } } elseif (preg_match("/^\\.addbot\\s(.+)\$/", $content, $match) && ($arg[0] != "#" || $this->connected_cid == $cid)) { $info = explode(" ", $match[1], 4); if (count($info) == 4) { $this->clients[] = array("nick" => $info[1], "user" => $info[2], "name" => $info[3], "bind" => $info[0], "tmp" => ""); end($this->clients); $key = key($this->clients); $this->msg($cid, $arg, "New bot added to list. (#{$key})"); } else { $this->msg($cid, $arg, "Wrong parameter count."); } } elseif (preg_match("/^\\.disconnect (\\d+)\$/", $content, $match)) { if ($cid == $match[1]) { $this->msg($cid, $arg, ":("); $this->debug($cid, "Disconnect command applied."); $this->disconnect($cid); $break = true; } } elseif (preg_match("/^\\.disconnect\$/", $content)) { $this->debug($cid, "Disconnect command applied."); $this->disconnect($cid); $break = true; } elseif (preg_match("/^\\.die\$/", $content)) { $this->debug($cid, "Die!!!"); unset($this->clients[$cid]); $this->msg($cid, $arg, "Bye, bye.."); $this->disconnect($cid, "Killed in action!"); $break = true; } elseif (preg_match("/^\\.die (\\d+)\$/", $content, $match)) { if (isset($this->clients[$match[1]])) { if ($cid != $match[1]) { $this->msg($cid, $arg, "Lets kill! heaheaha"); } else { $this->msg($cid, $arg, "Bye, bye.. :("); } $this->debug($match[1], "Die!!!"); unset($this->clients[$match[1]]); if (isset($this->sockets[$match[1]])) { $this->disconnect($match[1], "Killed in action!"); } if ($cid == $match[1]) { $break = true; } } else { #$this->msg($cid, $arg, "I don't know that person....?"); } } elseif (substr($content, 0, 5) == ".sql " && ($arg[0] != "#" || $this->connected_cid == $cid)) { $query = substr($content, 5); if (strpos($query, ";") !== false || substr($query, 0, 7) != "SELECT ") { $this->send_data($cid, "PRIVMSG {$arg} :Invalid query..\n"); } else { //$arg = "mysql --user="******" --pass="******" ".escapeshellarg(DBNAME)." --execute=".escapeshellarg($query); //$val = shell_exec($arg); $this->send_data($cid, "PRIVMSG {$arg} :Executing query..\n"); $ok = true; try { $result = \Kofradia\DB::get()->query($query); } catch (Exception $e) { $ok = false; } if (!$ok) { $this->send_data($cid, "PRIVMSG {$arg} :Query failed: " . \Kofradia\DB::get()->errorInfo()[2] . "\n"); } else { if ($result->rowCount() == 0) { $this->send_data($cid, "PRIVMSG {$arg} :No data in result.\n"); } else { // list opp feltene $row = $result->fetch(); $fields = array_keys($row); $this->send_data($cid, "PRIVMSG {$arg} :Fields: " . implode(", ", $fields) . "\n"); // vis hver rad $i = 1; do { $data = array(); foreach ($row as $value) { $data[] = preg_replace("/[\r\n]/", "", $value); } $this->send_data($cid, "PRIVMSG {$arg} :Row {$i}: " . implode(", ", $data) . "\n"); $i++; } while ($row = $result->fetch()); } $this->send_data($cid, "PRIVMSG {$arg} :Query completed..\n"); } } $break = true; } else { $log = false; } if ($log) { // logg forespørselen file_put_contents("irclog-" . $this->settings['name'] . ".log", date("r") . " {$user['nick']}!{$user['ident']}@{$user['host']} {$type} {$arg} {$content}\n", FILE_APPEND); } if ($break) { break; } } // ikke kanal melding if (substr($arg, 0, 1) != "#") { if ($user['ident'] != "" && $type == "PRIVMSG") { $this->send_data($cid, "NOTICE {$user['nick']} :Doh?\n"); } } else { // aktiv cid? if ($this->connected_cid == $cid) { $info = preg_split("/\\s+/", $content, 2); if (!isset($info[1])) { $info[1] = NULL; } switch ($info[0]) { case "!status": $time = intval($info[1]); if ($time == 0 || $time < 0) { $time = 300; } $last = time() - $time; $result = \Kofradia\DB::get()->query("SELECT COUNT(up_id) FROM users_players WHERE up_last_online >= {$last}"); $ant = game::format_number($result->fetchColumn(0)); unset($result); $time = game::timespan($time, game::TIME_FULL | game::TIME_NOBOLD); $this->msg($cid, $arg, "%bAntall pålogget siste {$time}%b: %u{$ant}%u"); break; case "!info": if ($this->irc_info) { $this->irc_info->end_node = $arg; $this->irc_info->parse_request($info[1]); } break; case "!search": $this->node_search($cid, $arg, $info[1]); break; } } } break; default: $this->debug($cid, "UNKNOWN USER DATA: {$line}"); } return; } $info = explode(" ", $line, 2); switch ($info[0]) { case "PING": $this->debug($cid, "PING PONG"); $this->send_data($cid, "PONG {$info[1]}"); break; case "ERROR": $this->debug($cid, $line); $this->handle_error($cid, "Error occured.."); // koble til på nytt #$this->connect($cid); break; default: $this->debug($cid, "UNKNOWN DATA: {$line}"); } }
$td[] = '<td>' . $_base->date->get($row['up_created_time'])->format(date::FORMAT_SEC) . '</td>'; } if (isset($show['email'])) { $td[] = '<td><a href="finn?email=' . urlencode($row['u_email']) . '">' . htmlspecialchars($row['u_email']) . '</a></td>'; } if (isset($show['onlinea'])) { $td[] = '<td>' . $_base->date->get($row['up_last_online'])->format(date::FORMAT_SEC) . '</td>'; } if (isset($show['onliner'])) { $td[] = '<td class="r">' . game::timespan($row['up_last_online'], game::TIME_ABS | game::TIME_SHORT | game::TIME_NOBOLD) . '</td>'; } if (isset($show['hits'])) { $td[] = '<td class="r">' . game::format_number($row['up_hits']) . '</td>'; } if (isset($show['points'])) { $td[] = '<td class="r">' . game::format_number($row['up_points']) . '</td>'; } if (isset($show['cash'])) { $td[] = '<td class="r">' . game::format_cash($row['money']) . '</td>'; } if (isset($show['birth'])) { $birth = explode("-", $row['u_birth']); $td[] = '<td class="r">' . (empty($row['u_birth']) || $row['u_birth'] == "0000-00-00" ? 'Ikke registrert' : intval($birth[2]) . ". " . $_lang['months'][intval($birth[1])] . " " . $birth[0]) . '</td>'; } if (isset($show['banko'])) { $td[] = '<td><input type="radio" name="u1" value="' . $row['up_id'] . '" /></td>'; $td[] = '<td><input type="radio" name="u2" value="' . $row['up_id'] . '" /></td>'; } echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> ' . implode("\n\t\t\t\t", $td) . '
/** * Vise komplett liste */ protected function all() { echo ' <div class="bg1_c medium"> <h1 class="bg1">Rangeringsoversikt<span class="left"></span><span class="right"></span></h1> <div class="bg1"> <p class="c"><a href="ranklist">« Vis kun topp-plaseringene</a></p>'; if (isset($_GET['show_nsu'])) { $nsu = ""; ess::$b->page->add_message("Du viser også brukere som ikke vises på vanlig statistikk!"); } else { $nsu = "up_access_level < " . ess::$g['access_noplay'] . " AND "; } // finn ut antall spillere $result = \Kofradia\DB::get()->query("SELECT COUNT(up_id) FROM users_players WHERE {$nsu}up_access_level != 0"); $antall_spillere = $result->fetchColumn(0); if ($antall_spillere == 0) { echo ' <p> Det finnes ingen spillere...?! </p>'; } else { // sideoppsett $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 50); // hent folka.. $result = $pagei->query("\n\t\t\t\tSELECT up_id, up_name, up_access_level, up_points, up_last_online, upr_rank_pos\n\t\t\t\tFROM users_players\n\t\t\t\t\tLEFT JOIN users_players_rank ON upr_up_id = up_id\n\t\t\t\tWHERE {$nsu}up_access_level != 0\n\t\t\t\tORDER BY up_points DESC"); $colspan = access::has("mod") ? 6 : 4; $e = 0; echo ' <table class="table tablem" width="100%"> <thead> <tr> <th>#</th> <th>Spillernavn</th> <th>Rank</th> <th>Sist pålogget</th>' . (access::has("mod") ? ' <th>Rankpoeng</th> <th> </th>' : '') . ' </tr> </thead> <tbody> <tr> <td colspan="' . $colspan . '" class="c">' . $pagei->pagenumbers() . '</td> </tr>'; // startverdi $i = $pagei->start; $last_rank = 0; while ($row = $result->fetch()) { $rank = game::rank_info($row['up_points'], $row['upr_rank_pos'], $row['up_access_level']); echo ' <tr' . (++$e % 2 == 0 ? ' class="color"' : '') . '> <td class="r">' . ($last_rank != $row['upr_rank_pos'] ? '#' . game::format_number($row['upr_rank_pos']) : '<span style="color: #666">#' . game::format_number($row['upr_rank_pos']) . '</span>') . '</td> <td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td> <td class="c">' . $rank['name'] . '</td> <td class="r">' . game::timespan($row['up_last_online'], game::TIME_ABS) . '</td>' . (access::has("mod") ? ' <td class="r">' . game::format_number($row['up_points']) . '</td> <td><a href="admin/brukere/finn?up_id=' . $row['up_id'] . '">IP-sjekk</a></td>' : '') . ' </tr>'; $last_rank = $row['upr_rank_pos']; } echo ' <tr' . (++$e % 2 == 0 ? ' class="color"' : '') . '> <td colspan="' . $colspan . '" class="c">' . $pagei->pagenumbers() . '</td> </tr> </tbody> </table>'; } echo ' </div> </div>'; }
/** * Sett oppdrag som aktivt * * @param integer $o_id * @return boolean active */ public function active_set($o_id) { // allerede satt som aktivt? if ($this->active && $this->active['o_id'] == $o_id) { return false; } // finnes ikke oppdraget? (må være hentet først for at vi kan fortsette) if (!isset($this->oppdrag[$o_id])) { return false; } $oppdrag =& $this->oppdrag[$o_id]; // ikke aktivt allerede? if ($oppdrag['uo_active'] == 0) { // sjekk om noen andre oppdrag er aktive $result = \Kofradia\DB::get()->query("SELECT uo_o_id, uo_active_time FROM users_oppdrag WHERE uo_up_id = {$this->up->id} AND uo_active != 0 LIMIT 1"); if ($result->rowCount() > 0) { $uo = $result->fetch(); // et annet oppdrag? if ($uo['uo_o_id'] != $oppdrag['o_id']) { // sett riktig aktivt oppdrag if (!isset($this->oppdrag[$uo['uo_o_id']]) && !$this->oppdrag_loaded) { $this->user_load_all(); } $this->active_set($uo['uo_o_id']); // må sette alle andre oppdrag som innaktive før vi kan begynne på et nytt oppdrag return false; } $oppdrag['uo_active'] = 1; $oppdrag['uo_active_time'] = $uo['uo_active_time']; } else { $oppdrag['uo_active'] = 1; $oppdrag['uo_active_time'] = time(); \Kofradia\DB::get()->exec("UPDATE users_oppdrag SET uo_active = 1, uo_active_time = {$oppdrag['uo_active_time']} WHERE uo_up_id = {$this->up->id} AND uo_o_id = {$oppdrag['o_id']}"); } } // sett aktivt oppdrag if ($this->up->params->get("oppdrag_id") != $oppdrag['o_id']) { $params = new params(); $params->params = $oppdrag; $this->up->params->lock(); $this->up->params->update("oppdrag", $params->build()); $this->up->params->update("oppdrag_id", $oppdrag['o_id'], true); } $this->active =& $oppdrag; // sett nye triggere $this->link_triggers(); // sjekk om oppdraget er over tiden sin $params = $this->params[$oppdrag['o_id']]['o_params']; $time_start = $oppdrag['uo_active_time']; $time_limit = $params->get("time_limit", oppdrag::DEFAULT_TIME_LIMIT_ACTIVE); if ($time_start + $time_limit < time()) { // kontroller trigger if (isset($this->triggers_id[$o_id])) { $trigger = $this->triggers_id[$o_id]; switch ($params->get("name")) { case "single_poker": // nådde vi beløpet? if ($trigger['status']->get("chips") >= $trigger['trigger']->get("chips")) { $this->success($o_id, 'Du klarte å spille deg opp til ' . game::format_number($trigger['status']->get("chips")) . ' chips i løpet av ' . game::timespan($time_limit, game::TIME_FULL) . ', noe som var mer enn ' . game::format_number($trigger['trigger']->get("chips")) . ' chips. Oppdraget «$name» ble vellykket!'); } else { $this->failed($o_id, 'Du spilte deg opp til ' . game::format_number($trigger['status']->get("chips")) . ' chips i løpet av ' . game::timespan($time_limit, game::TIME_FULL) . '. Det var mindre enn ' . game::format_cash($trigger['trigger']->get("chips")) . ' chips. Oppdraget «$name» ble mislykket.'); } break; } } // hvis oppdraget fortsatt er aktivt, sett det som feilet pga. tid if (isset($this->oppdrag[$o_id]) && $this->oppdrag[$o_id]['uo_active'] != 0) { $this->failed($o_id, 'Du brukte for lang tid på oppdraget «$name» og mislykket.'); } return false; } return true; }
echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> <td rowspan="' . $count . '" valign="top"><a href="finn?ip=' . urlencode($row[0]['u_online_ip']) . '">' . htmlspecialchars($row[0]['u_online_ip']) . '</a><br />(' . $count . ' ' . fword("bruker", "brukere", $count) . ')</td>'; $e = 0; foreach ($row as $player) { // ny rad? if (++$e > 1) { echo ' </tr> <tr' . ($i % 2 == 0 ? ' class="color"' : '') . '>'; } $birth = explode("-", $player['u_birth']); echo ' <td>' . game::profile_link($player['up_id'], $player['up_name'], $player['up_access_level']) . '</td> <td><a href="finn?email=' . urlencode($player['u_email']) . '">' . htmlspecialchars($player['u_email']) . '</a></td> <td>' . $_base->date->get($player['up_created_time'])->format(date::FORMAT_SEC) . '</td> <td>' . $_base->date->get($player['up_last_online'])->format(date::FORMAT_SEC) . '</td> <td class="r">' . game::timespan($player['up_last_online'], game::TIME_ABS | game::TIME_SHORT | game::TIME_NOBOLD) . '</td> <td class="r">' . game::format_number($player['up_hits']) . '</td> <td class="r">' . game::format_number($player['up_points']) . '</td> <td class="r">' . game::format_cash($player['money']) . '</td> <td class="r">' . (empty($player['u_birth']) || $player['u_birth'] == "0000-00-00" ? 'Ikke registrert' : intval($birth[2]) . ". " . $_lang['months'][intval($birth[1])] . " " . $birth[0]) . '</td>'; } echo ' </tr>'; } echo ' </tbody> </table>'; } $_base->page->load();
<th>Sist pålogget ' . $sort->show_link(4, 5) . '</th> <th>Rank</th> <th>Plassering ' . $sort->show_link(6, 7) . '</th> </tr> </thead> <tbody>'; $i = 0; while ($row = $result->fetch()) { $rank = game::rank_info($row['up_points'], $row['upr_rank_pos'], $row['up_access_level']); $rank_name = $rank['name'] . ($rank['orig'] ? ' (' . $rank['orig'] . ')' : ''); echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> <td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td> <td class="r">' . game::timespan($row['up_last_online'], game::TIME_ABS) . '</td> <td>' . $rank_name . '</td> <td class="r">' . game::format_number($row['upr_rank_pos']) . '</td> </tr>'; } echo ' </tbody> </table>'; // flere sider? if ($pagei->pages > 1) { echo ' <div class="hr"></div> <p class="c"> ' . $pagei->pagenumbers() . ' </p>'; } } }
// er kontakt? $is_contact = isset(login::$info['contacts'][1][$player['up_id']]) ? 1 : 0; // er blokkert? $is_block = isset(login::$info['contacts'][2][$player['up_id']]) ? 1 : 0; } // som html? if (isset($_POST['html'])) { header("Content-Type: text/html; charset=utf-8"); echo '<div class="profile_box_wrap"> <div class="profile_box_left"> <div class="profile_box_status"> <p>' . $player['up_name'] . ($mod ? ' <span class="profile_box_type">(' . $player['up_id'] . ')</span>' : '') . ($status == "" ? '' : ' ' . $status) . '</p> </div> <div class="profile_box_info"> <p><span class="profile_box_type">Rank:</span> <span class="profile_box_value">' . htmlspecialchars($rank['name'] . ($rank['orig'] ? ' (' . $rank['orig'] . ')' : '')) . '</span></p>' . ($player['up_access_level'] != 0 ? ' <p><span class="profile_box_type">Wanted nivå:</span> <span class="profile_box_value">' . game::format_number($player['up_wanted_level'] / 10, 1) . ' %</span></p>' : '') . ' <p><span class="profile_box_type">Sist aktiv:</span> <span class="profile_box_value">' . game::timespan($player['up_last_online'], game::TIME_ABS | game::TIME_PAST | game::TIME_FULL) . '</span></p> </div>' . ($mod ? ' <div class="profile_box_info"> <p><span class="profile_box_type">Penger:</span> <span class="profile_box_value">' . game::format_cash($player['money']) . '</span></p> <p><span class="profile_box_type">E-post:</span> <span class="profile_box_value"><a href="' . $__server['relative_path'] . '/admin/brukere/finn?email=' . urlencode($player['u_email']) . '" title="Finn brukere med denne e-posten">' . htmlspecialchars($player['u_email']) . '</a></span></p> </div>' : '') . ' <div class="profile_box_links"> <ul> <li><a href="' . $__server['relative_path'] . '/p/' . rawurlencode($player['up_name']) . '/' . $player['up_id'] . '">Vis profil</a></li>' . (access::has("crewet") ? ' <li>Min side: <a href="' . $__server['relative_path'] . '/min_side?u_id=' . $player['up_u_id'] . '&a=crew">bruker</a> | <a href="' . $__server['relative_path'] . '/min_side?up_id=' . $player['up_id'] . '&a=crew">spiller</a> | <a href="' . $__server['relative_path'] . '/min_side?u_id=' . $player['up_u_id'] . '&a=crew&b=warning">ny advarsel</a></li>' : '') . ($is_contact != -1 ? ' <li><a href="' . $__server['relative_path'] . '/innboks_ny?mottaker=' . urlencode($player['up_name']) . '">Send melding</a></li>' : ''); if ($is_contact != -1) { if ($is_contact == 1) { echo ' <li><a href="' . $__server['relative_path'] . '/kontakter/delete/' . $player['up_id'] . '?sid=' . login::$info['ses_id'] . '">Fjern fra kontaktlisten</a></li>';
access::need("admin"); access::need_nostat(); $_base->page->add_title("Skaff ressurser!"); if (isset($_POST['rankpoeng'])) { $points = intval($_POST['rankpoeng']); if ($points != 0) { login::$user->player->increase_rank($points); $_base->page->add_message("Ranken din ble endret med <b>" . game::format_number($points) . "</b> rankpoeng."); } } if (isset($_POST['rankpoeng_abs'])) { $points = intval($_POST['rankpoeng_abs']); if ($points >= 0) { $points = $points - login::$user->player->data['up_points']; login::$user->player->increase_rank($points); $_base->page->add_message("Ranken din ble endret med <b>" . game::format_number($points) . "</b> rankpoeng."); } } if ($_SERVER['REQUEST_METHOD'] == "POST") { redirect::handle(); } echo ' <h1>Skaff ressurser</h1> <form aciont="" method="post"> <table class="table center tablemb"> <tbody> <tr> <th>Rank</th> <td><input type="text" name="rankpoeng" class="styled w80" value="0" /></td> </tr>
/** * Lagre logg over angrep */ protected function attack_log($ret, $attack_type, $vitner_log, player $up) { // sett opp vitner $vitner = count($vitner_log) > 0 ? \Kofradia\DB::quote(serialize($vitner_log)) : 'NULL'; // sett opp liste over FF $ff_defend = array(); $list = $this->get_ff_list(); foreach ($list as $row) { if ($row['ff_is_crew'] != 0) { continue; } $type = ff::$types[$row['ff_type']]; $ff_defend[] = array($row['ff_type'], $row['ff_id'], $type['refobj'], $row['ff_name'], $row['ffm_priority'], $type['priority'][$row['ffm_priority']], $row['ffm_status']); } $ff_defend = count($ff_defend) > 0 ? \Kofradia\DB::quote(serialize($ff_defend)) : 'NULL'; // sett opp liste over FF for angriper $ff_attack = array(); $list = $up->get_ff_list(); foreach ($list as $row) { if ($row['ff_is_crew'] != 0) { continue; } $type = ff::$types[$row['ff_type']]; $ff_attack[] = array($row['ff_type'], $row['ff_id'], $type['refobj'], $row['ff_name'], $row['ffm_priority'], $type['priority'][$row['ffm_priority']], $row['ffm_status']); } $ff_attack = count($ff_attack) > 0 ? \Kofradia\DB::quote(serialize($ff_attack)) : 'NULL'; // legg til i loggen $cash = isset($ret['penger']) ? $ret['penger'] : 0; if (isset($ret['penger_bank'])) { $cash = bcadd($cash, $ret['penger_bank']); } $hitlist = isset($ret['hitlist']) ? $ret['hitlist'] : 0; \Kofradia\DB::get()->exec("INSERT INTO drapforsok SET df_attack_up_id = {$up->id}, df_defend_up_id = {$this->id}, df_time = " . time() . ", df_b_id = " . $up->data['up_b_id'] . ", df_outcome = " . ($ret['drept'] ? 1 : 0) . ", df_rankpoints = {$ret['rankpoeng']}, df_type = {$attack_type}, df_cash = {$cash}, df_hitlist = {$hitlist}, df_vitner = {$vitner}, df_attack_ff_list = {$ff_attack}, df_defend_ff_list = {$ff_defend}, df_bullets = {$ret['bullets']}"); if ($ret['drept']) { // logg if ($attack_type == self::ATTACK_TYPE_UTPRESSING) { putlog("DF", "%c4UTPRESSING DREPT%c: {$up->data['up_name']} ({$up->rank['name']}) presset {$this->data['up_name']} ({$this->rank['name']}). " . $this->generate_minside_url()); } else { putlog("DF", "ANGREP %c4DREPT%c: {$up->data['up_name']} ({$up->rank['name']}) angrep%c3 {$this->data['up_name']}%c ({$this->rank['name']}) med " . $up->weapon->data['name'] . " (" . game::format_number($up->data['up_weapon_training'] * 100, 2) . " % våpentrening) med " . fwords("%d kule", "%d kuler", $ret['bullets']) . ". " . $this->generate_minside_url()); putlog("DF", " - Angrepstyrke: " . game::format_number($ret['attack_skade'][0] * 100, 2) . ", beskyttelsestyrke: " . game::format_number($ret['attack_skade'][1] * 100, 2) . ", skadeprosent: " . game::format_number($ret['skadeprosent'] * 100, 2) . " % av " . weapon::MAX_ATTACK_HEALTH . " helsepoeng"); } putlog("DF", " - Helse: Hadde " . game::format_number($this->get_health_percent(), 3) . " %"); putlog("DF", " - Energi: Hadde " . game::format_number($this->get_energy_percent(), 3) . " %"); if (!$this->protection->data) { putlog("DF", " - Hadde ingen beskyttelse"); } else { putlog("DF", " - Beskyttelse: Hadde {$this->protection->data['name']} med " . game::format_number($this->data['up_protection_state'] * 100, 2) . " % styrke"); } putlog("DF", " - Rankpoeng: {$up->data['up_name']} fikk " . game::format_number($ret['rankpoeng']) . " rankpoeng (" . game::format_rank($ret['rankpoeng'], "all") . " % rank) " . $up->generate_minside_url()); if (count($ret['vitner']) == 0) { putlog("DF", " - Ingen vitner"); } else { foreach ($ret['vitner'] as $vitne) { putlog("DF", " - Vitne: {$vitne['up']->data['up_name']} (" . ($vitne['visible'] ? 'ble oppdaget' : 'ble IKKE oppdaget') . ') ' . $vitne['up']->generate_minside_url()); } } putlog("DF", " - Penger fra hånda: " . game::format_cash($ret['penger'])); if (isset($ret['penger_bank'])) { putlog("DF", " - Penger fra banken: " . game::format_cash($ret['penger_bank'])); } putlog("DF", " - Penger fra hitlist: " . game::format_cash($ret['hitlist'])); foreach ($ret['ffm'] as $ffm) { putlog("DF", " - Var " . $ffm->get_priority_name() . " i " . $ffm->ff->data['ff_name'] . " " . ess::$s['path'] . "/ff/?ff_id={$ffm->ff->id}"); } } elseif ($attack_type == self::ATTACK_TYPE_KILL) { // logg putlog("DF", "ANGREP %c8SKADET%c: {$up->data['up_name']} ({$up->rank['name']}) angrep%c3 {$this->data['up_name']}%c ({$this->rank['name']}) med " . $up->weapon->data['name'] . " (" . game::format_number($up->data['up_weapon_training'] * 100, 2) . " % våpentrening) med " . fwords("%d kule", "%d kuler", $ret['bullets']) . ". " . $this->generate_minside_url()); putlog("DF", " - Angrepstyrke: " . game::format_number($ret['attack_skade'][0] * 100, 2) . ", beskyttelsestyrke: " . game::format_number($ret['attack_skade'][1] * 100, 2) . ", skadeprosent: " . game::format_number($ret['skadeprosent'] * 100, 2) . " % av " . weapon::MAX_ATTACK_HEALTH . " helsepoeng"); putlog("DF", " - Helse: Mistet " . game::format_number($ret['health_lost_p'] * 100, 3) . " % ({$ret['health_lost']}) og har nå%c4 " . game::format_number($ret['health_new_p'] * 100, 3) . " %"); putlog("DF", " - Energi: Mistet " . game::format_number($ret['energy_lost_p'] * 100, 3) . " % ({$ret['energy_lost']}) og har nå%c12 " . game::format_number($ret['energy_new_p'] * 100, 3) . " %"); if ($ret['protection_replaced']) { putlog("DF", " - Beskyttelsen ble erstattet med " . $this->protection->data['name']); } elseif ($ret['protection_lost_p'] == "") { putlog("DF", " - Hadde ingen beskyttelse"); } else { putlog("DF", " - Beskyttelse: Mistet " . game::format_number($ret['protection_lost_p'] * 100, 3) . " % og har nå " . game::format_number($ret['protection_new_p'] * 100, 3) . " %"); } putlog("DF", " - Rankpoeng: {$up->data['up_name']} fikk " . game::format_num($ret['rankpoeng']) . " rankpoeng (offeret mistet " . game::format_num($ret['rankpoeng_lost']) . ") " . $up->generate_minside_url()); if (count($ret['vitner']) == 0) { putlog("DF", " - Ingen vitner"); } else { foreach ($ret['vitner'] as $vitne) { putlog("DF", " - Vitne: {$vitne['up']->data['up_name']} (" . ($vitne['visible'] ? 'ble oppdaget' : 'ble IKKE oppdaget') . ') ' . $vitne['up']->generate_minside_url()); } } putlog("DF", " - Penger fra hånda: " . game::format_cash($ret['penger'])); putlog("DF", " - Penger fra hitlist: " . game::format_cash($ret['hitlist'])); } }
/** Formatere hendelser i loggen */ public function format_log($id, $time, $action, $data, $extra) { global $__server; // sett opp data switch (self::$log_id[$action]) { // Forum: Ny forumtråd case "forum_topic_add": $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> opprettet <a href="' . $__server['relative_path'] . '/forum/topic?id=' . $info[1] . '">' . htmlspecialchars(urldecode($info[2])) . '</a> i forumet.'; break; // Forum: Forumtråd slettet // Forum: Forumtråd slettet case "forum_topic_delete": $info = explode(":", $data); $title = $this->mod ? '<a href="' . $__server['relative_path'] . '/forum/topic?id=' . $info[1] . '">' . htmlspecialchars(urldecode($info[2])) . '</a>' : htmlspecialchars(urldecode($info[2])); $data = '<user id="' . $info[0] . '" /> slettet ' . $title . ' fra forumet.'; break; // Forum: Forumtråd gjenopprettet // Forum: Forumtråd gjenopprettet case "forum_topic_restore": $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> gjenopprettet <a href="' . $__server['relative_path'] . '/forum/topic?id=' . $info[1] . '">' . htmlspecialchars(urldecode($info[2])) . '</a> i forumet.'; break; // Forum: Forumtråd redigert // Forum: Forumtråd redigert case "forum_topic_edit": $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> redigerte <a href="' . $__server['relative_path'] . '/forum/topic?id=' . $info[1] . '">' . htmlspecialchars(urldecode($info[2])) . '</a> i forumet.'; break; // Medlem: Inviter spiller // Medlem: Inviter spiller case "member_invite": $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> inviterte <user id="' . $info[1] . '" /> til ' . $this->refstring . ' som <b>' . htmlspecialchars(urldecode($info[2])) . (!empty($info[3]) ? ' underordnet <user id="' . $info[3] . '" />' : '') . '</b>.'; break; // Medlem: Godta invitasjon // Medlem: Godta invitasjon case "member_invite_accept": $data = '<user id="' . $data . '" /> godtok invitasjonen og er nå medlem av ' . $this->refstring . '.'; break; // Medlem: Avslå invitasjon // Medlem: Avslå invitasjon case "member_invite_decline": $data = '<user id="' . $data . '" /> avslo invitasjonen til ' . $this->refstring . '.'; break; // Medlem: Tilbaketrukket invitasjon // Medlem: Tilbaketrukket invitasjon case "member_invite_pullback": $info = explode(":", $data); if ($info[0]) { $data = '<user id="' . $info[0] . '" /> trakk tilbake invitasjonen til <user id="' . $info[1] . '" />.'; } else { $data = 'Invitasjonen til <user id="' . $info[1] . '" /> ble trukket tilbake.'; } break; // Medlem: Foreslå medlem // Medlem: Foreslå medlem case "member_suggest": $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> foreslo <user id="' . $info[1] . '" /> som medlem av ' . $this->refstring . ' som <b>' . htmlspecialchars(urldecode($info[2])) . '</b>.'; break; // Medlem: Godta forslag // Medlem: Godta forslag case "member_suggest_accept": $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> godtok forslaget' . ($info[3] ? ' til <user id="' . $info[3] . '" />' : '') . ' om å invitere <user id="' . $info[1] . '" /> til ' . $this->refstring . ' som <b>' . htmlspecialchars(urldecode($info[2])) . '</b>. <user id="' . $info[1] . '" /> er nå invitert.'; break; // Medlem: Avslå forslag // Medlem: Avslå forslag case "member_suggest_decline": $info = explode(":", $data); if ($info[0]) { $data = '<user id="' . $info[0] . '" /> avslo forslaget om å invitere <user id="' . $info[1] . '" />.'; } else { $data = 'Forslaget om å invitere <user id="' . $info[1] . '" /> ble avslått.'; } break; // Medlem: Forlat // Medlem: Forlat case "member_leave": $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> forlot ' . $this->refstring . (isset($info[1]) ? ' fra sin posisjon som <b>' . htmlspecialchars(urldecode($info[1])) . '</b>' : '') . '.'; break; // Medlem: Drept/for lav helse // Medlem: Drept/for lav helse case "member_deactivated": $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> fikk for lite helse til å kunne opprettholde sitt medlemskap.' . (isset($info[1]) ? ' Hadde posisjonen <b>' . htmlspecialchars(urldecode($info[1])) . '</b>' : '') . '.'; break; // Medlem: Sparket // Medlem: Sparket case "member_kicked": $info = explode(":", $data); $note = $note = empty($info[3]) ? '' : ' Begrunnelse: ' . game::bb_to_html(urldecode($info[3])); $data = '<user id="' . $info[0] . '" /> sparket <user id="' . $info[1] . '" /> fra ' . $this->refstring . ' og sin posisjon som <b>' . htmlspecialchars(urldecode($info[2])) . '</b>.' . $note; break; // Medlem: Posisjon // Medlem: Posisjon case "member_priority": $info = explode(":", $data); if ($info[0]) { $data = '<user id="' . $info[0] . '" /> endret posisjonen til <user id="' . $info[1] . '" /> fra <b>' . htmlspecialchars(urldecode($info[2])) . '</b>' . (!empty($info[4]) ? ' underordnet <user id="' . $info[4] . '" />' : '') . ' til <b>' . htmlspecialchars(urldecode($info[3])) . '</b>' . (!empty($info[5]) ? ' underordnet <user id="' . $info[5] . '" />' : '') . '.'; } else { // anonym $data = 'Posisjonen til <user id="' . $info[1] . '" /> ble endret fra <b>' . htmlspecialchars(urldecode($info[2])) . '</b>' . (!empty($info[4]) ? ' underordnet <user id="' . $info[4] . '" />' : '') . ' til <b>' . htmlspecialchars(urldecode($info[3])) . '</b>' . (!empty($info[5]) ? ' underordnet <user id="' . $info[5] . '" />' : '') . '.'; } break; // Medlem Overordnet capo // Medlem Overordnet capo case "member_parent": $info = explode(":", $data); if ($info[0]) { $data = '<user id="' . $info[0] . '" /> endret overordnet til <user id="' . $info[1] . '" /> fra <user id="' . $info[2] . '" /> til <user id="' . $info[3] . '" />.'; } else { // anonym $data = 'Overordnet til <user id="' . $info[1] . '" /> ble endret fra <user id="' . $info[2] . '" /> til <user id="' . $info[3] . '" />.'; } break; // Sett en spiller til en bestemt posisjon // Sett en spiller til en bestemt posisjon case "member_set_priority": // syntax: up_id:priority_name:parent_up_id $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> ble satt som <b>' . htmlspecialchars(urldecode($info[1])) . '</b>' . (!empty($info[2]) ? ' underordnet <user id="' . $info[2] . '" />' : '') . '.'; break; // Ny logo // Ny logo case "logo": if (empty($data)) { $data = "Logoen ble fjernet."; } else { $info = explode(":", $data); $data = isset($info[1]) && $info[1] == "removed" ? '<user id="' . $info[0] . '" /> fjernet logoen' : '<user id="' . $info[0] . '" /> lastet opp' . (!empty($extra) ? ' ny logo' : ' en logo'); $data .= ' for ' . $this->type['refobj'] . '.'; } if (!empty($extra)) { $data .= ' Gammel logo: <img src="' . ess::$s['rpath'] . '/ff/_logo?ff_id=' . $this->id . '&log_id=' . $id . '" alt="Gammel logo" />'; } break; // Endre beskrivelse // Endre beskrivelse case "description": $data = '<user id="' . $data . '" /> redigerte beskrivelsen for ' . $this->refstring . '.'; break; // Salg // Salg case "sell": $info = explode(":", $data); switch ($info[0]) { // starter salget: // {TYPE=init}:BOSS:UBOSS:FEE:AMOUNT case "init": $data = '<user id="' . $info[1] . '" /> åpnet salg av ' . $this->refstring . ' til <user id="' . $info[2] . '" /> for ' . game::format_cash($info[4]) . '.'; break; // avbryter salget (trekker det tilbake) // {TYPE=abort}:BOSS:UBOSS:FEE:AMOUNT // avbryter salget (trekker det tilbake) // {TYPE=abort}:BOSS:UBOSS:FEE:AMOUNT case "abort": $data = '<user id="' . $info[1] . '" /> trakk tilbake salg av ' . $this->refstring . ' til <user id="' . $info[2] . '" /> for ' . game::format_cash($info[4]) . '.'; break; // godtar kjøpet (mottakeren) // {TYPE=approve}:BOSS:UBOSS:FEE:AMOUNT // godtar kjøpet (mottakeren) // {TYPE=approve}:BOSS:UBOSS:FEE:AMOUNT case "approve": $data = '<user id="' . $info[2] . '" /> godtok salget av ' . $this->refstring . ' og har nå overtatt som ' . htmlspecialchars($this->type['priority'][1]) . '. <user id="' . $info[1] . '" /> har blitt satt som ' . htmlspecialchars($this->type['priority'][2]) . '. Gebyr: ' . game::format_cash($info[3]) . '. Salgsbeløp: ' . game::format_cash($info[4]) . '.'; break; // avslår kjøpet (mottakeren) // {TYPE=reject}:UBOSS:FEE:AMOUNT // avslår kjøpet (mottakeren) // {TYPE=reject}:UBOSS:FEE:AMOUNT case "reject": $data = '<user id="' . $info[2] . '" /> avslo salget av ' . $this->refstring . ' for ' . game::format_cash($info[4]) . '.'; break; } break; // Nytt navn // Nytt navn case "name": // syntax: gammelt navn:nytt navn:spiller som sendte søknad:innvilget av // syntax (abstrakt): ff_name:ff_name:up_id:up_id $info = explode(":", $data); $data = 'Navnet på ' . $this->refstring . ' ble endret fra ' . htmlspecialchars(urldecode($info[0])) . ' til <b>' . htmlspecialchars(urldecode($info[1])) . '</b>.'; break; case "bank_overforing_tap_change": $info = explode(":", $data); $data = 'Overføringsgebyret endret seg med ' . game::format_number($info[1] * 100, 2) . ' % til <b>' . game::format_number(($info[0] + $info[1]) * 100, 2) . ' %</b>.'; break; case "article_edited": // data: fna_id,up_id,fna_up_id,fna_title_org,fna_title_new,fna_text_old,fna_text_new $info = array_map("urldecode", explode(":", $data)); $data = '<user id="' . $info[1] . '" /> redigerte <a href="' . $__server['relative_path'] . '/ff/avis?ff_id=' . $this->id . '&a&ffna=' . $info[0] . '">artikkelen</a> til <user id="' . $info[2] . '" />.'; break; // kastet ut spiller fra bomberommet // kastet ut spiller fra bomberommet case "bomberom_kick": // syntax: up_id(som utfører handlingen):up_id(som ble kastet ut):up_brom_expire(når vi egentlig skulle gå ut av bomberommet) $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> kastet ut <user id="' . $info[1] . '" /> fra bomberommet, som egentlig skulle sittet til ' . ess::$b->date->get($info[2])->format() . '.'; break; // oppløst // oppløst case "dissolve": // syntax: up_id(som utfører handlingen):up_id(som ble kastet ut):up_brom_expire(når vi egentlig skulle gå ut av bomberommet) $info = explode(":", $data); $data = ucfirst($this->type['refobj']) . ' ble oppløst.'; break; // kuler inn // kuler inn case "bullets_in": // syntax: up_id:num $info = explode(":", $data); $data = '<user id="' . $info[0] . '" /> satt inn ' . fwords("%d kule", "%d kuler", $info[1]) . ' i kulelageret.'; break; // kuler ut // kuler ut case "bullets_out": // syntax: up_id:num[:action_up] $info = explode(":", $data); if (isset($info[2])) { $data = '<user id="' . $info[2] . '" /> tok ut ' . fwords("%d kule", "%d kuler", $info[1]) . ' fra kulelageret og gav de til <user id="' . $info[0] . '" />.'; } else { $data = '<user id="' . $info[0] . '" /> tok ut ' . fwords("%d kule", "%d kuler", $info[1]) . ' fra kulelageret.'; } break; // informasjon // informasjon case "info": // behold data urørt break; // Dummy // Dummy case "dummy": $data = $time; break; default: $data = htmlspecialchars($data); } return $data; }
<th>Nettlesere</th> </tr> </thead> <tbody>'; $i = 0; while ($row = $result->fetch()) { echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> <td class="r">' . $row['ses_id'] . '</td> <td class="r">' . $row['ses_u_id'] . '</td>' . ($wc ? ' <td>' . $row['ses_last_ip'] . '</td>' : '') . ' <td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td> <td>' . ($row['ses_active'] == 0 ? 'Nei' : '<b>Ja</b>') . '</td> <td>' . $_base->date->get($row['ses_created_time'])->format(date::FORMAT_SEC) . '</td> <td>' . $_base->date->get($row['ses_last_time'])->format(date::FORMAT_SEC) . '</td> <td>' . ($row['ses_logout_time'] == 0 ? '<b>Nei</b>' : $_base->date->get($row['ses_logout_time'])->format(date::FORMAT_SEC)) . '</td> <td class="r">' . game::format_number($row['ses_hits']) . '</td> <td class="r">' . game::format_number($row['ses_points']) . '</td> <td>' . (empty($row['ses_browsers']) ? '<i>Mangler</i>' : strtr(htmlspecialchars($row['ses_browsers']), "\n", "<br />")) . '</td> </tr>'; } echo ' </tbody> </table>'; // flere sider? if ($pagei->pages > 1) { echo ' <p>Navigasjon: ' . $pagei->pagenumbers() . '</p>'; } } $_base->page->load();
/** * Vise publiserte utgivelser */ protected function published() { ess::$b->page->add_title("Utgivelser"); // hent publiserte utvivelser $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 10); $ffnp_q = login::$logged_in ? "ffnp_ffn_id = ffn_id AND ffnp_up_id = " . login::$user->player->id : "FALSE"; $result = $pagei->query("SELECT ffn_id, ffn_published_time, ffn_cost, ffn_title, ffn_sold, ffn_description, ffnp_time FROM ff_newspapers LEFT JOIN ff_newspapers_payments ON {$ffnp_q} WHERE ffn_ff_id = {$this->ff->id} AND ffn_published != 0 ORDER BY ffn_published_time DESC"); echo ' <p class="c">Utgivelser</p>'; // ingen publiserte utgivelser? if ($result->rowCount() == 0) { echo ' <p class="c">Ingen utgivelser er publisert.</p>'; } else { echo ' <p class="c">' . $pagei->total . ' utgivelse' . ($pagei->total == 1 ? '' : 'r') . ' er publisert:</p>'; #$i = $pagei->total - ($pagei->per_page*($pagei->active-1)); while ($row = $result->fetch()) { echo ' <div class="section center w200"> <h2><a href="avis?ff_id=' . $this->ff->id . '&ffn=' . $row['ffn_id'] . '">' . htmlspecialchars($row['ffn_title']) . '</a></h2> <dl class="dd_right"> <dt>Publisert</dt> <dd>' . ess::$b->date->get($row['ffn_published_time'])->format() . '</dd> <dt>Solgte utgivelser</dt> <dd>' . game::format_number($row['ffn_sold']) . '</dd> <dt>Pris</dt> <dd>' . game::format_cash($row['ffn_cost']) . '</dd> <dt>Kjøpt?</dt> <dd>' . ($row['ffnp_time'] ? '<a href="avis?ff_id=' . $this->ff->id . '&ffn=' . $row['ffn_id'] . '">Ja</a> (' . ess::$b->date->get($row['ffnp_time'])->format() . ')' : 'Nei [<a href="avis?ff_id=' . $this->ff->id . '&ffn=' . $row['ffn_id'] . '">Kjøp</a>]') . (access::is_nostat() ? ' (nostat)' : '') . '</dd> </dl> <div class="p">' . $this->ff->format_description($row['ffn_description']) . '</div> </div>'; #$i--; } // flere sider? if ($pagei->pages > 1) { echo ' <p class="c">Navigasjon: ' . $pagei->pagenumbers() . '</p>'; } } }
<dt>Forumtråder</dt> <dd>' . game::format_number($player->data['up_forum_num_topics']) . ($player->data['up_forum_ff_num_topics'] > 0 ? ' (<abbr title="Firma/broderskap">+' . game::format_number($player->data['up_forum_ff_num_topics']) . '</abbr>)' : '') . '</dd> <dt>Forumsvar</dt> <dd>' . game::format_number($player->data['up_forum_num_replies']) . ($player->data['up_forum_ff_num_replies'] > 0 ? ' (<abbr title="Firma/broderskap">+' . game::format_number($player->data['up_forum_ff_num_replies']) . '</abbr>)' : '') . '</dd> <dt>Meldinger (opprettet)</dt> <dd>' . game::format_number($player->data['up_inbox_num_threads']) . '</dd> <dt>Meldinger (svar)</dt> <dd>' . game::format_number($player->data['up_inbox_num_messages']) . '</dd> <dd> </dd> <dt>Antall spillere vervet</dt> <dd>' . game::format_number($num_recruited) . '</dd> </dl> </div> <div class="clear"></div> </div>'; if ($has_other_up) { if (!isset($_GET['side_up'])) { ess::$b->page->add_js_domready(' $("vis_spillerhistorie").addEvent("click", function() { $("spillerhistorie").removeClass("hide"); this.getParent("div").dispose(); });'); } echo ' <div id="spillerhistorie" class="section' . (isset($_GET['side_up']) ? '' : ' hide') . '">
/** * Vis banken */ protected function show() { ess::$b->page->add_js(' var user_bank = ' . js_encode(game::format_cash($this->up->data['up_bank'])) . '; var user_cash = ' . js_encode(game::format_cash($this->up->data['up_cash'])) . ';'); ess::$b->page->add_js_domready(' $$(".bank_amount_set").each(function(elm) { var amount = elm.get("rel").substring(0, 4) == "bank" ? user_bank : user_cash; var e_id = elm.get("rel").substring(5); elm .appendText(" (") .grab(new Element("a", {"text":"alt"}).addEvent("click", function() { $(e_id).set("value", amount); })) .appendText(")"); });'); echo ' <div class="bg1_c small" style="width: 420px"> <h1 class="bg1"> Banken <span class="left"></span><span class="right"></span> </h1> <p class="h_left"> <a href="' . ess::$s['rpath'] . '/node/31">Hjelp</a> </p> <p class="h_right">' . (!isset(login::$extended_access['authed']) ? ' <a href="banken?logout">Logg ut av banken</a>' : '') . ' <a href="banken?authc">Endre pass</a> </p> <div class="bg1" style="padding: 0 15px"> <!-- bankkonto informasjon --> <div style="width: 50%; margin-left: -5px; float: left"> <h2 class="bg1">Bankkonto informasjon<span class="left2"></span><span class="right2"></span></h2> <div class="bg1"> <dl class="dd_right"> <dt>Kontoeier</dt> <dd>' . game::profile_link() . '</dd> <dt>Bankfirma</dt> <dd><a href="ff/?ff_id=' . $this->bank->id . '">' . htmlspecialchars($this->bank->data['ff_name']) . '</a></dd> <dt><abbr title="Overføringstap">Overf.tap</abbr></dt> <dd>' . $this->bank->overforingstap * 100 . ' %</dd> <dt>Plassering</dt> <dd>' . (!isset(game::$bydeler[$this->bank->data['br_b_id']]) ? '<span style="color: #777777">Ukjent</span>' : htmlspecialchars(game::$bydeler[$this->bank->data['br_b_id']]['name'])) . '</dd> <dt>Balanse</dt> <dd>' . game::format_cash($this->up->data['up_bank']) . '</dd> </dl> <p class="c"> <a href="javascript:void(0)" onclick="this.parentNode.style.display=\'none\'; document.getElementById(\'bank_stats\').style.display=\'block\'">Vis statistikk</a> </p> <div id="bank_stats" style="display: none"> <dl class="dd_right"> <dt>Sendt</dt> <dd>' . game::format_number($this->up->data['up_bank_num_sent']) . ' stk</dd> <dd>' . game::format_cash($this->up->data['up_bank_sent']) . '</dd> </dl> <dl class="dd_right"> <dt>Mottatt</dt> <dd>' . game::format_number($this->up->data['up_bank_num_received']) . ' stk</dd> <dd>' . game::format_cash($this->up->data['up_bank_received']) . '</dd> </dl> <dl class="dd_right"> <dt>Overskudd</dt> <dd>' . game::format_cash($this->up->data['up_bank_profit']) . '</dd> </dl> <dl class="dd_right"> <dt><abbr title="Overføringstap">Overf.tap</abbr></dt> <dd>' . game::format_cash($this->up->data['up_bank_charge']) . '</dd> </dl> <dl class="dd_right"> <dt>Renter</dt> <dd>' . game::format_number($this->up->data['up_interest_num']) . ' stk</dd> <dd>' . game::format_cash($this->up->data['up_interest_total']) . '</dd> </dl> </div> <form action="" method="post"> <p class="c">' . show_sbutton("Bytt bank", 'name="switch"') . '</p> </form> </div> </div> <!-- send penger --> <div style="width: 50%; margin-right: -5px; float: right"> <h2 class="bg1">Send penger<span class="left2"></span><span class="right2"></span></h2> <div class="bg1"> <form action="" method="post"> <input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" /> <input type="hidden" name="a" value="send" /> <dl class="dd_right dl_2x"> <dt>Mottaker</dt> <dd><input type="text" name="mottaker" value="' . htmlspecialchars(postval("mottaker")) . '" class="styled w100" /></dd> <dt>Kontakt?</dt> <dd> <select onchange="if(this.value==\'\')var name=prompt(\'Brukernavn?\');else var name=this.value;if(name)document.getElementsByName(\'mottaker\')[0].value=name;this.selectedIndex=0" style="width: 110px; overflow: hidden"> <option>Velg kontakt</option>'; foreach (login::$info['contacts'][1] as $row) { echo ' <option value="' . htmlspecialchars($row['up_name']) . '">' . htmlspecialchars($row['up_name']) . '</option>'; } echo ' <option value="">Egendefinert..</option> </select> </dd> <dt class="bank_amount_set" rel="bank,transf_amount">Beløp</dt> <dd><input type="text" id="transf_amount" name="amount" class="styled w100" value="' . game::format_cash(postval("amount", 0)) . '" /></dd> <dt>Melding?</dt> <dd><input type="text" name="note" value="' . htmlspecialchars(postval("note")) . '" class="styled w100" maxlength="100" /></dd>'; // hoppe over overføringsgebyret? if (access::is_nostat()) { echo ' <dt>Uten gebyr?</dt> <dd><input type="checkbox" name="skip_bog"' . (isset($_POST['skip_bog']) ? ' checked="checked"' : '') . ' /></dd>'; } echo ' </dl> <p class="c">' . show_sbutton("Fortsett") . '</p> </form> </div> </div> <div class="clear"></div> <!-- sett inn penger --> <div style="width: 50%; margin-left: -5px; float: left"> <h2 class="bg1">Sett inn penger<span class="left2"></span><span class="right2"></span></h2> <div class="bg1"> <form action="" method="post"> <dl class="dd_right"> <dt class="bank_amount_set" rel="cash,bank_sett_inn">Beløp</dt> <dd><input type="text" name="sett_inn" id="bank_sett_inn" class="styled w100" value="0" /></dd> </dl> <p class="c">' . show_sbutton("Sett inn") . '</p> </form> </div> </div> <!-- ta ut penger --> <div style="width: 50%; margin-right: -5px; float: right"> <h2 class="bg1">Ta ut penger<span class="left2"></span><span class="right2"></span></h2> <div class="bg1"> <form action="" method="post"> <dl class="dd_right"> <dt class="bank_amount_set" rel="bank,bank_ta_ut">Beløp</dt> <dd><input type="text" name="ta_ut" id="bank_ta_ut" class="styled w100" value="0" /></dd> </dl> <p class="c">' . show_sbutton("Ta ut") . '</p> </form> </div> </div> <div class="clear"></div> </div> </div> <div class="bg1_c large" style="margin-top: 40px"> <h1 class="bg1">Oversikt<span class="left"></span><span class="right"></span></h1> <div class="bg1" style="padding: 0 15px"> <!-- sendte penger --> <div style="width: 50%; margin-left: -5px; float: left"> <h2 class="bg1">Sendte penger<span class="left2"></span><span class="right2"></span></h2> <div class="bg1">'; // sideinformasjon - hent sendte overføringer $pagei = new pagei(pagei::ACTIVE_GET, "side_sendte", pagei::PER_PAGE, 8, pagei::TOTAL, $this->up->data['up_bank_num_sent']); $result = \Kofradia\DB::get()->query("SELECT bl_receiver_up_id, amount, time FROM bank_log WHERE bl_sender_up_id = " . $this->up->id . " ORDER BY time DESC LIMIT {$pagei->start}, {$pagei->per_page}"); if ($result->rowCount() == 0) { echo ' <p> Ingen sendte overføringer. </p>'; } else { echo ' <table class="table tablemt" width="100%"> <thead> <tr> <th>Mottaker</th> <th>Beløp</th> <th>Tidspunkt</th> </tr> </thead> <tbody>'; $i = 0; while ($row = $result->fetch()) { $date = ess::$b->date->get($row['time']); echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> <td><user id="' . $row['bl_receiver_up_id'] . '" /></td> <td class="r">' . game::format_cash($row['amount']) . '</td> <td class="c" style="font-size: 10px">' . $date->format(date::FORMAT_NOTIME) . '<br />' . $date->format("H:i:s") . '</td> </tr>'; } echo ' </tbody> </table> <p class="c">' . $pagei->pagenumbers(game::address("banken", $_GET, array("side_sendte")) . "#sendte", game::address("banken", $_GET, array("side_sendte"), array("side_sendte" => "_pageid_")) . "#sendte") . '</p>'; } echo ' </div> </div> <!-- mottatte penger --> <div style="width: 50%; margin-right: -5px; float: right"> <h2 class="bg1">Mottatte penger<span class="left2"></span><span class="right2"></span></h2> <div class="bg1">'; // sideinformasjon - hent mottatte overføringer $pagei = new pagei(pagei::ACTIVE_GET, "side_mottatte", pagei::PER_PAGE, 8, pagei::TOTAL, $this->up->data['up_bank_num_received']); $result = \Kofradia\DB::get()->query("SELECT bl_sender_up_id, amount, time FROM bank_log WHERE bl_receiver_up_id = " . $this->up->id . " ORDER BY time DESC LIMIT {$pagei->start}, {$pagei->per_page}"); if ($result->rowCount() == 0) { echo ' <p> Ingen mottatte overføringer. </p>'; } else { echo ' <table class="table tablemt" width="100%"> <thead> <tr> <th>Sender</th> <th>Beløp</th> <th>Tidspunkt</th> </tr> </thead> <tbody>'; $i = 0; while ($row = $result->fetch()) { $date = ess::$b->date->get($row['time']); echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> <td><user id="' . $row['bl_sender_up_id'] . '" /></td> <td class="r">' . game::format_cash($row['amount']) . '</td> <td class="c" style="font-size: 10px">' . $date->format(date::FORMAT_NOTIME) . '<br />' . $date->format("H:i:s") . '</td> </tr>'; } echo ' </tbody> </table> <p class="c">' . $pagei->pagenumbers(game::address("banken", $_GET, array("side_mottatte")) . "#mottatte", game::address("banken", $_GET, array("side_mottatte"), array("side_mottatte" => "_pageid_")) . "#mottatte") . '</p>'; } echo ' </div> </div> <div class="clear"></div> </div> </div>'; }
<th>Når</th> <th>Plassering</th> <th>Premie</th> <th>Vinnerlodd</th> <th>Solgte lodd</th> <th>Spillere</th> </tr> </thead> <tbody>'; $i = 0; while ($row = $result->fetch()) { $end = ceil(($row['time'] - 900) / 1800) * 1800 + 900; echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> <td class="c">' . $_base->date->get($end)->format() . '<br /><span style="color: #888888">(' . $_base->date->get($row['time'])->format() . ')</a></td> <td class="r">' . ($row['type'] == 1 ? '<b>' . $row['type'] . '. plass</b>' : $row['type'] . '. plass') . '</td> <td class="r">' . game::format_cash($row['won']) . '</td> <td class="c">' . game::format_number($row['l_id']) . '</td> <td class="c">' . game::format_number($row['total_lodd']) . '</td> <td class="c">' . game::format_number($row['total_users']) . '</td> </tr>'; } echo ' </tbody> </table> <p class="c">' . $pagei->pagenumbers(game::address("lotto_vinn", $_GET, array("side")) . "#lotto_vinn", game::address("lotto_vinn", $_GET, array("side"), array("side" => "_pageid_")) . "#lotto_vinn") . '</p>'; } echo ' </div> </div>'; $_base->page->load();
/** * Utfør kriminalitet */ protected function utfor() { // form sjekking if (!$this->form->validateHashOrAlert(null, ($this->krim->last ? "Siste=" . game::timespan($this->krim->last['last'], game::TIME_ABS | game::TIME_SHORT | game::TIME_NOBOLD) . ";" : "First;") . ($this->krim->wait ? "%c11Ventetid=" . game::timespan($this->krim->wait, game::TIME_SHORT | game::TIME_NOBOLD) . "%c" : "%c9No-wait%c"))) { return; } // kontroller at vi ikke har noe ventetid if ($this->krim->wait) { redirect::handle(); } // finn id $id = intval(postval("theid")); if (!$id) { $found = false; foreach ($_POST as $name => $val) { $matches = false; if (preg_match("/^id([1-9]+|[1-9][0-9]+)\$/Du", $name, $matches)) { $id = $matches[1]; } } } // har ikke oppføringen? if (!isset($this->krim->options[$id])) { ess::$b->page->add_message("Ugyldig valg.", "error"); redirect::handle(); } // lagre valget ess::session_put("krim_last_id", $id); // utfør kriminalitet $result = $this->krim->utfor($id); $fengsel_msg = $result['wanted_change'] > 0 ? ' Wanted nivået økte med ' . game::format_number($result['wanted_change'] / 10, 1) . ' %.' : ''; $msg = $result['success'] ? $this->krim->get_random_message($id, true, $result['cash'], $result['rank']) : $this->krim->get_random_message($id, false); ess::$b->page->add_message($msg . $fengsel_msg); // oppdater anti-bot $this->antibot->increase_counter(); // oppdater siden redirect::handle(); }
.f_sticky .info { color: #CCFF00 } .f_lock { color: #FFFFFF } .f_u a span { color: #FFFFFF; text-decoration: none } .f_u a:hover span { text-decoration: underline } .f_time { color: #AAAAAA } .f_deld { color: #FFF; font-size: 11px }'); // vis hver topic $i = 0; while ($row = $result->fetch()) { echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> <td><a href="forum?id=' . $row['ft_fse_id'] . '">' . htmlspecialchars($sections[$row['ft_fse_id']]['name']) . '</a></td> <td class="l' . ($row['ft_type'] == 3 ? ' f_viktig' : ($row['ft_type'] == 2 ? ' f_sticky' : '')) . '"><a href="topic?id=' . $row['ft_id'] . '">' . htmlspecialchars($row['ft_title']) . '</a>' . ($row['ft_type'] == 3 ? ' <span class="info">(Viktig)</span>' : ($row['ft_type'] == 2 ? ' <span class="info">(Sticky)</span>' : '')) . ($row['ft_locked'] == 1 ? ' <span class="f_lock">(låst)</span>' : '') . ($row['ft_deleted'] != 0 ? ' <span class="f_deld">(Slettet)</span>' : '') . '</td> <td class="f_u">' . game::profile_link($row['ft_up_id'], $row['up_name'], $row['up_access_level']) . '<br /><span class="f_time">' . $_base->date->get($row['ft_time'])->format() . '</span></td> <td>' . game::format_number($row['ft_replies']) . '</td> <td>' . game::format_number($row['ft_views']) . '</td> <td class="f_u">' . ($row['fr_time'] ? game::profile_link($row['fr_up_id'], $row['r_up_name'], $row['r_up_access_level']) . '<br /><span class="f_time">' . game::timespan($row['fr_time'], game::TIME_ABS) . '</span>' : '<span style="color: #AAA">Ingen</span>') . '</td> <td>' . ($row['tr_match_type'] == 'subject' ? 'Tittel' : ($row['tr_match_type'] == 'topic' ? 'Hoved' : '<a href="topic?id=' . $row['ft_id'] . '&replyid=' . $row['tr_fr_id'] . '">Svar »</a>')) . '</td> </tr>'; } echo ' </tbody> </table>'; // flere sider? if ($pagei->pages > 1) { echo ' <p class="c">' . $pagei->pagenumbers() . '</p>'; } } echo ' </div>
<?php // slett logg meldingene som ble slettet for mer enn 10 min siden $expire = time() - 900; $ant = \Kofradia\DB::get()->exec("DELETE FROM log_irc WHERE li_deleted = 1 AND li_deleted_time < {$expire}"); // infomelding putlog("LOG", "log_irc: Antall oppføringer fjernet: " . game::format_number($ant));
<th>Alder</th> <th>Sendt inn</th> <th><abbr title="Rating / ca. total lengde for feltene">R/L</abbr></th> <th>Kommentar</th> <th> </th> </tr> </thead> <tbody>'; } $i++; echo ' <tr' . ($sa_id == $row['sa_id'] ? ' class="highlightred"' : ($i % 2 == 0 ? ' class="color"' : '')) . '> <td>' . game::profile_link($row['sa_up_id'], $row['up_name'], $row['up_access_level']) . '</td> <td' . ($first ? ' width="25"' : '') . ' class="r" title="' . htmlspecialchars($row['u_birth']) . '">' . $age . '</td> <td' . ($first ? ' width="95"' : '') . ' class="c" style="font-size: 10px">' . $_base->date->get($row['sa_updated'])->format(date::FORMAT_NOTIME) . '<br />' . $_base->date->get($row['sa_updated'])->format("H:i:s") . $extra . '</td> <td' . ($first ? ' width="35"' : '') . ' class="r"><span class="dark">' . $rating . '</span><br />' . game::format_number($row['total_length']) . '</td> <td' . ($first ? ' width="120"' : '') . ' class="c" style="font-size: 10px">' . ($row['sa_verified'] == 0 ? 'Ingen' : $comment . '<br />' . $_base->date->get($row['sa_verified'])->format(date::FORMAT_NOTIME) . ' ' . $_base->date->get($row['sa_verified'])->format("H:i:s")) . '</td> <td' . ($first ? ' width="25"' : '') . ' class="c">' . ($sa_id == $row['sa_id'] ? 'Valgt' : '<a href="soknader?admin&so_id=' . $soknad['so_id'] . '&sa_id=' . $row['sa_id'] . '">Vis</a>') . '</td> </tr>'; } echo ' </tbody> </table> </div>'; if ($hidden > 0) { echo ' <p class="negative_soknader11"><a href="#" onclick="handleClass(\'.negative_soknader10\', \'.negative_soknader11\', event)">Vis søknadene med negative verdier (' . $hidden . ' stk) »</a></p> <p class="negative_soknader10 hide"><a href="#" onclick="handleClass(\'.negative_soknader11\', \'.negative_soknader10\', event)">Skjul søknadene med negative verdier (' . $hidden . ' stk) »</a></p>'; } } echo '
function gevinster() { global $gevinster; $stats = array(); // hent total statistikk $result = \Kofradia\DB::get()->query("SELECT subname, count, count2 FROM stats WHERE area = 'poker' AND name = 'alt' AND stats_up_id = 0"); while ($row = $result->fetch()) { $stats[$row['subname']]['total'] = $row['count']; $stats[$row['subname']]['total_cash'] = $row['count2']; } // hent bruker statistikk $result = \Kofradia\DB::get()->query("SELECT subname, count, count2 FROM stats WHERE area = 'poker' AND name = 'alt' AND stats_up_id = " . login::$user->player->id); while ($row = $result->fetch()) { $stats[$row['subname']]['count'] = $row['count']; $stats[$row['subname']]['cash'] = $row['count2']; } // skriv tabell $ret = ' <h1>Statistikk</h1> <table class="table game" id="poker_info"> <thead> <tr> <th>Navn</th> <th>Penger</th> <th>Stats</th> </tr> </thead> <tbody>'; $i = 0; $totalt_cash_1 = 0; $totalt_cash_2 = 0; $totalt_stat_1 = 0; $totalt_stat_2 = 0; foreach ($gevinster as $gevinst) { if (isset($stats[$gevinst[0]])) { $totalt_stat_1 += $stats[$gevinst[0]]['count']; $totalt_stat_2 += $stats[$gevinst[0]]['total']; $stat = '<b>' . game::format_number($stats[$gevinst[0]]['count']) . '</b> (' . game::format_number($stats[$gevinst[0]]['total']) . ')'; $cash_total = $stats[$gevinst[0]]['total_cash']; $cash = $stats[$gevinst[0]]['cash']; } else { $stat = '<b>0</b> (0)'; $cash_total = 0; $cash = 0; } if ($gevinst[0] == 0) { $cash = $cash * -1; $cash_total = $cash_total * -1; } $totalt_cash_1 += $cash; $totalt_cash_2 += $cash_total; $cash = game::format_cash($cash) . ' (' . game::format_cash($cash_total) . ')'; $ret .= ' <tr' . (is_int(++$i / 2) ? ' class="color"' : '') . '> <td>' . htmlspecialchars(ucfirst($gevinst[1])) . '</td> <td align="right"><span style="color: #999">Innsats *</span> ' . game::format_number($gevinst[2], 2) . '</td> <td align="right" title="' . $cash . '">' . $stat . '</td> </tr>'; } if (isset($stats[0])) { $stat = '<b>' . game::format_number($stats[0]['count']) . '</b> (' . game::format_number($stats[0]['total']) . ')'; $cash_total = $stats[0]['total_cash']; $cash = $stats[0]['cash']; } else { $stats = '<b>0</b> (0)'; $cash_total = 0; $cash = 0; } $cash = game::format_cash($cash) . ' (' . game::format_cash($cash_total) . ')'; $stat = '<b>' . game::format_number($totalt_stat_1) . '</b> (' . game::format_number($totalt_stat_2) . ')'; $cash = game::format_cash($totalt_cash_1) . ' (' . game::format_cash($totalt_cash_2) . ')'; $ret .= ' <tr class="spacer"><td colspan="3"> </td></tr> <tr' . (is_int($i / 2) ? ' class="color"' : '') . '> <td><b>Totalt</b></td> <td> </td> <td align="right" title="' . $cash . '">' . $stat . '</td> </tr> <tr class="spacer"><td colspan="3"> </td></tr> <tr' . (is_int(++$i / 2) ? ' class="color"' : '') . '> <td colspan="3"><b>Tips</b>: Hold musa over stats feltet for å se pengestats!</td> </tr> </tbody> </table>'; return $ret; }
case 2: if ($won[1]) { echo ' <p>Dere fikk samme kombinasjon, men motstanderen din hadde høyere highcard. Du <u>tapte</u> <b>' . game::format_number($status->get("bet")) . '</b> chips.</p>'; break; } echo ' <p>Motstanderen fikk bedre kombinasjon enn deg. Du <u>tapte</u> <b>' . game::format_number($status->get("bet")) . '</b> chips.</p>'; } echo ' </div>' . ($chips <= 0 ? ' <div class="warning"> <p>Du har ingen flere chips igjen. Oppdraget ble mislykket.</p> </div>' : ($success ? ' <div class="information"> <p>Du klarte å spille deg opp til ' . game::format_number($chips) . ' chips og nådde derfor målet på ' . game::format_number($target) . ' chips. Oppdraget ble vellykket!</p> </div>' : '')) . ' <p><b>Dine kort:</b><br />' . $poker->solve_text($solve) . '</p> <p>'; foreach ($poker->active as $key => $card) { echo sprintf(' <img src="%s" alt="%s" title="%s" class="spillekort%s" />', htmlspecialchars(sprintf(KORT_URL, $card->num + 1, $card->group['name'])), ucfirst(htmlspecialchars($card->group['title'])) . ' ' . $card->sign(), ucfirst(htmlspecialchars($card->group['title'])) . ' ' . $card->sign(), isset($solve[2][$key]) ? ' result' : ' noresult'); } echo ' </p> <p><b>Motstanderens kort:</b><br />' . $poker_pc->solve_text($solve_pc) . '</p> <p>'; foreach ($poker_pc->active as $key => $card) { echo sprintf(' <img src="%s" alt="%s" title="%s" class="spillekort%s" />', htmlspecialchars(sprintf(KORT_URL, $card->num + 1, $card->group['name'])), ucfirst(htmlspecialchars($card->group['title'])) . ' ' . $card->sign(), ucfirst(htmlspecialchars($card->group['title'])) . ' ' . $card->sign(), isset($solve_pc[2][$key]) ? ' result' : ' noresult'); }
/** * Spillere tilhørende brukeren */ protected static function page_up() { // hent spillerene tilhørende denne personen $pagei = new pagei(pagei::ACTIVE_GET, "side_up", pagei::PER_PAGE, 15); $result = $pagei->query("\n\t\t\tSELECT up_id, up_name, up_access_level, up_created_time, up_points, up_deactivated_time, up_hits, up_cash+up_bank money, upr_rank_pos\n\t\t\tFROM users_players\n\t\t\t\tLEFT JOIN users_players_rank ON upr_up_id = up_id\n\t\t\tWHERE up_u_id = " . page_min_side::$active_user->id . "\n\t\t\tORDER BY up_last_online DESC"); echo ' <div class="bg1_c"> <h1 class="bg1">Spillere tilhørende brukeren<span class="left2"></span><span class="right2"></span></h1> <div class="bg1"> <table class="table ' . ($pagei->pages == 1 ? 'tablem' : 'tablemt') . '" style="width: 100%"> <thead> <tr> <th>Spiller</th> <th>Opprettet</th> <th>Rank</th> <th>Penger</th> <th>Visninger</th> <th>Status</th> </tr> </thead> <tbody>'; while ($row = $result->fetch()) { $rank = game::rank_info($row['up_points'], $row['upr_rank_pos'], $row['up_access_level']); echo ' <tr> <td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level'], true, 'min_side?up_id=' . $row['up_id']) . '</td> <td>' . ess::$b->date->get($row['up_created_time'])->format() . '</td> <td>' . $rank['name'] . ($rank['orig'] ? '<br />(' . $rank['orig'] . ')' : '') . '</td> <td class="r">' . game::format_cash($row['money']) . '</td> <td class="r">' . game::format_number($row['up_hits']) . '</td> <td>' . ($row['up_access_level'] == 0 ? 'Deaktivert:<br />' . ess::$b->date->get($row['up_deactivated_time'])->format() : 'Status: I live') . '</td> </tr>'; } echo ' </tbody> </table>' . ($pagei->pages > 1 ? ' <p class="c">' . $pagei->pagenumbers() . '</p>' : '') . ' </div> </div>'; }
<input type="submit" value="VIS" /> </p> </form> <table class="table center tablemb"> <thead> <tr> <th> </th> <th>Når</th> <th>Dato</th> <th>Antall brukere</th> <th>Antall hits</th> </tr> </thead> <tbody>'; $i = 0; while ($row = $result->fetch()) { $i++; $time = floor((time() - $row['timestamp']) / 86400); echo ' <tr> <td align="right">#' . $i . '</td> <td align="right">' . ($time == 1 ? '<b>I går</b>' : ($time > 0 ? '<b>' . $time . '</b> dager' : '<b>I dag</b>')) . '</td> <td>' . $row['date'] . '</td> <td align="right">' . game::format_number($row['users']) . '</td> <td align="right">' . game::format_number($row['hits']) . '</td> </tr>'; } echo ' </tbody> </table>'; $_base->page->load();
/** * Vis fengsel */ protected function show() { // er vi i fengsel nå? if ($wait = $this->up->fengsel_wait()) { ess::$b->page->add_js_domready('$("fengsel_dusor").focus();'); echo ' <div class="bg1_c xsmall"> <h1 class="bg1">Du er i fengsel<span class="left"></span><span class="right"></span></h1> <p class="h_right"><a href="node/16">Hjelp</a></p> <div class="bg1"> <p>Du befinner deg for øyeblikket i fengsel og slipper ut om ' . game::counter($wait, true) . '.</p>' . (!$this->up->is_nostat() ? ' <form action="" method="post"> <input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" /> <input type="hidden" name="expire" value="' . $this->up->data['up_fengsel_time'] . '" /> <dl class="dd_right"> <dt>Dusør for å bryte deg ut</dt> <dd><input type="text" class="styled w80" name="amount" id="fengsel_dusor" value="' . game::format_cash($this->up->data['up_fengsel_dusor']) . '" /></dd> </dl> <p class="c">' . show_sbutton($this->up->data['up_fengsel_dusor'] > 0 ? "Endre dusør" : "Sett dusør", 'name="dusor"') . '</p> <p class="c">Spilleren som bryter ut mottar kun ' . self::DUSOR_PROFIT * 100 . ' % av dusøren.</p> </form>' : '') . ' </div> </div>'; } // sortering $sort = new sorts("sort"); $sort->append("asc", "Spiller", "up_name"); $sort->append("desc", "Spiller", "up_name DESC"); $sort->append("asc", "Wanted nivå", "up_wanted_level, up_fengsel_time DESC"); $sort->append("desc", "Wanted nivå", "up_wanted_level DESC, up_fengsel_time DESC"); $sort->append("asc", "Tid igjen", "up_fengsel_time"); $sort->append("desc", "Tid igjen", "up_fengsel_time DESC"); $sort->set_active(requestval("sort"), 5); // hent folk i fengsel $sort_info = $sort->active(); $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 15); $result = $pagei->query("\n\t\t\tSELECT up_id, up_name, up_access_level, up_fengsel_time, up_fengsel_num, up_fengsel_dusor, ROUND(up_fengsel_dusor * " . self::DUSOR_PROFIT . ") up_fengsel_dusor_get, up_wanted_level\n\t\t\tFROM users_players\n\t\t\tWHERE up_fengsel_time > " . time() . " AND up_access_level != 0\n\t\t\tORDER BY {$sort_info['params']}"); $num = $result->rowCount(); echo ' <div class="bg1_c ' . ($num == 0 ? 'xsmall' : 'xlarge') . '"> <h1 class="bg1">Fengsel<span class="left"></span><span class="right"></span></h1> <p class="h_right"><a href="node/16">Hjelp</a></p> <div class="bg1"> <form action="" method="post"> <p class="c dark">Ditt wanted nivå er på ' . game::format_number($this->up->data['up_wanted_level'] / 10, 1) . ' %.</p>'; if ($num == 0) { echo ' <p class="c dark">Ingen er i fengselet for øyeblikket.</p> <p class="c"><a href="' . htmlspecialchars(game::address("fengsel", $_GET)) . '" class="button">Oppdater</a></p>'; } else { echo ' <table class="table center" width="100%"> <thead> <tr> <th>Spiller ' . $sort->show_link(0, 1) . '</th> <th>Wanted<br />nivå ' . $sort->show_link(2, 3) . '</th> <th>Utbrytning<br />sannsynlighet</th> <th>Ca. poeng</th> <th>Dusør</th> <th>Tid igjen ' . $sort->show_link(4, 5) . '</th> </tr> </thead> <tbody>'; $i = 0; while ($row = $result->fetch()) { $prefix = ""; $attr = new attr("class"); if (++$i % 2 == 0) { $attr->add("color"); } if (!$this->up->fengsel_check()) { $attr->add("box_handle"); $prefix = '<input type="radio" name="up_id" value="' . $row['up_id'] . '_' . $row['up_fengsel_time'] . '_' . $row['up_fengsel_dusor'] . '" /> '; } $time = $row['up_fengsel_time'] - time(); $prob = self::calc_prob($time, $row['up_wanted_level'] / 10); $points = self::calc_points($prob); echo ' <tr' . $attr->build() . '> <td>' . $prefix . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td> <td class="c">' . game::format_number($row['up_wanted_level'] / 10, 1) . ' %</td> <td class="c">' . game::format_number($prob, 1) . ' %</td> <td class="c">' . game::format_num($points) . '</td> <td class="r nowrap">' . game::format_cash($row['up_fengsel_dusor_get']) . '</td> <td class="r">' . game::counter($time) . '</td> </tr>'; } echo ' </tbody> </table> <p class="c">' . (($wait = $this->up->fengsel_wait()) == 0 ? ' ' . show_sbutton("Bryt ut", 'name="brytut"') : ' Du er i fengsel og slipper ut om ' . game::counter($wait, true) . '. </p> <p class="c">') . ' <a href="' . htmlspecialchars(game::address("fengsel", $_GET)) . '" class="button">Oppdater</a> </p>'; // flere sider? if ($pagei->pages > 1) { echo ' <div class="hr"></div> <p class="c"> ' . $pagei->pagenumbers() . ' </p>'; } } echo ' </form> </div> </div>'; // testing if (!MAIN_SERVER || access::is_nostat() && access::has("mod")) { echo ' <div class="bg1_c xxsmall bg1_padding"> <h1 class="bg1">' . (MAIN_SERVER ? 'No-stat' : 'Testing') . '<span class="left"></span><span class="right"></span></h1> <div class="bg1"> <form action="" method="post">' . ($this->up->fengsel_check() ? ' <p class="c">' . show_sbutton("Gå ut av fengsel", 'name="remove"') . '</p>' : ' <dl class="dd_right dl_2x"> <dt>Tid</dt> <dd><input type="text" name="time" value="' . htmlspecialchars(postval("time", 20)) . '" class="styled w40" /> sekunder</dd> </dl> <p class="c">' . show_sbutton("Gå inn i fensgel") . '</p>') . ' </form> </div> </div>'; } }
/** Hent statistikk info */ public function stat_info($field) { // seperator? if ($field == "-") { return array(" ", " "); } // ukjent? if (!isset($this->xml->{$field})) { return array("ukjent", "ukjent felt: " . htmlspecialchars($field)); } global $_base, $_whatpulse; // har vi tittel? if (isset($_whatpulse['fields_text'][$field])) { $title = htmlspecialchars($_whatpulse['fields_text'][$field]); } else { $title = htmlspecialchars($field); } // finn verdi $value = $this->xml->{$field}; $types = $_whatpulse['types']; $type = isset($types[$field]) ? $types[$field] : 0; switch ($type) { // Number case 1: $value = game::format_number($value); break; // DateTime // DateTime case 2: $value = $_base->date->get(strtotime($value))->format(); break; // Date // Date case 3: $value = $_base->date->get(strtotime($value))->format(date::FORMAT_NOTIME); break; // Precision (2) // Precision (2) case 4: $value = game::format_number($value, 2); break; // Miles // Miles case 5: $value = game::format_number($value * 1.609344, 1) . " km"; break; // TeamName // TeamName case 6: $value = $this->xml->Team->Name; // Tekst // Tekst default: $value = htmlspecialchars($value); } return array($title, $value); }
/** * Vis side med kart */ public function show_full_page() { global $__server; // hent familierangering $ff_list = ff::get_fam_points_rank(); // deaktiver høyre side //define("DISABLE_RIGHT_COL", true); ess::$b->page->add_css(' #default_main { overflow: visible }'); ess::$b->page->add_js_domready(' sm_scripts.load_hm(); window.HM.addEvent("f-changed", function(data) { //$$(".bydeler_filter a").removeClass("active"); $$(".bydeler_ressurs").setStyle("display", "none"); $$(".bydeler_ressurs_"+data).setStyle("display", "block"); //$("f_"+data).addClass("active"); }); window.HM.addEvent("f-removed", function() { //$$(".bydeler_filter a").removeClass("active"); //$("f_").addClass("active"); $$(".bydeler_ressurs").setStyle("display", "block"); }); window.HM.addEvent("b-added", function() { //$$(".bydeler_alt a").removeClass("active"); //$("v_b").addClass("active"); $$(".bydeler_br").setStyle("display", "none"); $$(".bydeler_steder").setStyle("display", "block"); }); window.HM.addEvent("b-removed", function() { //$$(".bydeler_alt a").removeClass("active"); //$("v_").addClass("active"); $$(".bydeler_br").setStyle("display", "block"); $$(".bydeler_steder").setStyle("display", "none"); }); $$(".bydeler_steder").setStyle("display", "none"); $$(".bydeler_alt a").addEvent("click", function(e) { window.HM.remove("f"); window.HM.set("b", ""); e.stop(); }); $$(".bydeler_filter a").addEvent("click", function(e) { window.HM.remove("b"); if (this.get("id") == "f_") window.HM.remove("f"); else window.HM.set("f", this.get("id").substring(2)); e.stop(); }); window.HM.recheck(); '); // sett opp alle FF og sorter dem i y-retning $data = array(); $pos_x = array(); $pos_y = array(); foreach ($this->bydeler as $id => $bydel) { if ($id == 0) { continue; } foreach ($bydel['ff'] as $row) { $pos_x[] = $row['br_pos_x']; $pos_y[] = $row['br_pos_y']; $type = ff::$types[$row['ff_type']]; // familie if ($row['ff_type'] == 1) { $eier = count($row['eier']) == 0 ? 'Ingen leder av broderskapet' : 'Styres av ' . self::list_players($row['eier']); $class = "bydeler_ressurs_familie"; // antall poeng if (isset($ff_list[$row['ff_id']]) && $ff_list[$row['ff_id']]->data['ff_is_crew'] == 0) { $eier .= '<br />' . game::format_num($ff_list[$row['ff_id']]->data['ff_points_sum']) . ' poeng'; } } else { if ($type['type'] == "bomberom") { $eier = count($row['eier']) == 0 ? 'Ingen styrer bomberommet' : 'Styres av ' . self::list_players($row['eier']); } else { $eier = count($row['eier']) == 0 ? 'Ingen eier av firmaet' : 'Eies av ' . self::list_players($row['eier']); } $class = "bydeler_ressurs_firma bydeler_ressurs_{$type['type']}firma"; } $data[] = ' <a href="' . $__server['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '" class="bydeler_ressurs ' . $class . '" style="left: ' . $row['br_pos_x'] . '%; top: ' . $row['br_pos_y'] . '%"> <img class="bydeler_ressurs_t" src="' . htmlspecialchars($type['bydeler_graphic']) . '" alt="' . htmlspecialchars($type['bydeler_alt_pre']) . htmlspecialchars($row['ff_name']) . '" /> <span class="bydeler_ressurs_tekst"> ' . htmlspecialchars($row['ff_name']) . '<span class="bydeler_owner"><br /> ' . $eier . '</span> </span> <img class="bydeler_ressurs_graphic" src="' . htmlspecialchars(ff::get_logo_path_static($row['ff_id'], $row['ff_logo_path'])) . '" alt="" /> </a>'; } } array_multisort($pos_y, $pos_x, $data); $bydeler_0 = $this->bydeler[0]; unset($this->bydeler[0]); // sorter bydelene i y-retning $bydeler_x = array(); $bydeler_y = array(); foreach ($this->bydeler as $id => $bydel) { $bydeler_x[] = $bydel['bydel_x']; $bydeler_y[] = $bydel['bydel_y']; } array_multisort($bydeler_x, $bydeler_y, $this->bydeler); // invitasjoner til FF if (count($this->ff_invites) > 0) { echo ' <div class="bg1_c small"> <h1 class="bg1">Invitasjoner<span class="left2"></span><span class="right2"></span></h1> <div class="bg1">'; foreach ($this->ff_invites as $row) { $type = ff::$types[$row['ff_type']]; echo ' <p>Du er invitert til ' . $type['refobj'] . ' <a href="' . $__server['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '">' . htmlspecialchars($row['ff_name']) . '</a> som ' . $type['priority'][$row['ffm_priority']] . ' (' . ess::$b->date->get($row['ffm_date_join'])->format(date::FORMAT_NOTIME) . ') - <a href="' . $__server['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '">Godta/avslå</a></p>'; } echo ' </div> </div>'; } if (count($this->fff) > 0) { echo ' <div class="bg1_c medium bydeler_br bydeler_ressurs bydeler_ressurs_familie"> <h1 class="bg1">Konkurranse om å danne broderskap<span class="left2"></span><span class="right2"></span></h1> <div class="bg1"> <table class="table center tablem"> <thead> <tr> <th>Avsluttes</th> <th>Gjenstår</th> <th>Antall broderskap</th> <th>Gjenstående broderskap</th> <th> </th> </tr> </thead> <tbody class="r">'; $i = 0; $free = 0; foreach ($this->fff as $row) { if ($row['ff_count'] < ff::MAX_FFF_FF_COUNT) { $free += ff::MAX_FFF_FF_COUNT - $row['ff_count']; } echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> <td>' . ess::$b->date->get($row['fff_time_expire'])->format(date::FORMAT_SEC) . '</td> <td>' . game::timespan(max(time(), $row['fff_time_expire']), game::TIME_ABS) . '</td> <td>' . $row['ff_count'] . '</td> <td>' . $row['ff_count_active'] . '</td> <td><a href="' . $__server['relative_path'] . '/ff/?fff_id=' . $row['fff_id'] . '">Vis »</a></td> </tr>'; } $create_link = login::$logged_in ? $this->up->rank['number'] < ff::$types[1]['priority_rank'][1] ? ' - Du har ikke høy nok rank til å opprette et broderskap' : ' - Du har høy nok rank - <a href="' . $__server['relative_path'] . '/ff/?create">Opprett broderskap »</a>' : ''; echo ' </tbody> </table>' . ($free > 0 ? ' <p class="c" style="margin-top: 0">Det er ' . $free . ' ' . fword("ledig konkurranseplass", "ledige konkurranseplasser", $free) . $create_link . '</p>' : ' <p class="c" style="margin-top: 0">Ingen ledige konkurranseplasser.</p>') . ' </div> </div>'; } // topp rangerte familier if (count($ff_list) > 0) { echo ' <div class="bg1_c xxsmall bydeler_br bydeler_ressurs bydeler_ressurs_familie"> <h1 class="bg1">Topp rangerte broderskap<span class="left"></span><span class="right"></span></h1> <div class="bg1"> <dl class="dd_right">'; $i = 0; foreach ($ff_list as $ff) { $title = "For rank til medlemmer: " . $ff->data['ff_points_up'] . " - For firma til medlemmer: " . $ff->data['ff_points_ff'] . " - For drap: " . $ff->data['ff_points_kill']; echo ' <dt><a href="' . ess::$s['rpath'] . '/ff/?ff_id=' . $ff->id . '">' . htmlspecialchars($ff->data['ff_name']) . '</a></dt> <dd title="' . $title . '">' . game::format_num($ff->data['ff_points_sum']) . ' poeng</dd>'; // vis kun 3 beste familiene if (++$i == 3) { break; } } echo ' </dl> <p class="c"><a href="' . ess::$s['rpath'] . '/node/19">Poenginformasjon</a></p> </div> </div>'; } kf_menu::$data['bydeler_menu'] = true; echo ' <h1 class="bydeler">Bydeler</h1> <div class="bydeler"> <div class="bydeler_kart bydeler_br"> <img src="' . STATIC_LINK . '/themes/kofradia/drammen_stor.gif" class="bydeler_bg" /> ' . implode('', $data) . ' </div>'; // har vi noen FF som ikke er plassert? if ($bydeler_0['active']) { echo ' <div class="bydeler_uplassert bydeler_br">'; foreach ($bydeler_0['ff'] as $row) { $type = ff::$types[$row['ff_type']]; // familie if ($row['ff_type'] == 1) { $eier = count($row['eier']) == 0 ? 'Ingen leder av broderskapet' : 'Styres av ' . self::list_players($row['eier']); $class = "bydeler_ressurs_familie"; } else { if ($type['type'] == "bomberom") { $eier = count($row['eier']) == 0 ? 'Ingen styrer bomberommet' : 'Styres av ' . self::list_players($row['eier']); } else { $eier = count($row['eier']) == 0 ? 'Ingen eier av firmaet' : 'Eies av ' . self::list_players($row['eier']); } $class = "bydeler_ressurs_firma bydeler_ressurs_{$type['type']}firma"; } echo ' <div class="bydeler_uplassert_boks"> <a href="' . $__server['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '" class="bydeler_ressurs ' . $class . '"> <img class="bydeler_ressurs_graphic" src="' . htmlspecialchars(ff::get_logo_path_static($row['ff_id'], $row['ff_logo_path'])) . '" alt="" /> <span class="bydeler_ressurs_tekst"> ' . htmlspecialchars($row['ff_name']) . '<span class="bydeler_owner"><br /> ' . $eier . '</span> </span> <img class="bydeler_ressurs_t" src="' . htmlspecialchars($type['bydeler_graphic']) . '" alt="' . htmlspecialchars($type['bydeler_alt_pre']) . htmlspecialchars($row['ff_name']) . '" /> </a> </div>'; } echo ' </div>'; } echo ' <div class="bydeler_kart bydeler_steder"> <img src="' . STATIC_LINK . '/themes/kofradia/drammen_stor.gif" class="bydeler_bg" />'; foreach ($this->bydeler as $bydel) { if ($bydel['active'] == 0) { continue; } if ($this->up) { $distance = self::calc_travel_distance($this->up->bydel, $bydel); $taxi_price = round($distance * self::TAXI_PRICE_KM); $taxi_points = round($distance * self::TAXI_POINTS_KM * $this->up->rank['number']); } echo ' <div class="map_unit' . ($this->up && $this->up->bydel['id'] == $bydel['id'] ? ' map_active' : '') . '" style="left: ' . $bydel['bydel_x'] . '%; top: ' . $bydel['bydel_y'] . '%" id="map_link_' . $bydel['id'] . '"> <div class="map_title"> <p class="map_link"><b><b><b>' . htmlspecialchars($bydel['name']) . '</b></b></b></p> <div class="bydeler_sted"> <div class="bydeler_sted_info"> <dl class="dd_right"> <dt>Spillere</dt> <dd>' . game::format_number($bydel['num_players']) . '</dd> <dt>Penger i omløp</dt> <dd>' . game::format_cash($bydel['sum_money']) . '</dd> </dl>'; if (!$this->up) { } elseif ($this->up->bydel['id'] == $bydel['id']) { echo ' <p>Du befinner deg i denne bydelen.</p>'; } elseif ($this->up->fengsel_check()) { echo ' <p>Du er i fengsel og kan ikke reise.</p>'; } elseif ($this->up->bomberom_check()) { echo ' <p>Du er i bomberom og kan ikke reise.</p>'; } else { echo ' <div class="bydeler_reise c"> <form action="bydeler" method="post"> <input type="hidden" name="reise" value="' . htmlspecialchars($bydel['name']) . '" />'; // taxi if (!$this->up->energy_check(self::TAXI_ENERGY * 1.3)) { echo ' <p>Du har ikke nok energi til å ta taxi hit.</p>'; } elseif ($this->up->data['up_points'] < $taxi_points * 2) { echo ' <p>Du har ikke høy nok rank til å ta taxi hit.</p>'; } else { echo ' <p>' . show_sbutton("Ta taxi (" . game::format_cash($taxi_price) . ", " . game::format_number(round($taxi_points)) . " poeng)", 'name="taxi"') . '</p>'; } // gta if ($this->gta_count == 0) { echo ' <p>Du har ingen biler i bydelen du oppholder deg i for å reise med.</p>'; } elseif (!$this->gta_garage[$bydel['id']]['garage']) { echo ' <p>Det er ingen garasje i denne bydelen.</p>'; } elseif ($this->gta_garage[$bydel['id']]['garage_free'] == 0) { echo ' <p>Det er ingen ledige plasser i garasjen i denne bydelen.</p>'; } else { echo ' <p>' . show_sbutton("Kjør egen bil", 'name="gta"') . '</p>'; } // teleportere if (access::is_nostat()) { echo ' <p>' . show_sbutton("Teleporter hit (nostat)", 'name="teleporter"') . '</p>'; } echo ' </form> </div>'; } echo ' </div> </div> </div> </div>'; } echo ' </div>'; echo ' </div>'; ess::$b->page->load(); }