Poste aqui a pagina accountmanagement.php
info
Grupo: Marquês
Registrado: 26/02/12
Posts: 1.1k
Reputação: +369
Gênero: Masculino
Char no Tibia: Tibjohiand Tito

info
Grupo: Conde
Registrado: 30/04/11
Posts: 658
Reputação: +71
Gênero: Masculino
Char no Tibia: ExTibiano

mano como eu fiquei na duvida qual pagina era vou postar essas duas,
caso não for nenhuma delas você me diz onde fica ela por favor..
<?php
/*
+I.D.E ENGINE+
Controller of Account for Modern AAC - Powered by IDE Engine.
A lot of new functionality and variables can be hard-coded here.
If you do NOT understand the code, do NOT change anything in here.
*/
class Account extends Controller {
/* Main index of Account controllers, also work as a __construct(); It is called by engine as a default. */
function index($action = 0) {
if($action == 1) success("Seu novo personagem foi criado!");
if($action == 2) success("Seu apelido foi criado! obrigado!");
if($action == 3) success("Você Exedel a quantidade máxima de caracteres por conta.");
if($action == 4) success("Seu perfil foi atualizado.");
if($action == 5) success("Seu avatar foi atualizado!");
$this->load->model("Account_model");
if(empty($_SESSION['account_id'])) $_SESSION['account_id'] = $this->Account_model->getAccountID();
$ide = new IDE;
$ide->requireLogin();
if(empty($_SESSION['nickname'])) $ide->redirect(WEBSITE."/index.php/account/setNickname");
$data = array();
$data['loggedUser'] = $_SESSION['name'];
$data['characters'] = $this->Account_model->getCharacters();
$data['messages'] = $this->Account_model->checkMessages();
$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$account = $ots->createObject('Account');
try { $account->find($_SESSION['name']); } catch(Exception $e) {show_error('Houve um problema durante o carregamento da conta. Err code: 220212072010 mais detalhes: '.$e->getMessage());}
$data['account'] = $account;
$data['acc'] = $this->Account_model->load($_SESSION['account_id']);
$recovery_key = $this->Account_model->getRecoveryKey($_SESSION['name']);
/* Load view of account page and send data to it. */
$this->load->view('account', $data);
}
/*
Function to check if account with this name already exists, it is used by create controller as a callaback in form validation.
It should be made as an abstract class of database in Model, but I don't think there is point of it.
*/
function _account_exists($name) {
$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$account = new OTS_Account();
try { $account->find($name); } catch(Exception $e) {show_error('Houve um problema durante o carregamento da conta. Err code: 220212072010 mais detalhes: '.$e->getMessage());}
if($account->isLoaded()) { $this->form_validation->set_message('_account_exists', 'Conta com este nome já existe.');return false;} else return true;
}
function _checkCaptcha($word) {
if(strtolower($word) == strtolower($_SESSION['captcha']) && !empty($_SESSION['captcha'])) {
return true;
}
else {
$this->form_validation->set_message('_checkCaptcha', 'Captcha word está incorreta.');
return false;
}
}
function _nicknameExists($name) {
$this->load->model("account_model");
if($this->account_model->nicknameExists($name)) {
$this->form_validation->set_message('_nicknameExists', 'Esse apelido já existe!.');
return false;
}
else
return true;
}
function _emailExists($email) {
$this->load->model("account_model");
if($this->account_model->emailExists($email)) {
$this->form_validation->set_message('_emailExists', 'Este e-mail já está sendo usado por outra conta já existente!');
return false;
}
else
return true;
}
function _characterExists($name) {
$this->load->model("character_model");
if($this->character_model->characterExists($name)) {
$this->form_validation->set_message('_characterExists', 'Este nome do personagem já existe, por favor escolha outro!');
return false;
}
else
return true;
}
function _checkDelay() {
global $config;
if(!isset($_SESSION['accountDelay'])) $_SESSION['accountDelay'] = 0;
if($config['accountDelay']) {
if(@(time()-$_SESSION['accountDelay']) > 240) {
return true;
}
else {
$this->form_validation->set_message('_checkDelay', 'Você não pode criar outra conta apenas após o outro. Por favor, aguarde alguns minutos.');
return false;
}
}
else
return true;
}
function _checkCity($id) {
$this->config->load('create_character.php');
if(!array_key_exists($id, $this->config->item('cities'))) {
$this->form_validation->set_message('_checkCity', 'Cidade desconhecido');
return false;
}
else
return true;
}
function _checkWorld($id) {
$this->config->load('create_character.php');
if(!array_key_exists($id, $this->config->item('worlds'))) {
$this->form_validation->set_message('_checkWorld', 'Unknown World');
return false;
}
else
return true;
}
function _checkVocation($id) {
$this->config->load('create_character.php');
if(!array_key_exists($id, $this->config->item('vocations'))) {
$this->form_validation->set_message('_checkVocation', 'Unknown Vocation');
return false;
}
else
return true;
}
function _checkSex($id) {
if($id != 0 and $id != 1) {
$this->form_validation->set_message('_checkSex', 'Unknown Sex');
return false;
}
else
return true;
}
function _validName($name) {
require("config.php");
$name = explode(" ", $name);
foreach($name as $unit) {
if(in_array(strtolower($unit), $config['invalidNameTags'])) {
$this->form_validation->set_message('_validName', 'Invalid Name');
return false;
}
else if(strlen($unit) == 1) {
$this->form_validation->set_message('_validName', 'Invalid Name');
return false;
}
else
continue;
}
}
// Function which make the player more real by tatu hunter
// Eg: elder'Druid = Elder'Druid
// elder'druid = Elder'druid
// druid theMaster = Druid themaster
function strFirst($name) {
$name = explode(' ', trim($name));
for($i=0, $t = sizeof($name); $i<$t; ++$i)
for($j=0, $l=strlen($name[$i]); $j<$l; ++$j)
!$j ?
($name[$i][$j] = !$i ? ($name[$i][$j] == strtoupper($name[$i][$j]) ? $name[$i][$j] : strtoupper($name[$i][$j])): $name[$i][$j]) :
($name[$i][$j] = ($name[$i][$j-1] == '\'' ? $name[$i][$j] :
strtolower($name[$i][$j])));
$ret = '';
foreach($name as $k)
$ret .= $k . ' ';
return trim($ret);
}
/* Controller of creating new account. New values can be hard-coded here. (only experienced users) */
function create($ajax = 0) {
require_once("system/application/config/create_character.php");
$ide = new IDE;
global $config;
if($ajax == 1 && $ide->isLogged()) exit;
if($ide->isLogged()) $ide->redirect(WEBSITE.'/index.php/account');
$this->load->plugin('captcha');
$this->load->helper('form');
$vals = array(
'word' => '',
'img_path' => 'system/captcha/',
'img_url' => WEBSITE.'/system/captcha/',
'font_path' => WEBSITE.'/system/fonts/texb.ttf',
'img_width' => '156',
'img_height' => 30,
'expiration' => 120
);
if(!$_POST && $ajax == 0) {
$cap = create_captcha($vals);
}
if($_POST) {
$this->load->library('form_validation');
$_POST['nickname'] = ucfirst(strtolower($_POST['nickname']));
$this->form_validation->set_rules('name', 'Account Name', 'required|min_length[4]|max_length[32]|callback__account_exists|alpha_numeric|callback__checkDelay');
$this->form_validation->set_rules('nickname', 'Nickname', 'required|min_length[4]|max_length[32]|callback__nicknameExists');
$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|callback__emailExists');
$this->form_validation->set_rules('character_name', 'Character Name', 'required|min_length[4]|max_length[32]|nickname|callback__characterExists|callback__validName');
$this->form_validation->set_rules('city', 'City', 'required|integer|callback__checkCity');
$this->form_validation->set_rules('world', 'World', 'required|integer|callback__checkWorld');
$this->form_validation->set_rules('vocation', 'Vocation', 'required|integer|callback__checkVocation');
$this->form_validation->set_rules('sex', 'Sex', 'required|integer|callback__checkSex');
$this->form_validation->set_rules('captcha', 'Captcha', 'required|callback__checkCaptcha');
if($this->form_validation->run() == TRUE) {
require(APPPATH.'config/ide_default.php');
$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$account = new OTS_Account();
$name = $account->createNamed($_POST['name']);
$account->setPassword(sha1($_POST['password']));
$account->setEmail($_POST['email']);
$account->setCustomField('nickname', $_POST['nickname']);
$account->setCustomField('premdays', PREMDAYS);
$account->setCustomField('lastday', $_SERVER['REQUEST_TIME']);
try {
$account->save();
unset($account);
$_SESSION['logged'] = 1;
$_SESSION['name'] = $_POST['name'];
$_SESSION['nickname'] = $_POST['nickname'];
$_SESSION['accountDelay'] = time();
$account = $ots->createObject('Account');
$account->find($_POST['name']);
$sample = new OTS_Player();
$sample->find($config['newchar_vocations'][$_POST['world']][$_POST['vocation']]);
if(!$sample->isLoaded()) { show_error('Sample character could not be found!'); }
// Create new character
$player = $ots->createObject('Player');
$player->setName($this->strFirst($_POST['character_name']));
$player->setAccount($account);
$player->setWorld($_POST['world']);
$player->setGroup($sample->getGroup());
$player->setSex($_POST['sex']);
$player->setVocation($sample->getVocation());
$player->setConditions($sample->getConditions());
$player->setRank($sample->getRank());
$player->setLookAddons($sample->getLookAddons());
$player->setTownId($_POST['city']);
$player->setExperience($sample->getExperience());
$player->setLevel($sample->getLevel());
$player->setMagLevel($sample->getMagLevel());
$player->setHealth($sample->getHealth());
$player->setHealthMax($sample->getHealthMax());
$player->setMana($sample->getMana());
$player->setManaMax($sample->getManaMax());
$player->setManaSpent($sample->getManaSpent());
$player->setSoul($sample->getSoul());
$player->setDirection($sample->getDirection());
$player->setLookBody($sample->getLookBody());
$player->setLookFeet($sample->getLookFeet());
$player->setLookHead($sample->getLookHead());
$player->setLookLegs($sample->getLookLegs());
$player->setLookType($sample->getLookType());
$player->setCap($sample->getCap());
$player->setPosX($startPos['x']);
$player->setPosY($startPos['y']);
$player->setPosZ($startPos['z']);
$player->setLossExperience($sample->getLossExperience());
$player->setLossMana($sample->getLossMana());
$player->setLossSkills($sample->getLossSkills());
$player->setLossItems($sample->getLossItems());
$player->setLossContainers($sample->getLossContainers());
$player->save();
$_SESSION['characterDelay'] = $_SERVER['REQUEST_TIME'];
unset($player);
$player = $ots->createObject('Player');
$player->find($_POST['character_name']);
if($player->isLoaded())
{
$player->setSkill(0,$sample->getSkill(0));
$player->setSkill(1,$sample->getSkill(1));
$player->setSkill(2,$sample->getSkill(2));
$player->setSkill(3,$sample->getSkill(3));
$player->setSkill(4,$sample->getSkill(4));
$player->setSkill(5,$sample->getSkill(5));
$player->setSkill(6,$sample->getSkill(6));
$player->save();
$SQL = POT::getInstance()->getDBHandle();
$loaded_items_to_copy = $SQL->query("SELECT * FROM player_items WHERE player_id = ".$sample->getId()."");
foreach($loaded_items_to_copy as $save_item)
$SQL->query("INSERT INTO `player_items` (`player_id` ,`pid` ,`sid` ,`itemtype`, `count`, `attributes`) VALUES ('".$player->getId()."', '".$save_item['pid']."', '".$save_item['sid']."', '".$save_item['itemtype']."', '".$save_item['count']."', '".$save_item['attributes']."');");
if($ajax == 0)
$ide->redirect(WEBSITE.'/index.php/account');
else
$ide->criticalRedirect(WEBSITE.'/index.php/account');
}
}
catch(Exception $e) {
error($e->getMessage());
}
}
else {
if($ajax == 0) $cap = create_captcha($vals);
}
}
if($ajax == 0) {
$_SESSION['captcha'] = $cap['word'];
$data['captcha'] = $cap['image'];
}
#Load view of creating account
if($ajax == 1) {
echo error(validation_errors());
$ide->system_stop();
}
else {
$this->load->view('create', $data);
}
}
/* Function to check if passed login and password are correct, it uses abstract database model. */
function _check_login() {
$this->load->model("Account_model");
if($this->Account_model->check_login() == false) {
$this->form_validation->set_message("_check_login", "Nome da conta ou senha estão incorretos.");
return false;
}
else
return true;
}
/* Login controller */
function login($action = 0) {
if((int) $action == 1) success("Você foi desconectado.");
if((int) $action == 2) success("Sua conta foi recuperada. Você pode fazer o login agora.");
$ide = new IDE;
$this->load->helper("form");
$this->load->library("form_validation");
if($_POST) {
$this->form_validation->set_rules('name', 'Account Name', 'required|callback__check_login');
$this->form_validation->set_rules('pass', 'Password', 'required');
if(in_array($_POST['name'], $GLOBALS['config']['restrictedAccounts']))
error("A conta que você tentar o acesso é restrito!");
else {
if($this->form_validation->run() == true) {
$_SESSION['logged'] = 1;
$_SESSION['name'] = $_POST['name'];
if(!empty($_SESSION['forward'])) {
$forward = $_SESSION['forward'];
$_SESSION['forward'] = "";
$ide->redirect($forward);
}
else
$ide->redirect(WEBSITE.'/index.php/account');
}
}
}
/* Load view of login page. */
$this->load->view("login");
}
/* Function to logout from account. */
function logout() {
$ide = new IDE;
$_SESSION['logged'] = '';
$_SESSION['account_id'] = '';
$_SESSION['name'] = '';
$_SESSION['admin'] = 0;
$_SESSION['forward'] = "";
$ide->redirect('login/1');
}
/* Controller to generate random recovery key and save it, accessed by user, only once per account. */
function generate_recovery_key() {
$this->load->helper("form");
$ide = new IDE;
$ide->requireLogin();
$this->load->model("Account_model");
if($_POST) {
$data['info'] = '';
$key = $this->Account_model->generateKey($_SESSION['name']);
success("<center><font size='4'>$key</font></center>");
alert("<b>salvar este recovery key, você vê esta tecla uma única vez! Você nunca vai vê-lo novamente, não atualizar ou afastar-se este site até que você salvá-lo!</b>");
}
else
$data['info'] = '<id=\'info\'><b>Pressione este botão para gerar o seu único recovery key. <br>Lembre-se! Você pode fazer isso apenas uma vez! Sua chave de recuperação será mostrado apenas uma vez! Anotá-la, por razões de segurança, recomendamos que não salvá-lo em computadores disco rígido!</b><br><center><input type=\'submit\' value=\'Generate\' name=\'submit\'></center>';
/* Load view of generating new recovery key. */
$this->load->view('generate_recovery_key', $data);
}
function _checkCurrentPassword($pass) {
$this->load->model("account_model");
if($this->account_model->checkPassword($pass))
return true;
else {
$this->form_validation->set_message("_checkCurrentPassword", "Senha atual está incorreto.");
return false;
}
}
function changepassword() {
$ide = new IDE;
$ide->requireLogin();
$this->load->helper("form_helper");
if($_POST) {
$this->load->library("form_validation");
$this->form_validation->set_rules('current', 'Current Password', 'required|callback__checkCurrentPassword');
$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
if($this->form_validation->run() == true) {
$this->load->model("account_model");
$this->account_model->changePassword($_POST['password'], $_SESSION['name']);
success("Your password has been changed.");
$ide->redirect(WEBSITE."/index.php/account", 2);
}
}
$this->load->view("changepassword");
}
function editcomment($id) {
$ide = new IDE;
$ide->requireLogin();
if(empty($id)) $ide->redirect(WEBSITE."/index.php/account");
$this->load->model("account_model");
if(!$this->account_model->isUserPlayer($id)) $ide->redirect(WEBSITE."/index.php/account");
$data['id'] = $id;
if($_POST) {
$this->load->library("form_validation");
$this->form_validation->set_rules('comment', 'Comment', 'max_length[255]|alpha_ide');
if($this->form_validation->run() == true) {
if(@$_POST['hide'] == 1)
$this->account_model->changeComment($id, $_POST['comment'], true);
else
$this->account_model->changeComment($id, $_POST['comment'], false);
success("Your comment has been changed.");
$ide->redirect(WEBSITE."/index.php/account", 2);
}
}
$data['comment'] = $this->account_model->getPlayerComment($id);
$this->load->helper("form_helper");
$this->load->view("edit_comment", $data);
}
function deletePlayer($id) {
$ide = new IDE;
$ide->requireLogin();
$id = (int)$id;
if(empty($id)) $ide->redirect(WEBSITE."/index.php/account");
$this->load->model("account_model");
if(!$this->account_model->isUserPlayer($id)) $ide->redirect(WEBSITE."/index.php/account");
$this->account_model->deletePlayer($id);
$ide->redirect(WEBSITE."/index.php/account");
}
public function setNickname() {
$ide = new IDE;
$ide->requireLogin();
if(!empty($_SESSION['nickname'])) $ide->goPrevious();
$this->load->helper("form_helper");
if($_POST) {
$_POST['nickname'] = ucfirst(strtolower($_POST['nickname']));
$this->load->library("form_validation");
$this->form_validation->set_rules('nickname', 'Nickname', 'required|min_length[4]|max_length[32]|nickname|callback__nicknameExists');
$this->form_validation->set_rules('rules', 'Rules', 'required');
if($this->form_validation->run()) {
$this->load->model("account_model");
$this->account_model->setNickname($ide->loggedAccountId(), $_POST['nickname']);
$_SESSION['nickname'] = $_POST['nickname'];
$ide->redirect(WEBSITE."/index.php/account/index/2");
}
}
$this->load->view("setNickname");
}
function _validKey($key) {
$this->load->model("account_model");
$_POST['key'] = str_replace("-", "", $_POST['key']);
if($this->account_model->checkKey($_POST['key'], $_POST['email'])) {
return true;
}
else {
$this->form_validation->set_message("_validKey", "Não foi possível alterar a senha. Fazer e-mail seguro e recovery key são válidas.");
return false;
}
}
public function lost() {
$ide = new IDE;
$this->load->helper("form_helper");
if($_POST) {
$_POST['key'] = str_replace("-", "", $_POST['key']);
$this->load->library("form_validation");
$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
$this->form_validation->set_rules('key', 'Recovery Key', 'required|callback__validKey');
if($this->form_validation->run()) {
$this->load->model("account_model");
$this->account_model->recoveryAccount($_POST['key'], $_POST['email'], $_POST['password']);
$ide->redirect(WEBSITE."/index.php/account/login/2");
}
}
$this->load->view("account_lost");
}
}
?>
<?php
$GLOBALS['characters'] = $characters;
$ide = new IDE;
try { $ide->loadInjections("account"); } catch(Exception $e) { error($e->getMessage()); }
echo "<h2>Olá <a href='".url('profile/view/'.$_SESSION['nickname'])."'>".ucfirst($_SESSION['nickname'])."</a>!</h2>";
if($messages != 0)
if($messages == 1)
echo "<center><b>você tem $messages new message! Click <a href='".url('msg/inbox')."'>aqui</a> para lê-los!</b></center><br/>";
else
echo "<center><b>você tem $messages new messages! Click <a href='".url('msg/inbox')."'>aqui</a> para lê-los!</b></center><br/>";
?>
<script>$(function(){$("#tabs").tabs();});</script>
<?php
echo "<div id='tabs'>";
echo '<ul>
<li><a href="#characters">Pessonagem</a></li>
<li><a href="#account">Conta</a></li>
<li><a href="#community">Comunidade</a></li>
<li><a href="#Mensagem">Mensagem</a></li>
</ul>';
echo "<div id='characters'>";
echo "<center><a href='".WEBSITE."/index.php/character/create_character'><button class='ide_button' onClick=\"window.location.href='".WEBSITE."/index.php/character/create_character';\">Criar Pessonagem</button></a></center>";
echo "<table width='100%'>";
echo "<tr><td><center><b>Nome</b></center></td><td><center><b>Level</b></center></td><td><center><b>Ações</b></center></td></tr>";
foreach($characters as $row) {
echo "<tr class='highlight'><td><center><a href=\"".WEBSITE."/index.php/character/view/$row->name\">$row->name</a></center></td><td><center>$row->level</center></td><td><center><a href=\"".WEBSITE."/index.php/account/editcomment/$row->id\" class='tipsy' title='Editar comentário'><img src='".WEBSITE."/public/images/edit.gif'/></a> <a href='#' onClick='if(confirm(\"Are you sure?\")) window.location.href=\"".WEBSITE."/index.php/account/deletePlayer/$row->id\"' class='tipsy' title='Excluir Pessonagem'><img src='".WEBSITE."/public/images/false.gif'/></a></center></td></tr>";
}
echo "</table>";
echo "</div>";
echo "<div id='account'>";
echo "<center><a href='".WEBSITE."/index.php/account/changepassword'><button class='ide_button' onClick=\"window.location.href='".WEBSITE."/index.php/account/changepassword';\">alterar a senha</button></a></center>";
echo "<br>";
echo "<center><a href='".WEBSITE."/index.php/account/generate_recovery_key'><button class='ide_button' onClick=\"window.location.href='".WEBSITE."/index.php/account/generate_recovery_key';\">recovery key</button></a></center>";
echo "</div>";
echo "<div id='community'>";
echo "<b>Perfil</b>";
echo "<li><a href='".WEBSITE."/index.php/profile/update'>Editar perfil</a></li>";
echo "<li><a href='".WEBSITE."/index.php/profile/avatar'>atualização Avatar</a></li>";
echo "</div>";
echo "<div id='Mensagem'>";
echo "<b>Mensagens</b>";
echo "<li><a href='".WEBSITE."/index.php/msg/inbox'>Caixa de Entrada</a></li>";
echo "<li><a href='".WEBSITE."/index.php/msg/outbox'>Caixa de saída</a></li>";
echo "<li><a href='".WEBSITE."/index.php/msg/write'>Escrever nova</a></li>";
echo "</div>";
echo "<div id='logout'>";
echo "</div>";
echo "</div>";
if(empty($acc[0]['rlname']) || empty($acc[0]['location']) || empty($acc[0]['about_me']))
alert("Você pode considerar atualizar seu perfil público <a href='".WEBSITE."/index.php/profile/update'><b>Aqui</b></a>!");
?>
Editado Novembro 6 por ChuckNorris666
info
Grupo: Marquês
Registrado: 26/02/12
Posts: 1.1k
Reputação: +369
Gênero: Masculino
Char no Tibia: Tibjohiand Tito

