コード例 #1
0
	/**
	 * @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);
	}