Ir para conteúdo
Banner com Efeitos

Pedro.

Membro
  • Registro em

  • Última visita

Tudo que Pedro. postou

  1. Acho que requer um pouco de conhecimento C++ e fazer alterações nas sources, pelo que eu estava vendo aqui, você vai ter que alterar também em vocations.xml <skill id="7" multiplier="1.1" /> modificar também os codigos em vocation.cpp skillMultipliers[7] = 1.1f; Parte do código está em const.h Skill { Fist = 0, Club, Sword, Axe, Distance, Shielding, eu não conseguiria ajuda-lo, talvez alguém com um pouco mais de experiencia nessa parte.
  2. Pedro. postou uma resposta no tópico em Websites
    Download.
  3. voltou @Fir3element?
  4. Pedro. postou uma resposta no tópico em Suporte & Pedidos
    Olá, recentemente eu estava no Discord e todo mundo tava abrindo um Derivado, de Naruto, outro de DBO, eu particulamente nunca tinha mexido com o mesmo, mas o Sttorm me animou com o SAO. vasculhando os fóruns em busca de algo para fazer, e me senti a vontade de abrir um derivado, e achei o WOP. Um projeto que vazaram os arquivos e a equipe desanimou, eu não sou um mestre em c++ porém quis ver mais de perto, e aos poucos fui vendo os códigos, foi algo muito diferente do que eu já tinha visto esses anos todo, o padrão de arquivos, de modo geral o programador do WOP modificou tantas coisas que eu comecei a me interessar. Eu pretendo abrir o servidor para testes talvez semana que vem, assim que eu terminar algumas pendencias que eu achei, alguns sistemas faltando etc, assim que eu terminar pretendo abrir um off-beta para testa-lo e então abri-lo. Estou criando esse tópico com o objetivo de apresentar o projeto, e de que qualquer ajuda é bem vinda. E que estarei tocando pra frente. Vocações: - Luffy. - Zoro. - Sanji. - Ace. - Nami. - Usopp. - Chopper. No Jogo há o sistema de profissões, onde ao atingir um determinado level será desbloqueado 3 profissões diferentes (Médico, Cozinheiro e Construtor). Todos terão sua vantagem e sua função em seu bando pirata, fazendo com que um dependa do outro, pois para construir um barco você irá precisar do Construtor, por exemplo, assim como para conseguir as potions você precisará do Médico e para conseguir as comidas que irão te dar alguns benefícios, será necessário um Cozinheiro. O Sistema de Task do servidor é integrado diretamente no cliente, isso ajuda bastante jogadores que podem está escolhendo suas missões com cliques, pratico, rápido e simples. As tasks tem recompensas por Exp, items, gold, pontos { são trocados por items no NPC. } etc. Toda ajuda será bem vinda, tanto de scripts, spells, mapas, módulos de OTC então nem se fala.
  5. Tava precisando de um sisteminha, estou criando 1 derivado, e terá algumas transformações. A ideia seria que não fosse igual do nto, por vocação. 1 Transformação precisa de X level e ganhará X atributos, trocará o outfit, e ganhará como mana, hp [Ao Reverter a transformação voltar ao status normal] 2 Transformação precisa de Y level eganhará X atributos, trocará o outfit ..
  6. Pedro. postou uma resposta no tópico em Tutoriais Websites
    Valeu maninho.
  7. Pedro. postou uma resposta no tópico em Suporte & Pedidos
  8. Pedro. postou uma resposta no tópico em Tutoriais Websites
    Obrigado pelo feedback, em todas.
  9. Pedro. postou uma resposta no tópico em Tutoriais Websites
    Olá, venho trazer um conteúdo bem bacana pra vocês, que já vi em outros servidores e gostei bastante. Talvez alguns cobrariam por isso, mas venho trazer de gratix brozito. O sistema basicamente procura no banco de dados todos os nomes que contém "Pedro" ou o que você digitar. Seria um pouco complicado para quem não entende instalar, mas vamos lá, após isso eu vou deixar o characters.php que utilizei aqui. Primeiramente em characters.php você vai da um ctrl + f e procurar por $name = ''; acredito que seja uma das primeiras coisas do seu php, após isso você vai substituir $name = ''; if(isset($_REQUEST['name'])) $name = (string) $_REQUEST['name']; if(!empty($name)) { $player = new Player(); $player->find($name); if($player->isLoaded()) { por $name = ''; if(isset($_REQUEST['name'])) $name = (string) $_REQUEST['name']; if(!empty($_REQUEST['view']) && isset($_REQUEST['view'])){ if($_REQUEST['view'] == "matches"){ $main_content .= '<BR><BR> <FORM ACTION="?subtopic=characters&view=matches" METHOD=post> <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR> <TR> <TD BGCOLOR="'.$config['site']['darkborder'].'"> <TABLE BORDER=0 CELLPADDING=1> <TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD> <INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR> </TABLE> </TD> </TR> </TABLE> </FORM>'; $main_content .= '</TABLE>'; if(isset($name) && !empty($name)){ $matches = $SQL->query('SELECT * FROM `players` WHERE `name` LIKE '.$SQL->quote("%".$name."%").' LIMIT 25')->fetchAll(); if(count($matches) > 0){ foreach($matches as $match){ $sim = similar_text(strtolower($name), strtolower($match['name']), $pct); $match["similarity"] = $pct; } //arsort($matches); for($i = 0; $i < count($fruits)-1; $i++){ for($j = 0; $j < (count($fruits)-1)-$i; $j++){ if($fruits[$j]["similarity"] < $fruits[$j+1]["similarity"]){ $temp = $fruits[$j]; $fruits[$j] = $fruits[$j+1]; $fruits[$j+1] = $temp; } } } $main_content.='<table style="width:100%;" cellspacing="1" cellpadding="4" border="0"> <tr><td class="white" bgcolor="#505050" colspan="2"><b>Matches Found</b> - Keyword(s): '.$name.'</td></tr>'; foreach($matches as $index => $player){ $main_content.=" <tr bgcolor=\"#D4C0A1\"> <td><a href=\"/?subtopic=characters&name=".urlencode($player['name'])."\">".$player["name"]."</td> <td>[ ".$player["level"]." ]</td> </tr>"; } $main_content.="</table>"; } else { $main_content.="<b>No matches found. Keyword: ".$name." </b>"; } //print_r($matches); } else { $main_content .= "<b>Warning: Search parameter empty</b>"; } } } else { if(!empty($name)) { $player = new Player(); $player->find($name); if($player->isLoaded()) { beleza, após isso você vai precisar fechar o if. Você vai da um ctrl + f ou procurar por algo parecido com $search_errors[] = 'Character <b>'.htmlspecialchars($name) então você vai substituir $search_errors[] = 'Character <b>'.htmlspecialchars($name).'</b> does not exist.'; } if(!empty($search_errors)) { $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($search_errors as $search_error) $main_content .= '<li>'.$search_error; $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; } $main_content .= '<BR><BR><FORM ACTION="?subtopic=characters" METHOD=post><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>'; $main_content .= '</TABLE>'; por $search_errors[] = 'Character <b>'.htmlspecialchars($name).'</b> does not exist.'; } } if(!isset($_REQUEST['view'])){ if(!empty($search_errors)) { $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($search_errors as $search_error) $main_content .= '<li>'.$search_error; $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; } $main_content .= '<BR><BR> <FORM ACTION="?subtopic=characters&view=matches" METHOD=post> <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'"> <TABLE BORDER=0 CELLPADDING=1> <TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD> <INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR> </TABLE></TD></TR> </TABLE> </FORM>'; $main_content .= '</TABLE>'; } vou deixar aqui também o código inteiro do characters.php https://pastebin.com/uqJ8JyUR é isto, abraços. créditos ao brozito do snavy, ricardin codenome, gian e lobão, que me ajudaram.
  10. seus mapas são ótimos, good job brozito.
  11. Pedro. postou uma resposta no tópico em Tibia Global OTServer
    https://uploadfiles.io/lp3ac
  12. Enquanto eu tava pesquisando percebi isso mesmo, na maioria das vezes eles recomendavam arquivos como 7zip, WinZip, PowerIso, que extraem esse tipo de .cab Por isso eu não encontrava nada então, obrigado pela explicação. Vou continuar pesquisando, também não conhecia esse método de DLL.
  13. é. me falaram aqui no discord que não tem como.
  14. se alguém souber como quebrar proteção .cab, fortalece pro amiguinho aqui.
  15. Pedro. postou uma resposta no tópico em Suporte Tibia OTServer
    o primeiro erro, é naquela ultima tabela ali, real_online, ele tá com algum parametro dentro do .sql que está tentando fazer uma modificação na coluna ID. Como deve ter dado erro nessa parte ele parou de importar o resto. A solução que eu tenho pra você é, excluir a database e criar outra, ao invés de importar ela de novo, você vai selecionar a database, vai em SQL, e vai importar tabela por tabela. CREATE TABLE IF NOT EXISTS `accounts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, `password` char(40) NOT NULL, `secret` char(16) DEFAULT NULL, `type` int(11) NOT NULL DEFAULT '1', `premdays` int(11) NOT NULL DEFAULT '0', `lastday` int(10) unsigned NOT NULL DEFAULT '0', `email` varchar(255) NOT NULL DEFAULT '', `creation` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; CREATE TABLE IF NOT EXISTS `account_ban_history` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `account_id` int(11) NOT NULL, `reason` varchar(255) NOT NULL, `banned_at` bigint(20) NOT NULL, `expired_at` bigint(20) NOT NULL, `banned_by` int(11) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (`banned_by`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB; e vai adicionando um por um, etc
  16. Pedro. postou uma resposta no tópico em Tibia Global OTServer
    só da import ao inves de open.
  17. um jeito fácil de arrumar, por exemplo, você equipou um item, e viu que ele tá errado, você vai clicar com o botão direito encima do item, e vai especionar, e vai ver para aonde ele está encaminhado, então tu vai ver, por exemplo /images/items/2160.png ou então /layouts/blablbla/images/items/2160.png ai tu vai ver qual id ele ta pegando e a pasta, vai pegar a item do item vip, vai colocar lá e alterar pelo ID correto.
  18. manda e-mail pra eles, ou vai na otland na parte de otservlist, pode ter sido reportado por spoof.
  19. hahaha precisa não, valeu amigão!
  20. hauihaehuaea, pode crê, mal feito, mas que bom que conseguiu resolver, abraços. alias, curti o que tu fez com o characters, se me permite, vou copia-lo.
  21. Eu já vi um projeto, meio que nessa pegada "Lunus", não sei porque até hoje o servidor nunca ficou online, eu acompanhei bastante tempo o programador deles, Gian. Servidor ficou até online pra testes, bateu + de 300 players. Interessante, boa sorte, pois é bastante chão pela frente.
  22. Pedro. postou uma resposta no tópico em Mapas de Tibia
    Maneiro, mapear como qualquer outra coisa é pratica, quanto mais você fizer, melhor vai ficar, vai pegando noção das coisas, lugares, etc. good job brozin!
  23. old, hahhaha qlq coisa deixa a base do gesior que você ta utilizando ai, chegando em casa eu instalo lá e procuro ctg.

Informação Importante

Confirmação de Termo