private function update(player $player)
 {
     $db = db::obtain();
     $data = array('account_id' => player::convert_id($player->get('steamid')));
     $data = array_merge($data, $player->get_data_array());
     $db->update_pdo(db::real_tablename('users'), $data, array('steamid' => $player->get('steamid')));
 }
Exemple #2
0
 /**
  * Construct
  */
 public function __construct(player $up)
 {
     parent::__construct($up);
     // vise liste over drapsforsøk for en bestemt spiller
     if (isset($_GET['up_id']) && access::has("mod", NULL, NULL, "login")) {
         $up_id = (int) $_GET['up_id'];
         $player = player::get($up_id);
         if ($player === false) {
             ess::$b->page->add_message("Fant ikke spilleren med id {$up_id}.", "error");
             redirect::handle('drap?allef');
         }
         $this->show_tries($player);
     } elseif (isset($_GET['offer_up_id']) && access::has("mod", NULL, NULL, "login")) {
         $up_id = (int) $_GET['offer_up_id'];
         $player = player::get($up_id);
         if ($player === false) {
             ess::$b->page->add_message("Fant ikke spilleren med id {$up_id}.", "error");
             redirect::handle('drap?allef');
         }
         $this->show_tries($player, true);
     } elseif (isset($_GET['allef']) && access::has("mod", NULL, NULL, "login")) {
         $this->show_tries();
     } elseif (isset($_GET['forsok'])) {
         $this->show_tries($this->up);
     } elseif (isset($_GET['alle']) && access::has("mod", NULL, NULL, "login")) {
         $this->show_all();
     } else {
         $this->show_main();
     }
     ess::$b->page->load();
 }
 public function load()
 {
     $db = db::obtain();
     $players = array();
     $result = $db->fetch_array_pdo('SELECT * FROM users WHERE steamid IN (' . $this->get_ids_string() . ')', array());
     foreach ($result as $r) {
         $player = new player();
         $player->set_array((array) $r);
         $players[$player->get('steamid')] = $player;
     }
     return $players;
 }
Exemple #4
0
 /**
  * Handle notify URLs from PayPal
  */
 public function action_notify()
 {
     file_put_contents(PATH_ROOT . "/paypal.log", print_r($_POST, true), FILE_APPEND);
     // TODO: remove this when tested on production
     if (!isset($_POST['receiver_email']) || $_POST['receiver_email'] != '*****@*****.**') {
         die;
     }
     // should really check for duplicates, but we don't
     // but it must be "completed"
     if (!isset($_POST['payment_status']) || $_POST['payment_status'] != 'Completed') {
         die;
     }
     // verify it
     $verify = Donation::verifyPayPalData($_POST);
     if (!$verify) {
         die;
     }
     // check for user etc
     $custom = postval("custom");
     if (!preg_match('~^(.*):(.*);public=(0|1)$~', $custom, $matches)) {
         die;
     }
     trigger_error("should add");
     $player = null;
     if ($matches[1] != "gjest") {
         // find this player
         $result = DB::get()->query("\n\t\t\t\tSELECT up_id\n\t\t\t\tFROM users_players\n\t\t\t\t\tLEFT JOIN users ON up_u_id = u_id\n\t\t\t\t\tLEFT JOIN sessions ON u_id = ses_u_id\n\t\t\t\tWHERE ses_id = " . DB::quote($matches[1]) . " AND up_id = " . DB::quote($matches[2]) . " LIMIT 1");
         if ($up_id = $result->fetchColumn(0)) {
             $player = \player::get($up_id);
         }
     }
     $time = \ess::$b->date->parse(postval("payment_date"));
     // add it
     $d = Donation::create(postval("mc_gross"), $time, $matches[3] ? $player->id : null);
     putlog("CREWCHAN", sprintf("%%uDONASJON:%%u %s %s ble donert av %s", postval("mc_currency"), postval("mc_gross"), $player ? $player->data['up_name'] . ($matches[3] ? ' (synlig)' : ' (som anonym)') : 'anonym gjest'));
     // no output
     die;
 }
