本文整理汇总了PHP中game::counter方法的典型用法代码示例。如果您正苦于以下问题:PHP game::counter方法的具体用法?PHP game::counter怎么用?PHP game::counter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类game
的用法示例。
在下文中一共展示了game::counter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: add_topic_error_wait
/**
* Må vente før ny forumtråd kan legges til
* @param integer $wait ventetid
*/
protected function add_topic_error_wait($wait)
{
\ajax::html("Du må vente " . \game::counter($wait) . " før du kan opprette ny forumtråd.", \ajax::TYPE_INVALID);
}
示例2: handle_ret
/** Behandle respons */
public function handle_ret($id, $data = NULL)
{
switch ($id) {
case self::RET_INFO_DELETED_OWN:
echo '
<p class="info_box">Du viser en av dine egne meldinger som har blitt slettet.</p>';
break;
case self::RET_INFO_DELETED:
echo '
<p class="info_box">Denne meldingen tilhører ikke deg.</p>';
break;
case self::RET_INFO_REPORTED:
echo '
<p class="info_box">Du har tilgang til denne meldingstråden fordi den er eller har vært rapportert.</p>';
break;
case self::RET_ERROR_404:
ess::$b->page->add_message("Fant ikke meldingstråden.", "error");
redirect::handle("innboks");
break;
case self::RET_ERROR_CANNOT_REPLY:
ess::$b->page->add_message("Du kan ikke svare på denne meldingstråden.", "error");
redirect::handle();
break;
case self::RET_ERROR_NO_RECEIVERS:
ess::$b->page->add_message("Det er ingen mottakere du kan sende svar til.", "error");
redirect::handle();
break;
case self::RET_ERROR_BAN_CREW:
ess::$b->page->add_message("Du er blokkert fra å sende meldinger til andre enn Crewet. Du kan kun ha én mottaker. Blokkeringen varer til " . ess::$b->date->get($data['ub_time_expire'])->format(date::FORMAT_SEC) . ".<br /><b>Begrunnelse:</b> " . game::format_data($data['ub_reason'], "bb-opt", "Ingen begrunnelse gitt."), "error");
break;
case self::RET_ERROR_BAN:
ess::$b->page->add_message("Du er blokkert fra å sende meldinger til andre enn Crewet. Blokkeringen varer til " . ess::$b->date->get($data['ub_time_expire'])->format(date::FORMAT_SEC) . ".<br /><b>Begrunnelse:</b> " . game::format_data($data['ub_reason'], "bb-opt", "Ingen begrunnelse gitt."), "error");
break;
case self::RET_ERROR_BLOCKED:
foreach ($data as &$row) {
$row = game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . (($reason = game::bb_to_html($row['uc_info'])) == "" ? "" : ' - begrunnelse: ' . $reason);
}
ess::$b->page->add_message("Du kan ikke svare på denne meldingstråden fordi følgende brukere har blokkert deg:<ul><li>" . implode("</li><li>", $data) . "</li></ul>", "error");
break;
case self::RET_INFO_BLOCKED:
foreach ($data as &$row) {
$row = game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . (($reason = game::bb_to_html($row['uc_info'])) == "" ? "" : ' - begrunnelse: ' . $reason);
}
ess::$b->page->add_message("Følgende brukere har egentlig blokkert deg:<ul><li>" . implode("</li><li>", $data) . "</li></ul>");
break;
case self::RET_ERROR_WAIT:
global $__server;
ess::$b->page->add_message('Du må vente ' . game::counter($data) . ' før du kan sende en melding!', "error");
putlog("LOG", "%c13%bMELDING FORSØK%b%c: %u" . login::$user->player->data['up_name'] . "%u forsøkte å svare på en melding til it_id {$this->id} (%u{$this->data_thread['it_title']}%u). Må vente {$data} sekunder. {$__server['path']}/innboks_les?id={$this->id}");
break;
case self::RET_ERROR_CONTENT_SHORT:
ess::$b->page->add_message("Meldingen kan ikke inneholde færre enn 3 bokstaver/tall.", "error");
break;
case self::RET_ERROR_MARK_NO_REL:
ess::$b->page->add_message("Du har ikke mulighet til å markere denne meldingstråden da du ikke er en deltaker i den.", "error");
break;
case self::RET_INFO_MARK_ALREADY:
if ($this->data_rel['ir_marked']) {
ess::$b->page->add_message("Meldingstråden er allerede markert som merket.");
} else {
ess::$b->page->add_message("Meldingstråden er ikke merket fra før.");
}
break;
case self::RET_INFO_MARK_TRUE:
ess::$b->page->add_message("Meldingstråden er nå markert for oppfølging.");
break;
case self::RET_INFO_MARK_FALSE:
ess::$b->page->add_message("Meldingstråden er ikke lenger markert for oppfølging.");
break;
default:
throw new HSException("Ukjent behandler.");
}
}
示例3: utpress
/**
* Kontroller inndata og utfør utpressing
*/
public function utpress()
{
// wait time?
if (($wait = $this->ut->getWait()) > 0) {
\ess::$b->page->add_message("Du må vente " . \game::counter($wait, true) . " før du kan utføre en ny utpressing.", "error");
return;
}
// validate form
$form_info = '';
if ($this->ut->up->data['up_utpressing_last']) {
$form_info = sprintf("Siste=%s;", \game::timespan($this->ut->up->data['up_utpressing_last'], \game::TIME_ABS | \game::TIME_SHORT | \game::TIME_NOBOLD));
} else {
$form_info = "First;";
}
if ($wait) {
$form_info .= sprintf("%%c11Ventetid=%s%%c", \game::timespan($wait, \game::TIME_SHORT | \game::TIME_NOBOLD));
} else {
$form_info .= "%c9No-wait%c";
}
if (!$this->form->validateHashOrAlert(postval('hash'), $form_info)) {
return;
}
// mangler alternativ?
$option = $this->ut->getOption(postval("opt"));
if (!$option) {
\ess::$b->page->add_message("Du må velge et alternativ.", "error");
return;
}
// lagre valg for neste gang
\ess::session_put("utpressing_opt_key", postval("opt"));
// forsøk utpressing
$result = $this->ut->utpress($option);
if ($msg = $result->getMessage()) {
\ess::$b->page->add_message($msg);
}
// oppdater anti-bot
$this->antibot->increase_counter();
}
示例4: check_wait
/**
* Sjekk for ventetid
*/
protected function check_wait()
{
// ventetid - 20 sekunder
// TODO: forbedre denne så den sjekker antall meldinger sendt siste 10 min eller liknende
if (access::has("crewet")) {
$wait = 0;
} else {
$wait = max(0, login::$user->data['u_inbox_sent_time'] + 20 - time());
}
// ventetid?
if ($wait > 0) {
ess::$b->page->add_message('Du må vente ' . game::counter($wait) . ' før du kan sende en melding.', "error");
putlog("LOG", "%c13%bMELDING FORSØK%b%c: %u" . login::$user->player->data['up_name'] . "%u forsøkte å opprette en ny melding. Må vente {$wait} sekunder.");
return false;
}
return true;
}
示例5: show
protected function show($as_who = null)
{
$complete = $this->data['poker_state'] == self::STATE_COMPLETE;
if ($complete) {
$winner = $this->get_winner();
}
$is_starter = $as_who == self::SHOW_STARTER;
$has_challenger = $this->data['poker_state'] >= self::STATE_CHALLENGE;
$new = $this->data['poker_state'] == self::STATE_BEGIN;
$challenge = !$is_starter && $this->data['poker_state'] == self::STATE_CHALLENGE;
echo '
<div class="bg1_c small">
<h1 class="bg1">' . ($is_starter ? $new ? 'Nytt pokerspill' : 'Ditt pokerspill' : 'Din utfordring') . '<span class="left"></span><span class="right"></span></h1>
<div class="bg1">';
if ($new) {
echo '
<p>Du har nå startet et nytt pokerspill og fortsetter ved å velge de kortene du vil <u>beholde</u>. Når du har trykket fortsett kommer du opp på listen for utfordrere og andre kan spille mot deg.</p>
<form action="" method="post">
<input type="hidden" name="state1" value="' . $this->id . '" />';
} elseif ($challenge) {
$time_left = $this->data['poker_time_challenge'] + self::MAX_CHALLENGE_TIME - time();
echo '
<p>Du må fullføre din utfordring innen <b>' . game::counter($time_left, true) . '</b>. Dersom du ikke fullfører vil spillet automatisk velge kort for deg.</p>
<form action="" method="post">
<input type="hidden" name="state3" value="' . $this->id . '" />';
}
echo '
<dl class="dd_right center" style="width: 60%">
<dt>Tid siden start</dt>
<dd>' . game::timespan($this->data['poker_time_start'], game::TIME_ABS) . '</dd>' . ($has_challenger ? '
<dt>Tid siden utfordring</dt>
<dd>' . game::timespan($this->data['poker_time_challenge'], game::TIME_ABS) . '</dd>' : '') . '
<dt>Innsats</dt>
<dd>' . game::format_cash($this->data['poker_cash']) . '</dd>' . ($has_challenger ? '
<dt>Utfordrer</dt>
<dd><user id="' . $this->data['poker_' . ($is_starter ? 'challenger' : 'starter') . '_up_id'] . '" /></dd>' : '
<dt>Utfordrer</dt>
<dd>Ingen enda</dd>') . '
</dl>';
if ($complete || $has_challenger && access::has("admin")) {
echo '
<div class="poker_cards_section">
<p><b>Motstanderens kort:</b> ' . ($is_starter ? $this->text2 : $this->text1) . '</p>
<p>';
if ($is_starter) {
$this->list_cards($this->poker2, $this->solve2);
} else {
$this->list_cards($this->poker1, $this->solve1);
}
echo '
</p>
</div>';
}
echo '
<div class="poker_cards_section">
<p><b>Dine kort:</b> ' . ($is_starter ? $this->text1 : $this->text2) . '</p>' . ($challenge ? '
<p>Marker de kortene du ønsker å <u>beholde</u>.</p>' : '') . '
<p>';
if ($new || $challenge) {
ess::$b->page->add_js('sm_scripts.poker_parse();');
if ($new) {
$this->list_cards_selectable($this->poker1, $this->solve1);
} else {
$this->list_cards_selectable($this->poker2, $this->solve2);
}
} elseif ($is_starter) {
$this->list_cards($this->poker1, $this->solve1);
} else {
$this->list_cards($this->poker2, $this->solve2);
}
echo '
</p>
</div>';
if ($complete) {
if ($winner[0] == 1 && !$is_starter || $winner[0] == 2 && $is_starter) {
if ($winner[1]) {
echo '
<p class="poker_res_lost">Dere fikk samme kombinasjon, men motstanderen din hadde høyere highcard. Du tapte runden...</p>';
} else {
echo '
<p class="poker_res_lost">Motstanderen fikk bedre kombinasjon enn deg. Du tapte runden...</p>';
}
} elseif ($winner[0] != 0) {
if ($winner[1]) {
echo '
<p class="poker_res_won">Dere fikk samme kombinasjon, men du hadde høyere highcard og vant ' . game::format_cash($this->data['poker_prize']) . '!</p>';
} else {
echo '
<p class="poker_res_won">Du fikk bedre kombinasjon enn motstanderen og vant ' . game::format_cash($this->data['poker_prize']) . '!</p>';
}
} else {
echo '
<p class="poker_res_eq">Runden ble uavgjort.</p>';
}
} elseif ($new) {
echo (access::has("admin") ? '
<p class="c"><input type="checkbox" name="renew" id="renew"' . (isset($_POST['renew']) ? ' checked="checked"' : '') . '><label for="renew"> Ikke avslutt runden</label></p>' : '') . '
<p class="c">' . show_sbutton("Velg kort og åpne runden") . '</p>
</form>';
} elseif ($challenge) {
//.........这里部分代码省略.........
示例6: show
/**
* 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>';
//.........这里部分代码省略.........
示例7: handle_reply
/** Forsøk å legg til ny melding i henvendelsen */
protected function handle_reply()
{
// sjekk for blokkering
$blokkering = blokkeringer::check(blokkeringer::TYPE_SUPPORT);
if ($blokkering) {
ess::$b->page->add_message("Du er blokkert fra å sende inn henvendelser til support. Blokkeringen varer til " . ess::$b->date->get($blokkering['ub_time_expire'])->format(date::FORMAT_SEC) . ".<br /><b>Begrunnelse:</b> " . game::format_data($blokkering['ub_reason'], "bb-opt", "Ingen begrunnelse gitt."), "error");
return;
}
$text = trim(postval("text"));
// tom tekst?
if (empty($text)) {
ess::$b->page->add_message("Du må fylle inn en melding.", "error");
return;
}
// sjekk for ventetid
if (!access::has("crewet")) {
// hvor lenge er det siden forrige melding ble lagt til?
$result = \Kofradia\DB::get()->query("\n\t\t\t\tSELECT sum_time FROM support_messages, users_players\n\t\t\t\tWHERE up_u_id = " . login::$user->id . " AND sum_up_id = up_id\n\t\t\t\tORDER BY sum_id DESC LIMIT 1");
if ($result->rowCount() > 0) {
$last = $result->fetchColumn(0);
$wait = max(0, $last + support::$ventetid_reply - time());
if ($wait > 0) {
ess::$b->page->add_message('Du må vente ' . game::counter($wait) . ' før du kan legge til nytt svar.', "error");
return;
}
}
}
// sjekk om det har blitt lagt til noen nye meldinger siden vi viste siden
$result = \Kofradia\DB::get()->query("SELECT sum_id FROM support_messages WHERE sum_su_id = {$this->data['su_id']} ORDER BY sum_time DESC LIMIT 1");
$last_sum = $result->rowCount() > 0 ? $result->fetchColumn(0) : 0;
if (!isset($_POST['last_sum']) || $_POST['last_sum'] != $last_sum) {
ess::$b->page->add_message("Nytt svar har blitt lagt til siden du viste siden sist. Trykk legg til melding på nytt for å fortsette.", "error");
return;
}
// legg til meldingen
\Kofradia\DB::get()->exec("INSERT INTO support_messages SET sum_su_id = {$this->data['su_id']}, sum_up_id = " . login::$user->player->id . ", sum_time = " . time() . ", sum_text = " . \Kofradia\DB::quote($text));
// endre status?
if ($this->own) {
$su_solved = 0;
} elseif (isset($_POST['solve'])) {
$su_solved = 1;
} else {
$su_solved = 0;
}
\Kofradia\DB::get()->exec("UPDATE support SET su_solved = {$su_solved} WHERE su_id = {$this->data['su_id']}");
// sende logg til spilleren som henvendelsen tilhører?
if (!$this->own) {
global $_game;
player::add_log_static("support", login::$user->player->id . ":" . $this->data['su_title'], $this->data['su_id'], $this->data['new_up_id']);
}
// fiks antall nye henvendelser
support::update_tasks();
// fjern fra status
if (!$this->own) {
$this->status_remove();
}
if ($this->own) {
putlog("CREWCHAN", "%c11%bSUPPORT HENVENDELSE OPPDATERT%b%c: %u" . login::$user->player->data['up_name'] . "%u la til nytt svar i %u{$this->data['su_title']}%u " . ess::$s['spath'] . "/support/?a=show&su_id={$this->data['su_id']}");
}
ess::$b->page->add_message("Meldingen ble lagt til.");
redirect::handle("?a=show&su_id={$this->data['su_id']}");
}
示例8: kick_handle
/**
* Kaste ut en spiller
*/
protected function kick_handle()
{
// valider sid
validate_sid();
// kan vi ikke kaste ut noen spillere nå?
if (login::$user->player->fengsel_check() || login::$user->player->bomberom_check() || login::$user->player->data['up_b_id'] != $this->ff->data['br_b_id'] || !$this->kick_hour_ok) {
redirect::handle();
}
// mangler spillervalg?
if (!isset($_POST['player'])) {
ess::$b->page->add_message("Du må velge en spiller du vil kaste ut.", "error");
redirect::handle();
}
// er ikke spilleren i bomberommet?
$up_id = (int) $_POST['player'];
$result = \Kofradia\DB::get()->query("\n\t\t\tSELECT u_email, up_id, up_name, up_access_level, up_brom_expire\n\t\t\tFROM users_players JOIN users ON up_u_id = u_id\n\t\t\tWHERE up_id = {$up_id} AND up_brom_ff_id = {$this->ff->id} AND up_brom_expire > " . time() . " AND up_access_level != 0");
$cost = $this->fam ? self::KICK_PLAYER_COST_FAMILIE : self::KICK_PLAYER_COST;
$up = $result->fetch();
if (!$up) {
ess::$b->page->add_message("Fant ikke spilleren.", "error");
redirect::handle();
}
// sett opp skjema
$form = \Kofradia\Form::getByDomain("other", login::$user);
// har vi bekreftet ønsket om å kaste ut en spiller?
if (isset($_POST['confirm']) && $form->validateHashOrAlert(null, "Kast ut spiller fra bomberom")) {
\Kofradia\DB::get()->beginTransaction();
// forsøk å trekk fra pengene
if (!$this->ff->bank(ff::BANK_BETALING, $cost, "Kaste ut spilleren [user id={$up['up_id']}] fra bomberommet")) {
ess::$b->page->add_message("Det er ikke nok penger i " . ($this->fam ? "broderskapbanken" : "firmabanken") . ".", "error");
\Kofradia\DB::get()->commit();
} else {
// finn en tilfeldig bydel å plassere spilleren
$result = \Kofradia\DB::get()->query("SELECT id, name FROM bydeler WHERE active != 0 ORDER BY RAND() LIMIT 1");
$b_id = $result->fetchColumn(0);
// forsøk å trekk ut spilleren fra bomberommet
$a = \Kofradia\DB::get()->exec("\n\t\t\t\t\tUPDATE users_players\n\t\t\t\t\tSET up_brom_expire = 0, up_b_id = {$b_id}\n\t\t\t\t\tWHERE up_id = {$up['up_id']} AND up_brom_ff_id = {$this->ff->id} AND up_brom_expire = {$up['up_brom_expire']} AND up_access_level != 0");
// feilet?
if ($a == 0) {
// avbryt transaksjon
\Kofradia\DB::get()->rollback();
ess::$b->page->add_message("Kunne ikke kaste ut spilleren fra bomberommet.", "error");
} else {
// legg til hendelse hos spilleren
player::add_log_static("bomberom_kicked", login::$user->player->id . ":" . urlencode($this->ff->data['ff_name']) . ":{$up['up_brom_expire']}", $this->ff->id, $up['up_id']);
// send e-post til spilleren
$email = new email();
$email->text = 'Hei,
Din spiller ble kastet ut fra bomberommet av ' . ($this->fam ? 'broderskapet' : 'firmaet') . ' som styrer bomberommet.
--
www.kofradia.no';
$email->send($up['u_email'], "Kastet ut av bomberom");
// firmalogg
$this->ff->add_log("bomberom_kick", login::$user->player->id . ":{$up['up_id']}:{$up['up_brom_expire']}");
// logg
putlog("DF", "BOMBEROM: {$up['up_name']} ble kastet ut av bomberommet {$this->ff->data['ff_name']} av " . login::$user->player->data['up_name'] . " " . ess::$s['spath'] . "/min_side?up_id={$up['up_id']}");
ess::$b->page->add_message('Du kastet ut <user id="' . $up['up_id'] . '" /> fra bomberommet. ' . ($this->fam ? 'Broderskapet' : 'Firmaet') . ' betalte et gebyr på ' . game::format_cash($cost) . '.');
\Kofradia\DB::get()->commit();
redirect::handle();
}
}
}
ess::$b->page->add_title("Kaste ut spiller");
// vis informasjon
echo '
<div class="bg1_c xsmall">
<h1 class="bg1">Kaste ut spiller fra bomberommet<span class="left2"></span><span class="right2"></span></h1>
<div class="bg1">
<p>Du er i ferd med å kaste ut ' . game::profile_link($up['up_id'], $up['up_name'], $up['up_access_level']) . ' fra bomberommet.</p>
<p>Spilleren skal i utgangspunktet sitte i bomberommet til ' . ess::$b->date->get($up['up_brom_expire'])->format(date::FORMAT_SEC) . ' (' . game::counter($up['up_brom_expire'] - time()) . ' gjenstår).</p>
<p>For å kaste ut spilleren må det betales en avgift på <b>' . game::format_cash($cost) . '</b> som betales fra ' . ($this->fam ? 'broderskapkontoen' : 'firmakontoen') . '.</p>';
// har vi ikke nok penger i firmakontoen?
if ($this->ff->data['ff_bank'] < $cost) {
echo '
<p>' . ($this->fam ? 'Broderskapet' : 'Firmaet') . ' har for øyeblikket kun ' . game::format_cash($this->ff->data['ff_bank']) . ' på konto, noe som ikke er nok. ' . ($this->ff->access(1) ? '<a href="' . ess::$s['relative_path'] . '/ff/banken?ff_id=' . $this->ff->id . '">Sett inn penger på ' . ($this->fam ? 'broderskapkontoen' : 'firmakontoen') . '</a>' : '<a href="' . ess::$s['relative_path'] . '/ff/panel?ff_id=' . $this->ff->id . '">Donér til ' . ($this->fam ? 'broderskapet' : 'firmaet') . '</a>') . ' først for å kunne kaste ut spilleren.</p>
<p class="c"><a href="bomberom?ff_id=' . $this->ff->id . '">Tilbake</a></p>';
} else {
echo '
<p>' . ($this->fam ? 'Broderskapet' : 'Firmaet') . ' har for øyeblikket ' . game::format_cash($this->ff->data['ff_bank']) . ' på konto.</p>
<form action="" method="post">
' . $form->getHTMLInput() . '
<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />
<input type="hidden" name="player" value="' . $up['up_id'] . '" />
<input type="hidden" name="kick" />
<p class="c">' . show_sbutton("Bekreft, kast ut spilleren", 'name="confirm"') . ' <a href="bomberom?ff_id=' . $this->ff->id . '">Avbryt</a></p>
</form>';
}
echo '
</div>
</div>';
$this->ff->load_page();
}
示例9: __construct
/**
* Sykehus
*/
public function __construct(player $up = null, ff $ff)
{
parent::__construct($up);
$this->ff = $ff;
$show = $this->up && $this->ff->active;
if ($show) {
// i fengsel eller bomberom?
if ($this->up->fengsel_require_no(false) || $this->up->bomberom_require_no(false)) {
return;
}
// sett opp skjema
$this->form = \Kofradia\Form::getByDomain("sykehus", login::$user);
// utføre et alternativ?
if (isset($_POST['sykehus'])) {
$this->action();
}
// utføre sykebil
if (isset($_POST['sykebil']) && $this->sykebil()) {
return;
}
}
// vis alternativene
echo '
<div class="bg1_c xsmall">
<h1 class="bg1">Sykehus<span class="left2"></span><span class="right2"></span></h1>
<div class="bg1">
<boxes />
<p>Sykehus gir deg muligheten til å øke din energi slik at helsen din går mye fortere opp enn hva den ville gjort utenom. Energien kan ved hjelp av sykehus gå over 100 %.</p>';
// ventetid?
$wait = $this->calc_wait();
if ($wait > 0) {
echo '
<p>Du må vente ' . game::counter($wait, true) . ' før du kan benytte deg av sykehus på nytt.</p>';
} elseif ($show && $this->up->data['up_b_id'] != $this->ff->data['br_b_id']) {
echo '
<p>Du må befinne deg i samme bydel som sykehuset for å kunne benytte deg av det.</p>';
// har vi lite nok energi til å ta sykebil?
if ($this->up->get_energy_percent() < self::ENERGY_SYKEBIL_REQ) {
echo '
<div style="background-color: #533; padding: 1px 10px">
<p>Du har svært lite energi. Hvis du føler du står i fare for å dø og ikke har nok energi for å reise via bydeler, kan du få en sykebil til å hente deg.</p>
<p>Når du blir hentet av en sykebil, vil du bli fraktet til bydelen sykehuset befinner seg i uten å miste noe helse eller energi. Du vil deretter kunne utføre alternativene for å få energi.</p>
<p>Ved å benytte seg av dette alternativet <b>må du ofre 25 % av din totale rank</b>.</p>
<form action="" method="post">
<p class="c">' . show_sbutton("Be om sykebil", 'name="sykebil"') . '</p>
</form>
</div>';
}
} elseif ($show) {
// vis alternativene
echo '
<form action="" method="post">
' . $this->form->getHTMLInput() . '
<table class="table center">
<thead>
<tr>
<th>Alternativ</th>
<th>Pris</th>
</tr>
</thead>
<tbody>';
$i = 0;
$last_id = ess::session_get("sykehus_last_id");
foreach (self::$options as $id => $row) {
echo '
<tr class="box_handle' . (++$i % 2 == 0 ? ' color' : '') . '">
<td><input type="radio" name="id" value="' . $id . '"' . ($last_id == $id ? ' checked="checked"' : '') . ' />' . htmlspecialchars($row['name']) . '</td>
<td class="r">' . game::format_cash($row['price']) . '</td>
</tr>';
}
echo '
</tbody>
</table>
<p class="c">' . show_sbutton("Utfør handling", 'name="sykehus"') . '</p>
</form>';
}
echo '
<p class="c"><a href="' . ess::$s['relative_path'] . '/node/57">Mer informasjon om sykehus</a></p>
</div>
</div>';
}
示例10: page_donate_handle
/**
* Behandle donasjon
*/
protected function page_donate_handle()
{
$amount = game::intval($_POST['donate']);
$note = trim(postval("note"));
// nostat?
if (access::is_nostat()) {
ess::$b->page->add_message("Du er nostat og har ikke tilgang til å donere til {$this->ff->type['refobj']}.", "error");
} elseif ($amount < 0) {
ess::$b->page->add_message("Beløpet kan ikke være negativt..", "error");
} elseif ($amount < 15000) {
ess::$b->page->add_message("Minstebeløp å donere er 15 000 kr.", "error");
} else {
// finn ut når vi donerte siste gang - kan ikke donere oftere enn en gang i timen
$result = \Kofradia\DB::get()->query("SELECT ffbl_time FROM ff_bank_log WHERE ffbl_ff_id = {$this->ff->id} AND ffbl_type = 3 AND ffbl_up_id = " . login::$user->player->id . " ORDER BY ffbl_time DESC LIMIT 1");
$last = $result->fetch();
if ($last && $last['ffbl_time'] + 3600 > time()) {
ess::$b->page->add_message("Du kan ikke donere oftere enn én gang per time. Du må vente " . game::counter($last['ffbl_time'] + 3600 - time()) . " før du kan donere på nytt.", "error");
} elseif ($amount > login::$user->player->data['up_cash']) {
ess::$b->page->add_message("Du har ikke nok penger på hånda til å donere " . game::format_cash($amount) . " til {$this->ff->type['refobj']}.", "error");
} elseif (isset($_POST['approve']) && validate_sid(false)) {
// forsøk å donere
$a = \Kofradia\DB::get()->exec("UPDATE ff, users_players SET ff_bank = ff_bank + {$amount}, up_cash = up_cash - {$amount} WHERE ff_id = {$this->ff->id} AND up_id = " . login::$user->player->id . " AND up_cash >= {$amount}");
// hadde ikke nok penger?
if ($a == 0) {
ess::$b->page->add_message("Du har ikke nok penger på hånda til å donere " . game::format_cash($amount) . " til {$this->ff->type['refobj']}.", "error");
} else {
// finn balanse
$result = \Kofradia\DB::get()->query("SELECT ff_bank FROM ff WHERE ff_id = {$this->ff->id}");
$balance = $result->fetchColumn(0);
// legg til logg
\Kofradia\DB::get()->exec("INSERT INTO ff_bank_log SET ffbl_ff_id = {$this->ff->id}, ffbl_type = 3, ffbl_amount = {$amount}, ffbl_up_id = " . login::$user->player->id . ", ffbl_time = " . time() . ", ffbl_balance = {$balance}, ffbl_note = " . \Kofradia\DB::quote($note));
// legg til i spillerinfo
\Kofradia\DB::get()->exec("UPDATE ff_members SET ffm_donate = ffm_donate + {$amount} WHERE ffm_up_id = " . login::$user->player->id . " AND ffm_ff_id = {$this->ff->id} AND ffm_status = 1");
ess::$b->page->add_message("Du donerte " . game::format_cash($amount) . " til {$this->ff->type['refobj']}.");
// legg til daglig stats
$this->ff->stats_update("money_in", $amount, true);
redirect::handle();
}
} elseif (!isset($_POST['skip'])) {
ess::$b->page->add_title("Donér til {$this->ff->type['refobj']}");
// vis skjema for godkjenning
echo '
<!-- donasjon -->
<div class="section w200">
<h2>Donér til ' . $this->ff->type['refobj'] . '</h2>
<p>Du er i ferd med å donére til ' . $this->ff->type['refobj'] . '.</p>
<p>Beløp: ' . game::format_cash($amount) . '</p>
<p>Melding/notat: ' . game::format_data($note, "bb-opt", "Uten melding") . '</p>
<form action="" method="post">
<input type="hidden" name="donate" value="' . $amount . '" />
<input type="hidden" name="note" value="' . htmlspecialchars($note) . '" />
<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />
<p class="c">
' . show_sbutton("Utfør donasjon", 'name="approve"') . '
' . show_sbutton("Avbryt", 'name="skip"') . '
</p>
</form>
</div>';
$this->ff->load_page();
}
}
}
示例11: page_info
//.........这里部分代码省略.........
<dl class="dd_right">
<dt>Våpen</dt>
<dd>' . htmlspecialchars(page_min_side::$active_player->weapon->data['name']) . '</dd>
<dt>Kulekapasitet</dt>
<dd>' . page_min_side::$active_player->weapon->data['bullets'] . '</dd>
<dt>Antall kuler i våpenet</dt>
<dd>' . page_min_side::$active_player->data['up_weapon_bullets'] . '</dd>
<dt>Våpentrening</dt>
<dd>' . game::format_number(page_min_side::$active_player->data['up_weapon_training'] * 100, 2) . ' %</dd>
</dl>';
}
echo '
</div>
</div>
<div class="bg1_c">
<h1 class="bg1">Beskyttelse<span class="left2"></span><span class="right2"></span></h1>
<div class="bg1">';
if (!page_min_side::$active_player->protection->data) {
echo '
<p>Du har ingen beskyttelse. Du kjøper beskyttelse hos et våpen og beskyttelse-firma via bydeler.</p>';
} else {
echo '
<dl class="dd_right">
<dt>Beskyttelse</dt>
<dd>' . htmlspecialchars(page_min_side::$active_player->protection->data['name']) . '</dd>
<dt>Status</dt>
<dd>' . game::format_number(page_min_side::$active_player->data['up_protection_state'] * 100, 2) . ' %</dd>
</dl>';
}
// i bomberom?
$bomberom_wait = page_min_side::$active_player->bomberom_wait();
if ($bomberom_wait > 0) {
echo '
<p>Befinner seg i <a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . page_min_side::$active_player->data['up_brom_ff_id'] . '">bomberom</a> til ' . ess::$b->date->get(page_min_side::$active_player->data['up_brom_expire'])->format() . ' (' . game::counter($bomberom_wait) . ' gjenstår).</p>';
}
echo '
</div>
</div>';
echo '
</div>
</div>
<div class="col_w right">
<div class="col">
<div class="bg1_c">
<h1 class="bg1">Statistikk<span class="left2"></span><span class="right2"></span></h1>
<div class="bg1">
<p class="minside_stats_h">Generelt</p>
<dl class="dd_right minside_stats_d">
<dt>Sidevisninger</dt>
<dd>' . game::format_number(page_min_side::$active_player->data['up_hits']) . '</dd>
<dt>Videresendinger</dt>
<dd>' . game::format_number(page_min_side::$active_player->data['up_hits_redirect']) . '</dd>
</dl>
<p class="minside_stats_h">Profil</p>
<dl class="dd_right minside_stats_d">
<dt>Visninger i profilen</dt>
<dd>' . game::format_number(page_min_side::$active_player->data['up_profile_hits']) . '</dd>
</dl>
<p class="minside_stats_h">Spiller</p>
<dl class="dd_right minside_stats_d">
<dt>Ant. ganger i fengsel</dt>
<dd>' . game::format_number(page_min_side::$active_player->data['up_fengsel_num']) . '</dd>
<dt>Antall utbrytninger</dt>
<dd>' . game::format_number(page_min_side::$active_player->data['up_fengsel_num_out_success']) . ' / ' . game::format_number(page_min_side::$active_player->data['up_fengsel_num_out_tries']) . '</dd>
<dt>Antall ganger vunnet i lotto</dt>
<dd><a href="lotto_vinn' . (page_min_side::$active_user->id != login::$user->id ? '?up_id=' . page_min_side::$active_player->id : '') . '">' . game::format_number($lotto_vinn) . '</a></dd>
示例12: biltyveri_show
/**
* Vis biltyveri
*/
protected function biltyveri_show()
{
ess::$b->page->add_title("Biltyveri");
// kontroller ranken vi må ha for å utføre biltyveri
$this->check_rank();
// kontroller energi
$this->gta->up->energy_require(gta::ENERGY_BILTYVERI * 1.3);
// legg til 30 % på kravet
// anti-bot
$this->antibot = antibot::get("biltyveri", 10);
$this->antibot->check_required(ess::$s['rpath'] . '/gta');
// skjema
$this->form = \Kofradia\Form::getByDomain("biltyveri", login::$user);
// hent inn alternativene
$this->gta->load_options();
// ønsker vi å utføre biltyveri?
if (isset($_POST['option_id'])) {
$this->biltyveri_utfor();
}
// kontroller ventetid
$wait = $this->gta->calc_wait();
$wait = $wait[0];
echo '
<div class="col2_w" style="margin: 35px 0">
<div class="col_w left" style="width: 64%">
<div class="col">
<div class="bg1_c center" style="width: 350px">
<h1 class="bg1">Biltyveri<span class="left2"></span><span class="right2"></span></h1>
<p class="h_right"><a href="&rpath;/node/20">Hjelp</a></p>
<div class="bg1">
';
// har vi ikke garasje i denne bydelen?
$bydeler = $this->gta->get_bydeler_info();
if (!$bydeler[$this->gta->up->data['up_b_id']]['ff_id']) {
echo '
<p>Du må ha en garasje i denne bydelen før du kan forsøke å utføre biltyveri.</p>';
} elseif ($bydeler[$this->gta->up->data['up_b_id']]['garage_free'] == 0) {
$msg = ess::$b->page->messages->getMessageByName("gta_result");
if ($msg) {
echo '
<div class="p c">' . $msg->content . '</div>';
}
echo '
<p>Det er ikke plass til flere kjøretøy i garasjen din. Oppgrader garasje, selg eller flytt biler for å kunne utføre biltyveri.</p>';
} elseif (count($this->gta->options) == 0) {
echo '
<p>Det er ingen mulighet for å stjele biler i denne bydelen.</p>';
} else {
$id = reset($this->gta->options);
$id = $id['id'];
$rank = $this->gta->up->rank['need_points'] == 0 ? game::format_number(round(gta::RANK_BILTYVERI / $this->gta->up->rank['points'], 5) * 100, 4) : game::format_number(round(gta::RANK_BILTYVERI / $this->gta->up->rank['need_points'], 5) * 100, 3);
echo '
<form action="" method="post" onsubmit="noSubmit(this)">
' . $this->form->getHTMLInput() . '
<table class="table game center tablemt" style="width: 100%">
<thead>
<tr>
<th>Navn</th>
<th>Sjanse</th>
<th>Forsøk</th>
<th>Vellykkede</th>
</tr>
</thead>
<tbody>';
// vis alternativene
$valgt = login::data_get("biltyveri_alternativ_" . login::$user->player->data['up_b_id']);
$i = 0;
foreach ($this->gta->options as $option) {
echo '
<tr class="box_handle' . (++$i % 2 == 0 ? ' color' : '') . '">
<td><input type="radio" name="option_id" value="' . $option['id'] . '"' . ($option['id'] == $valgt ? ' checked="checked"' : '') . ' />' . htmlspecialchars($option['name']) . '</td>
<td class="r">' . game::format_number($option['percent']) . ' %</td>
<td class="r">' . game::format_number($option['count']) . '</td>
<td class="r">' . game::format_number($option['success']) . ' (' . ($option['count'] == 0 ? '0,0' : game::format_number($option['success'] / $option['count'] * 100, 1)) . ' %)</td>
</tr>';
}
echo '
</tbody>
</table>';
$msg = ess::$b->page->messages->getMessageByName("gta_result");
if ($msg) {
echo '
<div class="p c">' . $msg->content . '</div>';
}
echo $wait > 0 ? '
<p class="c">Du må vente ' . game::counter($wait, true) . ' før du kan utføre biltyveri igjen.</p>' : '
<p class="c">' . show_sbutton("Utfør handling") . '</p>';
echo '
</form>';
}
echo '
</div>
</div>
</div>
</div>
<div class="col_w right" style="width: 36%">
<div class="col">
//.........这里部分代码省略.........
示例13: time
if (isset(login::$user->player->oppdrag->new[$row['o_id']])) {
echo '
<p><b>Nytt oppdrag!</b></p>';
}
// ikke mulig å utføre enda?
if ($row['uo_locked'] != 0) {
echo '
<div class="p">' . login::$user->player->oppdrag->get_description($row['o_id']) . '</div>';
// status
echo login::$user->player->oppdrag->status($row['o_id']);
} else {
echo '
<div class="p">' . login::$user->player->oppdrag->get_description($row['o_id']) . '</div>';
// akkurat forsøkt -- mislykte -- må vente
if ($row['uo_last_state'] == 0 && $row['uo_last_time'] + $row['o_retry_wait'] > time()) {
$wait = $row['uo_last_time'] + $row['o_retry_wait'] - time();
echo '
<p>Du mislyktes oppdraget forrige gang du prøvde og må vente ' . game::counter($wait, true) . ' før du kan prøve igjen.</p>';
} else {
echo '
<p><a href="oppdrag?o_id=' . $row['o_id'] . '" class="button">Start oppdrag »</a></p>';
}
}
echo '
</div>';
}
}
echo '
</div>
</div>';
$_base->page->load();
示例14: add_topic_error_wait
/**
* Må vente før ny forumtråd kan legges til
* @param integer $wait ventetid
*/
protected function add_topic_error_wait($wait)
{
\ess::$b->page->add_message("Du må vente " . \game::counter($wait) . " før du kan opprette ny forumtråd.", "error");
}
示例15: lodd_kjop
/**
* Kjøpe lodd
*/
protected function lodd_kjop()
{
// nostat?
if (access::is_nostat() && !access::has("sadmin") && MAIN_SERVER) {
ess::$b->page->add_message("Du har ikke tilgang til å spille lotto. (NoStat)", "error");
redirect::handle();
}
if (!$this->form->validateHashOrAlert(null, ($this->last > 0 ? "Previous=" . game::timespan($this->last, game::TIME_ABS | game::TIME_SHORT | game::TIME_NOBOLD) . ";" : "First;") . ($this->active ? "Active;" : "NOT-ACTIVE;") . ($this->wait ? "%c11Ventetid=" . game::timespan($this->wait, game::TIME_SHORT | game::TIME_NOBOLD) . "%c" : "%c9No-wait%c"))) {
return;
}
if (isset($_POST['b'])) {
global $__server;
putlog("ABUSE", "Trolig bot: " . login::$user->player->data['up_name'] . " - Skjult skjema sendt (Lotto) SID=" . login::$info['ses_id'] . " " . $__server['path'] . "/min_side?up_id=" . login::$user->player->id);
}
// ikke aktiv?
if (!$this->active) {
ess::$b->page->add_message("Lottoen er ikke aktiv for øyeblikket!", "error");
redirect::handle();
}
// ventetid?
if ($this->wait > 0) {
ess::$b->page->add_message('Du må vente ' . game::counter($this->wait, true) . ' før du kan kjøpe nye lodd!', "error");
redirect::handle();
}
$lodd = intval($_POST['lodd']);
// ikke gyldig?
if ($lodd < 1) {
ess::$b->page->add_message("Du må minimum kjøpe ett lodd!", "error");
redirect::handle();
}
// for mange lodd?
if ($lodd > lotto::$lodd_maks_om_gangen) {
ess::$b->page->add_message("Du kan maks kjøpe " . game::format_number(lotto::$lodd_maks_om_gangen) . " lodd på en gang!", "error");
redirect::handle();
}
// kan vi kjøpe så mange lodd?
if ($lodd > lotto::$lodd_maks - $this->info['antall_lodd']) {
ess::$b->page->add_message("Du kan ikke kjøpe så mange lodd!", "error");
redirect::handle();
}
$lodd_price = lotto::get_lodd_price();
$cost = $lodd * $lodd_price;
// trekk fra pengene
$a = \Kofradia\DB::get()->exec("UPDATE users_players SET up_cash = up_cash - ({$lodd} * " . $lodd_price . ") WHERE up_id = " . login::$user->player->id . " AND up_cash >= ({$lodd} * " . $lodd_price . ")");
if ($a == 0) {
ess::$b->page->add_message("Du har ikke nok penger på hånda!", "error");
redirect::handle();
}
// gi loddene til brukeren
$q = array();
$time = time();
for ($i = 0; $i < $lodd; $i++) {
$q[] = "(" . login::$user->player->id . ", {$time})";
}
\Kofradia\DB::get()->exec("INSERT INTO lotto (l_up_id, time) VALUES " . implode(",", $q));
// energi
login::$user->player->energy_use(self::ENERGY);
ess::$b->page->add_message("Du har kjøpt <b>" . game::format_number($lodd) . "</b> lottolodd for <b>" . game::format_cash($lodd * $lodd_price) . "</b>!");
$this->antibot->increase_counter();
redirect::handle();
}