Ejemplo n.º 1
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);
 }
Ejemplo n.º 2
0
    if ($bet > $chips) {
        $_base->page->add_message("Du har ikke så mange chips.", "error");
        redirect::handle();
    }
    if ($bet < min(100, $chips)) {
        $_base->page->add_message("Du må minimum satse " . min(100, $chips) . " chips.", "error");
        redirect::handle();
    }
    // start
    $poker = new CardsPoker();
    $poker->new_cards(5);
    $status->update("cards", implode(",", $poker->get_cards()));
    $poker_pc = new CardsPoker();
    $poker_pc->remove_cards($poker->get_cards());
    $poker_pc->new_cards(5);
    $status->update("cards_pc", implode(",", $poker_pc->get_cards()));
    $status->update("cards_used", implode(",", array_merge($poker->get_cards(), $poker_pc->get_cards())));
    $status->update("bet", $bet);
    // oppdater
    login::$user->player->oppdrag->update_status($oppdrag['o_id'], $status);
    redirect::handle();
}
// bytte kort?
if (isset($_POST['choose']) && $cards && !$finish) {
    $poker = new CardsPoker(explode(",", $cards));
    $poker->remove_cards(explode(",", $status->get("cards_used")));
    // finn ut hvilke bilder som skal beholdes
    $replace = array(0, 1, 2, 3, 4);
    $arr = isset($_POST['kort']) && is_array($_POST['kort']) && count($_POST['kort']) <= 5 ? $_POST['kort'] : array();
    foreach ($arr as $value) {
        if (isset($replace[$value])) {
Ejemplo n.º 3
0
 /**
  * Utfordre en spiller
  */
 protected function challenge()
 {
     if (!isset($_POST['utfordre']) || !isset($_POST['id'])) {
         return;
     }
     // finn utfordringen
     $id = (int) $_POST['id'];
     $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT poker_id, poker_starter_up_id, poker_starter_cards, poker_time_start, poker_cash\n\t\t\tFROM poker\n\t\t\tWHERE poker_id = {$id} AND poker_state = 2 AND poker_starter_up_id != " . $this->up->id);
     $row = $result->fetch();
     if (!$row) {
         ess::$b->page->add_message("Fant ikke utfordringen. Noen kan ha kommet før deg!", "error");
         redirect::handle();
     }
     // ikke råd?
     if (bccomp($row['poker_cash'], $this->up->data['up_cash']) == 1) {
         ess::$b->page->add_message("Du har ikke så mye penger på hånda.", "error");
         redirect::handle();
     }
     // nostatuser?
     if (bccomp($row['poker_cash'], 10000) == 1 && MAIN_SERVER && (access::is_nostat() && $this->up->data['up_u_id'] != 1)) {
         ess::$b->page->add_message("Nostat kan ikke spille poker med beløp over 10 000 kr.", "error");
         redirect::handle();
     }
     // sett opp pokerhånd
     $poker1 = new CardsPoker(explode(",", $row['poker_starter_cards']));
     $poker2 = new CardsPoker();
     $poker2->remove_cards($poker1->get_cards());
     $poker2->new_cards(5);
     // oppdater utfordringen
     $a = \Kofradia\DB::get()->exec("UPDATE poker SET poker_state = 3, poker_challenger_up_id = " . $this->up->id . ", poker_challenger_cards = '" . implode(",", $poker2->get_cards()) . "', poker_time_challenge = '" . time() . "' WHERE poker_id = {$row['poker_id']} AND poker_state = 2");
     if ($a == 0) {
         ess::$b->page->add_message("Fant ikke utfordringen. Noen kan ha kommet før deg!", "error");
         redirect::handle();
     }
     // trekk fra pengene fra brukeren
     $a = \Kofradia\DB::get()->exec("UPDATE users_players SET up_cash = up_cash - {$row['poker_cash']} WHERE up_id = " . $this->up->id . " AND up_cash >= {$row['poker_cash']}");
     // ble ikke brukeren oppdatert?
     if ($a == 0) {
         ess::$b->page->add_message("Du har ikke så mye penger på hånda.", "error");
         // fjern challenge
         \Kofradia\DB::get()->exec("UPDATE poker SET poker_state = 2, poker_challenger_up_id = 0, poker_challenger_cards = '', poker_time_challenge = 0 WHERE poker_id = {$row['poker_id']}");
         redirect::handle();
     }
     poker_round::update_cache();
     redirect::handle();
 }