Veja se funciona, não testei.
<?php
/* Configure */
# Configure o banco de dados, para que o jogador possa ser enviado ao templo.
## Database ##
$host = "localhost";
$user = "root";
$passwd ="PASSWORD";
$db = "Database NAME";
## Posicoes ##
$posx = "160";
$posy = "54";
$posz = "7";
$town_id = "1";
$player_id = $row->id;
$lnk = mysql_connect("$host", "$user", "$passwd") or die ('Nao foi possível conectar ao MySql: ' . mysql_error());
mysql_select_db("$db", $lnk) or die ('Nao foi possível ao banco de dados selecionado no MySql: ' . mysql_error());
/* //Configure */
if ($page == "enviar"){
echo "Jogador foi enviado ao templo com sucesso!";
mysql_query ("
UPDATE `website`.`players` SET
`town_id` = '$town_id',
`posx` = '$posx',
`posy` = '$posy',
`posz` = '$posz'
WHERE
`players`.`id` = $player_id LIMIT 1;
");
}
?>
Caso apresente algum erro, poste screen shot por gentileza.
Duvida Sanada?
Editado Novembro 11 por VictorWebMaster


info
Grupo: Conde
Registrado: 30/04/11
Posts: 658
Reputação: +71
Gênero: Masculino
Char no Tibia: ExTibiano
Olá pessoal, gente queria saber se alguém pode fazer algo
que dê para implantar um link na área do player (quando tiver logado no site)
para "desbugar" o char ou seja se dé um debug ou ficar preso seila, o player loga no site e clica em
'Mover Char' dai ele será movido para a city que ele nasceu.. teria como alguém me ajuda com isso?
obg pela atenção! do REP+²