/** * 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(); } }