Exemple #5
0
    // fant ingen spller?
    $row = $result->fetch();
    if (!$row) {
        ess::$b->page->add_message("Fant ikke spilleren.", "error");
        redirect::handle("finn_spiller?finn=" . urlencode($name), redirect::ROOT);
    }
    // sende til korrekt side?
    if (!isset($_SERVER['REDIRECT_URL'])) {
        // send til korrekt side
        $address = game::address("/p/" . rawurlencode($row['up_name']) . ($by_id ? "/{$row['up_id']}" : ""), $_GET, array("id", "name"));
        redirect::handle($address, redirect::ROOT);
    }
    if (login::$logged_in && $row['up_id'] == login::$user->player->id) {
        $player = login::$user->player;
    } else {
        $player = player::get($row['up_id']);
    }
} elseif (isset($_GET['id'])) {
    $up_id = (int) $_GET['id'];
    $result = \Kofradia\DB::get()->query("SELECT up_id, up_name FROM users_players WHERE up_id = {$up_id}");
    $row = $result->fetch();
    if (!$row) {
        ess::$b->page->add_message("Fant ikke spilleren.", "error");
        redirect::handle("finn_spiller", redirect::ROOT);
    }
    // send til korrekt side
    $address = game::address("/p/" . rawurlencode($row['up_name']) . "/{$row['up_id']}", $_GET, array("id"));
    redirect::handle($address, redirect::ROOT);
} elseif (isset($_GET['user'])) {
    // send til korrekt side
    $address = game::address("/p/" . rawurlencode($_GET['user']), $_GET, array("user"));
Exemple #6
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 #7
0
 /**
  * Behandle vinner
  */
 protected function give_prize($nummer)
 {
     $id = $nummer - 1;
     // finn ut antall lodd vi kan trekke ifra
     $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT COUNT(id)\n\t\t\tFROM lotto JOIN users_players ON up_id = l_up_id AND up_access_level != 0" . (count($this->vinnere) > 0 ? "\n\t\t\tWHERE l_up_id NOT IN (" . implode(",", $this->vinnere) . ")" : ""));
     $num = $result->fetchColumn(0);
     if ($num == 0) {
         return;
     }
     // hent en tilfeldig vinner
     $rand = rand(0, $num - 1);
     $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT id, l_up_id, time, up_name\n\t\t\tFROM lotto JOIN users_players ON up_id = l_up_id AND up_access_level != 0" . (count($this->vinnere) > 0 ? "\n\t\t\tWHERE l_up_id NOT IN (" . implode(",", $this->vinnere) . ")" : "") . "\n\t\t\tLIMIT {$rand}, 1");
     $vinner = $result->fetch();
     if (!$vinner) {
         return;
     }
     $up = player::get($vinner['l_up_id']);
     if (!$up) {
         return;
     }
     // antall lodd vi hadde
     $result = \Kofradia\DB::get()->query("SELECT COUNT(*) FROM lotto WHERE l_up_id = {$up->id}");
     $count = $result->fetchColumn(0);
     $up->add_log("lotto", $nummer . ":" . $this->premier[$id][0], $this->premier[$id][2]);
     // sett opp som vinner
     \Kofradia\DB::get()->exec("INSERT INTO lotto_vinnere SET l_id = {$vinner['id']}, lv_up_id = {$vinner['l_up_id']}, time = {$vinner['time']}, won = {$this->premier[$id][2]}, total_lodd = {$this->antall}, total_users = {$this->brukere}, type = {$nummer}");
     // send brukeren penger
     $up->update_money($this->premier[$id][2], false);
     // øk rank
     $up->increase_rank($this->premier[$id][0], false, null, null, "lotto");
     // trigger
     $up->trigger("lotto", array("number" => $nummer, "cash" => $this->premier[$id][2], "points" => $this->premier[$id][0], "lodd" => $count, "lodd_total" => $this->antall, "players" => $this->brukere));
     $this->vinnere[] = $vinner['l_up_id'];
     $this->vinnere_text[] = $vinner['up_name'];
 }
Exemple #8
0
 /**
  * Handle failure
  */
 protected function handleFailure()
 {
     // wanted level
     $this->result->wanted = $this->ut->up->fengsel_rank($this->getPoints());
     \Kofradia\DB::get()->prepare("\n\t\t\tUPDATE users_players\n\t\t\tSET up_utpressing_last = ?\n\t\t\tWHERE up_id = ?")->execute(array(time(), $this->ut->up->id));
     $this->ut->up->data['up_utpressing_last'] = time();
     // we can fail totally, which basicly mean
     // we don't find a player at all
     // or we can try find a player and pretend we
     // didn't manage to take the money
     if (rand(1, 100) <= 30) {
         return;
     }
     $cash = $this->getCash();
     $w = $this->getPlayersCriterias($cash);
     // find a matching player
     $result = \Kofradia\DB::get()->prepare("\n\t\t\tSELECT up_id\n\t\t\tFROM (\n\t\t\t\tSELECT up_id\n\t\t\t\tFROM users_players\n\t\t\t\tWHERE {$w[0]}\n\t\t\t\tORDER BY up_last_online DESC\n\t\t\t\tLIMIT 100\n\t\t\t) ref\n\t\t\tORDER BY RAND()\n\t\t\tLIMIT 1");
     $result->execute($w[1]);
     // no players?
     $row = $result->fetch();
     if (!$row) {
         return;
     }
     $this->result->up = \player::get($row['up_id']);
     $this->result->cashLost = $cash;
 }
 private function announce($day, $res)
 {
     if (!$res[1] && !$res[2]) {
         $html = "Ingen vant eller deltok på luken for " . $day . ". desember i julekalenderen.";
         $text = $html;
     } else {
         $html = "";
         $text = "";
         if ($res[1]) {
             $up = player::get($res[1]);
             $html .= '<user id="' . $res[1] . '" /> ble den heldige vinner av luken for ' . $day . '. desember i julekalenderen.';
             $text .= $up->data['up_name'] . ' ble den heldige vinner av luken for ' . $day . '. desember i julekalenderen.';
         }
         if ($res[2]) {
             $up = player::get($res[2]);
             if (!$res[1]) {
                 $html .= 'Ingen svarte riktig for luken til ' . $day . '. desember i julekalenderen.';
                 $text .= 'Ingen svarte riktig for luken til ' . $day . '. desember i julekalenderen.';
             }
             $html .= ' <user id="' . $res[2] . '" /> vant deltakerpremien.';
             $text .= ' ' . $up->data['up_name'] . ' vant deltakerpremien.';
         }
     }
     livefeed::add_row($html);
     putlog("INFO", "%bJULEKALENDER%b: {$text}");
 }
Exemple #10
0
    if ($unitAssign != 0) {
        echo 'Task type 2 Detail - unit assigned #' . $unitAssign . '<br>';
        //print_r($taskDat);
    }
} else {
    //echo 'Task type 2 Detail';
}
// Get list of workers avaialble to work on this task.
$unitFile = fopen($gamePath . '/unitDat.dat', 'rb');
fseek($unitFile, $pGameID * $defaultBlockSize);
$pDat = unpack('i*', fread($unitFile, 400));
$playerObj = new player($pGameID, $pDat, $unitFile);
//print_R($playerObj);
$slotFile = fopen($gamePath . '/gameSlots.slt', 'rb');
//$unitList = array_filter(unpack("i*", readSlotData($slotFile, $playerObj->unitSlot, 40)));
$unitList = new itemSlot($playerObj->get('unitSlot'), $slotFile, 40);
//echo 'Check unit tslot '.$playerObj->get('unitSlot');
$noUnitsHere = true;
echo '<script>
useDeskTop.newPane("characters");
thisDiv = useDeskTop.getPane("characters");

taskList.newUnit({unitType:"task", unitID:' . $postVals[1] . ', unitName:"Task #' . $postVals[1] . ' on ' . $taskDat[11] . '", actionPoints:' . $taskDat[6] . ', reqPts:' . $taskDat[5] . ', strength:75});
taskList.renderSum(' . $postVals[1] . ', thisDiv)

