public function action_index() { $this->needUser(); $this->ut = new \Kofradia\Game\Utpressing($this->user->player); \ess::$b->page->add_title("Utpressing"); \kf_menu::$data['utpressing'] = true; // kontroller fengsel, bomberom og energi $this->user->player->fengsel_require_no(); $this->user->player->bomberom_require_no(); $this->user->player->energy_require(\Kofradia\Game\Utpressing::ENERGY * 1.3); // legg til 30 % for krav // kontroller anti-bot $this->antibot = \antibot::get("utpressing", static::ANTIBOT_SPAN); $this->antibot->check_required(); // skjema $this->form = \Kofradia\Form::getByDomain("utpressing", $this->user); // sett opp hvilke ranker som kan angripes $this->rank_min = max(1, $this->user->player->rank['number'] - 1); $this->rank_max = min($this->rank_min + 3, count(\game::$ranks['items'])); if ($this->rank_max - $this->rank_min < 3) { $this->rank_min = max(1, $this->rank_max - 3); } // sørg for at man har 4 alternativer uavhengig av rank // utføre utpressing? if (isset($_POST['utpressing'])) { $ret = $this->utpress(); if (!$ret) { return \redirect::handle(); } return $ret; } return $this->showForm(); }
/** * Construct */ public function __construct() { access::no_guest(); ess::$b->page->add_title("Anti-bot sjekk"); // hvilken side vi skal sendes til $this->redirect_url = getval("ret"); if (!$this->redirect_url) { $this->redirect_url = ess::$s['relative_path'] . "/"; } // sjekk etter anti-bot $name = getval("name"); $this->antibot = antibot::get($name); if (!$this->antibot->data) { ess::$b->page->add_message("Anti-bot oppføringen er ikke opprettet.", "error"); $this->redirect(); } // kuler? if ($name == "kuler") { // gjennomfør pre-check if (!$this->antibot->kuler_precheck()) { $this->redirect(); } // sett lave ventetider $this->update_delay = 2; $this->retry_delay = 2; } redirect::store("sjekk?name=" . urlencode($this->antibot->name) . '&ret=' . urlencode($this->redirect_url)); // sjekk om anti-boten ikke krever sjekk if (!$this->antibot->is_check_required()) { $this->redirect(); } // sjekk for ventetid $this->check_wait(); // hent bildene $this->load_images(); $this->form = \Kofradia\Form::getByDomain("anti-bot", login::$user); // utføre sjekk? if (isset($_POST['valider']) && isset($this->images) && !$this->wait) { $this->check(); } // nye bilder? if (isset($_POST['new'])) { $this->new_imgs(); } // vis anti-boten $this->show(); }
/** * Construct */ public function __construct() { kf_menu::$data['lotto'] = true; login::$user->player->fengsel_require_no(); login::$user->player->bomberom_require_no(); login::$user->player->energy_require(self::ENERGY * 1.3); // legg til 30 % på kravet ess::$b->page->add_title("Lotto"); $this->form = \Kofradia\Form::getByDomain("lotto", login::$user); $this->antibot = antibot::get("lotto", 21); $this->antibot->check_required(); // sjekk for aktiv runde, ventetid osv $this->check_active(); // ber vi om å kjøpe lodd? if (isset($_POST['lodd'])) { $this->lodd_kjop(); } $this->show_page(); ess::$b->page->load(); }
/** * Behandle forespørsel */ protected function handle_page() { $this->krim->up->fengsel_require_no(); $this->krim->up->bomberom_require_no(); $this->krim->up->energy_require(kriminalitet::ENERGY_KRIM * 1.3); // legg til 30 % på kravet // sett opp skjema $this->form = \Kofradia\Form::getByDomain("kriminalitet", login::$user); // sett opp antibot og sjekk om den skal utføres nå $this->antibot = antibot::get("kriminalitet", 12); $this->antibot->check_required(); ess::$b->page->add_title("Kriminalitet"); // hent informasjon om forrige forsøk $this->krim->get_last_info(); // hent inn alternativene $this->krim->options_load(); // utføre handling? if (isset($_POST['theid'])) { $this->utfor(); } echo ' <div class="bg1_c medium"> <h1 class="bg1">Kriminalitet<span class="left2"></span><span class="right2"></span></h1> <p class="h_right"><a href="' . ess::$s['rpath'] . '/node/3">Hjelp</a></p> <div class="bg1" style="padding-bottom: 1em"> <p>Her kan du gjøre enkle forbrytelser. Type forbrytelse er forskjellig fra bydel til bydel. Sannsynligheten justerer seg etter resultatet av forrige forsøk.</p>'; // siste utført? if ($this->krim->last) { echo ' <p>Du utførte kriminalitet sist den ' . ess::$b->date->get($this->krim->last['last'])->format(date::FORMAT_SEC) . ' på ' . game::$bydeler[$this->krim->last['b_id']]['name'] . '.</p>'; } echo ' <boxes />'; // er det noe ventetid? if ($this->krim->wait) { echo ' <p>Du må vente ' . game::counter($this->krim->wait, true) . ' før du kan utføre kriminalitet på nytt.</p>'; } // har vi ingen alternativer? if (count($this->krim->options) == 0) { echo ' <p>Det er ingen alternativer å utføre i denne bydelen. Prøv en annen bydel.</p>'; } else { ess::$b->page->add_css(' .krim_boks { clear: both; position: relative; padding: 0 0 0 85px; border: 1px solid #232323; background-color: #222222; margin: 0.7em 0 0; background-repeat: no-repeat; background-position: 0; height: 75px; } .krim_boks p, .krim_boks h4 { margin: 0; padding: 0; position: absolute } .krim_boks p { color: #CCCCCC } .krim_boks.krim_color { background-color: #262626; } .krim_boks.krim_last { background-color: #2D1E1E; } .krim_boks .krim_img { float: left; margin-right: 5px; } .krim_boks h4 { top: 8px; } .krim_strength { bottom: 23px; } .krim_rank { bottom: 23px; right: 8px; } .krim_info { bottom: 8px; } .krim_wait { right: 8px; bottom: 8px; } .krim_cash { right: 8px; top: 8px; font-weight: bold; }'); if ($this->krim->wait) { ess::$b->page->add_js_domready(' $$("div.krim_boks input").setStyle("display", "none");'); } else { ess::$b->page->add_js_domready(' $$("div.krim_boks").each(function(elm) { elm.setStyle("cursor", "pointer"); elm.addEvents({ "mouseover": function() { this.setStyle("background-color", "#181818"); }, "mouseout": function() { this.setStyle("background-color", ""); }, "click": function() { $("theid") .set("value", this.get("rel")) .form.submit(); } }); elm.set("title", "Klikk for å utføre"); elm.getElement("input").setStyle("display", "none"); });'); } echo ' <form action="" method="post"> ' . $this->form->getHTMLInput() . ' <input type="hidden" name="theid" value="" id="theid" />'; $i = 0; $show_id = ess::session_get("krim_last_id"); foreach ($this->krim->options as $row) { $rank = game::format_num($row['points']); echo ' <div class="krim_boks' . (++$i % 2 == 0 ? ' krim_color' : '') . ($show_id == $row['id'] ? ' krim_last' : '') . '" style="background-image: url(' . STATIC_LINK . '/krim/' . (empty($row['img']) ? 'none.png' : $row['img']) . ')" rel="' . $row['id'] . '"> <h4> <input type="submit" name="id' . $row['id'] . '" value="Utfør" /> ' . htmlspecialchars($row['name']) . ' </h4> <p class="krim_strength">' . game::format_num(round($row['prob'] * 100, 1), 1) . ' % sannsynlighet</p> <p class="krim_rank">Poeng: ' . $rank . '</p> <p class="krim_info">' . game::format_number($row['success']) . ' av ' . game::format_number($row['count']) . ' vellykkede forsøk (' . ($row['count'] == 0 ? '0' : game::format_number($row['success'] / $row['count'] * 100, 1)) . ' %)</p> <p class="krim_wait">Ventetid: ' . $row['wait_time'] . ' sek.</p> <p class="krim_cash">' . game::format_cash($row['cash_min']) . ' til ' . game::format_cash($row['cash_max']) . '</p> </div>'; } echo ' </form>'; } echo ' </div> </div>'; }
<?php require "../base.php"; global $_base; $_base->page->add_title("Anti-bot test"); access::need("crewet"); $antibot = antibot::get("test", 1); $antibot->check_required(); if (isset($_POST['inc'])) { $antibot->increase_counter(); $_base->page->add_message("Telleren ble økt med 1"); redirect::handle(); } echo ' <h1>Anti-bot test</h1> <p> Trenger ikke test. </p> <form action="" method="post"> <p> <input type="submit" name="inc" value="Øk telleren" /> </p> </form>'; $_base->page->load();
/** * Informasjon om våpen/beskyttelse */ protected function type_vapbes() { // logget inn og FF aktivert? if ($this->up && $this->ff->active) { // i fengsel eller bomberom? if ($this->up->fengsel_require_no(false) || $this->up->bomberom_require_no(false)) { return; } // vise informasjon om våpen? if (isset($_GET['vap'])) { $this->type_vapbes_vap(); $this->ff->load_page(); } // kjøpe våpen? if (isset($_GET['vap_kjop'])) { $this->type_vapbes_vap_kjop(); $this->ff->load_page(); } // vise tilgjengelig beskyttelse? if (isset($_GET['bes'])) { $this->type_vapbes_bes(); $this->ff->load_page(); } // kjøpe beskyttelse? if (isset($_GET['bes_kjop'])) { $this->type_vapbes_bes_kjop(); $this->ff->load_page(); } // kontroller anti-bot for kjøp av kuler $this->bullets_antibot = antibot::get("kuler", 1); $this->bullets_antibot->check_required(ess::$s['relative_path'] . "/ff/?ff_id={$this->ff->id}"); // kan vi kjøpe kuler? if ($this->up->weapon) { // sett opp skjema for å kjøpe kuler $this->bullets_form = \Kofradia\Form::getByDomain("bullets", login::$user); // skal vi kjøpe kuler? if (isset($_POST['buy_bullets'])) { $this->bullets_buy(); } } } // vise informasjon om kuler? if (isset($_GET['bul'])) { $this->type_vapbes_bul(); $this->ff->load_page(); } // kolonneoppsett echo ' <div class="col2_w firmavapbes" style="margin: 35px 30px"> <div class="col_w left"> <div class="col" style="margin-right: 15px">'; // vis informasjon om våpen echo ' <div class="bg1_c"> <h1 class="bg1">Våpen<span class="left2"></span><span class="right2"></span></h1> <div class="bg1"> <p>For å angripe en annen spiller behøver du våpen og kuler. Å angripe en spiller kan gi gevinst på flere måter, men kan også bli en kostbar affære hvis man stadig er uheldig med drapsforsøkene.</p>'; // har ikke noe våpen? if ($this->up && !$this->up->weapon) { echo ' <p><b>Du har ingen våpen og kan ikke angripe noen andre spillere!</b></p> <p class="c"><a href="./?ff_id=' . $this->ff->id . '&vap_kjop">Kjøp våpen</a></p>'; } elseif ($this->up) { $training = $this->up->data['up_weapon_training'] * 100; // vis detaljer echo ' <dl class="dd_right"> <dt>Ditt våpen</dt> <dd>' . $this->up->weapon->data['name'] . '</dd> </dl> <div class="progressbar p' . ($training < 28 ? ' levelcrit' : ($training < 35 ? ' levelwarn' : '')) . '"> <div class="progress" style="width: ' . round(min(100, $training)) . '%"> <p>Våpentrening: ' . ($training == 100 ? '100' : game::format_num($training, 2)) . ' %</p> </div> </div> <p class="c"><a href="./?ff_id=' . $this->ff->id . '&vap_kjop">Oppgrader våpen</a></p>'; } echo ' <p class="c"><a href="./?ff_id=' . $this->ff->id . '&vap">Vis oversikt over og generell informasjon om våpen</a></p> </div> </div>'; // vis informasjon om kuler echo ' <div class="bg1_c" style="margin-top: 20px"> <h1 class="bg1">Kuler<span class="left2"></span><span class="right2"></span></h1> <div class="bg1"> <p>Når man angriper en spiller må man bestemme antall kuler man ønsker å angripe spilleren med.</p> <p>Flere kuler gir større sannsynlighet for å treffe en spiller, men ved bruk av mange kuler risikerer man at en del kuler ikke treffer spilleren.</p>'; // har vi ikke noe våpen? if ($this->up && !$this->up->weapon) { echo ' <p>Du har ikke noe våpen og kan ikke kjøpe kuler.</p>'; } elseif ($this->up) { // klokka ikke mellom 20 og 22? $h = ess::$b->date->get()->format("H"); $time_ok = true; if ($h < 20 || $h >= 22) { $ant = 0; $time_ok = false; } else { // finn ut hvor mange kuler som er til salgs $result = \Kofradia\DB::get()->query("SELECT COUNT(*) FROM bullets WHERE bullet_ff_id = {$this->ff->id} AND bullet_time <= " . time() . " AND (bullet_freeze_time = 0 OR bullet_freeze_time <= " . time() . ")"); $ant = $result->fetchColumn(0); } echo ' <p>Du har <b>' . $this->up->data['up_weapon_bullets'] . '</b> ' . fword('kule', 'kuler', $this->up->data['up_weapon_bullets']) . '. Pris per kule er ' . game::format_cash($this->up->weapon->data['bullet_price']) . '.</p>'; // utenfor tidsrommet? if (!$time_ok) { echo ' <p>Kuler kan kun kjøpes dersom det er tilgjengelig mellom kl. 20:00 og 22:00.</p>'; } elseif ($ant == 0) { echo ' <p>Ingen kuler er for øyeblikket tilgjengelig å kjøpe.</p>'; } else { echo ' <p>Det er for øyeblikket ' . fwords("<b>%d</b> kule", "<b>%d</b> kuler", $ant) . ' til salgs.</p> <form action="" method="post"> ' . $this->bullets_form->getHTMLInput() . ' <p class="c">Antall kuler: <input type="text" name="bullets" value="' . htmlspecialchars(postval("bullets", 1)) . '" class="styled w30" /> ' . show_sbutton("Kjøp", 'name="buy_bullets"') . '</p> </form>'; } } echo ' <p class="c"><a href="./?ff_id=' . $this->ff->id . '&bul">Vis informasjon om kuler</a></p> </div> </div>'; // kolonneoppsett echo ' </div> </div> <div class="col_w right"> <div class="col" style="margin-left: 15px">'; // vis informasjon om beskyttelse echo ' <div class="bg1_c"> <h1 class="bg1">Beskyttelse<span class="left2"></span><span class="right2"></span></h1> <div class="bg1"> <p>Beskyttelsen passer på helsen din når du blir angrepet. En bedre beskyttelse fører til at du mister mindre helse ved et angrep.</p> <p>Beskyttelsen din blir svekket ved et angrep. Om beskyttelsen skulle falle under 20 % vil den bli erstattet med det forrige alternativet, hvis et slikt alternativ finnes.</p>'; // har ikke noe beskyttelse? if ($this->up && !$this->up->protection->data) { echo ' <p><b>Du har ingen beskyttelse og vil være ekstra utsatt ved et angrep!</b></p> <p class="c"><a href="./?ff_id=' . $this->ff->id . '&bes_kjop">Kjøp beskyttelse</a></p>'; } elseif ($this->up) { $protection = $this->up->get_protection_percent(); // vis detaljer echo ' <dl class="dd_right"> <dt>Din beskyttelse</dt> <dd>' . $this->up->protection->data['name'] . '</dd> </dl> <div class="progressbar p' . ($protection < 20 ? ' levelcrit' : ($protection < 50 ? ' levelwarn' : '')) . '"> <div class="progress" style="width: ' . round(min(100, $protection)) . '%"> <p>Status: ' . ($protection == 100 ? '100' : game::format_num($protection, 2)) . ' %</p> </div> </div> <p class="c"><a href="./?ff_id=' . $this->ff->id . '&bes_kjop">Oppgrader beskyttelse</a></p>'; } echo ' <p class="c"><a href="./?ff_id=' . $this->ff->id . '&bes">Vis oversikt over beskyttelser</a></p> </div> </div>'; // slutt på kolonneoppsett echo ' </div> </div> </div>'; }
/** * Vis oversikt over garasjen */ protected function garasje_show() { ess::$b->page->add_title("Garasje"); // kjøpe garasje? if (isset($this->parts[1]) && $this->parts[1] == "kjop") { redirect::store("/gta/garasje/kjop", redirect::ROOT); return $this->garasje_kjop_show(); } // avslutte garasje? if (isset($this->parts[1]) && $this->parts[1] == "avslutt") { redirect::store("/gta/garasje/avslutt", redirect::ROOT); return $this->garasje_avslutt_show(); } // endre garasje? if (isset($this->parts[1]) && $this->parts[1] == "endre") { redirect::store("/gta/garasje/endre", redirect::ROOT); return $this->garasje_endre_show(); } // vise detaljer over garasje? if (isset($this->parts[1]) && $this->parts[1] == "detaljer") { redirect::store("/gta/garasje/detaljer", redirect::ROOT); return $this->garasje_details_show(); } // betale leie? if (isset($this->parts[1]) && $this->parts[1] == "betale") { redirect::store("/gta/garasje/betale", redirect::ROOT); return $this->garasje_betale_show(); } // skjema $this->form = \Kofradia\Form::getByDomain("gta_garasje", login::$user); // anti-bot $this->antibot = antibot::get("biltyveri", 10); $this->antibot->check_required(ess::$s['rpath'] . '/gta'); // flytte biler? if (isset($_POST['flytt'])) { return $this->garasje_flytt_show(); } // selge biler? if (isset($_POST['selg'])) { $this->garasje_selg_handle(); } // hent informasjon om garasjen $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ugg_time, ugg_time_next_rent, ugg_cost_total, ugg_places, ff_id, ff_name\n\t\t\tFROM users_garage\n\t\t\t\tLEFT JOIN ff ON ff_id = ugg_ff_id\n\t\t\tWHERE ugg_up_id = {$this->gta->up->id} AND ugg_b_id = {$this->gta->up->data['up_b_id']}"); $garasje = $result->fetch(); // kan vi betale nå? $can_pay = $garasje && gta::can_pay($garasje['ugg_time_next_rent']); echo ' <div class="col2_w" style="margin: 50px 50px 0"> <div class="col_w left" style="width: 50%"> <div class="col"> <div class="bg1_c center" style="width: 85%"> <h1 class="bg1">Garasje på ' . htmlspecialchars($this->gta->up->bydel['name']) . '<span class="left2"></span><span class="right2"></span></h1> <div class="bg1">' . (!$garasje ? ' <p class="c">Du har ingen garasje i denne bydelen.</p> <p class="c"><a href="&rpath;/gta/garasje/kjop">Lei ny garasje</a></p>' : ' <dl class="dd_right"> <dt>Utleiefirma</dt> <dd><a href="&rpath;/ff/?ff_id=' . $garasje['ff_id'] . '">' . htmlspecialchars($garasje['ff_name']) . '</a></dd> <dt>Kapasitet</dt> <dd>' . game::format_num($garasje['ugg_places']) . '</dd> <dt>Neste betalingsfrist</dt> <dd>' . ess::$b->date->get($garasje['ugg_time_next_rent'])->format() . ($can_pay ? '<br /><a href="&rpath;/gta/garasje/betale">Betal leie før fristen</a>' : '') . '</dd> </dl> <p class="c"><a href="&rpath;/gta/garasje/detaljer">Vis flere detaljer</a></p> <p>Leie for neste periode må betales innen betalingsfristen' . ($can_pay ? '' : ' og blir mulig 3 dager før fristen') . '.</p>') . ' </div> </div> </div> </div> <div class="col_w right" style="width: 50%"> <div class="col"> <p class="c" style="margin-top: 0"><img src="&staticlink;/gta/garasje.jpg" alt="Garasje" style="border: 3px solid #1F1F1F" /></p> </div> </div> </div>'; if ($garasje) { // hent bilene i garasjen $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 15); $result = $pagei->query("\n\t\t\t\tSELECT s.id, s.gtaid, s.time, s.time_last_move, s.b_id_org, s.b_id, g.brand, g.model, g.img_mini, g.value, s.damage\n\t\t\t\tFROM users_gta AS s LEFT JOIN gta AS g ON s.gtaid = g.id\n\t\t\t\tWHERE ug_up_id = {$this->gta->up->id} AND s.b_id = {$this->gta->up->data['up_b_id']}\n\t\t\t\tORDER BY s.time DESC"); echo ' <div class="bg1_c xmedium"> <h1 class="bg1">Biler i garasjen<span class="left2"></span><span class="right2"></span></h1> <div class="bg1">'; // har vi ingen biler? if ($result->rowCount() == 0) { echo ' <p>Det er ingen biler plassert i denne garasjen. Bilene du stjeler vil bli plassert i garasjen i bydelen du oppholder deg.</p>'; } else { echo ' <form action="" method="post"> ' . $this->form->getHTMLInput() . ' <table class="table tablemt center"> <thead> <tr> <th><a href="#" class="box_handle_toggle" rel="bil[]">Merk alle</a></th> <th>Merke/Modell</th> <th>Dato anskaffet</th> <th>Skade</th> <th>Verdi</th> </tr> </thead> <tbody>'; $i = 0; while ($row = $result->fetch()) { echo ' <tr class="box_handle' . (++$i % 2 == 0 ? ' color' : '') . '"> <td><input type="checkbox" id="bil_' . $row['id'] . '" name="bil[]" value="' . $row['id'] . '" />' . (empty($row['img_mini']) ? ' ' : '<img src="' . $row['img_mini'] . '" alt="Bilde" />') . '</td> <td>' . htmlspecialchars($row['brand']) . '<br /><b>' . htmlspecialchars($row['model']) . '</b></td> <td>' . ess::$b->date->get($row['time'])->format() . '</td> <td align="right">' . $row['damage'] . ' %</td> <td align="right">' . game::format_cash($row['value'] * ((100 - $row['damage']) / 100)) . '</td> </tr>'; } echo ' </tbody> </table>' . ($pagei->pages > 1 ? ' <p class="c">' . $pagei->pagenumbers() . '</p>' : '') . ' <p class="c"> ' . show_sbutton("Selg biler", 'name="selg"') . ' ' . show_sbutton("Flytt biler", 'name="flytt"') . ' </p> </form>'; } echo ' </div> </div>'; } }