Exemple #1
0
    protected function show()
    {
        ess::$b->page->add_css('
#crewlog_filter { padding: 0 10px }
#crewlog_filter td { font-size: 10px }');
        ess::$b->page->add_js_domready('
	// vise/skjule filter
	$("crewlog_filter_a").addEvent("click", function()
	{
		var elm = $("crewlog_filter");
		if (elm.hasClass("hide"))
		{
			// vis skjemaet
			elm.removeClass("hide");
		}
		else
		{
			// skjul skjemaet
			elm.addClass("hide");
		}
	});');
        echo '
<h1>Crewets handlinger - crewlogg</h1>
<form action="" method="post">
	<div class="bg1_c large">
		<h1 id="crewlog_filter_a" class="bg1 pointer">Filteralternativer<span class="left"></span><span class="right"></span></h1>
		<div id="crewlog_filter" class="bg1' . (!$this->filters_active ? ' hide' : '') . '">';
        $this->show_filters();
        echo '
			<p class="c">' . show_sbutton("Oppdater") . '</p>
		</div>
	</div>';
        if ($this->filter_by_up || $this->filter_a_up || $this->filter_time_before || $this->filter_time_after) {
            echo '
	<div class="section center" style="width: 50%">
		<h2>Filter</h2>
		<ul>';
            $list_users = function ($list) {
                $d = array();
                foreach ($list as $r) {
                    $d[] = '<user="******" />';
                }
                return sentences_list($d, ", ", " eller ");
            };
            if ($this->filter_by_up) {
                echo '
			<li>' . (isset($_POST['by_invert']) ? 'Ikke u' : 'U') . 'tført av: ' . $list_users($this->filter_by_up) . '</li>';
            }
            if ($this->filter_a_up) {
                echo '
			<li>' . (isset($_POST['a_invert']) ? 'Ikke s' : 'S') . 'piller berørt: ' . $list_users($this->filter_a_up) . '</li>';
            }
            if ($this->filter_time_before && !$this->filter_time_after) {
                echo '
			<li>Før/lik ' . ess::$b->date->get($this->filter_time_before)->format() . '</li>';
            } elseif (!$this->filter_time_before && $this->filter_time_after) {
                echo '
			<li>Etter/lik ' . ess::$b->date->get($this->filter_time_after)->format() . '</li>';
            } elseif ($this->filter_time_before && $this->filter_time_after) {
                echo '
			<li>Mellom/lik ' . ess::$b->date->get($this->filter_time_after)->format() . ' og ' . ess::$b->date->get($this->filter_time_before)->format() . '</li>';
            }
            echo '
	</div>';
        }
        $this->show_logs();
        echo '
</form>';
    }
Exemple #2
0
    /**
     * 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();
    }
Exemple #3
0
 /**
  * Bryte ut fra fengsel
  */
 protected function bryt_ut()
 {
     // allerede i fengsel?
     if ($this->up->fengsel_check()) {
         ess::$b->page->add_message("Du er allerede i fengsel.", "error");
         redirect::handle();
     }
     // har vi ikke nok energi?
     if (!$this->up->energy_check(self::ENERGY)) {
         ess::$b->page->add_message("Du har ikke nok energi for å bryte ut andre spillere nå.");
         redirect::handle();
     }
     $time = intval(postval('time'));
     // hent informasjon
     @(list($up_id, $expire, $dusor) = explode("_", $_POST['up_id'] . "_", 3));
     $up_id = intval($up_id);
     $expire = intval($expire);
     $dusor = game::intval($dusor);
     $up = player::get($up_id);
     if (!$up) {
         ess::$b->page->add_message("Fant ikke brukeren.", "error");
         redirect::handle();
     }
     // ikke i fengsel lengre?
     $wait = $up->fengsel_wait();
     if ($wait == 0) {
         ess::$b->page->add_message('<user id="' . $up->id . '" /> er nok allerede brutt ut!', "error");
         redirect::handle();
     }
     // ikke riktig tid?
     if ($up->data['up_fengsel_time'] != $expire) {
         ess::$b->page->add_message('<user id="' . $up->id . '" /> har kommet i fengsel på nytt. Prøv igjen.', "error");
         redirect::handle();
     }
     // feil dusør?
     if ($up->data['up_fengsel_dusor'] != $dusor) {
         ess::$b->page->add_message('Dusøren til <user id="' . $up->id . '" /> har endret seg. Prøv på nytt.', "error");
         redirect::handle();
     }
     // sett opp sannsynlighet
     $prob = self::calc_prob($wait, $up->data['up_wanted_level'] / 10);
     $points = self::calc_points($prob);
     // sett opp dusør
     $dusor_org = $up->data['up_fengsel_dusor'];
     $dusor = bcmul($up->data['up_fengsel_dusor'], self::DUSOR_PROFIT);
     // klarte vi det?
     $success = rand(0, 999) < $prob * 10;
     if ($success) {
         // penger man får for utbrytelsen
         $cash = round(max(0, 100 - $prob) / 100 * self::CASH_MAX);
         // sett som utbrytet
         $a = \Kofradia\DB::get()->exec("\n\t\t\t\tUPDATE users_players\n\t\t\t\tSET up_fengsel_time = " . (time() - 1) . ", up_fengsel_dusor_total_out = up_fengsel_dusor_total_out + up_fengsel_dusor, up_fengsel_dusor = 0\n\t\t\t\tWHERE up_id = {$up->id} AND up_fengsel_time = {$up->data['up_fengsel_time']} AND up_fengsel_dusor = {$up->data['up_fengsel_dusor']}");
         if ($a == 0) {
             ess::$b->page->add_message('<user id="' . $up->id . '" /> er nok allerede brutt ut!', "error");
             redirect::handle();
         }
         $up->data['up_fengsel_time'] = time() - 1;
         $up->data['up_fengsel_dusor_total_out'] = bcadd($up->data['up_fengsel_dusor_total_out'], $up->data['up_fengsel_dusor']);
         $up->data['up_fengsel_dusor'] = 0;
         // oppdater antall utbrytninger og gi evt. penger
         \Kofradia\DB::get()->exec("\n\t\t\t\tUPDATE users_players\n\t\t\t\tSET up_fengsel_num_out_tries = up_fengsel_num_out_tries + 1, up_fengsel_num_out_success = up_fengsel_num_out_success + 1, up_cash = up_cash + {$cash} + {$dusor}, up_fengsel_dusor_total_in = up_fengsel_dusor_total_in + {$dusor}\n\t\t\t\tWHERE up_id = " . $this->up->id);
         $this->up->update_money(bcadd($cash, $dusor), true, false);
         // hendelse for spilleren som ble brutt ut
         $up->add_log("fengsel", $dusor_org > 0 ? $dusor_org : null, $this->up->id);
         $fengsel = $this->up->fengsel_rank($points, true);
         // penger, dusør og poeng vi mottar
         $mottok = array();
         if ($cash > 0) {
             $mottok[] = game::format_cash($cash);
         }
         if ($dusor > 0) {
             $mottok[] = "dusøren på " . game::format_cash($dusor);
         }
         $mottok[] = game::format_num($points) . ' poeng';
         // melding
         $msg = 'Du brøt ut <user id="' . $up->id . '" /> fra fengselet og mottok ' . sentences_list($mottok) . '.';
         if ($fengsel > 0) {
             $msg .= ' Wanted nivået økte med ' . game::format_number($fengsel / 10, 1) . ' %.';
         }
         ess::$b->page->add_message($msg);
         // logg
         putlog("LOG", "FENGSELUTBRYTNING: {$this->up->data['up_name']} brøt ut {$up->data['up_name']} fra fengsel (wait={$wait}, cash={$cash}, dusør={$dusor_org}, prob={$prob}, rank={$points})");
         // rank
         $this->up->increase_rank($points);
     } else {
         // mislykket
         $fengsel = $this->up->fengsel_rank($points, false, true);
         // oppdater antall utbrytninger (kun forsøk)
         \Kofradia\DB::get()->exec("UPDATE users_players SET up_fengsel_num_out_tries = up_fengsel_num_out_tries + 1 WHERE up_id = " . $this->up->id);
         if ($fengsel > 0) {
             ess::$b->page->add_message('Mislykket! Wanted nivået økte med ' . game::format_number($fengsel / 10, 1) . ' %.');
         }
     }
     // trigger
     $this->up->trigger("fengsel", array("success" => $success, "up" => $up, "wait" => $wait, "prob" => $prob, "points" => $points, "cash" => $success ? $cash : null, "dusor" => $dusor, "dusor_org" => $dusor_org));
     $up->trigger("fengsel_affected", array("success" => $success, "up" => $this->up, "wait" => $wait, "prob" => $prob, "points" => $points, "cash" => $success ? $cash : null, "dusor" => $dusor, "dusor_org" => $dusor_org));
     // energy
     $this->up->energy_use(self::ENERGY);
     redirect::handle();
 }
Exemple #4
0
 /**
  * Delete selected contacts
  */
 public function action_delete_many()
 {
     $removed = array();
     if (validate_sid(false) && isset($_POST['id']) && is_array($_POST['id'])) {
         foreach ($_POST['id'] as $id) {
             $contact = Contact::getContactById($id);
             if (!$contact || $contact->getOwnerUserID() != $this->user->id) {
                 break;
             }
             if ($contact->delete()) {
                 $removed[] = '<user id="' . $contact->getTargetPlayerID() . '" />';
             }
         }
     }
     if ($removed) {
         \ess::$b->page->add_message('Du fjernet ' . sentences_list($removed) . ' fra listen.');
     }
     return \redirect::handle("/kontakter", \redirect::ROOT);
 }
Exemple #5
0
 /**
  * Last inn relasjon mellom spillere og familier
  */
 public function ff_get_familier($up_ids)
 {
     if (count($up_ids) == 0) {
         $this->ff_rel = null;
         return;
     }
     $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ffm_up_id, ff_id, ff_name\n\t\t\tFROM ff_members\n\t\t\t\tJOIN ff ON ff_id = ffm_ff_id AND ff_inactive = 0 AND ff_is_crew = 0 AND ff_type = 1\n\t\t\tWHERE ffm_up_id IN (" . implode(",", $up_ids) . ") AND ffm_status = 1");
     $ff = array();
     while ($row = $result->fetch()) {
         $ff[$row['ffm_up_id']][] = '<a href="' . \ess::$s['rpath'] . '/ff/?ff_id=' . $row['ff_id'] . '" title="Broderskap">' . htmlspecialchars($row['ff_name']) . '</a>';
     }
     foreach ($ff as $up => &$rows) {
         $rows = sentences_list($rows);
     }
     $this->ff_rel = $ff;
 }
 /**
  * Formatter tekst for premie (og gi ut hvis spesifisert)
  */
 protected function prize($give = false)
 {
     // mulige premier:
     // * cash
     // * points
     // * bullets
     $params = new params($this->a->data['ac_prize']);
     $text = array();
     // cash
     if ($cash = $params->get("cash")) {
         if ($give) {
             $this->up->update_money($cash);
         }
         $text[] = game::format_cash($cash);
     }
     // points
     if ($points = $params->get("points")) {
         if ($give) {
             $this->up->increase_rank($points);
         }
         $text[] = game::format_num($points) . " rankpoeng";
     }
     // kuler
     if ($bullets = $params->get("bullets")) {
         $bullets = (int) $bullets;
         // har vi plass til noen kuler?
         if ($this->up->weapon) {
             $kap = $this->up->weapon ? $this->up->weapon->data['bullets'] : 0;
             $free = $kap - $this->up->data['up_weapon_bullets'] - $this->up->data['up_weapon_bullets_auksjon'];
             $bullets = max(0, min($free, $bullets));
             if ($bullets > 0) {
                 if ($give) {
                     // gi kuler
                     \Kofradia\DB::get()->exec("UPDATE users_players SET up_weapon_bullets = up_weapon_bullets + {$bullets} WHERE up_id = {$this->up->id}");
                     $this->up->data['up_weapon_bullets'] += $bullets;
                 }
                 $text[] = fwords("%d kule", "%d kuler", $bullets);
             }
         }
     }
     return sentences_list($text);
 }
Exemple #7
0
 /**
  * Sett opp tekst for en logg
  */
 public function format_log($type, $note, $num)
 {
     global $_game, $__server;
     $html = false;
     // typenavn
     $type_name = self::$items_id[$type];
     switch ($type_name) {
         case "utpressing":
             $melding = '[user id=' . $note . '] presset deg for [b]' . game::format_cash($num) . '[/b]!';
             break;
         case "fengsel":
             $dusor = empty($note) ? '' : ' og mottok dusøren på ' . game::format_cash($note);
             $melding = '[user id=' . $num . '] brøt deg ut av fengselet' . $dusor . '!';
             break;
         case "fengsel_dusor_return":
             $melding = 'Ingen hadde brutt deg ut av fengsel innen du kom ut og du fikk tilbake dusøren på ' . game::format_cash($num) . '.';
             break;
         case "renter":
             $melding = "Du mottok [b]" . game::format_cash($num) . "[/b] i renter fra banken!" . (!empty($note) ? ' ' . $note : '');
             break;
         case "forfremmelse":
             $melding = "Du ble forfremmet til [b]{$note}[/b]!";
             break;
         case "nedgradering":
             $melding = "Du ble nedgradert til [b]{$note}[/b]!";
             break;
             // rank bonus
         // rank bonus
         case "rank_bonus":
             // syntax: plassering(int):prosent bonus(float), num = bonus
             $info = explode(":", $note);
             $melding = 'Du var den ' . ($info[0] == 1 ? 'beste' : $info[0] . '. beste') . ' rankeren de siste 24 timene og fikk ' . game::format_num($info[1] * 100) . ' % i bonus av poengene du hadde skaffet (' . game::format_num($num) . ' poeng i bonus).';
             break;
             // verve bonus
         // verve bonus
         case "verve_bonus":
             // syntax: antall_spillere num = bonus
             $melding = 'Du mottok ' . game::format_num($num) . ' poeng i bonus fra ' . fwords("%d spiller", "%d spillere", $note) . ' du har vervet som hadde ranket de siste 24 timene.';
             break;
         case "testing":
             $melding = "Testing - Melding: {$note} - Tall: {$num}";
             break;
         case "raw":
             $html = true;
             $melding = $note;
             break;
         case "systeminfo":
             $melding = "Systeminformasjon: " . $note;
             break;
             // emen i crewforumet
         // emen i crewforumet
         case "crewforum_emne":
             $u = explode(":", $note, 2);
             $html = true;
             $melding = '<user id="' . $u[0] . '" /> opprettet <a href="forum/topic?id=' . $num . '">' . htmlspecialchars($u[1]) . '</a> i crewforumet.';
             break;
             // svar i crewforumet
         // svar i crewforumet
         case "crewforum_svar":
             $u = explode(":", $note, 2);
             $s = explode("#", $u[0]);
             $u[0] = $s[0];
             $replyid = isset($s[1]) ? '&amp;replyid=' . $s[1] : '';
             $html = true;
             $melding = '<user id="' . $u[0] . '" /> svarte i <a href="forum/topic?id=' . $num . $replyid . '">' . htmlspecialchars($u[1]) . '</a> i crewforumet';
             break;
             // emne i crewforumet (arkiv)
         // emne i crewforumet (arkiv)
         case "crewforuma_emne":
             $u = explode(":", $note, 2);
             $html = true;
             $melding = '<user id="' . $u[0] . '" /> opprettet <a href="forum/topic?id=' . $num . '">' . htmlspecialchars($u[1]) . '</a> i crewforumet (arkiv).';
             break;
             // svar i crewforumet (arkiv)
         // svar i crewforumet (arkiv)
         case "crewforuma_svar":
             $u = explode(":", $note, 2);
             $s = explode("#", $u[0]);
             $u[0] = $s[0];
             $replyid = isset($s[1]) ? '&amp;replyid=' . $s[1] : '';
             $html = true;
             $melding = '<user id="' . $u[0] . '" /> svarte i <a href="forum/topic?id=' . $num . $replyid . '">' . htmlspecialchars($u[1]) . '</a> i crewforumet (arkiv).';
             break;
             // emne i idémyldringsforumet
         // emne i idémyldringsforumet
         case "crewforumi_emne":
             $u = explode(":", $note, 2);
             $html = true;
             $melding = '<user id="' . $u[0] . '" /> opprettet <a href="forum/topic?id=' . $num . '">' . htmlspecialchars($u[1]) . '</a> i idémyldringsforumet.';
             break;
             // svar i idémyldringsforumet
         // svar i idémyldringsforumet
         case "crewforumi_svar":
             $u = explode(":", $note, 2);
             $s = explode("#", $u[0]);
             $u[0] = $s[0];
             $replyid = isset($s[1]) ? '&amp;replyid=' . $s[1] : '';
             $html = true;
             $melding = '<user id="' . $u[0] . '" /> svarte i <a href="forum/topic?id=' . $num . $replyid . '">' . htmlspecialchars($u[1]) . '</a> i idémyldringsforumet.';
             break;
         case "bankoverforing":
             $info = explode(":", $note, 2);
             $melding = '[user id=' . $num . '] sendte deg [b]' . game::format_cash($info[0]) . '[/b]!' . (!empty($info[1]) ? ' [b]Melding[/b]: ' . $info[1] : '');
             break;
         case "lotto":
             $info = explode(":", $note);
             $data = array();
             $data[] = 'Du kom på <b>' . $info[0] . '</b>. plass i lotto';
             $data[] = 'vant <b>' . game::format_cash($num) . '</b>';
             if (isset($info[1])) {
                 $data[] = 'mottok <b>' . game::format_num($info[1]) . '</b> poeng';
             }
             $melding = sentences_list($data) . "!";
             $html = true;
             break;
         case "informasjon":
             $html = $num == 1;
             $melding = $note;
             break;
         case "poker":
             // winner:utfordrer:pott
             $info = explode(":", $note, 3);
             $melding = 'Du brukte for lang tid da du utfordret [user id=' . $info[1] . '] i poker for [b]' . game::format_cash($num) . '[/b]. Spillet valgte kort for deg automatisk..';
             switch ($info[0]) {
                 case 1:
                     $melding .= ' Motstanderen vant runden.';
                     break;
                 case 2:
                     $melding .= ' Du vant runden og fikk [b]' . game::format_cash($info[2]) . '[/b].';
                     break;
                 default:
                     $melding .= ' Det ble uavgjort og du fikk tilbake [b]' . game::format_cash($info[2]) . '[/b].';
             }
             break;
             // oppdrag
         // oppdrag
         case "oppdrag":
             $html = true;
             $melding = $note;
             break;
             // døde
         // døde
         case "dead":
             // syntax: instant(int:0/1)
             $html = true;
             $melding = $note ? "Du ble angrepet og klarte ikke å stå i mot angrepet. Du døde." : "Du døde på grunn av lav energi og lav helse.";
             break;
         case "support":
             // avsluttet?
             if (mb_substr($note, 0, 2) == "c:") {
                 $info = explode(":", $note, 3);
                 // c:sum_up_id:su_title
                 $html = true;
                 $melding = '<user id="' . $info[1] . '" /> avsluttet din henvendelse &laquo;<a href="' . $__server['relative_path'] . '/support/?a=show&amp;su_id=' . $num . '">' . htmlspecialchars($info[2]) . '</a>&raquo; hos support.';
                 break;
             }
             // oppdatert
             $info = explode(":", $note, 2);
             // sum_up_id:su_title
             $html = true;
             $melding = '<user id="' . $info[0] . '" /> oppdaterte din henvendelse &laquo;<a href="' . $__server['relative_path'] . '/support/?a=show&amp;su_id=' . $num . '">' . htmlspecialchars($info[1]) . '</a>&raquo; hos support.';
             break;
         case "blokkering":
             // ny blokkering: 1:type:end:reason
             // blokkering endret: 2:type:end:reason end og reason kan være blank hvis feltet ikke ble endret
             // blokkering fjernet: 3:type
             $info = explode(":", $note);
             $blokkering = isset(blokkeringer::$types[$num]) ? blokkeringer::$types[$num]['userlog'] : '(type ukjent: ' . $num . ')';
             switch ($info[0]) {
                 // ny blokkering
                 case 1:
                     $melding = 'Du har blitt blokkert fra å ' . $blokkering . '. Varer til ' . ess::$b->date->get($info[1])->format() . '. Begrunnelse: ' . urldecode($info[2]);
                     break;
                     // blokkering endret
                 // blokkering endret
                 case 2:
                     $melding = 'Blokkeringen for å ' . $blokkering . ' har blitt endret.';
                     if ($info[1] != "") {
                         $melding .= ' Ny varighet til ' . ess::$b->date->get($info[1])->format() . '.';
                     }
                     if ($info[2] != "") {
                         $melding .= ' Ny begrunnelse: ' . urldecode($info[2]);
                     }
                     break;
                     // blokkering fjernet
                 // blokkering fjernet
                 case 3:
                     $melding = 'Blokkeringen for å ' . $blokkering . ' har blitt fjernet.';
                     break;
             }
             break;
         case "advarsel":
             // type:reason
             $info = explode(":", $note, 2);
             $melding = 'Du har fått en advarsel fra Crewet (kategori: ' . urldecode($info[0]) . '). Begrunnelse: ' . urldecode($info[1]);
             break;
         case "soknader":
             // av enkelthetskyld (og praktiske årsaker) blir meldinger lagt til med full tekst fra søknadssystemet
             // dette kan utvidees ved en senere anledning
             // syntax: html:Din søknad [..]
             // syntax: bb:Din søknad [..]
             $info = explode(":", $note, 2);
             if ($info[0] == "html") {
                 $html = true;
                 $melding = $info[1];
             } elseif ($info[0] == "bb") {
                 $melding = $info[1];
             }
             break;
             // spiller bløde ihjel etter angrep
         // spiller bløde ihjel etter angrep
         case "player_bleed":
             $html = true;
             $melding = '<user id="' . $num . '" /> døde av skadene som ble påført i ditt tidligere angrep.';
             break;
             // vitne
         // vitne
         case "vitne":
             // syntax: drept:attack_type:ble_sett:offer_up_id (num = angriper)
             $info = explode(":", $note);
             $html = true;
             $melding = 'Du vitnet <user id="' . $num . '" /> ' . ($info[0] ? 'drepe' : 'skade') . ' <user id="' . $info[3] . '" />.';
             // ble vi oppdaget?
             if ($info[2]) {
                 $melding .= ' Du ble oppdaget av <user id="' . $num . '" />.';
             }
             break;
             // mistet beskyttelse
         // mistet beskyttelse
         case "beskyttelse_lost":
             // syntax: gammel_beskyttelse_navn:ny_beskyttelse_navn:ny_beskyttelse_state (navn er urlencode-ed)
             $info = explode(":", $note);
             $html = true;
             $melding = 'Du mistet din beskyttelse <b>' . htmlspecialchars(urldecode($info[0])) . '</b>. Du har nå <b>' . htmlspecialchars(urldecode($info[1])) . '</b> som beskyttelse med en status på <b>' . game::format_num($info[2] * 100, 2) . ' %</b>.';
             break;
             // angrepet?
         // angrepet?
         case "attacked":
             // syntax: lost_health:lost_energy:lost_protection:lost_rankpoints:new_health:new_energy:new_protection:new_rankpoints:gammel_bydel:ny_bydel:bank:cash
             $info = explode(":", $note);
             $html = true;
             // vise hvor mye vi mistet
             $d = array();
             $d[] = '<b>' . game::format_num($info[0] * 100, 2) . ' %</b> helse';
             $d[] = '<b>' . game::format_num($info[1] * 100, 2) . ' %</b> energi';
             if ($info[2]) {
                 $d[] = '<b>' . game::format_num($info[2] * 100, 2) . ' %</b> beskyttelse';
             }
             $d[] = '<b>' . $info[3] . '</b> poeng';
             $melding = 'Du ble angrepet av en spiller og mistet ' . sentences_list($d) . '.';
             // vis verdiene etter angrepet
             $d = array();
             $d[] = '<b>' . game::format_num($info[4] * 100, 2) . ' %</b> helse';
             $d[] = '<b>' . game::format_num($info[5] * 100, 2) . ' %</b> energi';
             if ($info[6]) {
                 $d[] = '<b>' . game::format_num($info[6] * 100, 2) . ' %</b> beskyttelse';
             }
             $melding .= ' Du endte opp med ' . sentences_list($d) . '.';
             // mistet vi penger?
             if (!empty($info[10])) {
                 $melding .= ' Angriperen fikk i tillegg med seg <b>' . game::format_cash($info[10]) . '</b> fra hånda di.';
             }
             // ble vi flyttet til en annen bydel?
             if (!empty($info[8])) {
                 $melding .= ' Du ble flyttet fra bydelen ' . htmlspecialchars(urldecode($info[8])) . ' til <b>' . htmlspecialchars(urldecode($info[9])) . '</b> siden du hadde under ' . game::format_num(player::HEALTH_MOVE_AUTO * 100) . ' % helse.';
             }
             break;
             // mistet/nedgradert våpen
         // mistet/nedgradert våpen
         case "weapon_lost":
             // syntax 1: weapon_id:weapon_name:bullets (num = 0)
             // syntax 2: weapon_id:weapon_name:bullets:new_weapon:new_training (num = 1)
             $info = explode(":", $note);
             $html = true;
             if ($num == 1) {
                 $melding = 'Våpentreningen falt under 25 % og ditt våpen <b>' . htmlspecialchars(urldecode($info[1])) . '</b>' . ($info[2] > 0 ? ' med <b>' . $info[2] . '</b> kuler' : '') . ' ble nedgradert til våpnet <b>' . htmlspecialchars(urldecode($info[3])) . '</b> med ' . game::format_num($info[4] * 100) . ' % våpentrening og 0 kuler.';
             } else {
                 $melding = 'Våpentreningen falt under 25 % og du mistet våpenet <b>' . htmlspecialchars(urldecode($info[1])) . '</b>' . ($info[2] > 0 ? ' og <b>' . $info[2] . '</b> kuler' : '') . '.';
             }
             break;
             // kastet ut av bomberom
         // kastet ut av bomberom
         case "bomberom_kicked":
             // syntax: up_id(som utfører handlingen):urlencode(ff_name):up_brom_expire(når vi egentlig skulle gå ut av bomberommet) num=ff_id
             $info = explode(":", $note);
             $html = true;
             $melding = 'Du ble kastet ut fra bomberommet <a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $num . '">' . htmlspecialchars(urldecode($info[1])) . '</a>. Du skulle egentlig sittet til ' . ess::$b->date->get($info[2])->format() . '.';
             break;
             // plassert i bomberom
         // plassert i bomberom
         case "bomberom_set":
             // syntax: up_id(som utfører handlingen):urlencode(ff_name):up_brom_expire(hvor lenge vi er inne) num=ff_id
             $info = explode(":", $note);
             $html = true;
             $melding = '<user id="' . $info[0] . '" /> plasserte deg i bomberommet <a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $num . '">' . htmlspecialchars(urldecode($info[1])) . '</a> til ' . ess::$b->date->get($info[2])->format() . '.';
             break;
             // fikk penger fra etterlyst for angrep
         // fikk penger fra etterlyst for angrep
         case "etterlyst_receive":
             // syntax: up_id(som ble angrepet):bool(instant?):bool(bare skadet?)
             $info = explode(":", $note);
             $html = true;
             $melding = '<user id="' . $info[0] . '" /> ' . (!empty($info[2]) ? 'ble skadet av ditt angrep' : 'døde etter ditt angrep') . ' og du mottok ' . game::format_cash($num) . ' som' . (!empty($info[2]) ? ' del av det' : '') . ' spilleren var etterlyst for.';
             break;
             // fikk tilbake penger fra etterlyst fordi spiller ble deaktivert
         // fikk tilbake penger fra etterlyst fordi spiller ble deaktivert
         case "etterlyst_deactivate":
             // syntax: up_id(som ble deaktivert)
             $html = true;
             $melding = '<user id="' . $note . '" /> ble deaktivert og du fikk tilbake ' . game::format_cash($num) . ' fra etterlyst som du hadde plassert på spilleren.';
             break;
             // lagt til på etterlyst
         // lagt til på etterlyst
         case "etterlyst_add":
             $melding = 'En spiller la til en dusør for deg på ' . game::format_cash($num) . '.';
             break;
             // kuleauksjon avsluttet uten bud
         // kuleauksjon avsluttet uten bud
         case "auksjon_kuler_no_bid":
             // syntax: a_id(auksjonen) num=antall kuler returnert
             $html = true;
             $melding = 'Ingen vant <a href="' . ess::$s['relative_path'] . '/auksjoner?a_id=' . $note . '">auksjonen</a> for kuler du la ut for salg og du fikk tilbake ' . $num . ' kuler.';
             break;
             // vinner kuleauksjon
         // vinner kuleauksjon
         case "auksjon_kuler_won":
             // syntax: a_id(auksjonen):amount(beløp man vant med) num=antall kuler
             $info = explode(":", $note);
             $html = true;
             $melding = 'Du vant <a href="' . ess::$s['relative_path'] . '/auksjoner?a_id=' . $info[0] . '">auksjonen</a> for kuler med ditt bud på ' . game::format_cash($info[1]) . ' og mottok ' . $num . ' kuler.';
             break;
             // mistet garasje
         // mistet garasje
         case "garage_lost":
             // syntax: urlencode(bydel) num=antal biler
             $html = true;
             $melding = 'Du mistet garasjen din på ' . htmlspecialchars(urldecode($note)) . ($num > 0 ? ' og ' . fwords("den ene bilen", "de %d bilene", $num) . ' som var i garasjen' : '') . '.';
             break;
             // FF-systemet
         // FF-systemet
         case "ff_invite":
             // ff_id:ff_name:stilling:parent
             $info = explode(":", $note, 4);
             $html = true;
             $melding = '<user id="' . $num . '" /> inviterte deg til <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a> for posisjonen <b>' . htmlspecialchars(urldecode($info[2])) . '</b>' . (!empty($info[3]) ? ' underordnet <user id="' . $info[3] . '" />' : '') . '.';
             break;
         case "ff_delinvite":
             // ff_id:ff_name
             $info = explode(":", $note, 2);
             $html = true;
             if ($num) {
                 $melding = '<user id="' . $num . '" /> fjernet din invitasjon til <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a>.';
             } else {
                 $melding = 'Din invitasjon til <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a> ble fjernet.';
             }
             break;
         case "ff_member_priority":
             // num = action_user_id
             // ff_id:ff_name:priority_old:priority_new:parent_old:parent_new
             $info = explode(":", $note);
             $html = true;
             if ($num) {
                 $melding = '<user id="' . $num . '" /> endret din posisjon i <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a> fra ' . htmlspecialchars(urldecode($info[2])) . (!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
                 $melding = 'Din posisjon i <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a> ble endret fra ' . htmlspecialchars(urldecode($info[2])) . (!empty($info[4]) ? ' underordnet <user id="' . $info[4] . '" />' : '') . ' til <b>' . htmlspecialchars(urldecode($info[3])) . '</b>' . (!empty($info[5]) ? ' underordnet <user id="' . $info[5] . '" />' : '') . '.';
             }
             break;
         case "ff_member_set_priority":
             // ff_id:ff_name:priority:parent_up_id
             $info = explode(":", $note);
             $html = true;
             $melding = 'Du ble satt som ' . htmlspecialchars(urldecode($info[2])) . (!empty($info[3]) ? ' underordnet <user id="' . $info[3] . '" />' : '') . ' i <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a>.';
             break;
         case "ff_member_parent":
             // num = action_user_id
             // ff_id:ff_name:parent_old:parent_new
             $info = explode(":", $note);
             $html = true;
             if ($num) {
                 $melding = '<user id="' . $num . '" /> endret din overordnede i <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a> fra <user id="' . $info[2] . '" /> til <user id="' . $info[3] . '" />.';
             } else {
                 // anonym
                 $melding = 'Din overordnede i <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a> ble endret fra <user id="' . $info[2] . '" /> til <user id="' . $info[3] . '" />.';
             }
             break;
         case "ff_kick":
             // ff_id:ff_name:note
             $info = explode(":", $note, 3);
             $html = true;
             $note = empty($info[2]) ? '' : ' Begrunnelse: ' . game::bb_to_html(urldecode($info[2]));
             $melding = '<user id="' . $num . '" /> kastet deg ut fra <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a>.' . $note;
             break;
         case "ff_dead":
             // refstring,name
             $info = explode(":", $note, 2);
             $html = true;
             $melding = ucfirst($info[0]) . ' <b>' . htmlspecialchars(urldecode($info[1])) . '</b> har blitt oppløst.';
             break;
         case "ff_dead_invited":
             // refstring,name
             $info = explode(":", $note, 2);
             $html = true;
             $melding = ucfirst($info[0]) . ' <b>' . htmlspecialchars(urldecode($info[1])) . '</b> som du var invitert til har blitt oppløst.';
             break;
         case "ff_diverse":
             $html = true;
             $melding = $note;
             break;
         case "ff_low_health":
             // ff_id:ff_name:stilling:parent
             $info = explode(":", $note, 4);
             $html = true;
             $melding = 'Du mistet posisjonen som <b>' . htmlspecialchars(urldecode($info[2])) . '</b>' . (!empty($info[3]) ? ' underordnet <user id="' . $info[3] . '" />' : '') . ' i <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a> grunnet for lav helse.';
             break;
         case "ff_takeover":
             // ff_id:ff_name_org:ff_name_new:ff_type_ref:ff_stilling
             $info = explode(":", $note, 5);
             $html = true;
             $melding = 'Ditt angrep førte til at ' . htmlspecialchars(urldecode($info[3])) . ' ' . htmlspecialchars(urldecode($info[1])) . ' ble stående uten ' . htmlspecialchars(urldecode($info[4])) . '. Du tok derfor over ' . htmlspecialchars(urldecode($info[3])) . ' som fikk navnet <a href="ff/?ff_id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[2])) . '</a>.';
             break;
             // forumtråd flyttet
         // forumtråd flyttet
         case "forum_topic_move":
             // ft_id, ft_title, fromname, toname, up_id(hvem gjorde det)
             $info = explode(":", $note);
             $html = true;
             $melding = 'Din forumtråd <a href="' . ess::$s['relative_path'] . '/forum/topic?id=' . $info[0] . '">' . htmlspecialchars(urldecode($info[1])) . '</a> ble flyttet fra ' . htmlspecialchars(urldecode($info[2])) . ' til ' . htmlspecialchars(urldecode($info[3])) . '.';
             break;
             // prestasjon oppnådd
         // prestasjon oppnådd
         case "achievement":
             // count(repetisjonsnummer), ac_name, prize
             // num: ac_id
             $info = explode(":", $note);
             $html = true;
             $rep = $info[0] > 1 ? ' for ' . $info[0] . '. gang' : '';
             $prize = !empty($info[2]) ? ' og mottok ' . $info[2] : '';
             $melding = 'Du oppnådde prestasjonen &laquo;' . htmlspecialchars(urldecode($info[1])) . "&raquo;" . $rep . $prize . '.';
             break;
             // hall of fame
         // hall of fame
         case "hall_of_fame":
             $html = true;
             $melding = 'Du ble den ' . $note . ' og havnet på <a href="' . ess::$s['rpath'] . '/hall_of_fame">Hall of Fame</a>!';
             break;
         default:
             $type = "Ukjent ({$type})";
             $melding = $note;
     }
     $melding = $html ? $melding : game::bb_to_html($melding);
     return $melding;
 }
Exemple #8
0
    private function show()
    {
        $data = $this->obj->load_data();
        $answers = $this->obj->load_winners();
        $my_answers = $this->obj->load_my_answers();
        $n = 0;
        $today = $this->get_today();
        $admin_link = $this->check_access_julekalender() ? ' - <a href="?jul">admin</a>' : '';
        echo '
<article id="julekalender">
	<h1 class="jul_h">Julekalender' . $admin_link . '</h1>
	<section>
		<div class="jul_rad"><!--';
        foreach ($data as $day) {
            if ($n++ % 6 == 0 && $n != 1) {
                echo '
		--></div>
		<div class="jul_rad"><!--';
            }
            $classes = '';
            if (!$day) {
                $classes .= " no_day";
            } else {
                if ($day['j_day'] == $today) {
                    $classes .= " today";
                    if (isset($_POST['day'])) {
                        $classes .= " hover";
                    }
                } else {
                    if ($day['j_day'] > $today) {
                        $classes .= " ahead";
                    } else {
                        $classes .= " prev";
                    }
                }
            }
            echo '
			--><div class="jul_cell_wrap">
				<div class="jul_cell' . $classes . '">
					<h1>' . $n . '</h1>';
            $my_answer = isset($my_answers[$n]) ? $my_answers[$n] : null;
            $my_answer_value = $my_answer ? $my_answer['jb_answer'] : "";
            // ingen luke
            if (!$day) {
                echo '
					<div class="jul_data">
						<p>Ingen spørsmål denne dagen.</p>
					</div>';
            } elseif ($day['j_day'] > $today) {
                echo '
					<div class="jul_data">
						<p>Kom tilbake ' . $n . '. desember for å se denne luken.</p>
					</div>';
            } elseif ($day['j_day'] < $today) {
                // ikke avsluttet?
                if ($day['j_status'] == 0) {
                    echo '
						<div class="jul_data">
							<p class="question">' . $day['j_question'] . '</p>
							<p>Vinner er ikke annonsert enda.</p>' . ($my_answer_value ? '
							<p>Ditt svar: ' . htmlspecialchars($my_answer_value) . '</p>' : '') . '
						</div>';
                } else {
                    $winners = array();
                    $user = function ($up_id) {
                        return '<user id="' . $up_id . '" />';
                    };
                    if (isset($answers[$day['j_day']][1])) {
                        $winners[] = 'Førsteplass: ' . sentences_list(array_map($user, $answers[$day['j_day']][1]));
                    }
                    if (isset($answers[$day['j_day']][2])) {
                        $winners[] = 'Deltakerpremie: ' . sentences_list(array_map($user, $answers[$day['j_day']][2]));
                    }
                    if (!$winners) {
                        $winners[] = 'Ingen deltok i luken.</p>';
                    }
                    // riktig/galt svar
                    $answer_info = '';
                    if ($my_answer_value) {
                        switch ($my_answer['jb_status']) {
                            case 0:
                                $answer_info = 'Feil';
                                break;
                            case 1:
                                $answer_info = 'Korrekt';
                                break;
                            default:
                                $answer_info = 'Ikke deltatt';
                                break;
                        }
                    }
                    echo '
						<div class="jul_data">
							<p class="question">' . $day['j_question'] . '</p>
							<p>Riktig svar: ' . $day['j_answer'] . ($my_answer_value ? '<br />
								Ditt svar: ' . htmlspecialchars($my_answer_value) . ' (' . $answer_info . ')' : '') . '</p>
							<p>' . implode('<br />
								', $winners) . '</p>
						</div>';
                }
            } else {
                $up_alert = $my_answer && $my_answer['jb_up_id'] != $this->up->id ? '
							<p><i style="color: #FF0000"><b>Obs!</b> Ditt svar gjelder ikke din nåværende spiller. Du må trykke &quot;svar&quot; for å delta med din nye spiller.</i></p>' : '';
                echo '
					<div class="jul_data">
						<p class="question">' . $day['j_question'] . '</p>
						<form action="&rpath;/" method="post">
							<input type="hidden" name="day" value="' . $day['j_day'] . '" />' . $up_alert . '
							<p><input type="text" class="styled w180" name="answer" value="' . htmlspecialchars(postval("answer", $my_answer_value)) . '" /> ' . show_sbutton("Svar") . '</p>
							<p><i>Du kan oppdatere svaret ditt frem til midnatt.</i></p>
						</form>
					</div>';
            }
            echo '
				</div>
			</div><!--';
        }
        echo '
		--></div>
		<div class="jul_notes">
			<p>Det velges en tilfeldig vinner hver dag blant alle korrekte svar. Premie: 10 mill kr og 1 500 poeng.</p>
			<p>Det velges også ut en tilfeldig deltaker hver dag av alle som deltar: Premie 5 mill kr og 1 000 poeng.</p>
			<p>Dobbel premie på julaften.</p>
		</div>
	</section>
</article>';
    }
Exemple #9
0
 /**
  * Kjør konkurransen og trekk vinnere
  */
 public function run()
 {
     // hent informasjon om runden
     $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT COUNT(id), COUNT(DISTINCT IF(up_id IS NOT NULL AND up_access_level != 0, l_up_id, NULL))\n\t\t\tFROM lotto LEFT JOIN users_players ON l_up_id = up_id");
     $row = $result->fetch(\PDO::FETCH_NUM);
     $this->antall = $row[0];
     $this->brukere = $row[1];
     // ingen deltakere?
     if ($this->antall == 0) {
         putlog("INFO", "%bLOTTO%b: Ingen spillere deltok i denne lottorunden!");
         return;
     }
     $this->premier = lotto::$premier;
     // korriger ranken i forhold til antall spillere som har deltatt
     if ($this->brukere < lotto::PLAYERS_TOP) {
         $f = min(1, $this->brukere / lotto::PLAYERS_TOP);
         for ($i = 0; $i < 5; $i++) {
             $this->premier[$i][0] = round($this->premier[$i][0] * $f);
         }
     }
     // sett opp fordeling av gevinsten
     if ($this->brukere < 5) {
         // beregn hvor mye som blir fordelt i utgangspunktet
         $tot = 0;
         for ($i = 0; $i < $this->brukere; $i++) {
             $tot += $this->premier[$i][1];
         }
         // beregn maks som kan fordeles
         $max = $tot;
         for (; $i < 5; $i++) {
             $max += $this->premier[$i][1];
         }
         // korriger utgangspunktet
         for ($i = 0; $i < $this->brukere; $i++) {
             $this->premier[$i][1] = $this->premier[$i][1] * $max / $tot;
         }
     }
     // beregn hvor mye man tjener
     $lodd_pris = lotto::get_lodd_price();
     $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT\n\t\t\t\t{$this->antall} * {$lodd_pris},\n\t\t\t\t{$this->antall} * {$lodd_pris} * {$this->premier[0][1]},\n\t\t\t\t{$this->antall} * {$lodd_pris} * {$this->premier[1][1]},\n\t\t\t\t{$this->antall} * {$lodd_pris} * {$this->premier[2][1]},\n\t\t\t\t{$this->antall} * {$lodd_pris} * {$this->premier[3][1]},\n\t\t\t\t{$this->antall} * {$lodd_pris} * {$this->premier[4][1]}");
     $row = $result->fetch(\PDO::FETCH_NUM);
     $this->pott = $row[0];
     for ($i = 1; $i <= 5; $i++) {
         $this->premier[$i - 1][2] = round($row[$i]);
     }
     $this->vinnere = array();
     $this->vinnere_text = array();
     putlog("INFO", "%bLOTTO%b: " . game::format_number($this->brukere) . " spiller" . ($this->brukere == 1 ? '' : 'e') . " deltok i denne lottorunden med totalt " . game::format_number($this->antall) . " lodd og en pott på " . game::format_cash($this->pott) . "!");
     $to = min(5, $this->brukere);
     for ($i = 1; $i <= $to; $i++) {
         $this->give_prize($i);
     }
     if (count($this->vinnere) == 0) {
         putlog("INFO", "%bLOTTO%b: Ingen spillere deltok i denne lottorunden!");
     } else {
         // melding
         $ekstra = "";
         $ekstra_l = "";
         if (count($this->vinnere_text) > 1) {
             $e = array();
             $el = array();
             foreach ($this->vinnere_text as $n => $u) {
                 if ($n == 0) {
                     continue;
                 }
                 $e[] = "%u{$u}%u";
                 $el[] = '<user id="' . $this->vinnere[$n] . '" />';
             }
             $ekstra = " 2" . (count($this->vinnere_text) > 2 ? '-' . count($this->vinnere_text) : '') . " plass ble " . implode(", ", $e);
             $ekstra_l = " 2" . (count($this->vinnere) > 2 ? '-' . count($this->vinnere) : '') . " plass ble " . sentences_list($el) . ".";
         }
         putlog("INFO", "%bLOTTO%b: %u{$this->vinnere_text[0]}%u vant runden!{$ekstra}");
         // live-feed
         //livefeed::add_row('<user id="'.$this->vinnere[0].'" /> vant lottorunden.'.$ekstra_l);
     }
     // fjern loddene som var kjøpt
     \Kofradia\DB::get()->exec("DELETE FROM lotto");
 }
Exemple #10
0
    /**
     * Prestasjoner
     */
    protected static function page_achievements()
    {
        ess::$b->page->add_title("Prestasjoner");
        kf_menu::page_id("achievements");
        // kan ikke se?
        if (!page_min_side::$pstats) {
            echo '
	<p class="c">Du har ikke tilgang til å se denne siden.</p>';
            return;
        }
        echo '
	<p class="c">Du har oppnådd totalt ' . game::format_num(page_min_side::$active_player->data['up_achievements_points']) . ' prestasjonspoeng.</p>
	
	<div class="achievements">';
        // hent repetisjoner
        $rep_all = page_min_side::$active_player->achievements->get_rep_count();
        // grupper etter gjentakelsemulighet
        $list = array("norep" => array(), "rep" => array());
        foreach (achievements::$achievements as $a) {
            $list[$a->data['ac_recurring'] ? 'rep' : 'norep'][] = $a;
        }
        foreach ($list as $type => $all) {
            echo '
		<div class="achievements_group">
			<p class="ac_group">' . ($type == "rep" ? 'Repeterende prestasjoner:' : 'Enkeltoppnående prestasjoner:') . '</p>';
            foreach ($all as $a) {
                // hent premie
                $prize = sentences_list($a->get_prizes());
                if (empty($prize)) {
                    $prize = '&nbsp;';
                }
                // sjekk om utført
                if (isset($rep_all[$a->id])) {
                    if ($a->data['ac_recurring']) {
                        $done = 'Oppnådd ' . fwords("%d gang", "%d ganger", $rep_all[$a->id]['count_upa_id']);
                        $done .= '<br />Sist ' . ess::$b->date->get($rep_all[$a->id]['max_upa_time'])->format();
                    } else {
                        $done = 'Oppnådd ' . ess::$b->date->get($rep_all[$a->id]['max_upa_time'])->format();
                    }
                } else {
                    $done = "Du har ikke oppnådd denne prestasjonen";
                }
                $img = isset($rep_all[$a->id]) && !$a->data['ac_recurring'] ? '<img src="' . STATIC_LINK . '/icon/ruby.png" alt="" title="Oppnådd" /> ' : '';
                // fremdrift
                $progress = '';
                $progress_text = '';
                $item = new achievement_player_item(page_min_side::$active_player, $a);
                $item->load_active();
                if ($p = $item->get_progress()) {
                    $w = round($p['current'] / $p['target'] * 100, 1);
                    $progress = '
			<div class="ac_progress" title="Fremdrift: ' . $p['current'] . ' / ' . $p['target'] . '" style="width: ' . $w . '%"></div>';
                    $progress_text = '
			<p class="ac_progress_text" style="text-align: right;">Fremdrift: ' . $p['current'] . ' / ' . $p['target'] . '</p>';
                }
                echo '
		<div class="ac_row">' . $progress . '
			<div class="ac_data' . ($progress ? ' ac_data_progress' : '') . '">
				<h2>' . htmlspecialchars($a->data['ac_name']) . '</h2>' . ($a->data['ac_text'] ? '
				<p class="ac_text">' . $a->data['ac_text'] . '</p>' : '') . '
				<p class="ac_prize">Premie: ' . $prize . '</p>
				<p class="ac_apoints" title="Prestasjonspoeng">' . $img . $a->data['ac_apoints'] . '</p>
				<p class="ac_status">' . $done . '</p>
				' . $progress_text . '
			</div>
		</div>';
            }
            echo '
		</div>';
        }
        echo '
	</div>';
    }
Exemple #11
0
echo "\n* Andre endringer..\n";
\Kofradia\DB::get()->exec("UPDATE {$nc[0]}.scheduler SET s_active = 0 WHERE s_name IN ('bank_renter_info', 'trac_rss', 'wordpress_entries')");
// korrigerer tasks
\Kofradia\DB::get()->exec("UPDATE {$nc[0]}.tasks SET t_ant = 0, t_last = 0");
// generer dummy-data
// TODO: forumet
// TODO: polls
// TODO: rapporteringer
// TODO: support
// dummy: donasjoner
$result = \Kofradia\DB::get()->query("SELECT up_id FROM {$no[0]}.users_players WHERE up_access_level != 0 AND up_last_online > " . (time() - 86400 * 7) . " ORDER BY RAND() LIMIT 15");
while ($row = $result->fetch()) {
    \Kofradia\DB::get()->exec("INSERT INTO {$nc[0]}.donations SET d_up_id = {$row['up_id']}, d_amount = " . rand(10, 100) . ", d_time = " . (time() - rand(0, 604800)));
}
\Kofradia\DB::get()->exec("SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS");
$files = array();
foreach ($export_names as $name) {
    $files[] = "export_to_devdb." . ess::$b->date->get()->format("Ymd-His") . ($extended ? '.extended' : '') . ".{$name}.sql";
}
// eksporter databasene
foreach ($nc as $key => $name) {
    echo "\n* Eksporterer databasen {$name}..\n";
    echo shell_exec("mysqldump --hex-blob --skip-extended-insert --skip-add-drop-table {$name} > {$files[$key]}");
    echo "  Data eksportert til {$files[$key]}\n";
}
// dropp databasene
echo "\n* Dropper databasene " . sentences_list($nc) . "\n";
foreach ($nc as $name) {
    \Kofradia\DB::get()->exec("DROP DATABASE {$name}");
}
echo "\nFullført.\n";