/** * Vis resultat fra angrep */ protected function attack_result_show($result, $bullets) { echo ' <div class="bg1_c xsmall"> <h1 class="bg1">' . ($result['drept'] ? 'Spiller drept' : 'Spiller skadet') . '<span class="left2"></span><span class="right2"></span></h1> <div class="bg1">'; // sett opp hva vi fikk $got = array(); $got[] = game::format_num($result['rankpoeng']) . ' poeng' . ($result['drept'] ? '' : ' fra spilleren'); if (isset($result['penger']) && $result['penger'] > 0) { $got[] = game::format_cash($result['penger']) . ' som offeret hadde på hånda'; } if (isset($result['penger_bank']) && $result['penger_bank'] > 0) { $got[] = game::format_cash($result['penger_bank']) . ' som deler av det offeret hadde i banken'; } if (isset($result['hitlist']) && $result['hitlist'] > 0) { $got[] = game::format_cash($result['hitlist']) . ' fra hitlista'; } $got = sentences_list($got); // vellykket? if ($result['drept']) { $place = bydeler::get_random_place(login::$user->player->bydel['id']); echo ' <p>Du fant ' . $this->up_offer->profile_link() . ' som hadde ranken ' . $this->up_offer->rank['name'] . ' og var plassert som nummer ' . $this->up_offer->data['upr_rank_pos'] . ' på ranklista' . ($place ? ' ved ' . $place : '') . ' og angrep spilleren med ' . $bullets . ' ' . fword("kule", "kuler", $bullets) . '.</p> <p>Spilleren døde av angrepet ditt. Du fikk ' . $got . '.' . ($result['penger'] == 0 ? ' Offeret hadde ingen penger på hånda.' : '') . '</p>'; } else { $place = bydeler::get_random_place(login::$user->player->bydel['id']); echo ' <p>Du fant ' . $this->up_offer->profile_link() . ' med ranken ' . $this->up_offer->rank['name'] . ' og plassering nummer ' . $this->up_offer->data['upr_rank_pos'] . ' på ranklista' . ($place ? ' ved ' . $place : '') . ' og angrep spilleren med ' . $bullets . ' ' . fword("kule", "kuler", $bullets) . '.</p> <p>Spilleren ble skadet av angrepet men overlevde. Du mottok ' . $got . '.</p>'; } // list opp vitner if (count($result['vitner']) == 0) { echo ' <p>Ingen spillere vitnet ' . ($result['drept'] ? 'drapet' : 'drapsforsøket') . '.</p>'; } else { // sett opp liste over navngitte spillere som oppdaget det $list = array(); $count_other = 0; foreach ($result['vitner'] as $vitne) { if ($vitne['visible']) { $list[] = $vitne['up']->profile_link(); } else { $count_other++; } } if ($count_other > 0) { $list[] = fwords("%d ukjent spiller", "%d ukjente spillere", $count_other); } echo ' <p>Du ble oppdaget av ' . sentences_list($list) . ' da ' . ($result['drept'] ? 'drapet' : 'drapsforsøket') . ' ble gjennomført.</p>'; } // fengselendring? if (isset($result['fengsel'])) { // kom i fengsel? if ($result['fengsel'] === false) { // fjern meldingen som allerede er lagt inn ess::$b->page->message_get("fengsel"); echo ' <p>Du kom i fengsel og slipper ut om ' . game::counter(login::$user->player->data['up_fengsel_time'] - time()) . '. Wanted nivået er nå på ' . game::format_num(login::$user->player->data['up_wanted_level'] / 10, 1) . ' %.</p>'; } else { echo ' <p>Wanted nivået økte med ' . game::format_num($result['fengsel'] / 10, 1) . ' %.</p>'; } } echo ' <p class="c"><a href="angrip">Tilbake</a></p> </div> </div>'; ess::$b->page->load(); }
/** * Vis alle drapsforsøk for en spesifikk spiller * @param player $up * @param bool $offer skal vi vise angrep mot spilleren? */ protected function show_tries(player $up = null, $offer = null) { $alle = !$up; $egen = $up && $up->id == $this->up->id; if ($alle) { ess::$b->page->add_title("Alle drapsforsøk"); } elseif (!$egen) { ess::$b->page->add_title("Drapsforsøk " . ($offer ? 'mot' : 'for') . " '{$up->data['up_name']}'"); } else { ess::$b->page->add_title("Mine drapsforsøk"); } echo ' <div class="bg1_c ' . ($alle ? 'large' : 'medium') . '"> <h1 class="bg1"> ' . ($alle ? 'Alle drapsforsøk' : 'Drapsforsøk') . ' <span class="left2"></span><span class="right2"></span> </h1> <p class="h_left"><a href="drap">« Tilbake</a></p> <div class="bg1"> <p class="c">Dette er en oversikt som viser ' . ($alle ? 'alle drapsforsøk som er utført' : 'drapsforsøk ' . ($egen ? 'du har utført' : ($offer ? 'rettet mot spilleren ' . $up->profile_link() : 'spilleren ' . $up->profile_link() . ' har utført'))) . '.</p>'; $pagei = new pagei(pagei::PER_PAGE, 20, pagei::ACTIVE_GET, "side"); $result = $pagei->query("\n\t\t\tSELECT df_attack_up_id, df_defend_up_id, df_time, df_b_id, df_outcome, df_rankpoints, df_type, df_cash, df_hitlist, df_vitner, df_attack_ff_list, df_defend_ff_list\n\t\t\tFROM drapforsok\n\t\t\tWHERE " . ($alle ? "" : ($offer ? "df_defend_up_id" : "df_attack_up_id") . " = {$up->id} AND ") . "(df_type != 1 OR df_outcome != 0)\n\t\t\tORDER BY df_time DESC"); if ($pagei->total == 0) { if ($alle) { echo ' <p class="c"><b>Det er ingen som har prøvd å drepe noen enda.</b></p>'; } elseif ($offer) { echo ' <p class="c"><b>Ingen har angrepet ' . $up->profile_link() . ' enda.</b></p>'; } else { echo ' <p class="c"><b>' . ($egen ? 'Du' : $up->profile_link()) . ' har ikke prøvd å drepe noen enda.</b></p>'; } } else { $ff_only_familier = isset($_GET['familier']); if ($ff_only_familier) { echo ' <p class="c"><a href="' . game::address("drap", $_GET, array("familier")) . '">Vis også firmaer</a></p>'; } else { echo ' <p class="c"><a href="' . game::address("drap", $_GET, array(), array("familier" => true)) . '">Vis kun broderskap i listen</a></p>'; } echo ' <table class="table center' . ($pagei->pages == 1 ? ' tablemb' : '') . '"> <thead> <tr>' . ($alle || $offer ? ' <th>Angriper</th>' : '') . (!$offer ? ' <th>Offer</th>' : '') . ' <th>Tid/sted</th> <th>Omfang</th> <th>Poeng</th> <th>Penger / Etterlyst</th> <th>Vitner</th> </tr> </thead> <tbody>'; ess::$b->page->add_css('.df_ff_list a { font-size: 10px; color: #777; text-decoration: none } .df_ff_list a:hover { text-decoration: underline }'); $i = 0; while ($row = $result->fetch()) { // sett opp vitner $vitner = $row['df_time'] > 1278604000 ? '<span class="dark">Ingen</span>' : '<span class="dark">Ukjent</span>'; if ($row['df_vitner']) { $v = unserialize($row['df_vitner']); $synlige = array(); $ukjente = 0; foreach ($v as $r) { if ($r[1] || access::has("mod")) { $synlige[] = '<user id="' . $r[0] . '" />' . (!$r[1] ? ' <span title="Ble ikke oppdaget">(u)</span>' : ''); } else { $ukjente++; } } $vitner = implode("<br />", $synlige); if ($ukjente > 0) { if (count($synlige) > 0) { $vitner .= '<br />'; } $vitner .= fwords("%d ukjent", "%d ukjente", $ukjente); } } if ($alle || $offer) { // sett opp familier/firmaer (for angriper) $ff_attack = ''; if ($row['df_attack_ff_list']) { $v = unserialize($row['df_attack_ff_list']); $ff_list = array(); // $ff[] = array($ffm->ff->data['ff_type'], $ffm->ff->id, $ffm->ff->type['refobj'], $ffm->ff->data['ff_name'], $ffm->data['ffm_priority'], $ffm->get_priority_name()); foreach ($v as $r) { if ($ff_only_familier && $r[0] != 1) { continue; } $ff_list[] = '<a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $r[1] . '" title="' . htmlspecialchars(ucfirst($r[5])) . '">' . htmlspecialchars($r[3]) . '</a>'; } $ff_attack = '<br /><span class="df_ff_list">' . implode("<br />", $ff_list) . '</span>'; } } // sett opp familier/firmaer $ff = ''; if ($row['df_defend_ff_list']) { $v = unserialize($row['df_defend_ff_list']); $ff_list = array(); // $ff[] = array($ffm->ff->data['ff_type'], $ffm->ff->id, $ffm->ff->type['refobj'], $ffm->ff->data['ff_name'], $ffm->data['ffm_priority'], $ffm->get_priority_name()); foreach ($v as $r) { if ($ff_only_familier && $r[0] != 1) { continue; } $ff_list[] = '<a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $r[1] . '" title="' . htmlspecialchars(ucfirst($r[5])) . '">' . htmlspecialchars($r[3]) . '</a>'; } $ff = '<br /><span class="df_ff_list">' . implode("<br />", $ff_list) . '</span>'; } // sett opp bydel $bydel = "Ukjent bydel"; if (!empty($row['df_b_id']) && isset(game::$bydeler[$row['df_b_id']])) { $bydel = htmlspecialchars(game::$bydeler[$row['df_b_id']]['name']); } echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>' . ($alle || $offer ? ' <td><user id="' . $row['df_attack_up_id'] . '" />' . $ff_attack . '</td>' : '') . (!$offer ? ' <td><user id="' . $row['df_defend_up_id'] . '" />' . $ff . '</td>' : '') . ' <td>' . ess::$b->date->get($row['df_time'])->format() . '<br />' . $bydel . '</td> <td>' . ($row['df_outcome'] == 1 ? '<b style="color: #FF0000">Døde</b>' : 'Ble skadet') . '<br /> <span class="dark">' . ($row['df_type'] == 1 ? 'Utpressing' : 'Drapsforsøk') . '</span></td> <td class="r">' . game::format_num($row['df_rankpoints']) . '</td> <td class="r">' . game::format_cash($row['df_cash']) . ($row['df_hitlist'] > 0 ? '<br />' . game::format_cash($row['df_hitlist']) : '') . '</td> <td>' . $vitner . '</td> </tr>'; } echo ' </tbody> </table>'; if ($pagei->pages > 1) { echo ' <p class="c">' . $pagei->pagenumbers() . '</p>'; } } echo ' </div> </div>'; }