Ir para conteúdo

DiigooMix

Membro
  • Registro em

  • Última visita

  1. Vou testar ele, assim que possível retorno para dar meu feedback e possivelmente marcar sua resposta como a solução do tópico. Mas de qualquer forma, muito obrigado desde já. [edited] Testei aqui, o site ttk-my-aac está dando o mesmo problema ao tentar logar com email maior que 30 caracteres, não tem como digitar o email completo, sendo assim não da pra logar a acc; Mesmo erro ao testar recuperar conta em Account Lost Server Save themebox gostaria de saber configurar, poderia me ensinar? Configurei horário do server save no config.php igual o config.lua do server (00:00:00). Liguei o server e não aconteceu nada, então mudei a data manualmente no arquivo da themebox ai começou a marcar.. essa themebox não funciona de forma automática? Ou eu que não estou sabendo configurar? Poderia me ensinar? Boss está mostrando normalmente, problema/dúvida 5 resolvido em partes. Em relação a criatura boostada e boss boostado, teria como alterar o script para não mostrar nenhuma criatura ou boss, enquanto o server estiver offline? Está funcionando normalmente agora, mas mostra mesmo com server off, resolveu meu problema 4.
  2. Estou usando um modelo de MyAAC em meu projeto, que por acaso, pesquisando sobre minhas dúvidas, descobri que é o mesmo deste post: Não sei dizer se é a mesma versão, mas tem praticamente tudo que o meu site MyAAC possui. Problema 1: Estou com o problema na themebox de Server Save: Para ele funcionar, configurei server time no config.php principal do site para 00:00:00, e tive que adicionar a data manualmente do próximo SS, para que o relógio conte as horas corretamente. Gostaria de saber se há alguma forma de modificar o script dessa themebox para que atualize a próxima data automaticamente. Segue abaixo o script da themebox, arquivo serversave.php Caso não possa fazer o download do arquivo, aqui vai o script: A edição da data é feita na linha 55, onde começa assim: var countDownDate = new Date("Jun 07, 2023 <style> .serversave{ width: 180px; height: 135px; } .serversave_header{ height: 45px; width: 180px; background-image: url('templates/tibiacom/images/themeboxes/box_top.png'); font-family: Verdana; font-weight: bold; color: #d5c3af; line-height: 65px; } .serversave_bottom{ height: 30px; width: 180px; margin-top: -20px; background-image: url('templates/tibiacom/images/themeboxes/box_bottom.png'); } .serversave_content{ padding: 0px 10px; width: 160px; height: 70px; background-image: url('templates/tibiacom/images/themeboxes/box_bg.png'); text-align: center; display: grid; justify-content: center; align-items: center; } .serversave_text{ font-family: Verdana; color: #d5c3af; font-size: 12px !important; } .serversave_countdown{ font-family: Verdana; font-size: 22px !important; font-weight: bold; color: #d5c3af; border: 1px solid #d5c3af; border-radius: 3px; padding: 5px 0px; } </style> <?php global $config; $server_save = $config['server_save']; $explodeServerSave = explode(':', $server_save); $hours_ServerSave = $explodeServerSave[0]; $minutes_ServerSave = $explodeServerSave[1]; $seconds_ServerSave = $explodeServerSave[2]; ?> <script> var countDownDate = new Date("Jun 07, 2023 <?php echo $hours_ServerSave ?>:<?php echo $minutes_ServerSave ?>:<?php echo $seconds_ServerSave ?>").getTime(); var x = setInterval(function() { var now = new Date().getTime(); var distance = countDownDate - now; var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); document.getElementById("timerServerSave").innerHTML = "" + hours + ":" + minutes + ":" + seconds + ""; if (distance < 0) { clearInterval(x); document.getElementById("timerServerSave").innerHTML = "Server save now!"; } }, 1000); </script> <div class="serversave"> <div class="serversave_header">Server Save</div> <div class="serversave_content"> <div class="serversave_text"> <small>Countdown to server save</small> </div> <div class="serversave_countdown" id="timerServerSave"></div> </div> <div class="serversave_bottom"></div> </div> Problema 2: Encontrei o erro abaixo ao testar, recuperação de conta através do "account lost", onde primeiramente pede o nome de um personagem da conta, e clico na opção: Send me new password and my account name to account e-mail adress. Após esse passo, coloco o email da conta em questão, e ao clicar em Submit, me deparo com este erro: Segue o arquivo: lostaccount.php Ou o código do arquivo: <?php /** * Lost account * * @package MyAAC * @author Gesior <[email protected]> * @author Slawkens <[email protected]> * @copyright 2019 MyAAC * @link https://my-aac.org */ defined('MYAAC') or die('Direct access not allowed!'); $title = 'Lost Account Interface'; if(!$config['mail_enabled']) { echo '<b>Account maker is not configured to send e-mails, you can\'t use Lost Account Interface. Contact with admin to get help.</b>'; return; } $config_salt_enabled = $db->hasColumn('accounts', 'salt'); $action_type = isset($_REQUEST['action_type']) ? $_REQUEST['action_type'] : ''; if($action == '') { $twig->display('account.lost.form.html.twig'); } else if($action == 'step1' && $action_type == '') { $twig->display('account.lost.noaction.html.twig'); } elseif($action == 'step1' && $action_type == 'email') { $nick = stripslashes($_REQUEST['nick']); if(Validator::characterName($nick)) { $player = new OTS_Player(); $account = new OTS_Account(); $player->find($nick); if($player->isLoaded()) $account = $player->getAccount(); if($account->isLoaded()) { if($account->getCustomField('email_next') < time()) echo 'Please enter e-mail to account with this character.<BR> <form action="?subtopic=lostaccount&action=sendcode" method=post> <input type=hidden name="character"> <table cellspacing=1 cellpadding=4 border=0 width=100%> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Please enter e-mail to account</B></TD></TR> <TR><TD BGCOLOR="'.$config['darkborder'].'"> Character: <INPUT TYPE=text NAME="nick" VALUE="'.$nick.'" SIZE="40" readonly="readonly"><BR> E-mail to account:<INPUT TYPE=text NAME="email" VALUE="" SIZE="40"><BR> </TD></TR> </TABLE> <BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> ' . $twig->render('buttons.submit.html.twig') . '</div> </TD></TR></FORM></TABLE></TABLE>'; else { $insec = $account->getCustomField('email_next') - time(); $minutesleft = floor($insec / 60); $secondsleft = $insec - ($minutesleft * 60); $timeleft = $minutesleft.' minutes '.$secondsleft.' seconds'; echo 'Account of selected character (<b>'.$nick.'</b>) received e-mail in last '.ceil($config['email_lai_sec_interval'] / 60).' minutes. You must wait '.$timeleft.' before you can use Lost Account Interface again.'; } } else echo 'Player or account of player <b>' . $nick . '</b> doesn\'t exist.'; } else echo 'Invalid player name format. If you have other characters on account try with other name.'; echo '<BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> <a href="?subtopic=lostaccount" border="0"><IMG SRC="'.$template_path.'/images/global/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></div> </TD></TR></FORM></TABLE></TABLE>'; } elseif($action == 'sendcode') { $email = $_REQUEST['email']; $nick = stripslashes($_REQUEST['nick']); if(Validator::characterName($nick)) { $player = new OTS_Player(); $account = new OTS_Account(); $player->find($nick); if($player->isLoaded()) $account = $player->getAccount(); if($account->isLoaded()) { if($account->getCustomField('email_next') < time()) { if($account->getEMail() == $email) { $newcode = generateRandomString(30, true, false, true); $mailBody = ' You asked to reset your ' . $config['lua']['serverName'] . ' password.<br/> <p>Account name: '.$account->getName().'</p> <br /> To do so, please click this link: <p><a href="' . BASE_URL . '?subtopic=lostaccount&action=checkcode&code='.$newcode.'&character='.urlencode($nick).'">'.BASE_URL.'/?subtopic=lostaccount&action=checkcode&code='.$newcode.'&character='.urlencode($nick).'</a></p> <p>or open page: <i>' . BASE_URL . '?subtopic=lostaccount&action=checkcode</i> and in field "code" write <b>'.$newcode.'</b></p> <br/> <p>If you did not request a password change, you may ignore this message and your password will remain unchanged.'; $account_mail = $account->getCustomField('email'); if(_mail($account_mail, $config['lua']['serverName'].' - Recover your account', $mailBody)) { $account->setCustomField('email_code', $newcode); $account->setCustomField('email_next', (time() + $config['email_lai_sec_interval'])); echo '<br />Details about steps required to recover your account has been sent to <b>' . $account_mail . '</b>. You should receive this email within 15 minutes. Please check your inbox/spam directory.'; } else { $account->setCustomField('email_next', (time() + 60)); echo '<br /><p class="error">An error occurred while sending email! Try again later or contact with admin. For Admin: More info can be found in system/logs/mailer-error.log</p>'; } } else echo 'Invalid e-mail to account of character <b>'.$nick.'</b>. Try again.'; } else { $insec = $account->getCustomField('email_next') - time(); $minutesleft = floor($insec / 60); $secondsleft = $insec - ($minutesleft * 60); $timeleft = $minutesleft.' minutes '.$secondsleft.' seconds'; echo 'Account of selected character (<b>'.$nick.'</b>) received e-mail in last '.ceil($config['email_lai_sec_interval'] / 60).' minutes. You must wait '.$timeleft.' before you can use Lost Account Interface again.'; } } else echo 'Player or account of player <b>'.$nick.'</b> doesn\'t exist.'; } else echo 'Invalid player name format. If you have other characters on account try with other name.'; echo '<BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> <a href="?subtopic=lostaccount&action=step1&action_type=email&nick='.urlencode($nick).'" border="0"><IMG SRC="'.$template_path.'/images/global/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></div> </TD></TR></FORM></TABLE></TABLE>'; } elseif($action == 'step1' && $action_type == 'reckey') { $nick = stripslashes($_REQUEST['nick']); if(Validator::characterName($nick)) { $player = new OTS_Player(); $account = new OTS_Account(); $player->find($nick); if($player->isLoaded()) $account = $player->getAccount(); if($account->isLoaded()) { $account_key = $account->getCustomField('key'); if(!empty($account_key)) { echo 'If you enter right recovery key you will see form to set new e-mail and password to account. To this e-mail will be send your new password and account name.<BR> <FORM ACTION="?subtopic=lostaccount&action=step2" METHOD=post> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Please enter your recovery key</B></TD></TR> <TR><TD BGCOLOR="'.$config['darkborder'].'"> Character name:&nbsp;<INPUT TYPE=text NAME="nick" VALUE="'.$nick.'" SIZE="40" readonly="readonly"><BR /> Recovery key:&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=text NAME="key" VALUE="" SIZE="40"><BR> </TD></TR> </TABLE> <BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> ' . $twig->render('buttons.submit.html.twig') . '</div> </TD></TR></FORM></TABLE></TABLE>'; } else echo 'Account of this character has no recovery key!'; } else echo 'Player or account of player <b>'.$nick.'</b> doesn\'t exist.'; } else echo 'Invalid player name format. If you have other characters on account try with other name.'; echo '<BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> <a href="?subtopic=lostaccount" border="0"><IMG SRC="'.$template_path.'/images/global/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></div> </TD></TR></FORM></TABLE></TABLE>'; } elseif($action == 'step2') { $rec_key = trim($_REQUEST['key']); $nick = stripslashes($_REQUEST['nick']); if(Validator::characterName($nick)) { $player = new OTS_Player(); $account = new OTS_Account(); $player->find($nick); if($player->isLoaded()) $account = $player->getAccount(); if($account->isLoaded()) { $account_key = $account->getCustomField('key'); if(!empty($account_key)) { if($account_key == $rec_key) { echo '<script type="text/javascript"> function validate_required(field,alerttxt) { with (field) { if (value==null||value==""||value==" ") {alert(alerttxt);return false;} else {return true} } } function validate_email(field,alerttxt) { with (field) { apos=value.indexOf("@"); dotpos=value.lastIndexOf("."); if (apos<1||dotpos-apos<2) {alert(alerttxt);return false;} else {return true;} } } function validate_form(thisform) { with (thisform) { if (validate_required(email,"Please enter your e-mail!")==false) {email.focus();return false;} if (validate_email(email,"Invalid e-mail format!")==false) {email.focus();return false;} if (validate_required(passor,"Please enter password!")==false) {passor.focus();return false;} if (validate_required(passor2,"Please repeat password!")==false) {passor2.focus();return false;} if (passor2.value!=passor.value) {alert(\'Repeated password is not equal to password!\');return false;} } } </script>'; echo 'Set new password and e-mail to your account.<BR> <FORM ACTION="?subtopic=lostaccount&action=step3" onsubmit="return validate_form(this)" METHOD=post> <INPUT TYPE=hidden NAME="character" VALUE=""> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Please enter new password and e-mail</B></TD></TR> <TR><TD BGCOLOR="'.$config['darkborder'].'"> Account of character:&nbsp;&nbsp;<INPUT TYPE=text NAME="nick" VALUE="'.$nick.'" SIZE="40" readonly="readonly"><BR /> New password:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT id="passor" TYPE=password NAME="passor" VALUE="" SIZE="40"><BR> Repeat new password:&nbsp;&nbsp;<INPUT id="passor2" TYPE=password NAME="passor" VALUE="" SIZE="40"><BR> New e-mail address:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT id="email" TYPE=text NAME="email" VALUE="" SIZE="40"><BR> <INPUT TYPE=hidden NAME="key" VALUE="'.$rec_key.'"> </TD></TR> </TABLE> <BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> ' . $twig->render('buttons.submit.html.twig') . '</div> </TD></TR></FORM></TABLE></TABLE>'; } else echo 'Wrong recovery key!'; } else echo 'Account of this character has no recovery key!'; } else echo 'Player or account of player <b>'.$nick.'</b> doesn\'t exist.'; } else echo 'Invalid player name format. If you have other characters on account try with other name.'; echo '<BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> <a href="?subtopic=lostaccount&action=step1&action_type=reckey&nick='.urlencode($nick).'" border="0"><IMG SRC="'.$template_path.'/images/global/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></div> </TD></TR></FORM></TABLE></TABLE>'; } elseif($action == 'step3') { $rec_key = trim($_REQUEST['key']); $nick = stripslashes($_REQUEST['nick']); $new_pass = trim($_REQUEST['passor']); $new_email = trim($_REQUEST['email']); if(Validator::characterName($nick)) { $player = new OTS_Player(); $account = new OTS_Account(); $player->find($nick); if($player->isLoaded()) $account = $player->getAccount(); if($account->isLoaded()) { $account_key = $account->getCustomField('key'); if(!empty($account_key)) { if($account_key == $rec_key) { if(Validator::password($new_pass)) { if(Validator::email($new_email)) { $account->setEMail($new_email); $tmp_new_pass = $new_pass; if($config_salt_enabled) { $salt = generateRandomString(10, false, true, true); $tmp_new_pass = $salt . $new_pass; } $account->setPassword(encrypt($tmp_new_pass)); $account->save(); if($config_salt_enabled) $account->setCustomField('salt', $salt); echo 'Your account name, new password and new e-mail.<BR> <FORM ACTION="?subtopic=accountmanagement" onsubmit="return validate_form(this)" METHOD=post> <INPUT TYPE=hidden NAME="character" VALUE=""> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Your account name, new password and new e-mail</B></TD></TR> <TR><TD BGCOLOR="'.$config['darkborder'].'"> Account name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>'.$account->getName().'</b><BR> New password:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>'.$new_pass.'</b><BR> New e-mail address:&nbsp;<b>'.$new_email.'</b><BR>'; if($account->getCustomField('email_next') < time()) { $mailBody = ' <h3>Your account name and new password!</h3> <p>Changed password and e-mail to your account in Lost Account Interface on server <a href="'.BASE_URL.'"><b>'.$config['lua']['serverName'].'</b></a></p> <p>Account name: <b>'.$account->getName().'</b></p> <p>New password: <b>'.$new_pass.'</b></p> <p>E-mail: <b>'.$new_email.'</b> (this e-mail)</p> <br /> <p><u>It\'s automatic e-mail from OTS Lost Account System. Do not reply!</u></p>'; if(_mail($account->getCustomField('email'), $config['lua']['serverName']." - New password to your account", $mailBody)) { echo '<br /><small>Sent e-mail with your account name and password to new e-mail. You should receive this e-mail in 15 minutes. You can login now with new password!</small>'; } else { echo '<br /><p class="error">An error occurred while sending email! You will not receive e-mail with this informations. For Admin: More info can be found in system/logs/mailer-error.log</p>'; } } else { echo '<br /><small>You will not receive e-mail with this informations.</small>'; } echo '<INPUT TYPE=hidden NAME="account_login" VALUE="'.$account->getId().'"> <INPUT TYPE=hidden NAME="password_login" VALUE="'.$new_pass.'"> </TD></TR></TABLE><BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> <INPUT TYPE=image NAME="Login" ALT="Login" SRC="'.$template_path.'/images/global/buttons/sbutton_login.gif" BORDER=0 WIDTH=120 HEIGHT=18></div> </TD></TR></FORM></TABLE></TABLE>'; } else echo Validator::getLastError(); } else echo Validator::getLastError(); } else echo 'Wrong recovery key!'; } else echo 'Account of this character has no recovery key!'; } else echo 'Player or account of player <b>'.$nick.'</b> doesn\'t exist.'; } else echo 'Invalid player name format. If you have other characters on account try with other name.'; echo '<BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> <a href="?subtopic=lostaccount&action=step1&action_type=reckey&nick='.urlencode($nick).'" border="0"><IMG SRC="'.$template_path.'/images/global/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></div> </TD></TR></FORM></TABLE></TABLE>'; } elseif($action == 'checkcode') { $code = trim($_REQUEST['code']); $character = stripslashes(trim($_REQUEST['character'])); if(empty($code) || empty($character)) echo 'Please enter code from e-mail and name of one character from account. Then press Submit.<BR> <FORM ACTION="?subtopic=lostaccount&action=checkcode" METHOD=post> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Code & character name</B></TD></TR> <TR><TD BGCOLOR="'.$config['darkborder'].'"> Your code:&nbsp;<INPUT TYPE=text NAME="code" VALUE="" SIZE="40")><BR /> Character:&nbsp;<INPUT TYPE=text NAME="character" VALUE="" SIZE="40")><BR /> </TD></TR> </TABLE> <BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> ' . $twig->render('buttons.submit.html.twig') . '</div> </TD></TR></FORM></TABLE></TABLE>'; else { $player = new OTS_Player(); $account = new OTS_Account(); $player->find($character); if($player->isLoaded()) $account = $player->getAccount(); if($account->isLoaded()) { if($account->getCustomField('email_code') == $code) { echo '<script type="text/javascript"> function validate_required(field,alerttxt) { with (field) { if (value==null||value==""||value==" ") {alert(alerttxt);return false;} else {return true} } } function validate_form(thisform) { with (thisform) { if (validate_required(passor,"Please enter password!")==false) {passor.focus();return false;} if (validate_required(passor2,"Please repeat password!")==false) {passor2.focus();return false;} if (passor2.value!=passor.value) {alert(\'Repeated password is not equal to password!\');return false;} } } </script> Please enter new password to your account and repeat to make sure you remember password.<BR> <FORM ACTION="?subtopic=lostaccount&action=setnewpassword" onsubmit="return validate_form(this)" METHOD=post> <INPUT TYPE=hidden NAME="character" VALUE="'.$character.'"> <INPUT TYPE=hidden NAME="code" VALUE="'.$code.'"> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Code & account name</B></TD></TR> <TR><TD BGCOLOR="'.$config['darkborder'].'"> New password:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=password ID="passor" NAME="passor" VALUE="" SIZE="40")><BR /> Repeat new password:&nbsp;<INPUT TYPE=password ID="passor2" NAME="passor2" VALUE="" SIZE="40")><BR /> </TD></TR> </TABLE> <BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> ' . $twig->render('buttons.submit.html.twig') . '</div> </TD></TR></FORM></TABLE></TABLE>'; } else $error= 'Wrong code to change password.'; } else $error = 'Account of this character or this character doesn\'t exist.'; } if(!empty($error)) echo '<span style="color: red"><b>'.$error.'</b></span><br />Please enter code from e-mail and name of one character from account. Then press Submit.<BR> <FORM ACTION="?subtopic=lostaccount&action=checkcode" METHOD=post> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Code & character name</B></TD></TR> <TR><TD BGCOLOR="'.$config['darkborder'].'"> Your code:&nbsp;<INPUT TYPE=text NAME="code" VALUE="" SIZE="40")><BR /> Character:&nbsp;<INPUT TYPE=text NAME="character" VALUE="" SIZE="40")><BR /> </TD></TR> </TABLE> <BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> ' . $twig->render('buttons.submit.html.twig') . '</div> </TD></TR></FORM></TABLE></TABLE>'; } elseif($action == 'setnewpassword') { $newpassword = $_REQUEST['passor']; $code = $_REQUEST['code']; $character = stripslashes($_REQUEST['character']); echo ''; if(empty($code) || empty($character) || empty($newpassword)) echo '<span style="color: red"><b>Error. Try again.</b></span><br />Please enter code from e-mail and name of one character from account. Then press Submit.<BR> <BR><FORM ACTION="?subtopic=lostaccount&action=checkcode" METHOD=post> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> <INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$template_path.'/images/global/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18></div> </TD></TR></FORM></TABLE></TABLE>'; else { $player = new OTS_Player(); $account = new OTS_Account(); $player->find($character); if($player->isLoaded()) $account = $player->getAccount(); if($account->isLoaded()) { if($account->getCustomField('email_code') == $code) { if(Validator::password($newpassword)) { $tmp_new_pass = $newpassword; if($config_salt_enabled) { $salt = generateRandomString(10, false, true, true); $tmp_new_pass = $salt . $newpassword; $account->setCustomField('salt', $salt); } $account->setPassword(encrypt($tmp_new_pass )); $account->save(); $account->setCustomField('email_code', ''); echo 'New password to your account is below. Now you can login.<BR> <INPUT TYPE=hidden NAME="character" VALUE="'.$character.'"> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Changed password</B></TD></TR> <TR><TD BGCOLOR="'.$config['darkborder'].'"> New password:&nbsp;<b>'.$newpassword.'</b><BR /> Account name:&nbsp;&nbsp;&nbsp;<i>(Already on your e-mail)</i><BR />'; $mailBody = ' <h3>Your account name and password!</h3> <p>Changed password to your account in Lost Account Interface on server <a href="'.BASE_URL.'"><b>'.$config['lua']['serverName'].'</b></a></p> <p>Account name: <b>'.$account->getName().'</b></p> <p>New password: <b>'.$newpassword.'</b></p> <br /> <p><u>It\'s automatic e-mail from OTS Lost Account System. Do not reply!</u></p>'; if(_mail($account->getCustomField('email'), $config['lua']['serverName']." - Your new password", $mailBody)) { echo '<br /><small>New password work! Sent e-mail with your password and account name. You should receive this e-mail in 15 minutes. You can login now with new password!'; } else { echo '<br /><p class="error">New password work! An error occurred while sending email! You will not receive e-mail with new password. For Admin: More info can be found in system/logs/mailer-error.log'; } echo '</TD></TR> </TABLE> <BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> <FORM ACTION="?subtopic=accountmanagement" METHOD=post> <INPUT TYPE=image NAME="Login" ALT="Login" SRC="'.$template_path.'/images/global/buttons/sbutton_login.gif" BORDER=0 WIDTH=120 HEIGHT=18></div> </TD></TR></FORM></TABLE></TABLE>'; } else $error= Validator::getLastError(); } else $error= 'Wrong code to change password.'; } else $error = 'Account of this character or this character doesn\'t exist.'; } if(!empty($error)) echo '<span style="color: red"><b>'.$error.'</b></span><br />Please enter code from e-mail and name of one character from account. Then press Submit.<BR> <FORM ACTION="?subtopic=lostaccount&action=checkcode" METHOD=post> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Code & character name</B></TD></TR> <TR><TD BGCOLOR="'.$config['darkborder'].'"> Your code:&nbsp;<INPUT TYPE=text NAME="code" VALUE="" SIZE="40")><BR /> Character:&nbsp;<INPUT TYPE=text NAME="character" VALUE="" SIZE="40")><BR /> </TD></TR> </TABLE> <BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><div style="text-align:center"> ' . $twig->render('buttons.submit.html.twig') . '</div> </TD></TR></FORM></TABLE></TABLE>'; } ?> Problema 3: Estou tenho um problema ao criar conta com email com mais de 30 caracteres. No processo de criação de conta acontece tudo normalmente, porém quando tento logar a mesma conta no site não consigo, pois o limite de caracteres ao digitar o email na página de login é 30. (Acho) que encontrei o possível arquivo responsável, porém ao editar ele e salvar, simplesmente nada muda na página, ela permanece com as configurações padrão de limite de caracteres, sendo impossível logar na conta. E acabei encontrando 2 arquivos com o mesmo nome, mas em pastas diferentes. Nos dois eu editei o limite para 50, e mesmo assim não funcionou. Segue os arquivos: htdocs\templates\tibiacom\account.login.html.twig: account.login.html.twig OU código: <form action="{{ getLink('account/manage') }}" method="post" style="margin: 0px; padding: 0px;"> {% if redirect is not null %} <input type="hidden" name="redirect" value="{{ redirect }}" /> {% endif %} <div class="TableContainer" > <table class="Table4" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/global/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/global/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/global/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/global/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Login</div> <span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/global/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/global/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/global/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/global/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;"> <tbody> <tr> <td> <div class="TableContentContainer" > <table class="TableContent" width="100%" style="border:1px solid #faf0d7;"> <tbody> <tr> <td> <table style="float: left; width: 100%;" cellpadding="0" cellspacing="0" > <tr> <td class="LabelV"> <span{% if error is not null %} class="red"{% endif %}>{{ account_login_by }}:</span> </td> <td><input style="width: 100%;" type="text" name="account_login" size="25" maxlength="50" autofocus /></td> </tr> <tr> <td class="LabelV" ><span{% if error is not null %} class="red"{% endif %}>Pass:</span></td> <td><input style="width: 100%;" type="password" name="password_login" size="35" maxlength="29" /></td> </tr> <tr> <td class="LabelV" ></td> <td><input type="checkbox" id="remember_me" name="remember_me" value="true" /> <label for="remember_me"> Remember me</label></td> </tr> </table> </td> <td id="LoginFormButtonCell"> <table style="float: left; width: 100%;" cellpadding="0" cellspacing="0" > <div style="float: right; font-size: 1px;" > <input type="hidden" name="page" value="overview" > {{ include('buttons.login.html.twig') }} </form> <div style="width: 2px; height: 2px;" ></div> <form action="{{ getLink('account/lost') }}" method="post" style="padding:0px;margin:0px;" > {{ include('buttons.account_lost.html.twig') }} </form> </div> </table> </td> </tr> </tbody> </table> </div> </td> </tr> </tbody> </table> </div> </td> </tr> </table> </div> <br/> <div style="text-align:center"> <h1>New to {{ config.lua.serverName }}?</h1> </div> <div class="TableContainer"> <div class="CaptionContainer"> <div class="CaptionInnerContainer"> <span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/global/content/box-frame-edge.gif);"></span> <span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/global/content/box-frame-edge.gif);"></span> <span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/global/content/table-headline-border.gif);"></span> <span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/global/content/box-frame-vertical.gif);"></span> <div class="Text">New Player</div> <span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/global/content/box-frame-vertical.gif);"></span> <span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/global/content/table-headline-border.gif);"></span> <span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/global/content/box-frame-edge.gif);"></span> <span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/global/content/box-frame-edge.gif);"></span> </div> </div> <table class="Table3" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div class="InnerTableContainer"> <table style="width:100%;"> <tbody> <tr> <td> <div class="TableContentContainer"> <table class="TableContent" width="100%" style="border:1px solid #faf0d7;"> <tbody> <tr> <td> <div style="float: right; margin-top: 20px;"> {% spaceless %} <form class="MediumButtonForm" action="{{ getLink('account/create') }}" method="post" > <div class="MediumButtonBackground" style="background-image:url({{ template_path }}/images/global/buttons/mediumbutton.gif)" onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);"> <div class="MediumButtonOver" style="background-image:url({{ template_path }}/images/global/buttons/mediumbutton-over.gif)" onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);"></div> <input class="MediumButtonText" type="image" name="Create Account" alt="Create Account" src="{{ template_path }}/images/global/buttons/mediumbutton_createaccount.png" /> </div> </form> {% endspaceless %} </div> <div id="LoginCreateAccountBox"><p><b>{{ config.lua.serverName }}...</b></p> <div style="margin-left: 10px;"><p>... where hardcore gaming meets fantasy.</p><p>... where friendships last a lifetime.</p><p>... unites adventurers since 1997!</p> </div> </div> </td> </tr> </tbody> </table> </div> </td> </tr> </tbody> </table> </div> </td> </tr> </tbody> </table> </div> htdocs\system\templates\account.login.html.twig: account.login.html.twig OU código: Please enter your account {{ account|lower }} and your password.<br/><a href="?subtopic=createaccount" >Create an account</a> if you do not have one yet.<br/><br/> <form action="{{ getLink('account/manage') }}" method="post" > {% if redirect is not null %} <input type="hidden" name="redirect" value="{{ redirect }}" /> {% endif %} <div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Login</div> <span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer"> <table style="width:100%;" > <tr> <td class="LabelV" > <span{% if error is not null %} class="red"{% endif %}>{{ account_login_by }}:</span> </td> <td style="width:100%;" ><input type="text" name="account_login" size="30" maxlength="50" autofocus/></td> </tr> <tr> <td class="LabelV" > <span{% if error is not null %} class="red"{% endif %}>Password:</span> </td> <td><input type="password" name="password_login" size="30" maxlength="29" ></td> </tr> <tr> <td class="LabelV" ></td> <td><input type="checkbox" id="remember_me" name="remember_me" value="true" /> <label for="remember_me"> Remember me</label></td> </tr> {% if error is not null %} <tr><td></td><td><span class="FormFieldError">{{ error }}</span></td></tr> {% endif %} </table> </div> </td> </tr> </table> </div> <br/> <table width="100%" > <tr align="center"> <td> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td style="border:0px;"> {{ include('buttons.submit.html.twig') }} </td> <tr> </form> </table> </td> <td> <table border="0" cellspacing="0" cellpadding="0"> <form action="{{ getLink('account/lost') }}" method="post"> <tr> <td style="border:0px;"> {{ include('buttons.account_lost.html.twig') }} </td> </tr> </form> </table> </td> </tr> </table> Problema 4: Depois de muito apanhar para configurar boosted creature que veio bugada e até então não tinha conhecimento sobre esse sistema, consegui configurar, mas me deparei com um problema e ao mesmo tempo me surgiu uma dúvida sobre o sistema. O Problema: Após conseguir configurar a query para pegar o nome da criatura boostada do dia da database e procurar por uma imagem com o mesmo nome, me deparei com seguinte situação: Só aparece a criatura boostada se a imagem da mesma estiver com espaço em branco entre as palavras no nome da imagem, idêntico ao nome da database. Na database o nome da criatura é salva igual como está no jogo, se o bicho possui um nome com 2 ou mais palavras, na database possui os espaços em branco entre essas palavras, como na imagem 1. Porém o nome de todas as imagens de todas as criaturas n site, está com um underline __ substituindo os espaços em branco, como na imagem 2. Existe alguma forma de programar o script da busca pela imagem, ele substituir automaticamente os espaços em branco por __ underline, para assim encontrar a imagem correta? Ou eu tenho que mudar o nome de todas as imagens manualmente, substituindo os underlines __ por espaços em branco? Segue as imagens: segue o arquivo onde configurei a partir da linha 601 (quase nas últimas linhas do arquivo) htdocs\templates\tibiacom\index.php: index.php OU o código: <?php defined('MYAAC') or die('Direct access not allowed!'); if(isset($config['boxes'])) $config['boxes'] = explode(",", $config['boxes']); ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <?php echo template_place_holder('head_start'); ?> <link rel="shortcut icon" href="<?php echo $template_path; ?>/images/favicon.ico" type="image/x-icon" /> <link rel="icon" href="<?php echo $template_path; ?>/images/favicon.ico" type="image/x-icon" /> <link href="<?php echo $template_path; ?>/basic.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="tools/basic.js"></script> <script type="text/javascript" src="<?php echo $template_path; ?>/ticker.js"></script> <script id="twitter-wjs" src="<?php echo $template_path; ?>/js/twitter.js"></script> <script id="facebook-jssdk" async src="https://connect.facebook.net/en_US/all.js"></script> <link href="<?php echo $template_path; ?>/css/facebook.css" rel="stylesheet" type="text/css"> <link rel="stylesheet" href="tools/fonts/fontawesome/all.css"> <script src="tools/fonts/fontawesome/all.js"></script> <script src="admin/bootstrap/jquery-3.6.0.min.js"></script> <script src="admin/bootstrap/popper.min.js"></script> <script src="admin/bootstrap/js/bootstrap.min.js"></script> <link href="admin/bootstrap/bootstrap-lucasg.css" rel="stylesheet" type="text/css"> <?php if($config['pace_load'] == true){ ?> <script src="admin/bootstrap/pace/pace.js"></script> <link href="admin/bootstrap/pace/themes/<?php echo $config['pace_color'] ?>/pace-theme-<?php echo $config['pace_theme'] ?>.css" rel="stylesheet" /> <?php } ?> <script> function CollapseTable(a_ID) { $('#' + a_ID).slideToggle('slow'); if ($('#Indicator_' + a_ID).hasClass('CircleSymbolPlus')) { $('#Indicator_' + a_ID).attr('class', 'CircleSymbolMinus'); $('#Indicator_' + a_ID).css('background-image', 'url(' + IMAGES + '/global/content/circle-symbol-plus.gif)'); } else { $('#Indicator_' + a_ID).css('background-image', 'url(' + IMAGES + '/global/content/circle-symbol-minus.gif)'); $('#Indicator_' + a_ID).attr('class', 'CircleSymbolPlus'); } } </script> <script type="text/javascript"> var menus = ''; var loginStatus="<?php echo ($logged ? 'true' : 'false'); ?>"; <?php if(PAGE !== 'news') { if(strpos(URI, 'subtopic=') !== false) { $tmp = $_REQUEST['subtopic']; if($tmp === 'accountmanagement') { $tmp = 'accountmanage'; } } else { $tmp = str_replace('/', '', URI); $exp = explode('/', URI); if(URI !== 'account/create' && URI !== 'account/lost' && isset($exp[1])) { if ($exp[0] === 'account') { $tmp = 'accountmanage'; } else if ($exp[0] === 'news' && $exp[1] === 'archive') { $tmp = 'newsarchive'; } else $tmp = $exp[0]; } } } else { $tmp = 'news'; } ?> var activeSubmenuItem="<?php echo $tmp; ?>"; var IMAGES="<?php echo $template_path; ?>/images"; var LINK_ACCOUNT="<?php echo BASE_URL; ?>"; function rowOverEffect(object) { if (object.className == 'moduleRow') object.className = 'moduleRowOver'; } function rowOutEffect(object) { if (object.className == 'moduleRowOver') object.className = 'moduleRow'; } function InitializePage() { LoadLoginBox(); LoadMenu(); } // initialisation of the loginbox status by the value of the variable 'loginStatus' which is provided to the HTML-document by PHP in the file 'header.inc' function LoadLoginBox() { if(loginStatus == "false") { document.getElementById('ButtonText').style.backgroundImage = "url('" + IMAGES + "/global/buttons/mediumbutton_login.png')"; document.getElementById('LoginstatusText_2').style.backgroundImage = "url('" + IMAGES + "/loginbox/loginbox-font-create-account.gif')"; document.getElementById('LoginstatusText_2_1').style.backgroundImage = "url('" + IMAGES + "/loginbox/loginbox-font-create-account.gif')"; document.getElementById('LoginstatusText_2_2').style.backgroundImage = "url('" + IMAGES + "/loginbox/loginbox-font-create-account-over.gif')"; } else { document.getElementById('ButtonText').style.backgroundImage = "url('" + IMAGES + "/global/buttons/mediumbutton_myaccount.png')"; document.getElementById('LoginstatusText_2').style.backgroundImage = "url('" + IMAGES + "/loginbox/loginbox-font-logout.gif')"; document.getElementById('LoginstatusText_2_1').style.backgroundImage = "url('" + IMAGES + "/loginbox/loginbox-font-logout.gif')"; document.getElementById('LoginstatusText_2_2').style.backgroundImage = "url('" + IMAGES + "/loginbox/loginbox-font-logout-over.gif')"; } } // mouse-over and click events of the loginbox function MouseOverLoginBoxText(source) { source.lastChild.style.visibility = "visible"; source.firstChild.style.visibility = "hidden"; } function MouseOutLoginBoxText(source) { source.firstChild.style.visibility = "visible"; source.lastChild.style.visibility = "hidden"; } function LoginButtonAction() { if(loginStatus == "false") { window.location = "<?php echo getLink('account/manage'); ?>"; } else { window.location = "<?php echo getLink('account/manage'); ?>"; } } function LoginstatusTextAction(source) { if(loginStatus == "false") { window.location = "<?php echo getLink('account/create'); ?>"; } else { window.location = "<?php echo getLink('account/logout'); ?>"; } } var menu = []; menu[0] = {}; var unloadhelper = false; // load the menu and set the active submenu item by using the variable 'activeSubmenuItem' function LoadMenu() { document.getElementById("submenu_"+activeSubmenuItem).style.color = "white"; document.getElementById("ActiveSubmenuItemIcon_"+activeSubmenuItem).style.visibility = "visible"; menus = localStorage.getItem('menus'); if(menus.lastIndexOf("&") === -1) { menus = "news=1&account=0&community=0&library=0&forum=0<?php if($config['gifts_system']) echo '&shops=0'; ?>&charactertrade=0&"; } FillMenuArray(); InitializeMenu(); } function SaveMenu() { if(unloadhelper == false) { SaveMenuArray(); unloadhelper = true; } } // store the values of the variable 'self.name' in the array menu function FillMenuArray() { while(menus.length > 0 ){ var mark1 = menus.indexOf("="); var mark2 = menus.indexOf("&"); var menuItemName = menus.substr(0, mark1); menu[0][menuItemName] = menus.substring(mark1 + 1, mark2); menus = menus.substr(mark2 + 1, menus.length); } } // hide or show the corresponding submenus function InitializeMenu() { for(menuItemName in menu[0]) { if(menu[0][menuItemName] == "0") { document.getElementById(menuItemName+"_Submenu").style.visibility = "hidden"; document.getElementById(menuItemName+"_Submenu").style.display = "none"; document.getElementById(menuItemName+"_Lights").style.visibility = "visible"; document.getElementById(menuItemName+"_Extend").style.backgroundImage = "url(" + IMAGES + "/general/plus.gif)"; } else { document.getElementById(menuItemName+"_Submenu").style.visibility = "visible"; document.getElementById(menuItemName+"_Submenu").style.display = "block"; document.getElementById(menuItemName+"_Lights").style.visibility = "hidden"; document.getElementById(menuItemName+"_Extend").style.backgroundImage = "url(" + IMAGES + "/general/minus.gif)"; } } } function SaveMenuArray() { var stringSlices = ""; var temp = ""; for(menuItemName in menu[0]) { stringSlices = menuItemName + "=" + menu[0][menuItemName] + "&"; temp = temp + stringSlices; } localStorage.setItem('menus', temp); } // onClick open or close submenus function MenuItemAction(sourceId) { if(menu[0][sourceId] == 1) { CloseMenuItem(sourceId); } else { OpenMenuItem(sourceId); } } function OpenMenuItem(sourceId) { menu[0][sourceId] = 1; document.getElementById(sourceId + "_Submenu").style.visibility = "visible"; document.getElementById(sourceId + "_Extend").style.backgroundImage = "url(" + IMAGES + "global/general/minus.gif)"; document.getElementById(sourceId + "_Lights").style.visibility = "hidden"; $('#'+sourceId+'_Submenu').slideDown('slow'); //document.getElementById(sourceId+"_Submenu").style.visibility = "visible"; //document.getElementById(sourceId+"_Submenu").style.display = "block"; //document.getElementById(sourceId+"_Lights").style.visibility = "hidden"; document.getElementById(sourceId+"_Extend").style.backgroundImage = "url(" + IMAGES + "/general/minus.gif)"; } function CloseMenuItem(sourceId) { menu[0][sourceId] = 0; document.getElementById(sourceId + "_Lights").style.visibility = "visible"; document.getElementById(sourceId + "_Extend").style.backgroundImage = "url(" + IMAGES + "global/general/plus.gif)"; $('#'+sourceId+'_Submenu').slideUp('fast', function () { document.getElementById(sourceId + "_Submenu").style.visibility = "hidden"; }); //document.getElementById(sourceId+"_Submenu").style.visibility = "hidden"; //document.getElementById(sourceId+"_Submenu").style.display = "none"; //document.getElementById(sourceId+"_Lights").style.visibility = "visible"; document.getElementById(sourceId+"_Extend").style.backgroundImage = "url(" + IMAGES + "/general/plus.gif)"; } // mouse-over effects of menubuttons and submenuitems function MouseOverMenuItem(source) { if(source.firstChild.style){ source.firstChild.style.visibility = "visible"; } } function MouseOutMenuItem(source) { if(source.firstChild.style){ source.firstChild.style.visibility = "hidden"; } } function MouseOverSubmenuItem(source) { if(source.style){ source.style.backgroundColor = "#14433F"; } } function MouseOutSubmenuItem(source) { if(source.style){ source.style.backgroundColor = "#0D2E2B"; } } </script> <?php echo template_place_holder('head_end'); ?> </head> <body onBeforeUnLoad="SaveMenu();" onUnload="SaveMenu();"> <?php echo template_place_holder('body_start'); ?> <?php if(!empty($config['network_facebook'])) {?> <script type="text/javascript"> window.fbAsyncInit = function() { FB.init({ appId : 497232093667125, // App ID status : true, // check login status cookie : true, // enable cookies to allow the server to access the session xfbml : true // parse XFBML }); FB.Event.subscribe('auth.login', function() { var URLHelper = "?"; if (window.location.search.replace("?", "").length > 0) { URLHelper = "&"; } if (FB_TryLogin == 1) { window.location = window.location + URLHelper + "step=facebooktrylogin&wasreloaded=1"; } else if (FB_TryLogin == 2) { window.location = window.location + URLHelper + "page=facebooktrylogin&wasreloaded=1"; } else { window.location = window.location + URLHelper + "wasreloaded=1"; } }); FB.Event.subscribe('auth.logout', function(a_Response) { if (a_Response.status !== 'connected') { window.location.href=window.location.href; } else { /* nothing to do here*/ } }); FB.Event.subscribe('auth.statusChange', function(response) { if (FB_ForceReload == 1 && response.status == "connected") { var URLHelper = "?"; if (window.location.search.replace("?", "").length > 0) { URLHelper = "&"; } window.location = window.location + URLHelper + "step=facebooktrylogin&wasreloaded=1"; } }); }; (function(d){ var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; ref.parentNode.insertBefore(js, ref); }(document)); </script> <?php } ?> <div id="top"></div> <div id="ArtworkHelper" style="background-image:url(<?php echo $template_path; ?>/images/header/<?php echo $config['background_image']; ?>);" > <div id="Bodycontainer"> <div id="ContentRow"> <div id="MenuColumn"> <div id="LeftArtwork"> <img id="TibiaLogoArtworkTop" src="<?php echo $template_path; ?>/images/header/<?php echo $config['logo_image']; ?>" onClick="window.location = '<?php echo getLink('news')?>';" alt="logoartwork" /> <img id="LogoLink" src="<?php echo $template_path; ?>/images/header/tibia-logo-artwork-string.gif" onClick="window.location = 'mailto:<?php echo $config['mail_address']; ?>';" alt="logoartwork" /> </div> <div id="Loginbox" > <div id="LoginTop" style="background-image:url(<?php echo $template_path; ?>/images/general/box-top.gif)" ></div> <div id="BorderLeft" class="LoginBorder" style="background-image:url(<?php echo $template_path; ?>/images/general/chain.gif)" ></div> <div id="LoginButtonContainer" style="background-image:url(<?php echo $template_path; ?>/images/loginbox/loginbox-textfield-background.gif)" > <div id="LoginButton" style="background-image:url(<?php echo $template_path; ?>/images/global/buttons/mediumbutton.gif)" > <div onClick="LoginButtonAction();" onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);"><div class="Button" style="background-image:url(<?php echo $template_path; ?>/images/global/buttons/mediumbutton-over.gif)" ></div> <?php echo '<div id="ButtonText" '.($logged ? '' : 'style="background-image:url('.$template_path.'/images/global/buttons/mediumbutton_login.png)"').'> </div>'; ?> </div> </div> </div> <div style="clear:both" ></div> <div class="Loginstatus" style="background-image:url(<?php echo $template_path; ?>/images/loginbox/loginbox-textfield-background.gif)" > <div id="LoginstatusText_2" onClick="LoginstatusTextAction(this);" onMouseOver="MouseOverLoginBoxText(this);" onMouseOut="MouseOutLoginBoxText(this);" ><div id="LoginstatusText_2_1" class="LoginstatusText" style="background-image:url(<?php echo $template_path; ?>/images/loginbox/loginbox-font-create-account.gif)" ></div><div id="LoginstatusText_2_2" class="LoginstatusText" style="background-image:url(<?php echo $template_path; ?>/images/loginbox/loginbox-font-create-account-over.gif)" ></div></div> </div> <div id="BorderRight" class="LoginBorder" style="background-image:url(<?php echo $template_path; ?>/images/general/chain.gif)" ></div> <div id="LoginBottom" class="Loginstatus" style="background-image:url(<?php echo $template_path; ?>/images/general/box-bottom.gif)" ></div> </div> <div class="SmallMenuBox" id="DownloadBox"> <div class="SmallBoxTop" style="background-image:url(<?php echo $template_path; ?>/images/global/general/box-top.gif)"></div> <div class="SmallBoxBorder" style="background-image:url(<?php echo $template_path; ?>/images/global/general/chain.gif);"></div> <div class="SmallBoxButtonContainer" style="background-image:url(<?php echo $template_path; ?>/images/global/loginbox/loginbox-textfield-background.gif)"> <a href="?subtopic=downloadclient&step=downloadagreement"> <div id="PlayNowContainer"> <div class="MediumButtonBackground" style="background-image:url(<?php echo $template_path; ?>/images/global/buttons/mediumbutton.gif)" onmouseover="MouseOverBigButton(this);" onmouseout="MouseOutBigButton(this);"><div class="MediumButtonOver" style="background-image: url(<?php echo $template_path; ?>/images/global/buttons/mediumbutton-over.gif); visibility: hidden;" ></div><input class="MediumButtonText" type="image" name="Download" alt="Download" src="<?php echo $template_path; ?>/images/global/buttons/mediumbutton_download.png"></div> </div> </a> </div> <div class="SmallBoxBorder BorderRight" style="background-image:url(<?php echo $template_path; ?>/images/global/general/chain.gif);"></div> <div class="Loginstatus SmallBoxBottom" style="background-image:url(<?php echo $template_path; ?>/images/global/general/box-bottom.gif);"></div> </div> <div-- id='Menu'> <div id='MenuTop' style='background-image:url(<?php echo $template_path; ?>/images/general/box-top.gif);'></div> <?php $menus = get_template_menus(); foreach($config['menu_categories'] as $id => $cat) { if(!isset($menus[$id]) || ($id == MENU_CATEGORY_SHOP && !$config['gifts_system'])) { continue; } ?> <div id='<?php echo $cat['id']; ?>' class='menuitem'> <span onClick="MenuItemAction('<?php echo $cat['id']; ?>')"> <div class='MenuButton' style='background-image:url(<?php echo $template_path; ?>/images/menu/button-background.gif);'> <div onMouseOver='MouseOverMenuItem(this);' onMouseOut='MouseOutMenuItem(this);'><div class='Button' style='background-image:url(<?php echo $template_path; ?>/images/menu/button-background-over.gif);'></div> <span id='<?php echo $cat['id']; ?>_Lights' class='Lights'> <div class='light_lu' style='background-image:url(<?php echo $template_path; ?>/images/menu/green-light.gif);'></div> <div class='light_ld' style='background-image:url(<?php echo $template_path; ?>/images/menu/green-light.gif);'></div> <div class='light_ru' style='background-image:url(<?php echo $template_path; ?>/images/menu/green-light.gif);'></div> </span> <div id='<?php echo $cat['id']; ?>_Icon' class='Icon' style='background-image:url(<?php echo $template_path; ?>/images/menu/icon-<?php echo $cat['id']; ?>.gif);'></div> <div id='<?php echo $cat['id']; ?>_Label' class='Label' style='background-image:url(<?php echo $template_path; ?>/images/menu/label-<?php echo $cat['id']; ?>.gif);'></div> <div id='<?php echo $cat['id']; ?>_Extend' class='Extend' style='background-image:url(<?php echo $template_path; ?>/images/general/plus.gif);'></div> </div> </div> </span> <div id='<?php echo $cat['id']; ?>_Submenu' class='Submenu'> <?php $default_menu_color = "ffffff"; foreach($menus[$id] as $category => $menu) { $link_color = '#' . (strlen($menu['color']) == 0 ? $default_menu_color : $menu['color']); ?> <a href='<?php echo $menu['link_full']; ?>'<?php echo $menu['blank'] ? ' target="_blank"' : ''?>> <div id='submenu_<?php echo str_replace('/', '', $menu['link']); ?>' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)' style="color: <?php echo $link_color; ?>;"> <div class='LeftChain' style='background-image:url(<?php echo $template_path; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_<?php echo str_replace('/', '', $menu['link']); ?>' class='ActiveSubmenuItemIcon' style='background-image:url(<?php echo $template_path; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel' style="color: <?php echo $link_color; ?>;"><?php echo $menu['name']; ?></div> <div class='RightChain' style='background-image:url(<?php echo $template_path; ?>/images/general/chain.gif);'></div> </div> </a> <?php } ?> </div> <?php if($id == MENU_CATEGORY_SHOP || (!$config['gifts_system'] && $id == MENU_CATEGORY_SHOP - 1)) { ?> <div id='MenuBottom' style='background-image:url(<?php echo $template_path; ?>/images/general/box-bottom.gif);'></div> <?php } ?> </div> <?php } ?> <script type="text/javascript"> InitializePage(); </script> </div> <div id="ContentColumn"> <div class="Content"> <?php if($config['status_bar'] == true){ ?> <div class="Box"> <div class="Corner-tl" style="background-image:url(<?php echo $template_path; ?>/images/global/content/corner-tl.gif);"></div> <div class="Corner-tr" style="background-image:url(<?php echo $template_path; ?>/images/global/content/corner-tr.gif);"></div> <div class="Border_1" style="background-image:url(<?php echo $template_path; ?>/images/global/content/border-1.gif);"></div> <div class="BorderTitleText" style="background-image:url(<?php echo $template_path; ?>/images/global/content/newsheadline_background.gif); height: 28px;"> <div class="InfoBar"> <?php if(isset($config['discord_link']) && !empty($config['discord_link'])){ ?> <img class="InfoBarBigLogo" src="<?php echo $template_path; ?>/images/global/header/icon-discord.png"> <span class="InfoBarNumbers"> <a class="InfoBarLinks" href="<?php echo $config['discord_link']; ?>" target="new"><span class="InfoBarSmallElement">Join Discord</span></a> </span> <?php } ?> <?php if(isset($config['whatsapp_link']) && !empty($config['whatsapp_link'])){ ?> <img class="InfoBarBigLogo" src="<?php echo $template_path; ?>/images/global/header/icon-whatsapp.png" width="16"> <span class="InfoBarNumbers"> <a class="InfoBarLinks" href="https://wa.me/<?php echo $config['whatsapp_link']; ?>" target="new"><span class="InfoBarSmallElement">Whatsapp</span></a> </span> <?php } ?> <?php if(isset($config['instagram_link']) && !empty($config['instagram_link'])){ ?> <img class="InfoBarBigLogo" src="<?php echo $template_path; ?>/images/global/header/icon-instagram.png" width="16"> <span class="InfoBarNumbers"> <a class="InfoBarLinks" href="https://www.instagram.com/<?php echo $config['instagram_link']; ?>" target="new"><span class="InfoBarSmallElement">Instagram</span></a> </span> <?php } ?> <?php if(isset($config['facebook_link']) && !empty($config['facebook_link'])){ ?> <img class="InfoBarBigLogo" src="<?php echo $template_path; ?>/images/global/header/icon-facebook.png" width="16"> <span class="InfoBarNumbers"> <a class="InfoBarLinks" href="https://www.facebook.com/<?php echo $config['facebook_link']; ?>" target="new"><span class="InfoBarSmallElement">Facebook</span></a> </span> <?php } ?> <img class="InfoBarBigLogo" src="<?php echo $template_path; ?>/images/global/header/icon-download.png"> <span class="InfoBarNumbers"> <a class="InfoBarLinks" href="?subtopic=downloadclient"><span class="InfoBarSmallElement">Download</span></a> </span> <span style="float: right; margin-top: -2px;"> <img class="InfoBarBigLogo" src="<?php echo $template_path; ?>/images/global/header/icon-players-online.png"> <span class="InfoBarNumbers"> <span class="InfoBarSmallElement"> <a class="InfoBarLinks" href="?online"> <?php if($status['online']){ echo '' . $status['players'] . ' Players Online'; } else { echo 'Server Offline'; } ?> </a> </span> </span> <?php if($config['collapse_status'] == true){ ?> <a data-bs-toggle="collapse" href="#statusbar" role="button" aria-expanded="false" aria-controls="statusbar"> <img src="<?php echo $template_path; ?>/images/global/content/top-to-back.gif" class="InfoBarBigLogo"> </a> <?php } ?> </span> </div> </div> <!-- COLLAPSE STATUS BAR --> <?php if($config['collapse_status'] == true){ ?> <div class="collapse" id="statusbar" style="background-color: #d4c0a1;"> <table class="Table3" cellpadding="0" cellspacing="0" style="width: 100%;"> <tbody><tr> <td> <div class="InnerTableContainer" style="display: flex; flex-wrap: wrap; font-family: Verdana;"> <?php if($config['carousel_status'] == true){ ?> <table style="width:100%;"><tbody><tr><td> <div class="TableContentContainer"> <table class="TableContent" width="100%" style="border:1px solid #faf0d7; font-size: 12px;"> <tbody> <tr bgcolor="#F1E0C6"> <td> <div class="container"> <div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel"> <div class="carousel-inner"> <?php $count = 1; foreach($config['carousel'] as $carousel){ if($count == 1){ ?> <div class="carousel-item active"> <img src="<?php echo $template_path ?>/images/carousel/<?php echo $carousel ?>" style="width: 100%;"> </div> <?php }elseif($count > 1){ ?> <div class="carousel-item"> <img src="<?php echo $template_path ?>/images/carousel/<?php echo $carousel ?>" style="width: 100%;"> </div> <?php } $count++; } ?> </div> <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> </button> <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> </button> </div> </div> </td> </tr> </tbody></table> </div></td></tr> </tbody></table> <?php } ?> </div> </td> </tr> </tbody></table> </div> <!-- COLLAPSE STATUS BAR --> <?php } ?> <div class="Border_1" style="background-image:url(<?php echo $template_path; ?>/images/global/content/border-1.gif);"></div> <div class="CornerWrapper-b"> <div class="Corner-bl" style="background-image:url(<?php echo $template_path; ?>/images/global/content/corner-bl.gif);"></div> </div> <div class="CornerWrapper-b"> <div class="Corner-br" style="background-image:url(<?php echo $template_path; ?>/images/global/content/corner-br.gif);"></div> </div> </div> <?php } ?> <div id="ContentHelper"> <?php echo tickers(); ?> <div id="<?php echo PAGE; ?>" class="Box"> <div class="Corner-tl" style="background-image:url(<?php echo $template_path; ?>/images/content/corner-tl.gif);"></div> <div class="Corner-tr" style="background-image:url(<?php echo $template_path; ?>/images/content/corner-tr.gif);"></div> <div class="Border_1" style="background-image:url(<?php echo $template_path; ?>/images/content/border-1.gif);"></div> <div class="BorderTitleText" style="background-image:url(<?php echo $template_path; ?>/images/content/title-background-green.gif);"></div> <?php $headline = $template_path.'/images/header/headline-' . PAGE . '.gif'; if(!file_exists($headline)) $headline = $template_path . '/headline.php?t=' . ucfirst($title); ?> <img class="Title" src="<?php echo $headline; ?>" alt="Contentbox headline" /> <div class="Border_2"> <div class="Border_3"> <?php $hooks->trigger(HOOK_TIBIACOM_BORDER_3); ?> <div class="BoxContent" style="background-image:url(<?php echo $template_path; ?>/images/content/scroll.gif);"> <?php echo template_place_holder('center_top') . $content; ?> </div> </div> </div> <div class="Border_1" style="background-image:url(<?php echo $template_path; ?>/images/content/border-1.gif);"></div> <div class="CornerWrapper-b"><div class="Corner-bl" style="background-image:url(<?php echo $template_path; ?>/images/content/corner-bl.gif);"></div></div> <div class="CornerWrapper-b"><div class="Corner-br" style="background-image:url(<?php echo $template_path; ?>/images/content/corner-br.gif);"></div></div> </div> </div> </div> <div id="Footer"><?php echo template_footer(); ?><br/>Layout by CipSoft GmbH.</div> </div> <div id="ThemeboxesColumn"> <?PHP $monsterquery = $SQL->query("SELECT `boostname` FROM `boosted_creature`")->fetch(); $monstername = $monsterquery["boostname"]; ?> <div id="RightArtwork"> <img id="Monster" src="images/creatures/<?php echo $monsterquery["boostname"]; ?>.gif" onClick="window.location = '?subtopic=creatures&creature=<?php echo $monsterquery["boostname"]; ?>';" alt="Monster of the Day" title="Today's boosted creature: <?PHP echo ucwords(strtolower(trim($monstername))); ?>"> <img id="PedestalAndOnline" src="<?php echo $template_path; ?>/images/header/pedestal.gif" alt="Monster Pedestal and Players Online Box"/> </div> <div id="Themeboxes"> <?php $twig_loader->prependPath(__DIR__ . '/boxes/templates'); foreach($config['boxes'] as $box) { /** @var string $template_name */ $file = TEMPLATES . $template_name . '/boxes/' . $box . '.php'; if(file_exists($file)) { include($file); ?> <?php } } if($config['template_allow_change']) echo '<span style="color: white">Template:</span><br/>' . template_form(); ?> </div> </div> </div> </div> </div> <?php echo template_place_holder('body_end'); ?> <style> .scrollToTop { width: 70px; height: 70px; padding: 10px; text-align: center; font-weight: bold; color: #444; text-decoration: none; position: fixed; bottom: 10px; right: 10px; display: none; z-index: 50000; } .scrollToTop:hover { text-decoration: none; cursor: pointer; } </style> <script> $(document).ready(function(){ //Check to see if the window is top if not then display button $(window).scroll(function(){ if ($(this).scrollTop() > 100) { $('.scrollToTop').fadeIn(); } else { $('.scrollToTop').fadeOut(); } }); //Click event to scroll to top $('.scrollToTop').click(function(){ $('html, body').animate({scrollTop : 0},800); return false; }); }); </script> <script> $(document).ready(function(){ //Check to see if the window is top if not then display button $(window).scroll(function(){ if ($(this).scrollTop() > 100) { $('.TopButton').fadeIn(); } }); //Click event to scroll to top $('.TopButton').click(function(){ $('html, body').animate({scrollTop : 0},800); return false; }); }); </script> <div class="scrollToTop" style="background: url(<?php echo $template_path; ?>/images/global/content/top.png) no-repeat 0 0;"></div> <script src="<?php echo $template_path; ?>/js/generic.js"></script> <div id="HelperDivContainer" style="background-image: url(<?php echo $template_path; ?>/images/global/content/scroll.gif);"> <div class="HelperDivArrow" style="background-image: url(<?php echo $template_path; ?>/images/global/content/helper-div-arrow.png);"></div> <div id="HelperDivHeadline"></div> <div id="HelperDivText"></div> <center><img class="Ornament" src="<?php echo $template_path; ?>/images/global/content/ornament.gif"></center><br> </div> </body> </html> <?php function logo_monster() { global $config; return str_replace(" ", "", trim(strtolower($config['logo_monster']))); } ?> A dúvida: Como posso fazer para que não mostre criatura nenhuma (apenas o pedestal vazio), SEMPRE e ENQUANTO o server estiver off? Gostaria que mostrasse foto da criatura do dia apenas se o server estiver online. Problema 5: Na verdade é uma dúvida. Estou utilizando a base canary 13x. Esta possui sistema de boss boostado na database também. Gostaria de saber como posso adicionar boss boostado do dia ao lado da criatura boostada, assim como em muitos sites por aí. Alguém poderia me indicar um tutorial com MyAAC ou me ensinar a inserir isso no MyAAC? Agradeço desde já a toda e qualquer ajuda.
  3. Boa tarde amigo, saberia me explicar como posso fazer isso? Ou me indicar algum tutorial ensinando isso? Acredito que seja isso mesmo o problema, pois quando estava editando email do gmail, vi na internet que eu teria que entrar nas configurações do email, e ativar a permissão para acesso de terceiros, e quando fui nas configurações do email (gmail) tinha uma mensagem dizendo que não é mais possível usar esta opção. Pensando nisso acredito que seja exatamente esse o problema.. Fiz isso e deu certo, problema resolvido!! Muitíssimo obrigado man!! Agora ainda permanece minhas dúvidas, e o problema 2 do post e estou com outro problema com outra parte do site, devo criar outro tópico?
  4. Eu testei vários, mas como uso o server base Canary, prefiro usar o MyAAC disponível e compatível com ele: https://github.com/opentibiabr/myaac
  5. Tentei isso também, com 2 emails diferentes do google, tentei com email outlook, tentei com email hotmail, todos deram o mesmo erro
  6. Desculpa por postar na área errada, obrigado por movê-la. Eu entrei nos issues do github do MyAAC relacionados ao smtp, tentei seguir o que o pessoal foi comentando, e mesmo assim não deu certo. Tem uma pessoa que me ajudou a configurar o acesso externo ao server @JZOtserv, o site dele está funcionando normalmente as configurações do email, ele me enviou uma cópia do site dele, reinstalei do zero o site, alterei email e senha nas configurações para meu email e minha senha de teste, não funcionou. Também testei com outros MyAAC, deram o mesmo erro. Já tentei inverter mail/smtp para false/true o erro persiste. Tentei colocar os dois true ou os dois false e o erro também persiste.
  7. Bom dia man, tudo bem e você? Estou rodando em minha máquina mesmo, localhost.. sobre as configs dos emails: Assim está meu config.php: E assim está meu config.local.php:
  8. Nada mudou, limpei cache, cookies, histórico de navegação e continua igual aqui no meu pc e no meu celular
  9. Olá pessoal, estou tendo alguns problemas com o site MyAAC. Estou usando base Canary 13x, e o MyAAC. Problema 1: Quando tento criar acc da erro nas configs de email do site: -Já reinstalei o site do zero diversas vezes -Já testei outros sites e dão o mesmo erro -Já segui vários tutoriais -Já tentei com vários e-mails de provedores diferentes Problema 2: Em relação a criatura boostada, gostaria que não aparecesse nenhuma criatura enquanto o server estiver offline, só aparecesse quando abrir o server. Dúvidas: 1. Gostaria se saber também como posso remover themeboxes da forma correta para que não bugue o site? 2. Gostaria de saber como altero aquele IP que aparece em news ticker, na página principal do server? Agradeço desde já toda e qualquer ajuda.
  10. URL='http://127.0.0.1' SERVER_PATH='caminho da pasta do ot' # Database connection DB_HOST='localhost' DB_NAME='canaryaac' DB_USER='root' DB_PASS='senha' DB_PORT='3306' # Website configs MAINTENANCE=false DEV_MODE=true # PagSeguro PAGSEGURO_EMAIL='' PAGSEGURO_TOKEN='' # Mercado Pago MERCADOPAGO_TOKEN='' MERCADOPAGO_KEY='' MERCADOPAGO_CLIENTID='' MERCADOPAGO_SECRET='' # Paypal PAYPAL_CLIENTID='' PAYPAL_SECRET='' # Mail MAIL_SMTP='smtp://localhost' MAIL_WEB='[email protected]' # Outfits Folder OUTFITS_FOLDER='./resources/images/charactertrade/outfits'
  11. Estou usando uma máquina real, refiz todos os passos, e o problema de conexão resolveu trocando de site, mudei para o Znote AAC e substitui o login.lua pelo arquivo disponibilizado pelo pessoal do canary, porém deu outro problema, se souber como me ajudar x.x Agora diz que o server esta off, sendo que não está (aparentemente) Já troquei o ip do cliente pra localhost, 127.0.0.1, ip fixo, ip externo numérico e todos eles obtive esse mesmo erro de server offline
  12. Olá pessoal, gostaria de saber como posso resolver esse problema de login failed no cliente 13x. Server que estou usando como base: Canary 13x Cliente com IP configurado Não sei se tem algo errado com isso, mas mesmo com a distro mostrando "server online", no site aparece "server offline" Site que estou usando: Canary AAC Li em muitos posts que pode ser algo relacionado com o "login.lua", mas não achei esse arquivo para o site Canary AAC. Se houver alguém com este arquivo, poderia me disponibilizar, por gentileza? Uma segunda dúvida Como posso revolver o problema com as imagens do site? Agradeço desde já por toda e qualquer ajuda.
  13. Boa noite man, depois de ver mais e mais vídeos, consegui resolver o problema, mas seu conteúdo também ajudou. Muito obrigado.
  14. Alguém teria o executável e as dlls do server Canary 13x, compilado para windows? Poderia me disponibilizar por gentileza?
  15. DiigooMix postou uma resposta no tópico em Suporte Tibia OTServer
    Dúvida sanada.

Informação Importante

Confirmação de Termo