/** * @param int $id * @return array */ private static function setCharTrans($id) { if(! isset($_POST['new_acc'])) $_POST['new_acc'] = ""; if(! isset($_POST['char_guid'])) $_POST['char_guid'] = ""; $newaccount = output::escapeALL($_POST['new_acc'], true); $char_guid = output::escapeALL($_POST['char_guid'], true); $error = false; if($newaccount && $char_guid){ // Get CharacterData $char = char_character::get($char_guid); $own_wow_acc = auth_account::getByName(get_phpbb_info::$instance->username); $new_acc_id = auth_account::get_id($newaccount); // Precheck if character is offline if($char === false) $error = "Der Charakter existiert nicht!"; else if(char_character::isOnline($char_guid)) $error = "Der ausgewählte Charakter darf nicht online sein!"; else if($char["account"] != $own_wow_acc[0]["id"]) // Check if char is on own Account $error = "Der Charakter gehört dir nicht!"; else if(auth_account::get_id($newaccount) === false) $error = "Der Zielaccount existiert nicht."; else if(char_character::getNumCharsOnAccount($new_acc_id) >= 10) // check if the target account has less than 10 chars $error = "Der Zielaccount kann keine weiteren Charaktere aufnehmen, bitte lösche dort einen Charakter oder wähle einen anderen Account aus."; else { // Make Char Transfer if(! char_character::charTrans($char_guid, $new_acc_id, $own_wow_acc[0]["id"])) $error = "Ein unbekannter Fehler ist beim Transferieren aufgetreten..."; } unset($char); unset($own_wow_acc); } // Show input field if something is missing if(! $newaccount || ! $char_guid || $error) { $product = point_costs::get($id); user_points::update(get_phpbb_info::$instance->user_id, $product["name"] . " - Angaben fehlten -> Rückgabe der Punkte", $product["points"]); return array("result" => "other", "code" => output::getCharTransfer($id, $_POST['char_guid'], $_POST['new_acc'], $error)); } return array("result" => true); }