var thisTask = makeTabMenu("newChars", thisDiv);
var taskDesc = newTab("newChars", 1, "Description");
var taskWork = newTab("newChars", 2, "Workers available");
tabSelect("newChars", 1);';
//print_r($unitList->slotData);
foreach ($unitList->slotData as $unitID) {
Exemple #11
0
<?php

require "../../base.php";
global $_whatpulse, $_base;
// sørg for at whatpulse-innstillingene lastes inn
class_exists("whatpulse");
// brukes kun for autoloader
access::no_guest();
$_base->page->add_title("WhatPulse");
$wpFelt = $_whatpulse['fields_text'];
$player = login::$user->player;
// skal vi laste inn siden for noen andre spillere?
if (isset($_GET['up_id']) && access::has("mod")) {
    $player = player::get(intval(getval('up_id')));
    if (!$player or $player->id == login::$user->player->id) {
        redirect::handle();
    }
    ess::$b->page->add_message('Du viser nå WhatPulse-informasjonen til <user id="' . $player->id . '" />');
    redirect::store("?up_id={$player->id}");
}
// sjekk om vi har WhatPulse registrert
$result = \Kofradia\DB::get()->query("SELECT sw_userid, sw_time_update, sw_xml, sw_params FROM stats_whatpulse WHERE sw_up_id = " . $player->id . " FOR UPDATE");
if ($result->rowCount() == 0) {
    echo '
<h1>WhatPulse</h1>
<div style="width: 300px" class="center">
	<div class="section">
		<h3>Informasjon</h3>
		<p>
			Du er ikke registrert med WhatPulse informasjon. For å koble WhatPulse informasjonen til din profil fyll ut formen nedenfor. Se på <a href="http://whatpulse.org/" target="_blank">whatpulse.org</a> for informasjon om WhatPulse.
		</p>
Exemple #12
0
 /**
  * Spiller dør av lite helse/deaktiverer seg selv
  */
 public function bleed_handle()
 {
     $expire = time() - 3600 * 4;
     $by_up = null;
     // er dødsfallet innenfor tidspunktet hvor noen kan få kreditt for det?
     if ($this->data['up_attacked_time'] >= $expire) {
         // har vi en spiller som vi skal gi kreditt?
         if ($this->data['up_attacked_up_id']) {
             $by_up = player::get($this->data['up_attacked_up_id']);
             if ($by_up) {
                 // gi kreditt
                 \Kofradia\DB::get()->exec("UPDATE users_players SET up_attack_bleed_num = up_attack_bleed_num + 1 WHERE up_id = {$by_up->id}");
                 // gi beskjed til spilleren om at denne spillerne blødde ihjel
                 $by_up->add_log("player_bleed", NULL, $this->id);
             }
         }
         // har vi noen FF som skal få kreditt?
         if ($this->data['up_attacked_ff_id_list']) {
             ff::attack_update(false, "bleed", array_map("intval", explode(",", $this->data['up_attacked_ff_id_list'])));
         }
     }
     // oppdater ff spilleren er med i
     $this->attacked_ff_update("bleed");
     return $by_up;
 }
Exemple #13
0
 /**
  * Endre posisjon
  * @param int $priority hvilken posisjon
  * @param int $parent underordnet hvem
  * @param bool $anonymous anonym handling (med tanke på loggen til brukeren)
  */
 public function change_priority($priority, $parent = NULL, $anonymous = false)
 {
     if (!$anonymous && !login::$logged_in) {
         throw new HSNotLoggedIn();
     }
     global $_game;
     $priority = (int) $priority;
     $parent = (int) $parent;
     $action_player = $anonymous ? 0 : login::$user->player->id;
     $sell = $anonymous == "sell";
     $old_priority = $this->data['ffm_priority'];
     $old_parent = $this->data['ffm_parent_up_id'];
     // ikke medlem?
     if ($this->status != self::STATUS_MEMBER || $this->crew) {
         throw new HSException("Brukeren er ikke medlem av FF.");
     }
     // ikke gyldig posisjon?
     if (!isset($this->ff->type['priority'][$priority])) {
         throw new HSException("Ugyldig posisjon.");
     }
     // kan ikke ha parent?
     if (!empty($parent) && $priority != 4) {
         throw new HSException("Kun soldiers kan ha parent.");
     }
     // ugyldig parent?
     if ($parent == $this->id) {
         throw new HSException("Du kan ikke sette brukeren som parent av seg selv.");
     }
     // ingenting endret
     if ($priority == $this->data['ffm_priority'] && $parent == $this->data['ffm_parent_up_id']) {
         return false;
     }
     // sjekk om brukeren er involvert i salg av FF
     if (!$sell) {
         $this->sell_remove();
     }
     // flytt medlemmet
     \Kofradia\DB::get()->exec("UPDATE ff_members SET ffm_priority = {$priority}, ffm_parent_up_id = {$parent} WHERE ffm_ff_id = {$this->ff->id} AND ffm_up_id = {$this->id}");
     // kun endret overordnet?
     if ($priority == $this->data['ffm_priority']) {
         // brukerlogg
         $info = $this->ff->id . ":" . urlencode($this->ff->data['ff_name']) . ":{$this->data['ffm_parent_up_id']}:{$parent}";
         player::add_log_static("ff_member_parent", $info, $action_player, $this->id);
         // FF-logg
         $this->ff->add_log("member_parent", "{$action_player}:{$this->id}:{$this->data['ffm_parent_up_id']}:{$parent}");
     } elseif (!$sell) {
         // brukerlogg
         $info = $this->ff->id . ":" . urlencode($this->ff->data['ff_name']) . ":" . urlencode($this->ff->type['priority'][$this->data['ffm_priority']]) . ":" . urlencode($this->ff->type['priority'][$priority]) . ":{$this->data['ffm_parent_up_id']}:{$parent}";
         player::add_log_static("ff_member_priority", $info, $action_player, $this->id);
         // FF-logg
         $this->ff->add_log("member_priority", "{$action_player}:{$this->id}:" . urlencode($this->ff->type['priority'][$this->data['ffm_priority']]) . ":" . urlencode($this->ff->type['priority'][$priority]) . ":{$this->data['ffm_parent_up_id']}:{$parent}");
     }
     // var capo før?
     if ($this->data['ffm_priority'] == 3 && $priority != 3) {
         $this->leave_capo_priority();
     }
     // reattach
     $this->data['ffm_priority'] = $priority;
     $this->data['ffm_parent_up_id'] = $parent;
     $this->reattach();
     // trigger
     player::get($this->id)->trigger("ff_priority_change", array("ff" => $this->ff, "member" => $this, "priority_old" => $old_priority, "parent_old" => $old_parent, "up_id" => $action_player));
     return true;
 }
Exemple #14
0
    if ($row['u_recruiter_points'] + $diff > $points_limit) {
        $diff = $points_limit - $row['u_recruiter_points'];
    }
    $bonus = round($diff * $points_bonus_factor);
    if ($bonus <= 0) {
        continue;
    }
    putlog("LOG", "VERVEBONUS: {$row['up_name']} skal motta {$bonus} poeng fra {$row['u_email']} (#{$row['u_id']})");
    if (!isset($players[$row['up_id']])) {
        $players[$row['up_id']] = 0;
        $players_count[$row['up_id']] = 0;
    }
    $players[$row['up_id']] += $bonus;
    $players_count[$row['up_id']]++;
}
// gi rankpoengene
$total_bonus = 0;
$i = 0;
foreach ($players as $up_id => $bonus) {
    $up = player::get($up_id);
    if ($up) {
        // legg til hendelse
        $up->add_log("verve_bonus", $players_count[$up_id], $bonus);
        // gi rankpoengene
        $up->increase_rank($bonus, false);
        // oppdater antall poeng vi har fått via verving
        \Kofradia\DB::get()->exec("UPDATE users_players SET up_points_recruited = up_points_recruited + {$bonus} WHERE up_id = {$up_id}");
    }
}
// oppdater brukerene med totalt rankepoeng for forrige oppdatering
\Kofradia\DB::get()->exec("\n\tUPDATE users\n\tSET\n\t\tu_recruiter_points_bonus = u_recruiter_points_bonus + ROUND({$points_bonus_factor} * IF(u_recruiter_points >= {$points_limit}, 0, LEAST({$points_limit}, u_recruiter_points + GREATEST(0, CAST(u_recruiter_points_now - u_recruiter_points_last AS SIGNED))) - u_recruiter_points)),\n\t\tu_recruiter_points = IF(u_recruiter_points >= {$points_limit}, u_recruiter_points, LEAST({$points_limit}, u_recruiter_points + GREATEST(0, CAST(u_recruiter_points_now - u_recruiter_points_last AS SIGNED)))),\n\t\tu_recruiter_points_last = u_recruiter_points_now\n\tWHERE u_recruiter_points_last != u_recruiter_points_now AND u_recruiter_u_id IS NOT NULL");
Exemple #15
0
    /**
     * Vis detaljer
     */
    protected function show_details()
    {
        if (empty($_GET['up_id']) || !access::has("mod")) {
            redirect::handle("etterlyst");
        }
        // last inn spiller
        $up_id = (int) $_GET['up_id'];
        $up = player::get($up_id);
        if (!$up) {
            ess::$b->page->add_message("Ingen spiller med id {$up_id}.", "error");
            redirect::handle("etterlyst");
        }
        $pagei = new pagei(pagei::PER_PAGE, 30, pagei::ACTIVE_GET, 'side');
        $result = $pagei->query("SELECT hl_id, hl_up_id, hl_by_up_id, hl_time, hl_amount, hl_amount_valid FROM hitlist WHERE hl_up_id = {$up->id} AND hl_amount_valid > 0 ORDER BY hl_time DESC");
        echo '
<div class="bg1_c medium">
	<h1 class="bg1">
		Etterlyst - ' . $up->data['up_name'] . '
		<span class="left"></span><span class="right"></span>
	</h1>
	<p class="h_left"><a href="etterlyst">&laquo; Tilbake</a></p>
	<div class="bg1">
		<p>Denne listen viser info om alle som har lagt til dusør på spilleren ' . $up->profile_link() . '.</p>';
        if ($pagei->total == 0) {
            echo '
		<p><b>Det er ingen som har satt dusør på denne spilleren.</b></p>';
        } else {
            echo '
		<table class="table center' . ($pagei->pages == 1 ? ' tablemb' : '') . '">
			<thead>
				<tr>
					<th>Satt av</th>
					<th>Tid</th>
					<th>Opprinnelig dusør</th>
					<th>Gjenstående dusør</th>
				</tr>
			</thead>
			<tbody>';
            $i = 0;
            while ($row = $result->fetch()) {
                echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
					<td><user id="' . $row['hl_by_up_id'] . '" /></td>
					<td>' . ess::$b->date->get($row['hl_time'])->format() . '</td>
					<td class="r">' . game::format_cash($row['hl_amount']) . '</td>
					<td class="r">' . game::format_cash($row['hl_amount_valid']) . '</td>
				</tr>';
            }
            echo '
			</tbody>
		</table>';
            if ($pagei->pages > 1) {
                echo '
		<p class="c">' . $pagei->pagenumbers() . '</p>';
            }
        }
        echo '
	</div>
</div>';
    }
Exemple #16
0
    /**
     * Vis en tilfeldig spiller
     */
    protected function show_random_player()
    {
        $expire = time() - 86400;
        // hent en tilfeldig spiller
        $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT up_id\n\t\t\tFROM users_players\n\t\t\tWHERE up_access_level != 0 AND up_access_level < " . ess::$g['access_noplay'] . " AND up_last_online > {$expire} AND up_id != " . $this->up->id . "\n\t\t\tORDER BY RAND()\n\t\t\tLIMIT 1");
        $row = $result->fetch();
        if (!$row) {
            return;
        }
        $up = player::get($row['up_id']);
        // hent FF
        $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ffm_priority, ff_id, ff_name, ff_type\n\t\t\tFROM ff_members JOIN ff ON ffm_ff_id = ff_id\n\t\t\tWHERE ffm_up_id = {$up->id} AND ffm_status = 1 AND ff_inactive = 0 AND ff_is_crew = 0\n\t\t\tORDER BY ff_name");
        $ff = array();
        while ($row = $result->fetch()) {
            $type = ff::$types[$row['ff_type']];
            $row['posisjon'] = ucfirst($type['priority'][$row['ffm_priority']]);
            $ff[] = $row;
        }
        ess::$b->page->add_css('
.tilfeldig_spiller_img { float: right; margin: 8px 0 8px 5px; max-height: 80px; overflow: hidden }
.tilfeldig_spiller_img img { width: 60px; display: block }');
        $data = '';
        $data .= '
	<p class="tilfeldig_spiller_img profile_image"><a href="' . $up->generate_profile_url(false) . '"><img src="' . htmlspecialchars($up->get_profile_image()) . '" alt="Profilbilde" /></a></p>
	<p class="c">Tilfeldig spiller: ' . $up->profile_link() . '</p>
	<ul>
		<li>Registrert ' . ess::$b->date->get($up->data['up_created_time'])->format(date::FORMAT_NOTIME) . '</li>
		<li>' . $up->rank['name'] . ', plassert som nr. ' . $up->data['upr_rank_pos'] . '</li>';
        foreach ($ff as $row) {
            $data .= '
		<li>' . $row['posisjon'] . ' i <a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '">' . htmlspecialchars($row['ff_name']) . '</a></li>';
        }
        $data .= '
	</ul>';
        $this->put_box($data);
    }
Exemple #17
0
 /**
  * Construct
  * @param player $up
  * @param int $up_id hvis man ikke har spillerobjekt fra før
  */
 public function __construct(player $up = null, $up_id = null, &$ref = null)
 {
     // lagre referanse?
     if ($ref === true) {
         $ref = $this;
     }
     // har vi spillerobjekt?
     if ($up) {
         $this->up = $up;
     } else {
         $this->up = player::get($up_id);
         if (!$this->up) {
             throw new HSException("Fant ikke gyldig spiller som det var referert til. Oppdragsystemet kan ikke fortsette.");
         }
         $this->up->oppdrag = $this;
     }
     $this->user_active = login::is_active_user($this->up);
     // sjekk om vi er på et aktivt oppdrag
     if ($this->up->params->get("oppdrag")) {
         // hent ut detaljer om oppdraget
         $oppdrag = new params($this->up->params->get("oppdrag"));
         // legg til som oppdrag
         $this->oppdrag[$oppdrag->get("o_id")] = $oppdrag->params;
         $this->load_params();
         // sett som aktivt
         $this->active_set($oppdrag->get("o_id"));
     }
     // sett opp triggere for oppdragene som er tilgjengelige nå
     $this->load_triggers();
 }
            echo "Du vann! Denna gången...";
        } else {
            if ($val > $_SESSION["game"]["player"]->score()) {
                echo "Du har förlorat. Det visste jag hela tiden. Idiot.";
            } else {
                echo "Du vann! Eller?...";
            }
        }
    }
}
if (!isset($_SESSION["game"])) {
    $deck = new deck();
    $deck->shuffleCards();
    $player = new player();
    $dealer = new player();
    $dealer->get($deck, 1);
    $player->get($deck, 2);
    $_SESSION["game"] = ["deck" => $deck, "dealer" => $dealer, "player" => $player];
    echo "<h3>Spelet har startat</h3>";
} else {
    if (!isset($_GET["a"])) {
        $_GET["a"] = null;
        $error = "Du måste klicka på en knapp... idiot.";
    }
    if ($error === false) {
        if ($_GET["a"] === "reset") {
            unset($_SESSION["game"]);
            header("Location: spel.php");
        } elseif ($_GET["a"] === "hit") {
            $_SESSION["game"]["player"]->get($_SESSION["game"]["deck"], 1);
            check(false);
Exemple #19
0
 /**
  * Delete a specific contact entry
  */
 public function action_delete($up_id)
 {
     $player = \player::get($up_id);
     $contact = $player ? Contact::getContactByPlayer($this->user, $player, getval("type") == "block") : null;
     if (validate_sid(false) && $contact && $contact->delete()) {
         \ess::$b->page->add_message('<user id="' . $player->id . '" /> ble fjernet.');
     }
     return \redirect::handle("/kontakter", \redirect::ROOT);
 }
Exemple #20
0
<?php

define("FORCE_HTTPS", true);
define("ALLOW_GUEST", true);
require "base.php";
global $__server;
ess::$b->page->theme_file = "guest_simple";
// logget inn og har vervelenke?
if (login::$logged_in && isset($_GET['r'])) {
    // finn spilleren og redirect dit om mulig
    if ($player = player::get($_GET['r'])) {
        return $player->redirect_to();
    }
}
access::no_user();
ess::$b->page->add_css('
.registrer_felt {
	background: rgb(30, 30, 30);
	background: rgba(150, 150, 150, 0.05);
	border: 7px solid rgb(25, 25, 25);
	border: 7px solid rgba(31, 31, 31, 0.7);
	width: 300px;
	margin: 1em auto;
	padding: 1px 1em;
}
/*.registrer_felt input.styled {
	background: #111;
	color: #FFF;
	border: 1px solid #1F1F1F;
	padding: 1px;
	font-size: 12px;
Exemple #21
0
 /**
  * Slett auksjonen (sett som inaktiv og returner bud)
  */
 public function handle_delete()
 {
     // forsøk å sett som behandlet
     $this->data['a_completed'] = 1;
     $affected = \Kofradia\DB::get()->exec("UPDATE auksjoner SET a_completed = 1 WHERE a_id = {$this->id} AND a_completed = 0");
     // allerede behandlet?
     if ($affected == 0) {
         return;
     }
     // behandle ulike auksjonstyper
     switch ($this->data['a_type']) {
         case self::TYPE_KULER:
             // gi kulene tilbake til personen som startet auksjonen
             $kuler = (int) $this->params->get("bullets");
             if ($kuler && $this->data['a_up_id']) {
                 \Kofradia\DB::get()->exec("UPDATE users_players SET up_weapon_bullets = up_weapon_bullets + {$kuler}, up_weapon_bullets_auksjon = GREATEST(0, up_weapon_bullets_auksjon - {$kuler}) WHERE up_id = {$this->data['a_up_id']}");
             }
             break;
     }
     // hent alle budene som skal settes inaktive
     $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ab_id, ab_bid, ab_up_id\n\t\t\tFROM auksjoner_bud\n\t\t\tWHERE ab_a_id = {$this->id} AND ab_active != 0");
     while ($row = $result->fetch()) {
         self::set_bud_inactive($row, $this);
     }
     // behandle trigger
     if ($this->data['a_up_id']) {
         $up = player::get($this->data['a_up_id']);
         if ($up) {
             $up->trigger("auksjon_delete", array("auksjon" => $this));
         }
     }
     // oppdater cache
     self::update_cache();
 }
<?php

global $files;
// kjør session for å unngå feil når player::get lastes
session_start();
// eksporter databasen med exportscriptet
require "export_to_devdb.php";
// initialiser crewfiles systemet med SYSTEM-brukeren
crewfiles::init(player::get(SYSTEM_USER_ID), true);
// hvilke filer i crewfiles som skal oppdateres
$data = array(array(190, $files[0], "main"));
// oppdaterer filene i crewfiles
foreach ($data as $r) {
    // hent filobjekt i crewfiles
    $file = crewfiles::get_file($r[0]);
    if (!$file) {
        echo "Fant ikke filen med ID {$r[0]}\n";
        continue;
    }
    echo "Kjører {$r[1]} gjennom gzip.\n";
    shell_exec("gzip -9 " . escapeshellarg($r[1]));
    $r[1] .= ".gz";
    echo "Laster opp {$r[1]} til crewfiles...\n";
    $revision = $file->upload($r[1], "Automatisk eksportert", "application/x-gzip-compressed", $r[1], true);
    $path = ess::$s['spath'] . '/crewstuff/f/rev/' . $revision->id . '-' . urlencode(crewfiles::generate_tagname($revision->info['cfr_title']));
    putlog("CREWCHAN", "Dev-database {$r[2]}: {$path}");
    echo "Lastet opp!\n";
    // slett filen
    unlink($r[1]);
}
Exemple #23
0
    if (!$user) {
        ess::$b->page->add_message("Fant ikke brukeren.", "error");
    } else {
        // logg inn
        if (login::do_login_handle($user->id, null, LOGIN_TYPE_ALWAYS)) {
            // logg inn utvidede tilganger
            login::extended_access_login();
            ess::$b->page->add_message("Du er nå logget inn som #{$user->id} (" . htmlspecialchars($user->data['u_email']) . ", " . $user->player->profile_link() . ").");
            redirect::handle("", redirect::ROOT);
        }
        ess::$b->page->add_message("Kunne ikke logge deg inn.");
    }
}
// med spillernavn?
if (isset($_POST['up_name'])) {
    $player = player::get($_POST['up_name'], null, true);
    if (!$player) {
        ess::$b->page->add_message("Fant ikke spilleren.", "error");
    } else {
        // logg inn
        if (login::do_login_handle($player->data['up_u_id'], null, LOGIN_TYPE_ALWAYS)) {
            // logg inn utvidede tilganger
            login::extended_access_login();
            ess::$b->page->add_message("Du er nå logget inn som " . $player->profile_link() . " (" . htmlspecialchars($player->user->data['u_email']) . ").");
            redirect::handle("", redirect::ROOT);
        }
        ess::$b->page->add_message("Kunne ikke logge deg inn.");
    }
}
ess::$b->page->add_js_domready('$("u_id").focus();');
echo '
Exemple #24
0
 /**
  * Ta ut kuler
  */
 protected function bullets_out()
 {
     if (!login::$user->player->weapon) {
         redirect::handle();
     }
     $num = (int) postval("bullets_out", 0);
     if ($num <= 0) {
         redirect::handle();
     }
     // på vegne av en spiller?
     $up = login::$user->player;
     $real_up = null;
     if ($this->ff->uinfo->data['ffm_priority'] != 4 && !empty($_POST['bullets_up'])) {
         // har vi ikke ansvar for denne spilleren?
         $id = postval("bullets_up");
         if (!isset($this->ff->members['members'][$id]) || $this->ff->uinfo->data['ffm_priority'] == 3 && $this->ff->members['members'][$id]->data['ffm_parent_up_id'] != login::$user->player->id || $this->ff->uinfo->data['ffm_priority'] < 3 && $this->ff->members['members'][$id]->data['ffm_priority'] != 4) {
             ess::$b->page->add_message("Ugyldig spillervalg.", "error");
             redirect::handle();
         }
         $real_up = $up;
         $up = player::get($id);
         // har ikke våpen?
         if (!$up->weapon) {
             ess::$b->page->add_message('Spilleren <user id="' . $up->id . '" /> har ikke noe våpen og har derfor ikke plass til noen kuler.', "error");
             redirect::handle();
         }
     }
     $ret = $this->ff->bullets_out($num, $up, $real_up);
     switch ($ret) {
         case "missing":
             ess::$b->page->add_message("Det er ikke så mange kuler i broderskapet.", "error");
             break;
         case "full":
             if ($real_up) {
                 $f = max(0, $up->weapon->data['bullets'] - $up->data['up_weapon_bullets'] - $up->data['up_weapon_bullets_auksjon']);
                 ess::$b->page->add_message('<user id="' . $up->id . '" /> har ' . ($f == 0 ? 'ikke plass til flere kuler' : 'bare plass til ' . fwords("%d kule til", "%d kuler til", $f)) . '.', "error");
             } else {
                 ess::$b->page->add_message("Du har ikke plass til så mange kuler.", "error");
             }
             break;
         default:
             if ($real_up) {
                 ess::$b->page->add_message("Du gav " . fwords("%d kule", "%d kuler", $num) . ' til <user id="' . $up->id . '" /> fra kulelageret til broderskapet.');
             } else {
                 ess::$b->page->add_message("Du tok ut " . fwords("%d kule", "%d kuler", $num) . " fra kulelageret til broderskapet.");
             }
             redirect::handle();
     }
 }
Exemple #25
0
    /**
     * Kontroller spiller
     */
    protected function player_check()
    {
        // søke etter spiller?
        if (isset($_POST['up'])) {
            $this->up_offer = player::get($_POST['up'], NULL, true);
        } else {
            $this->up_offer = player::get(postval("up_id"));
        }
        // fant ikke spilleren?
        if (!$this->up_offer) {
            ess::$b->page->add_message("Fant ikke spilleren.", "error");
            return false;
        }
        // seg selv?
        if ($this->up_offer->id == login::$user->player->id) {
            ess::$b->page->add_message("Du kan ikke angripe deg selv.", "error");
            return false;
        }
        // død?
        if (!$this->up_offer->active) {
            ess::$b->page->add_message('Spilleren <user id="' . $this->up_offer->id . '" /> er ikke levende og kan ikke angripes.', "error");
            return false;
        }
        // angriper nostat?
        if ($this->up_offer->is_nostat() && !login::$user->player->is_nostat()) {
            ess::$b->page->add_message('<user id="' . $this->up_offer->id . '" /> er nostat og kan ikke angripes.', "error");
            return false;
        }
        // nostat angriper andre?
        if (login::$user->player->is_nostat() && !$this->up_offer->is_nostat()) {
            ess::$b->page->add_message('Du er nostat og kan derfor ikke angripe <user id="' . $this->up_offer->id . '" />.', 'error');
            return false;
        }
        // kan ikke angripe spillere registrert for under 1 uke siden og som ikke har nådd ridder
        $expire = time() - 604800;
        if ($this->up_offer->data['up_created_time'] > $expire && $this->up_offer->rank['number'] < 8) {
            ess::$b->page->add_message('<user id="' . $this->up_offer->id . '" /> har vært registrert i under 7 dager med lav rank og kan ikke angripes', "error");
            return false;
        }
        // sett opp skjema
        $this->form = \Kofradia\Form::getByDomain("angrip", login::$user);
        // utføre et angrep?
        if (isset($_POST['attack'])) {
            $this->handle_attack();
        }
        echo '
<form action="" method="post">
	<input type="hidden" name="up_id" value="' . $this->up_offer->id . '" />
	' . $this->form->getHTMLInput() . '
	<div class="bg1_c xsmall">
		<h1 class="bg1">Angrip spiller<span class="left2"></span><span class="right2"></span></h1>
		<div class="bg1">
			<p>Du er i ferd med å angripe ' . $this->up_offer->profile_link() . ' som har ranken ' . $this->up_offer->rank['name'] . ' og er plassert som nummer ' . $this->up_offer->data['upr_rank_pos'] . ' på ranklista.</p>
			<p>Du befinner deg på ' . login::$user->player->bydel['name'] . ' og har en <b>' . htmlspecialchars(login::$user->player->weapon->data['name']) . '</b> med <b>' . game::format_num(login::$user->player->data['up_weapon_bullets']) . '</b> ' . fword('kule', 'kuler', login::$user->player->data['up_weapon_bullets']) . ' og en våpentrening på <b>' . game::format_num(login::$user->player->data['up_weapon_training'] * 100, 1) . ' %</b>.</p>';
        // har vi ingen kuler?
        if (login::$user->player->data['up_weapon_bullets'] == 0) {
            echo '
			<p><b>Du må kjøpe kuler før du kan utføre et angrep.</b> Kuler får du kjøpt hos våpen og beskyttelse-firmaet.</p>';
        } else {
            ess::$b->page->add_js_domready('$("angrep_kuler").focus();');
            echo '
			<dl class="dd_right">
				<dt>Antall kuler som skal benyttes</dt>
				<dd><input type="text" id="angrep_kuler" name="kuler" class="styled w40" value="' . intval(postval("kuler", "")) . '" /></dd>
			</dl>
			<p class="c">' . show_sbutton("Utfør angrep", 'name="attack"') . '</p>';
        }
        echo '
			<p class="c"><a href="angrip">Avbryt</a></p>
		</div>
	</div>
</form>
<div class="bg1_c xsmall">
	<h1 class="bg1">Informasjon<span class="left2"></span><span class="right2"></span></h1>
	<div class="bg1">
		<p>Hvis spilleren du angriper ikke befinner seg i <b>' . login::$user->player->bydel['name'] . '</b>, er i <b>bomberom</b> eller <b>fengsel</b> eller hvis du rett og slett ikke klarer å oppdage spilleren, vil du miste en del energi og bli plassert i fengsel i en kort varighet.</p>
		<p>Hvis du klarer å oppdage spilleren, vil du skade spilleren. Hvis angrepet er så kraftig at spilleren dør vil du:</p>
		<ul>
			<li>Overta pengene spilleren hadde på hånda</li>
			<li>Motta en del rank, avhengig av ranken til offeret</li>
		</ul>
		<p>Hvis spilleren overlever, vil du:</p>
		<ul>
			<li>Komme i fengsel en periode</li>
			<li>Miste en god del energi</li>
			<li>Motta litt rank som spilleren du angriper mister</li>
		</ul>
		<p>Når du utfører et angrep mot en annen spiller, risikerer du å bli oppdaget av vitner. Hvis du oppdager vitnene i det du utfører angrepet, vil du også få vite hvem du oppdaget som vitnet angrepet.</p>
	</div>
</div>';
        return true;
    }
Exemple #26
0
/*
 * Dette scriptet henter topp 10 spillere på ranklista
 * mellom 21:00 dagen før og 21:00 i dag og gir bonus
 * til spillerene
 */
$d = ess::$b->date->get();
$d->modify("-1 day");
$d->setTime(21, 0, 0);
$date_from = $d->format("U");
$d->modify("+1 day");
$date_to = $d->format("U");
// tabell over hvor mange prosent bonus man får
$tabell = array(1 => 0.3, 0.27, 0.24, 0.21, 0.18, 0.15, 0.12, 0.09, 0.06, 0.03);
// hent statistikk
$result = \Kofradia\DB::get()->query("\n\tSELECT uhi_up_id, SUM(uhi_points) sum_uhi_points\n\tFROM users_hits\n\t\tJOIN users_players ON up_id = uhi_up_id AND up_access_level < " . ess::$g['access_noplay'] . " AND up_access_level != 0\n\tWHERE uhi_secs_hour >= {$date_from} AND uhi_secs_hour < {$date_to}\n\tGROUP BY uhi_up_id\n\tHAVING sum_uhi_points > 0\n\tORDER BY sum_uhi_points DESC\n\tLIMIT 10");
$total_bonus = 0;
$i = 1;
while ($row = $result->fetch()) {
    $up = player::get($row['uhi_up_id']);
    if ($up) {
        // beregn bonus
        $bonus = round($row['sum_uhi_points'] * $tabell[$i]);
        // legg til hendelse
        $up->add_log("rank_bonus", $i . ":" . $tabell[$i], $bonus);
        // gi rankpoengene
        $up->increase_rank($bonus, false);
        // logg
        putlog("LOG", "RANKBONUS: {$up->data['up_name']} fikk {$i}. plass for 24 timer ranking (fikk {$bonus} rankpoeng, opptjent {$row['sum_uhi_points']} poeng siste 24 timer)");
        $i++;
    }
}
Exemple #27
0
<?php

include "./slotFunctions.php";
include "./unitClass.php";
echo 'This is a battle that is waiting to take place';
$slotFile = fopen($gamePath . '/gameSlots.slt', 'rb');
// Load list of units that the player controls
$playerObj = new player($pGameID, $unitFile, 400);
$unitList = array_filter(unpack("i*", readSlotData($slotFile, $playerObj->get('unitSlot'), 40)));
$matchedSide = 0;
// Look for units that the player controls to determine which side they are on
$sideA = new itemSlot($unitDat[15], $slotFile, 40);
$sideB = new itemSlot($unitDat[16], $slotFile, 40);
fclose($slotFile);
for ($i = 1; $i <= sizeof($unitList->slotData); $i++) {
    if (array_search($unitList->slotData[$i], $sideA->slotData)) {
        $matchedSide = 1;
    } else {
        if (array_search($unitList->slotData[$i], $sideB->slotData)) {
            $matchedSide = 2;
        }
    }
}
// Get information on the wars
for ($i = 0; $i <= 5; $i++) {
    fseek($unitFile, $unitDat[17 + $i] * $defaultBlockSize);
    $warDat = unpack('i*', fread($unitFile, 200));
    echo 'War #' . $unitDat[17 + $i] . '<br>';
}
echo '<div style="position:absolute; bottom:0; left:0;" onclick="scrMod(1094,' . $unitID . ');">Battle Detail</div>';
Exemple #28
0
<?php

require "base.php";
// TODO: lenke fra min side må endres
$up = login::$user->player;
if (isset($_GET['up_id']) && (access::has("mod") && isset($_GET['stats']) || access::has("sadmin") && KOFRADIA_DEBUG)) {
    // forsøk å finn spilleren
    $up = player::get((int) getval("up_id"));
    if (!$up) {
        ess::$b->page->add_message("Fant ingen spiller med ID <u>" . htmlspecialchars($_GET['up_id']) . "</u>.", "error");
        ess::$b->page->load();
    }
    redirect::store("poker?up_id={$up->id}");
    echo '
<p class="c">Du viser pokersiden som tilhører ' . $up->profile_link() . '.' . (!isset($_GET['stats']) ? '<br /><b>Viktig:</b> Utfordringer du gjør her vil bli gjort som denne spilleren, og ikke din egen.' : '') . '</p>';
}
$poker = new page_poker($up);
 /**
  * @return array
  */
 public function load()
 {
     $request = new request(self::player_steam_url, array('steamids' => $this->get_ids_string()));
     $players_info = $request->send();
     if (is_null($players_info)) {
         return null;
     }
     $players = array();
     foreach ($players_info->players[0] as $player_info) {
         $player = new player();
         $player->set_array((array) $player_info);
         $players[$player->get('steamid')] = $player;
     }
     return $players;
 }
Exemple #30
0
 protected function challenge_save($dont_save = null, $auto = null)
 {
     // avgjør vinner
     $winner = CardsPoker::compare($this->solve1, $this->solve2);
     // avgjør gevinst
     $prize = $winner[0] == 0 ? $this->data['poker_cash'] : bcmul($this->data['poker_cash'], 2);
     // oppdater
     $update = $dont_save ? '' : ", poker_challenger_result = {$this->solve2[0]}, poker_state = 4, poker_prize = {$prize}, poker_winner = {$winner[0]}";
     if ($auto && !$dont_save) {
         $update .= ", poker_auto = 1";
     }
     $cards = implode(",", $this->poker2->get_cards());
     $a = \Kofradia\DB::get()->exec("\n\t\t\tUPDATE poker\n\t\t\tSET poker_challenger_cards = " . \Kofradia\DB::quote($cards) . "{$update}\n\t\t\tWHERE poker_id = {$this->id} AND poker_state = 3");
     if ($a == 0) {
         return false;
     }
     if ($dont_save) {
         return true;
     }
     $this->data['poker_challenger_cards'] = $cards;
     $this->data['poker_challenger_result'] = $this->solve2[0];
     $this->data['poker_state'] = 4;
     $this->data['poker_prize'] = $prize;
     $this->data['poker_winner'] = $winner[0];
     $up1 = player::get($this->data['poker_starter_up_id']);
     $up2 = player::get($this->data['poker_challenger_up_id']);
     switch ($winner[0]) {
         // starter vant
         case 1:
             \Kofradia\DB::get()->exec("\n\t\t\t\t\tUPDATE users_players\n\t\t\t\t\tSET up_cash = up_cash + {$prize}\n\t\t\t\t\tWHERE up_id = {$this->data['poker_starter_up_id']}");
             $up1->data['up_cash'] = bcadd($up1->data['up_cash'], $prize);
             putlog("SPAMLOG", "%bPOKER%b: %u{$up2->data['up_name']}%u tapte (" . strip_tags($this->text2) . "). %u{$up1->data['up_name']}%u vant %u" . game::format_cash($prize) . "%u (" . strip_tags($this->text1) . ")");
             break;
             // utfordrer vant
         // utfordrer vant
         case 2:
             \Kofradia\DB::get()->exec("\n\t\t\t\t\tUPDATE users_players\n\t\t\t\t\tSET up_cash = up_cash + {$prize}\n\t\t\t\t\tWHERE up_id = {$this->data['poker_challenger_up_id']}");
             $up2->data['up_cash'] = bcadd($up2->data['up_cash'], $prize);
             putlog("SPAMLOG", "%bPOKER%b: %u{$up2->data['up_name']}%u vant %u" . game::format_cash($prize) . "%u (" . strip_tags($this->text2) . "). %u{$up1->data['up_name']}%u tapte (" . strip_tags($this->text1) . ")");
             break;
             // uavgjort
         // uavgjort
         default:
             \Kofradia\DB::get()->exec("\n\t\t\t\t\tUPDATE users_players\n\t\t\t\t\tSET up_cash = up_cash + {$prize}\n\t\t\t\t\tWHERE up_id IN ({$this->data['poker_starter_up_id']}, {$this->data['poker_challenger_up_id']})");
             $up1->data['up_cash'] = bcadd($up1->data['up_cash'], $prize);
             $up2->data['up_cash'] = bcadd($up2->data['up_cash'], $prize);
             putlog("SPAMLOG", "%bPOKER%b: %u{$up2->data['up_name']}%u (" . strip_tags($this->text2) . ") uavgjort mot %u{$up1->data['up_name']}%u (" . strip_tags($this->text1) . ")  - Begge fikk %u" . game::format_cash($prize) . "%u");
     }
     // trigger
     $up1->trigger("poker_result", array("won" => $winner[0] == 0 ? 0 : ($winner[0] == 1 ? 1 : -1), "cash" => $this->data['poker_cash'], "prize" => $prize, "opponent" => $up2));
     $up2->trigger("poker_result", array("won" => $winner[0] == 0 ? 0 : ($winner[0] == 1 ? -1 : 1), "cash" => $this->data['poker_cash'], "prize" => $prize, "opponent" => $up1));
     return array($winner, $prize, $up1, $up2);
 }