/** * Trekk tilbake pokerrunde */ protected function pullback() { // oppdater pokkerunden $a = \Kofradia\DB::get()->exec("\n\t\t\tUPDATE poker\n\t\t\tSET poker_state = " . self::STATE_TIMEOUT . "\n\t\t\tWHERE poker_id = {$this->id} AND poker_state IN (" . self::STATE_BEGIN . "," . self::STATE_FREE . ")"); if ($a > 0) { poker_round::update_cache(); // gi tilbake pengene $up = player::get_loaded($this->data['poker_starter_up_id']); if ($up) { $up->data['up_cash'] = bcadd($up->data['up_cash'], $this->data['poker_cash']); } \Kofradia\DB::get()->exec("UPDATE users_players SET up_cash = up_cash + {$this->data['poker_cash']} WHERE up_id = {$this->data['poker_starter_up_id']}"); $this->data['poker_state'] = self::STATE_TIMEOUT; return true; } return false; }
/** * 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(); }