Ir para conteúdo
Banner com Efeitos

Rhuan Gonzaga

Membro
  • Registro em

  • Última visita

Tudo que Rhuan Gonzaga postou

  1. Já verificou os arquivos de configuração se você alterou o email de quem irá receber o pagamento ? Se não souber editar cole o link de onde pegou o sistema ou poste os arquivos para que possamos te ajudar
  2. Tente reupar a imagem com erro pois aqui pelo menos ela não está abrindo
  3. Opa, peço desculpas pela demora, venho aqui no TK somente nas férias pra não atrapalhar os estudos... Eu fiz um pull request no projeto oficial no GitHub e já foi incorporado, então quem baixar agora os códigos já estarão inclusos
  4. @, tente trocar essas duas linhas: if((config.showGamemasters or getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES) or not getPlayerCustomFlagValue(pid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) and (not isPlayerGhost(pid) or getPlayerGhostAccess(cid) >= getPlayerGhostAccess(pid))) then strings[position] = strings[position] .. getCreatureName(pid) .. "" Por essas: if((config.showGamemasters or getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES) or not getPlayerCustomFlagValue(pid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) and (not isPlayerGhost(pid) or getPlayerGhostAccess(cid) >= getPlayerGhostAccess(pid))) then strings[position] = strings[position] .. getCreatureName(pid) .. " [" .. getPlayerLevel(pid) .. "]"
  5. Você tava importando pelo phpmyadmin ? Se sim, era somente ter aumentado os limites no php.ini, por exemplo: post_max_size = 150M upload_max_filesize = 150M
  6. Tem sim amigo, isso que achei estranho, como disse no tópico, pelo acc manager cria certinho agora pelo website não...
  7. @kranzix, poderia atualizar o print ? Outra coisa, é compativel com qual versão do TFS ?
  8. Falae pessoal, tudo certo ? Bom, estou com um problema com o Modern Acc, quando crio uma conta ou um player ele não começa com itens iniciais e criando pelo account manager os itens vem com o player certinho sem nenhum problema. Estou usando esse site: http://www.tibiaking.com/forum/topic/31101-modern-acc-website-otpokemoncom-2014-vers%C3%A3o-10/ Aceito qualquer dica ou sugestão, obrigado!
  9. Rhuan Gonzaga postou uma resposta no tópico em Playground (Off-topic)
    Estou sentado e voces ?
  10. Vi que o tópico já foi resolvido mais caso apareça outros usuários com o mesmo problema poderão consultar ele, e caso você precisse deixar o Skype aberto basta trocar a porta dele indo em Ferramentas > Opções e deixe dessa maneira (ou use qualquer outra porta) e não se esqueça de libera-la no firewall caso a mesma esteja desativada.
  11. Código foi atualizado melhorando a segurança do sistema
  12. Rhuan Gonzaga postou uma resposta no tópico em Suporte Tibia OTServer
    Não é necessário ter uma pasta save, ali no caso save.lua é o arquivo do script...
  13. De uma olhada nesse tópico: http://www.tibiaking.com/forum/topic/34679-pedido-script-xp-extra-tfs-10/
  14. Há vários editores de código, vou te indicar esses e você ve o que mais lhe agrada: Notepad ++, NetBeans e DreamWeaver
  15. Retorna algum erro ? O que fica escrito na tela ?
  16. Rhuan Gonzaga postou uma resposta no tópico em Suporte Tibia OTServer
    Lost connection to MySQL server during query O erro significa perda de conexão, caso você esteja usando MySQL remoto é possivel que em algum momento esse servidor tenha ficado offline, nem que seja por alguns segundos e por conta disso não conseguiu rodar a query.
  17. Unknown column 'cast' in 'field list' Unknown -> desconhecido Column -> coluna Parece que não existe a coluna cast na tabela players atrapalhando a query UPDATE
  18. Da uma olhadinha aqui: http://www.tibiaking.com/forum/topic/36167-quest-de-poketibia-onde-no-final-o-player-ganha-um-pokemon/
  19. Rhuan Gonzaga postou uma resposta no tópico em Portal
    Aproveitando o tópico pra quem tiver problemas com o bloqueio, existe o dot.tk que fornece dominios grátis com a extensão .tk http://www.dot.tk/ Simples e fácil de usar...
  20. Frags: function getPlayerNameByGUID2(n) local c = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..n..";") if c:getID() == -1 then return "SQL_ERROR["..n.."]" end return c:getDataString("name") end function onSay(cid, words, param) local max = 100 local letters_to_next = 20 local skills = { ['fist'] = 0, ['club'] = 1, ['sword'] = 2, ['axe'] = 3, ['distance'] = 4, ['shielding'] = 5, ['fishing'] = 6, ['dist'] = 4, ['shield'] = 5, ['fish'] = 6, } local name_now local name = "Highscore for level\n" local rkn = 0 local no_break = 0 param = string.lower(param) dofile('config.lua') if param == "" or param == "level" and ( param ~= "magic" and param == "ml") and skills[param] == nil then name = name.."\n" name = name.."Rank Level - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `experience` FROM `players` WHERE `group_id` <= 2 ORDER BY `experience` DESC LIMIT 0,"..(max)..";") repeat no_break = no_break +1 if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("level") .." - "..name_now..space.." ".."\n" if no_break >= 20 then break end until v:next() == false elseif param == "magic" or param == "ml" then name = name.."\n" name = name.."Rank Magic - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `maglevel` FROM `players` WHERE `group_id` <= 2 ORDER BY `maglevel` DESC LIMIT 0,"..(max)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("maglevel").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "mana" or param == "MANA" then name = name.."\n" name = name.."Rank Mana - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `manamax` FROM `players` WHERE `group_id` <= 2 ORDER BY `manamax` DESC LIMIT 0,"..(max)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("manamax").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "health" or param == "hp" then name = name.."\n" name = name.."Rank Health - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `healthmax` FROM `players` WHERE `group_id` <= 2 ORDER BY `healthmax` DESC LIMIT 0,"..(max)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("healthmax").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "frags" or param == "kills" then name = name.."\n" name = name.."Rank Frags - Nome do Jogador\n" local v = db.getResult("SELECT `p`.`name` AS `name`, COUNT(`p`.`name`) as `frags` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `pk`.`player_id` = `p`.`id` WHERE `k`.`unjustified` = 1 GROUP BY `name` ORDER BY `frags` DESC;") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("frags").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "resets" then name = name.."Rank Resets - Nome do Jogador\n" local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 ORDER BY `value` DESC LIMIT 0,"..(max)..";") local kk = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif skills[param] ~= nil then name = name.."\n" name = name.."Rank "..param.." fighting - Nome do Jogador\n" local v = db.getResult("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = "..skills[param].." ORDER BY `value` DESC;") local kk = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n" until v:next() == false end if name ~= "Highscore\n" then doShowTextDialog(cid, 6500, name) end return true end Voce pode usar o comando: !rank frags ou !rank kills Imagem: O script original é do usuário yogo no tópico: [TalkAction] Sistema de Frags
  21. Poste para nós o arquivo offlinetraining.lua e informe qual versão do TFS você está usando...
  22. Obrigado Caso encontre algum bug ou tenha alguma sugestão, por favor me informe...
  23. Exato, somente usuários cadastrados podem abrir ticket e no ticket tem a interação do usuário que abriu o ticket e da staff. @Edit Acrescentei os comandos SQL que havia esquecido
  24. Vi alguns sistemas de helpdesk sendo postados aqui no fórum e para aprender um pouco mais resolvi montar um bem simples para o ZnoteACC que achei um projeto incrivel e com um código muito fácil de trabalhar, enfim vamos ao que interessa ScreenShots: Rode os seguintes comandos SQL para criar as tabelas e colunas necessárias para o funcionamento do sistema: CREATE TABLE IF NOT EXISTS `znote_tickets` ( `id` int(11) NOT NULL AUTO_INCREMENT, `owner` int(11) NOT NULL, `username` varchar(32) CHARACTER SET latin1 NOT NULL, `subject` text CHARACTER SET latin1 NOT NULL, `message` text CHARACTER SET latin1 NOT NULL, `ip` int(11) NOT NULL, `creation` int(11) NOT NULL, `status` varchar(20) CHARACTER SET latin1 NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `znote_tickets_replies` ( `id` int(11) NOT NULL AUTO_INCREMENT, `tid` int(11) NOT NULL, `username` varchar(32) CHARACTER SET latin1 NOT NULL, `message` text CHARACTER SET latin1 NOT NULL, `created` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; Crie o arquivo helpdesk.php na raiz com o seguinte conteúdo: <?php require_once 'engine/init.php'; if (user_logged_in() === false) { header('Location: register.php'); } include 'layout/overall/header.php'; $view = (int)$_GET['view']; if ($view) { if (!empty($_POST['reply_text'])) { sanitize($_POST['reply_text']); // Save ticket reply on database $query = array( 'tid' => $_GET['view'], 'username'=> $_POST['username'], 'message' => $_POST['reply_text'], 'created' => time(), ); //Sanitize array array_walk($query, 'array_sanitize'); $fields = '`'. implode('`, `', array_keys($query)) .'`'; $data = '\''. implode('\', \'', $query) .'\''; mysql_insert("INSERT INTO `znote_tickets_replies` ($fields) VALUES ($data)"); mysql_update("UPDATE `znote_tickets` SET `status`='Player-Reply' WHERE `id`=". $_GET['view']); } $ticketData = mysql_select_single("SELECT * FROM znote_tickets WHERE id=". addslashes((int)$_GET['view'])); if($ticketData['owner'] != $session_user_id){ echo 'You can not view this ticket!'; die; } ?> <h1>View Ticket #<?php echo $ticketData['id']; ?></h1> <table class="znoteTable ThreadTable table table-striped"> <tr class="yellow"> <th> <?php echo getClock($ticketData['creation'], true); ?> - Created by: <?php echo $ticketData['username']; ?> </th> </tr> <tr> <td> <p><?php echo nl2br($ticketData['message']); ?></p> </td> </tr> </table> <?php $replies = mysql_select_multi("SELECT * FROM znote_tickets_replies WHERE tid='". (int)$_GET['view'] ."' ORDER BY `created`;"); if ($replies !== false) { foreach($replies as $reply) { ?> <table class="znoteTable ThreadTable table table-striped"> <tr class="yellow"> <th> <?php echo getClock($reply['created'], true); ?> - Posted by: <?php echo $reply['username']; ?> </th> </tr> <tr> <td> <p><?php echo nl2br($reply['message']); ?></p> </td> </tr> </table> <hr class="bighr"> <?php } } ?> <form action="" method="post"> <input type="hidden" name="username" value="<?php echo $ticketData['username']; ?>"><br> <textarea class="forumReply" name="reply_text" style="width: 610px; height: 150px"></textarea><br> <input name="" type="submit" value="Post Reply" class="btn btn-primary"> </form> <?php }else{ $account = mysql_select_single("SELECT name,email FROM accounts WHERE id = $session_user_id"); if (empty($_POST) === false) { // $_POST[''] $required_fields = array('username', 'email', 'subject', 'message'); foreach($_POST as $key=>$value) { if (empty($value) && in_array($key, $required_fields) === true) { $errors[] = 'You need to fill in all fields.'; break 1; } } // check errors (= user exist, pass long enough if (empty($errors) === true) { /* Token used for cross site scripting security */ if (!Token::isValid($_POST['token'])) { $errors[] = 'Token is invalid.'; } if ($config['use_captcha']) { include_once 'captcha/securimage.php'; $securimage = new Securimage(); if ($securimage->check($_POST['captcha_code']) == false) { $errors[] = 'Captcha image verification was submitted wrong.'; } } if (validate_ip(getIP()) === false && $config['validate_IP'] === true) { $errors[] = 'Failed to recognize your IP address. (Not a valid IPv4 address).'; } } } ?> <h1>Latest Tickets</h1> <?php $tickets = mysql_select_multi("SELECT id,subject,creation,status FROM znote_tickets WHERE owner=$session_user_id ORDER BY creation DESC"); if ($tickets !== false) { ?> <table> <tr class="yellow"> <td>ID:</td> <td>Subject:</td> <td>Creation:</td> <td>Status:</td> </tr> <?php foreach ($tickets as $ticket) { echo '<tr class="special">'; echo '<td>'. $ticket['id'] .'</td>'; echo '<td><a href="helpdesk.php?view='. $ticket['id'] .'">'. $ticket['subject'] .'</a></td>'; echo '<td>'. getClock($ticket['creation'], true) .'</td>'; echo '<td>'. $ticket['status'] .'</td>'; }} ?> </table> <h1>Helpdesk</h1> <?php if (isset($_GET['success']) && empty($_GET['success'])) { echo 'Congratulations! Your ticket has been created. We will reply up to 24 hours.'; } else { if (empty($_POST) === false && empty($errors) === true) { if ($config['log_ip']) { znote_visitor_insert_detailed_data(1); } //Save ticket on database $query = array( 'owner' => $session_user_id, 'username'=> $_POST['username'], 'subject' => $_POST['subject'], 'message' => $_POST['message'], 'ip' => ip2long(getIP()), 'creation' => time(), 'status' => 'Open' ); //Sanitize array array_walk($query, 'array_sanitize'); $fields = '`'. implode('`, `', array_keys($query)) .'`'; $data = '\''. implode('\', \'', $query) .'\''; mysql_insert("INSERT INTO `znote_tickets` ($fields) VALUES ($data)"); header('Location: helpdesk.php?success'); exit(); } else if (empty($errors) === false){ echo '<font color="red"><b>'; echo output_errors($errors); echo '</b></font>'; } ?> <form action="" method="post"> <ul> <li> Account Name:<br> <input type="text" name="username" size="40" value="<?php echo $account['name']; ?>" disabled> </li> <li> Email:<br> <input type="text" name="email" size="40" value="<?php echo $account['email']; ?>" disabled> </li> <li> Subject:<br> <input type="text" name="subject" size="40"> </li> <li> Message:<br> <textarea name="message" rows="7" cols="30"></textarea> </li> <?php if ($config['use_captcha']) { ?> <li> <b>Write the image symbols in the text field to verify that you are a human:</b> <img id="captcha" src="captcha/securimage_show.php" alt="CAPTCHA Image" /><br> <input type="text" name="captcha_code" size="10" maxlength="6" /> <a href="#" onclick="document.getElementById('captcha').src = 'captcha/securimage_show.php?' + Math.random(); return false">[ Different Image ]</a><br><br> </li> <?php } ?> <?php /* Form file */ Token::create(); ?> <li> <input type="hidden" name="username" value="<?php echo $account['name']; ?>"> <input type="submit" value="Submit ticket"> </li> </ul> </form> <?php }} include 'layout/overall/footer.php'; ?> Crie o arquivo admin_helpdesk.php com o conteúdo abaixo: <?php require_once 'engine/init.php'; include 'layout/overall/header.php'; protect_page(); admin_only($user_data); // Declare as int $view = (int)$_GET['view']; if ($view){ if (!empty($_POST['reply_text'])) { sanitize($_POST['reply_text']); // Save ticket reply on database $query = array( 'tid' => $_GET['view'], 'username'=> $_POST['username'], 'message' => $_POST['reply_text'], 'created' => time(), ); //Sanitize array array_walk($query, 'array_sanitize'); $fields = '`'. implode('`, `', array_keys($query)) .'`'; $data = '\''. implode('\', \'', $query) .'\''; mysql_insert("INSERT INTO `znote_tickets_replies` ($fields) VALUES ($data)"); mysql_update("UPDATE `znote_tickets` SET `status`='Staff-Reply' WHERE `id`=". $_GET['view']); } $ticketData = mysql_select_single("SELECT * FROM znote_tickets WHERE id=". addslashes((int)$_GET['view'])); ?> <h1>View Ticket #<?php echo $ticketData['id']; ?></h1> <table class="znoteTable ThreadTable table table-striped"> <tr class="yellow"> <th> <?php echo getClock($ticketData['creation'], true); ?> - Created by: <?php echo $ticketData['username']; ?> </th> </tr> <tr> <td> <p><?php echo nl2br($ticketData['message']); ?></p> </td> </tr> </table> <?php $replies = mysql_select_multi("SELECT * FROM znote_tickets_replies WHERE tid='". addslashes((int)$_GET['view']) ."' ORDER BY `created`;"); if ($replies !== false) { foreach($replies as $reply) { ?> <table class="znoteTable ThreadTable table table-striped"> <tr class="yellow"> <th> <?php echo getClock($reply['created'], true); ?> - Posted by: <?php echo $reply['username']; ?> </th> </tr> <tr> <td> <p><?php echo nl2br($reply['message']); ?></p> </td> </tr> </table> <hr class="bighr"> <?php } } ?> <form action="" method="post"> <input type="hidden" name="username" value="ADMIN"><br> <textarea class="forumReply" name="reply_text" style="width: 610px; height: 150px"></textarea><br> <input name="" type="submit" value="Post Reply" class="btn btn-primary"> </form> <?php }else{ ?> <h1>Latest Tickets</h1> <?php $tickets = mysql_select_multi("SELECT id,subject,creation,status FROM znote_tickets ORDER BY creation DESC"); if ($tickets !== false) { ?> <table> <tr class="yellow"> <td>ID:</td> <td>Subject:</td> <td>Creation:</td> <td>Status:</td> </tr> <?php foreach ($tickets as $ticket) { echo '<tr class="special">'; echo '<td>'. $ticket['id'] .'</td>'; echo '<td><a href="admin_helpdesk.php?view='. $ticket['id'] .'">'. $ticket['subject'] .'</a></td>'; echo '<td>'. getClock($ticket['creation'], true) .'</td>'; echo '<td>'. $ticket['status'] .'</td>'; }} ?> </table> <?php } include 'layout/overall/footer.php'; ?> Para adicionar o Helpdesk no menu edite o arquivo /layout/menu.php e troque isto: <li><a href="market.php">Item Market</a></li> <li><a href="gallery.php">Gallery</a></li> <li><a href="support.php">Support</a></li> <li><a href="houses.php">Houses</a></li> <li><a href="deaths.php">Deaths</a></li> <li><a href="killers.php">Killers</a></li> Por isso: <li><a href="market.php">Item Market</a></li> <li><a href="gallery.php">Gallery</a></li> <li><a href="support.php">Support</a></li> <li><a href="helpdesk.php">Helpdesk</a></li> <li><a href="houses.php">Houses</a></li> <li><a href="deaths.php">Deaths</a></li> <li><a href="killers.php">Killers</a></li> E para adicionar Admin Helpdesk na sidebar do administrador edite /layout/widgets/Wadmin.php inserindo: <li> <a href='admin_helpdesk.php'>Admin Helpdesk</a> </li> Changelog: Também fiz um pull request no github Abraços!
  25. Entendi Daniel, obrigado! Uma dúvida fugindo um pouco do tópico qual IDE vocês usam atualmente para desenvolver scripts ? Lembro que tinha uma IDE com várias funções do Open Tibia que era facinho consultar e tal mais não lembro do nome de jeito nenhum, me recomenda qual ? Abraço!

Informação Importante

Confirmação de Termo