Jump to content

Leaderboard

  1. Majesty

    Majesty

    Imperadores


    • Points

      225

    • Content count

      4,325


  2. Nolis

    Nolis

    Cidadãos


    • Points

      28

    • Content count

      35


  3. underewar

    underewar

    Cidadãos


    • Points

      25

    • Content count

      50


  4. GryLLo

    GryLLo

    Cidadãos


    • Points

      18

    • Content count

      20



Popular Content

Showing content with the highest reputation since 05/20/2018 in all areas

  1. 7 points
    Majesty

    [Windows][VC2017] Compilando Sources TFS 1.3 + VCPKG

    [Windows][VC2017] Compilando Sources TFS 1.3 + VCPKG Tutorial explicando como compilar as sources do The Forgotten Server 1.3 + VCPKG com o Visual Studio 2017. 1 - Downloads Necessários - Visual Studio 2017 Community: [Hidden Content] - Microsoft Visual C++ 2017 Redistributable: (32-bit download, 64-bit download) - Git: [Hidden Content] 2 - Visual Studio 2017 - Na tela inicial do Visual Studio, no produto Visual Studio Community 2017 clique no botão Instalar. - Na próxima tela, selecione Desenvolvimento para Desktop com C++. - Na mesma tela em Resumo, selecione: - Depurador Just-In-Time; - Conjunto de ferramentas VC++ 2017 versão 15.9 v14.16 ferramentas v141 [x86 e x64]; - Ferramentas de criação do perfil do C++; - SDK do Windows 10 (10.0.17763.0); - Ferramentas do Visual C++ para CMake; - Visual C++ ATL para x86 e x64; - SDK do Windows 10 (10.0.17134.0) para Desktop [x86 e x64]; - SDK do Windows 10 (10.0.16299.0) para Desktop [x86 e x64]; - Conjunto de Ferramentas do VC++ 2015.3 v140 (x86, x64). - Componentes Individuais: - SDK do CRT Universal do Windows; - SDK do Windows 8.1; - Pacotes de Idiomas (Inglês). 3 - Instale os softwares necessários - Instale o Git: - Utilize o Git Bash ou Windows Powershell no diretório C:\ Git Bash: cd C:\ Windows Powershell: cd C:\ - Para fazer a instalação completa do VCPKG, execute os comandos abaixo no Git Bash ou Windows Powershell: 4 - Sources The Forgotten Server 1.3: - Faça o download das sources do The Forgotten Server 1.3 com o comando abaixo no Git Bash ou Windows Powershell. 5 - Instalação das bibliotecas VCPKG - Escolha um dos conjuntos de bibliotecas abaixo de acordo com o seu sistema operacional. - Execute o comando com o Git Bash ou Windows Powershell. - Para compilação em 32-bit: ./vcpkg install boost-iostreams:x86-windows boost-asio:x86-windows boost-filesystem:x86-windows boost-system:x86-windows boost-variant:x86-windows boost-lockfree:x86-windows luajit:x86-windows libmariadb:x86-windows pugixml:x86-windows mpir:x86-windows cryptopp:x86-windows - Para compilação em 64-bit: ./vcpkg install boost-iostreams:x64-windows boost-asio:x64-windows boost-filesystem:x64-windows boost-system:x64-windows boost-variant:x64-windows boost-lockfree:x64-windows luajit:x64-windows libmariadb:x64-windows pugixml:x64-windows mpir:x64-windows cryptopp:x64-windows 6 - Compilando as Sources do The Forgotten Server 1.3 - Abra o arquivo src/configmanager.cpp e altere o #include <lua.hpp> para #include <luajit/lua.hpp>. - Abra o arquivo src/luascript.h e altere o #include <lua.hpp> para #include <luajit/lua.hpp>. - Encontre o diretório vc14 do TFS (C:\vcpkg\forgottenserver\vc14) e abra o arquivo theforgottenserver.sln. Isso irá abrir o Visual Studio e você estará apto a compilar as sources. - No Visual Studio, escolha a opção Release e a solução "Win32" ou "x64". - Para compilar as sources, clica em Build no menu e depois em Build Solution. - As sources serão compiladas com sucesso. 7 - DLL's Necessárias Para compilação em 32-bit: - Copie as DLLs da pasta (C:\vcpkg\forgottenserver\vc14\Release) ou da pasta (C:\vcpkg\installed\x86-windows\bin): Para compilação em 64-bit: - Copie as DLLs da pasta (C:\vcpkg\forgottenserver\vc14\x64\Release) ou da pasta (C:\vcpkg\installed\x64-windows\bin): 8 - Créditos Desenvolvedores TFS: [Hidden Content] Majesty (Tradução + Tutorial de Instalação do Git + Tutorial de compilação do TFS 1.3 no VS2017 )) Microsoft - VCPKG: [Hidden Content]
  2. 6 points
    [10.x/12.x] GlobalFull Tibia 12 (11.44.5516) / Tibia 10 - New Asuras, Falcons, Warzones 4,5,6 Download de servidor GlobalFull na versão 10.x/12.x. 1- Características: 2 - Imagem: 3 - Downloads: Servidor: [Hidden Content] Database: [Hidden Content] Cliente Tibia 10: [Hidden Content] Cliente Tibia 11.44.5516: [Hidden Content] RME Tibia 12: [Hidden Content] 4 - Créditos:
  3. 6 points
    GryLLo

    Tutorial sobre Quests/Quest Log! #vemcomgryllo

    MINI TUTORIALZIN SOBRE QUESTS E QUEST LOG. Vamos chamar de QUEST a missão como um todo e de MISSÃO as missões que são advindas das QUESTS. Por exemplo, para concluir o acesso de Yalahar (QUEST) é necessário que o jogador conclua várias missões, sacou? Agora vamos entender como funcionam as quests. Primeiro procure por 'data/lib/miscellaneous/051-storages.lua' ; Talvez os nomes dos arquivos/pastas mudem de acordo com o servidor que foi baixado; Caso não encontre o arquivo acima, procure algum .LUA relacionado a STORAGE. Se mesmo assim não encontrar, poste abaixo nos comentários que tentarei ajudar assim que for possível, belezura? O que é Storage? Storage é um tabela que usamos para guardar certos tipos de informações do jogador enviando para o banco uma key numérica (serve como identificador ID) e seu value (valor), para entendermos seu funcionamento, supondo que você tenha uma noção básica sobre programação, precisamos de um objeto da classe Player que não seja nulo, digamos que temos este objeto e seu nome seja player e precisamos acessar sua quantidade de horas jogadas, supondo que o ID da quantidade de horas seja 10777, fazemos assim: player:getStorageValue(10777). PUFT! Assim teremos de retorno o valor de ID dentro do Storage, se ficar confuso, pode perguntar bro. O que são esses números no 051-storages.lua? Se pegarmos a quest InServiceofYalahar como exemplo (mete um CTRL+F aí), temos os identificadores de cada missão e também da quest em si (questline), vejamos: Questline é basicamente a inicialização da QUEST, para iniciar as missões, você primeiro precisa inicializar a quest (questline). Não adianta você criar um NPC com a função de inicializar a missão de id 12241 (Mission01) se o Questline ainda não foi iniciado!! Para que eu irei utilizar esse 051-storages.lua? Bom, aqui a ideia é padronizar e também facilitar, ao criar uma quest, primeiro crie suas etapas neste arquivo, vamos ver um exemplo: QuestDoGryllao = { Questline = 999, Mission01 = 1000, Mission02 = 1001, Mission03 = 1002 } Agora como dito acima, para verificarmos se o player tem ou está em alguma etapa da Mission02 da QuestDoGryllao, fazemos o seguinte: player:getStorageValue(Storage.QuestDoGryllao.Mission02) Ué? Mas de onde saiu esse Storage? Storage é apenas um aviso para o código de que você quer pegar um valor de dentro do 051-storages.lua, entrando em Storage temos QuestDoGryllao e dentro temos as missões, ficando assim (Storage.QuestDoGryllao.Mission01). A ideia de utilizar o 051-storages.lua é facilitar na hora de buscar um STORAGE específico. Você poderia fazer assim também: player:getStorageValue(1001) Assim fica mais simples, cê tem demência GryLLo? Não, calma lá, imagina se você tiver uma nova quest BOLADÍSSIMA com 18 missões, você vai querer decorar todos os identificadores criados? E no futuro como fica se esquecer? Colocar tudo no 051-storages.lua é uma forma de deixar as tuas PARADAS mais organizadas e simples de entender até para outros programadores! Agora vamos procurar por 'data/XML/quests.xml', utilizaremos ainda a quest In Service of Yalahar como base de explicação; <quest name="In Service of Yalahar" startstorageid="12240" startstoragevalue="5"> <mission name="Mission 01: Something Rotten" storageid="12241" startvalue="1" endvalue="6"> <missionstate id="1" description="Palimuth asked you to help with some sewer malfunctions. You will need a Crowbar, there are 4 places where you need to go marked with an X on your map." /> <missionstate id="2" description="You cleaned 1 pipe of 4 from the garbage." /> <missionstate id="3" description="You cleaned 2 pipes of 4 from the garbage." /> <missionstate id="4" description="You cleaned 3 pipes of 4 from the garbage." /> <missionstate id="5" description="You cleaned 4 pipes of 4 from the garbage. Go back to Palimuth and report your mission" /> <missionstate id="6" description="You cleaned all pipes from the garbage! Go back to Palimuth and ask for mission." /> </mission> </quest> Entramos em <quest vamos ver o que temos aqui dentro O que é o atributo NAME? É onde fica o nome da QUEST que será mostrado no Quest Log E o atributo STARTSTORAGEID? Esse é o identificador da sua quest (QUESTLINE), não irei entrar muito em detalhes, mas é a partir desse identificador que o OTZÃO BOLADO identifica que é a "Quest X" que deve ser ou foi iniciada; Tá, e esse STARTSTORAGEVALUE? Esse aqui diz qual valor é necessário para se iniciar a quest, como padrão é 1, mas nesse caso em especial está em 5. Aqui é uma das coisas que fazem a galera se perder ao tentar forçar o início de algumas quests diretamente pelo código ou por algum npc novo. Se você quer inicializar a Quest pelo código, inicialize o QUESTLINE com o valor de STARTSTORAGEVALUE, após isso, você pode ir inicializando as missões dela. Agora em <mission, bora ver! Atributo NAME, de novo? Calma jovem, esse é nome da MISSÃO, será mostrado no Quest Log E o STORAGEID? Assim como o startstorageid é um identificador, porém, de cada missão dentro da quest; STARTVALUE? Esse atributo é parecido com o startstoragevalue é o valor para se inicializar a MISSÃO ENDVALUE? Esse atributo diz em que momento a MISSÃO será finalizada, nesse exemplo nós temos 6 sub-missões dentro dessa missão para que ela seja concluída. Simbora pro <missionstate Atributo ID? Este atributo é apenas o identificador da missão, provavelmente ele quem ordena as missões dentro do QUEST LOG e faz mais umas paradas si pá. E finalmente, o último DESCRIPTION!? Aqui é a descrição da missão, normalmente diz o que o player tem que fazer para concluir essa etapa, veja abaixo: Beleza, agora que tu sabe as paradas, vamos utilizar a QuestDoGryllao como exemplo e criaremos algo simples, vamos lá: Em 051-storage.lua coloque: QuestDoGryllao = { Questline = 999, Mission01 = 1000, Mission02 = 1001, Mission03 = 1002 } DEPENDENDO DE ONDE VOCÊ COLE ISTO, NÃO ESQUEÇA DE VERIFICAR SE FALTARAM VÍRGULAS OU OUTRAS PARADAS Agora em quests.xml fazemos uma parada assim: <quest name="Quest do Gryllao" startstorageid="999" startstoragevalue="1"> <mission name="Mission 01: Empregadinho" storageid="1000" startvalue="1" endvalue="2"> <missionstate id="1" description="De um oi para o Gryllao" /> <missionstate id="2" description="Leve um cafezin pro Gryllo" /> </mission> <mission name="Mission 02: Ajude a enfrentar inimigos" storageid="1001" startvalue="1" endvalue="2"> <missionstate id="1" description="Ajude Gryllo a matar 40 rotworms" /> <missionstate id="2" description="Ajude Gryllots a matar 40 bugs" /> </mission> <mission name="Mission 03: A Procura" storageid="1002" startvalue="1" endvalue="3"> <missionstate id="1" description="Procure o cachorrinho do Gryllo" /> <missionstate id="2" description="Fale com Godofredo para pedir informacoes" /> <missionstate id="3" description="Devolva o dogao ao Gryllo" /> </mission> </quest> Vocês entenderam a ideia? Vocês já sabem como verificar o status de uma Quest: player:getStorageValue(<id_da_quest>) -- ou player:getStorageValue(Storage.<nome_da_quest_no_storage>.<missao>) Irei apenas passar mais uma funçãozinha, que é para inserir dados no Storage, serve para avançar o jogador em missões ou gravar outras informações, seria assim ó: player:setStorageValue(<id_da_quest>, <value>) -- id da quest é o startstorageid ou storageid da quest/missao que quer atualizar -- value é basicamente o progresso da quest/missao, na Mission01 do gryllo por exemplo, poderia por 1 ou 2 #EDIT 28/12/2018 Falei sobre o Storage ser uma referência as variáveis dentro de 051-storages.lua e esqueci de uma parada, na verdade, notei recentemente. Observe dentro de 051-storages.lua dentro de QUAL ARRAY você está colocando sua quest ou está a quest que você quer mexer, dentro dele há o Storage que foi explicado acima e o GlobalStorage (tem basicamente a mesma função só que com outros IDs) Acho que o básico sobre as Quests e também como mostrá-las no Quest Log já está aí. Por hoje é só pessoal, fiquem bem e sonhem com Batman! Uns abraços, GryLLo
  4. 5 points
    Olá pessoal hoje venho trazer para o Fórum um passo a passo de como montar um servidor completo na VPN da Google Cloud. 1- Criação de Maquina Virtual (Instância) 2 - Configuração de Rede e Domínio (Endereço de IP Externo, DNS e Firewall) Acesse o serviço de REDE VPC e vá até o item Endereços IP Externos. Passo 2.1 - Localize a instancia que esta com o Tipo de Endereço como Temporário. Passo 2.2 - Siga o Passo a Passo Para Liberação de Portas no Item Firewall 3 - Apontamento de Domínio e Configuração de DNS 4 - Configuração Interna do Servidor Volte para sua instância (Compute Engine -> Instâncias de VMs) 4.2 - Liberando acesso SSHD 4.3 Instalação de pacote Web ( MySQL-SERVER, Apache, PHP, PHPMyadmin) 4.4 Configurando o PHPMyadmin 4.5 Compilando uma distro em Debian9 4.6 Instalando um Website 5 - Instalação de protocolo HTTPS / Certificado Digital SSL Para ligar o servidor utilize o comando: Funciona em versões 11+ e 10- Se te ajudei deixa um comentário e um +REP
  5. 4 points
    Gengo

    [OTClient] Entendendo as funções Opcodes

    Eai, galera, blz! Hoje vim trazer um tutorial sobre Opcodes, sei que hoje em dia tem muitos tutorias falando sobre isso, porém é sempre bom dar uma atualizada, afinal um tutorial nunca será "igual" a o outro e quanto mais tutorias sobre o assunto, melhor o entendimento. Primeiro vamos conhecer o que é esse tal de Opcodes, uma breve explicação que vemos por ai. O que são Opcodes? R: Opcodes é a comunicação entre o cliente e o servidor. Na source do servidor muitos poderiam utilizar sockets, que são pacotes de informação, diretamente sem usar funcionalidades do jogo como meio de comunicação, já o Opcode utiliza-se recursos in-game para fazer essa comunicação. Vamos analisar o código do módulo acima? Vamos ver qual é a funcionalidade dessas funções e o que ela espera nos seus respectivos parâmetros. Vamos por etapa: 1 - ProtocolGame.registerExtendedOpcode(Opcode, function(protocol, opcode, buffer) end) Essa função tem a funcionalidade de registrar um Opcode, como vemos o nome já é autoexplicativo. Parâmetros: Opcodes É um numero(Identificador) qualquer que vai do 0 ao 255, no caso desse módulo foi utilizado o numero 110. Function: Esse segundo parâmetro é uma função que fica esperando uma resposta do servidor, vemos que o eperado é que servidor nos envie um buffer qualquer, neste caso esperamos que seja enviado o nome do player. 2 - ProtocolGame.unregisterExtendedOpcode(Opcode) Essa função tem a funcionalidade de desregistrar um Opcode, como vemos o nome já é autoexplicativo. Parâmetro: Opcode: É o mesmo numero(Identificador) que utilizamos para registrar, assim a propria função saberá qual Opcode deve ser desfeita, digamos assim. 3- g_game.getProtocolGame():sendExtendedOpcode(Opcode, '') Essa função tem o intuito de solicitar/executar uma ação no servidor, nesse caso do módulo de exemplo, essa ação fará com que o otClient solicite ao servidor uma responsta no qual foi designada a ser feito, me retornar o nome do player. Parâmetros: Opcode: É o mesmo numero(Identificador) que utilizamos para registrar. buffer: Dados que poderam ser enviados ao servidor. Exemplo: Enviar uma pos, e verificar se contem uma creatura, nesse exemplo não foi enviado nada. Também temos na parte do servidor e é algo simples que dê para entender. Essa função espera que o client solicite/execute uma ação para o servidor possa processar e se preciso retornar algo que é esperado. Parâmetros: cid: Cid identificar do player, não vem ao caso explicar com o maior detalhe. opcode: É o mesmo numero(Identificador) que utilizamos para registrar na parte do client, assim o servidor sabe qual ação deve ser executada. buffer: Dados que o client enviou para o servidor. Podemos analisar com calma essa função, obersevem cada detalhe que é utilizado podemos ver que se a opcode for a mesma opcode registrada no client que nesse caso é o 110, solicitamos ao servidor que nos envie o nome da creatura que executou a ação, atraves da função: doSendPlayerExtendedOpcode doSendPlayerExtendedOpcode(cid, Opcode, buffer) Essa função tem o intuito de enviar informações para o client, e ao executar essa função, podemos perceber que lá quando registramos o Opcode ProtocolGame.registerExtendedOpcode na parte do módulo, o segundo parâmetro é executado. Parâmetros: cid: Cid identificar do player, não vem ao caso explicar com o maior detalhe. opcode: É o mesmo numero(Identificador) que utilizamos para registrar na parte do client, assim o servidor sabe qual ação deve ser executada. buffer: Dados que o servidor envia para client, nesse caso foi enviado o nome da creatura. Então vamos reforçar o tutorial e vermos o que aprendemos, vamos-lá. 1º Vemos que para registrar um Opcode, utilizamos a função: ProtocolGame.registerExtendedOpcode(Opcodes, function(protocol, opcode, buffer) end) na maioria das vezes utilizamos dentro da função init. 2º Vemos que precisamos também desregistrar a Opcode, e utilizamos a função: ProtocolGame.unregisterExtendedOpcode(Opcodes), mais utilizado na função do módulo em terminate. 3º Vemos que podemos fazer com que o client solicite uma ação ao servidor utilizando a função: g_game.getProtocolGame():sendExtendedOpcode(Opcodes, Buffer). 4º Vemos também que na parte do servidor, a função: onExtendedOpcode(cid, opcode, buffer) espera que o client solicite/execute algo que possa ser processado e se preciso enviar alguma responsta esperada com a função: doSendPlayerExtendedOpcode(cid, Opcodes, Buffer) Bom, espero que dê para entender com o exemplo e uma breve explicação de cada função. Desculpem-me de qualquer erro, se falei algo errado ou se precisava dizer algo a mais; podem me chamar no privado que estarei lendo e aceitando qualquer tipo de sugestão ou alteração, afinal estamos todos aqui para aprender e o importante é que todos entendam como tudo funciona, aprendam e pratiquem. Download do módulo:
  6. 4 points
    Majesty

    [Windows][Codeblocks] Compilando Sources OTClient

    [Windows][Codeblocks] Compilando Sources OTClient Tutorial explicando como compilar as Sources do OTClient com o Codeblocks. 1 - Downloads Necessários: - CMake: (32-bit download, 64-bit download) - Codeblocks: [Hidden Content] - MingW: [Hidden Content] - OTClient Sources: [Hidden Content] 1.1 - Download Não Necessário: - Libs OTClient para MingW32: [Hidden Content] Obs: Libs OTClient já estão incluídas com o MingW! - Link de download no tópico apenas para conhecimento sobre as libs utilizadas. 2 - Instalação: - Faça a instalação do CMake (C:\Program Files\CMake). - Faça a instalação do Codeblocks (C:\Program Files (x86)\CodeBlocks). - Descompacte o MingW na unidade C:\. - Após descompactar o MingW, deverá ficar assim C:\MingW. Exemplo: - Descompacte as sources do OTClient na unidade C:\. Exemplo: C:\otclient-master. - Dentro da pasta C:\otclient-master, crie uma pasta chamada otclient-cmake. - A pasta otclient-cmake será utilizada para a criação do projeto do OTClient no CMake. 2.1 - Diretório Path: - Utilize a Tecla do logotipo do Windows + Pause para acessar as Propriedades do Sistema. - Acesse Configurações avançadas do sistema. - Na aba Avançado, clique em Variáveis de Ambiente. - Em variáveis de usuário, edite a váriavel Path e adicione o caminho abaixo: ;C:\Program Files\CMake\bin;C:\MinGW\bin;C:\MinGW\lib;C:\MinGW\include; Obs: Copie o caminho como está acima com ; na frente. 3 - CMake: - Encontre e abra o cmake-gui.exe em C:\Program Files\CMake\bin. Para facilitar a utilização, envie um atalho para a Área de Trabalho. - Antes de utilizar o CMake, acesse no menu Options > Warning Messages... > Supress Warnings > Marque as opções Developer Warnings e Deprecated Warnings. - Como configurar o projeto do OTClient no CMake: - Escolha o diretório das sources do OTClient. - Escolha o diretório que vai ser salvo o projeto do OTClient no CMake. - Clique no botão Configure escolha a opção Codeblocks - MingW Makefiles para ser o gerador do projeto. Ficando assim: - Espere ele gerar o projeto. - Feito isso, você deve configurar o CMake para compilar o OTClient (modo Release | OpenGL ou Directx9) - Isso deve ser feito uma vez para OpenGL e depois para Directx9. - OTClient CMake com modo Release e OpenGL: - CMAKE_BUILD_TYPE - Release + OPENGLES - OFF - OTClient CMake com modo Release e Directx9: - CMAKE_BUILD_TYPE - Release + OPENGLES - 2.0 - Feito isso, com a opção escolhida (Release + OpenGL ou Release + Directx9), clique no botão Generate. - O projeto otclient.cbp será salvo dentro da pasta C:\otclient-master\otclient-cmake. - OTClient pronto para ser compilado. 4 - Codeblocks: - Abra o Codeblocks. - Antes de abrir o projeto do OTClient, no menu selecione Settings > Compiler > Toolchain executables, verifique as configurações e deixe assim: - Diretório do Compilador: C:\MingW - Compilador C: gcc.exe - Compilador C++: g++.exe - Bibliotecas Dinâmicas: g++.exe - Bibliotecas Estáticas: ar.exe - Debugger: GDB/CDB debugger : Default - Compilador de Recursos: windres.exe - Programa make: mingw32-make.exe Imagem: - Depois, abra o projeto do OTClient com o comando Ctrl + O e abra o arquivo otclient.cbp: - Feito isso, para compilar o OTClient clique na opção Build: - O resultado final deverá ser esse: - OTClient compilado no Codeblocks com sucesso! - Como utilizar o OTClient: - Copie o otclient.exe da pasta otclient-cmake e cole na pasta otclient-master. - Copie as DLLs libwinpthread-1.dll, libEGL.dll e libGLESv2.dll da pasta C:\MingW\bin e cole na pasta otclient-master. - Copie o Tibia.spr e Tibia.dat da versão desejada em data/things/versão (no lugar de versão crie a pasta com o número, exemplos: 760, 860, 1098, etc). - Abra o otclient.exe. 5 - Créditos: Edubart (Sources OTClient) Majesty (Downloads Mediafire + Tutorial CMake e Codeblocks)
  7. 4 points
    Adrianokb

    Novo projeto Pokemon 8.54 "SOURCE's Open"+

    Bom dia a todos. Estou aqui para falar e fazer um pedido para todos vocês ! Sei que muitas pessoas assim como eu querem criar um Servidor de Poketibia, tanto para diversão quanto para tentar manter o projeto. Então gostaria de pedir carecidamente a todos vocês que tem esse desejo, que por favor, antes mesmo de ler este tópico coloquem de lado suas ganancias e parem de pensar apenas em si mesmo e no dinheiro. Pois um grupo unido que tenta resolver e criar novas soluções juntos, desenvolvem ideias e soluções melhores, alem de terem um desemprenho melhor quando precisam de ajuda com algo! A alguns dia eu vi um projeto chamado Ruby Server "Pokemon" de versão 10.99 Porem como é uma versão de Server com e TFS que raramente alguém do pokemon está acostumado a usar. percebi que o projeto anda um pouco parado. E resolvi fazer para você um projeto parecido porem para ( Versão 8.54 // TFS : 0.3.3 ou 0.4 ) que todos estão mais acostumados e possui um suporte melhor para "Edição" em geral. Uma base bastante utilizada para bons Servidores é DxP, porem é muito raro vocês verem publicações com suas Source's (Cliente + Server) ainda mais "Funcionais". Pois sempre colocam com arquivos danificados ou faltando, alem de bugs dentro do servidor. ======================================================================================================================== Estou montando um projeto que se iniciou com a base DxP e foi realizado varias alterações ate chegar aqui. The Forgotten Server TFS 0.3.3 Versão : 8.54 E quem tiver interesse em ter esse projeto em mãos, peço sua ajuda! Logo mais irei publicar um Tópico no fórum com todos os arquivos e tutoriais para vocês. ==== Atualmente ==== 1º - Source funcionando e compatível com o servidor; 2º - Praticamente todos os bugs e traps retirados; 3º - Cliente com um novo Tibia.Otb / outf / Sprit/ (Muitas novas Sprits de pokemons, itens // novas Outfits, animações de Skill.); 4º - Interface do cliente um pouco alterada, é pouca coisa; 5º - Autoloot funcional; (não existe mais bug de clonagem no itens) 6º - Bugs que faziam o servidor dar Crash retirados (Todos que eu conhecia e pesquisei) Entre muitas outras coisas... (O tópico já esta grande então vão vou enrolar escrevendo tudo !) ==== Falta === 1º - Uma Source compartível para compilar o Cliente. (Praticamente a unica coisa que realmente falta neste projeto ); 2º - Novas Outfits de interação com o jogo (Ja existem as principais como : Colheira, Minerar, Cortar) porem gostaria de add a este projeto algumas a mais, como ex: (Sentar no chão, sentar em cadeiras) e muitas outras, depende da criatividade de vocês; 3º - Site compatível já existente (mais falta correções de bugs nele) 4º - A criação e correção dos Itens em "Itens.xml" (ao qual já estou fazendo) Oque preciso de vocês !? 1° - Que encontrem uma Source compatível e funcionando para compilar o "OtCliente" utilizado no Dxp v.3 2º - Designer para criação de Outfit e novas janelas como (Pokedex, Shop, AutoLoot e Sistema de Crack.) Sim o server está um com sistema de Craft! um pouco simples mais tem. 3º - O server tem mapa. Mas é bom a criação de um novo mapa, então precisamos de pessoas para criar o mapa. 4º - Scripter para desenvolver, melhorar e também criar novas ideias. Com o 1º item ja consigo fazer as ultimas alterações e publico um tópico bem organizado, com RME e ObBuilder atualizados e com vários tutorias bons e importantes. ======================================================================================================================== Discord para o projeto: --Irei atualizar aqui-- Imagens: -- Irei publicar de noite, tenho que sair correndo para a empresa, kkkkk -- Qualquer duvida perguntem... Criticas ? (Cara to fazendo um projeto legal para todas as pessoas que gostam do jogo. Para terem mais facilidade e algo realmente bom ou melhor) Se quer falar mal ou reclamar de algo, porque também não traz uma solução !?
  8. 4 points
    Majesty

    Versão do TFS

    Vale a pena utilizar a versão 1.2/1.3 porque tem vários patches de segurança, correções de bugs, novas features, a mais relevante é a mudança de versão (10.77 -> 10.98). [Hidden Content] ([Hidden Content]) [Hidden Content] ([Hidden Content]) e mais atualizações. Segue abaixo utilitários com suporte a versão 10.98: Cliente Tibia 10.98: OTClient: Item Editor 0.4: Object Builder v0.3.3: Remere's Map Editor 3.5:
  9. 4 points
    Aralom

    [OTClient] Remove Local Player Default Light

    Resumo Recentemente estava observando que quando estou usando o OTClient ao descer para andares escuros do mapa o jogador fica com uma luz ao redor e quando usamos o Tibia Client esta mesma luz não aparece, ou seja, no OTClient a necessidade do jogador usar uma tocha ou uma magia para iluminar é muito menor que no Tibia Client pois utilizando o OTC o nível de luz não fica como deveria. Após estudar alguns arquivos da source do OTC consegui encontrar a solução, e é bem simples! Instalando Dentro do arquivo creatures.cpp nas sources do OTClient modificar: light.intensity = std::max<uint8>(light.intensity, 3); por light.intensity = std::max<uint8>(light.intensity, 0); Pronto! Espero que gostem!
  10. 4 points
    Majesty

    [Windows][VC2017] Compilando Sources OTServBR-Global

    [Windows][VC2017] Compilando Sources OTServBR-Global Tutorial explicando como compilar as sources do OTServBR-Global com o Visual Studio 2017. 1 - Downloads Necessários - Visual Studio 2017: [Hidden Content] - Microsoft Visual C++ 2017 Redistributable: (32-bit download, 64-bit download) - TFS SDK 3.2 (Bibliotecas): [Hidden Content] -- sha1sum: 3fb1b140e40e8e8bc90f82f92bd022a50569b185 -- sha256sum: 2ffb549f336ad11550da9b9c40716880e13b1cc0ee86e7599022dcacc972a3bf - Bibliotecas Boost C++ 1.66.0: (32-bit download, 64-bit download) - Sources OTServBR-Global: [Hidden Content] 2 - Instale os softwares necessários - Instale as bibliotecas Boost C++ 1.66.0. 3 - Visual Studio 2017 - Na tela inicial do Visual Studio, no produto Visual Studio Community 2017 clique no botão Instalar. - Na próxima tela, selecione Desenvolvimento para Desktop com C++. - Na mesma tela em Resumo, selecione: - Depurador Just-In-Time; - Conjunto de ferramentas VC++ 2017 versão 15.9 v14.16 ferramentas v141 [x86 e x64]; - Ferramentas de criação do perfil do C++; - SDK do Windows 10 (10.0.17763.0); - Ferramentas do Visual C++ para CMake; - Visual C++ ATL para x86 e x64; - SDK do Windows 10 (10.0.17134.0) para Desktop [x86 e x64]; - SDK do Windows 10 (10.0.16299.0) para Desktop [x86 e x64]; - Conjunto de Ferramentas do VC++ 2015.3 v140 (x86, x64). - Componentes Individuais: - SDK do CRT Universal do Windows; - SDK do Windows 8.1; - Pacotes de Idiomas (Inglês). - Depois de baixado e instalado o Visual Studio Community 2017 e suas ferramentas, você estará apto a compilar as sources do OTServBR-Global. 4 - TFS SDK 3.2 - Extraia os arquivos do TFS SDK 3.2. - Antes de rodar o arquivo "register_tfssdk_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx TFSSDKDir %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx TFSSDKDir "%CD%" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 4.1 - Boost C++ - Mova o arquivo "register_boost_env.bat" que está na pasta do TFS SDK 3.2 para o diretório onde foi instalado o Boost C++ 1.66.0 (Exemplo: C:\local\boost_1_66_0) - Antes de rodar o arquivo "register_boost_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx BOOST_ROOT %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx BOOST_ROOT "%CD" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 4.2 - Adicionando manualmente os diretórios das bibliotecas - Se os .bat não funcionarem, adicione manualmente os diretórios. - Utilize a Tecla do logotipo do Windows + Pause para acessar as Propriedades do Sistema. - Acesse Configurações avançadas do sistema. - Na aba Avançado, clique em Variáveis de Ambiente. - Em variáveis de usuário adicione os diretórios do TFSSDKDir e BOOST_ROOT. - Exemplo: - Variável: BOOST_ROOT | Valor: C:\local\boost_1_66_0 - Variável: TFSSDKDir | Valor: C:\tfs-sdk-3.2 5 - Compilando as Sources do OTServBR-Global - Encontre o diretório vc14 do OTServBR-Global e abra o arquivo theforgottenserver.sln. - Abrirá uma nova janela para Examinar Ações de Solução, basta selecionar conforme as opções abaixo: - Feito isso, você estará apto a compilar as sources do OTServBR-Global. - No Visual Studio, escolha a opção Release e a solução "Win32" ou "x64". - Para compilar as sources, clica em Build no menu e depois em Build Solution. - As sources serão compiladas com sucesso. 6 - DLL's Necessárias - Para rodar o servidor você precisa baixar as DLL's, elas são encontradas para download neste tópico: 7 - Abrindo o Servidor - Para abrir o servidor, você pode seguir 1 (uma) das opções abaixo: Opção 1: Opção 2: Opção 3: 8 - Créditos Desenvolvedores TFS: [Hidden Content] Ninja: [Hidden Content] Majesty (Tutorial de compilação no VS2017) Microsoft
  11. 3 points
    Majesty

    OTU - OpenTibiaUnity - Novo ClienteTibia baseado na engine Unity3D

    OTU - OpenTibiaUnity - Novo ClienteTibia baseado na engine Unity3D Em desenvolvimento por Slavi Dodo (OTLand): [Hidden Content] Tópico original traduzido. Por que um novo cliente? O que isso resolve? Informações: Imagens disponíveis no imgur: [Hidden Content] Imagens: O cliente é baseado em um projeto sprite-atlas: [Hidden Content] Ajude o desenvolvedor no Patreon: [Hidden Content] Github: [Hidden Content] Não é necessário que você apoie o projeto, o projeto será no final open-source mas por enquanto, será apenas para os patreons ajudarem a continuarem desenvolvendo o projeto.
  12. 3 points
    Gengo

    The Forgotten Server 1.3 | Compilado

    The Forgotten Server 1.3 Download do The Forgotten Server 1.3 compilado, commit master mais recente. Como alguns estão tendo dificuldades de compilar as source do tfs mais recentes, resolvi compilar e disponibilizar para a comunidade. Download: [Hidden Content] Scan: [Hidden Content] Tutorial utilizado para compilar: Créditos: Desenvolvedores TFS: [Hidden Content]
  13. 3 points
    Majesty

    Cliente Tibia 11 com Notepad++

    Cliente Tibia 11 com Notepad++ Tutorial explicando como editar o Cliente Tibia 11 e configurar para localhost. Tibia 11 Login Webservice funciona com GesiorAAC. Tibia 11 Login Webservice funciona com MyAAC. Tibia 11 Login Webservice funciona com ZnoteAAC 1.5. 1 - Downloads Notepad++: [Hidden Content] Cliente Tibia 11: [Hidden Content] 2 - Como trocar chave RSA - Abra a pasta de instalação do Tibia 11 (C:\Users\SeuUsuário\AppData\Local\Tibia), vá para a pasta packages/Tibia/bin e abra o client.exe com o Notepad++. - Procure por: BC27F992A96B8E2A43F4DFBE1CEF8FD51CF43D2803EE34FBBD8634D8B4FA32F7D9D9E159978DD29156D62F4153E9C5914263FC4986797E12245C1A6C4531EFE48A6F7C2EFFFFF18F2C9E1C504031F3E4A2C788EE96618FFFCEC2C3E5BFAFAF743B3FC7A872EE60A52C29AA688BDAF8692305312882F1F66EE9D8AEB7F84B1949 - Substitua por: 9B646903B45B07AC956568D87353BD7165139DD7940703B03E6DD079399661B4A837AA60561D7CCB9452FA0080594909882AB5BCA58A1A1B35F8B1059B72B1212611C6152AD3DBB3CFBEE7ADC142A75D3D75971509C321C5C24A5BD51FD460F01B4E15BEB0DE1930528A5D3F15C1E3CBF5C401D6777E10ACAAB33DBE8D5B7FF5 3 - Como trocar o IP - Procure por: loginWebService=[Hidden Content] - Substitua por: loginWebService=[Hidden Content] Lembre-se de adicionar "NUL" (Notepad++ > Plugins > Converter >Conversion Panel > ASCll > Insert) no texto do .ini se a URL do seu webservice tiver um comprimento de texto diferente do original. ("loginWebService=[Hidden Content]") (col: 69). Neste caso, para "loginWebService=[Hidden Content]" (col:43) deve-se adicionar 26 "NUL". Procure pela linha: maxChatInputHistoryLength=1000 Abaixo desta linha, no início da próxima (col:1) é onde você deve adicionar os "NUL". 4 - Créditos Yamaken: [Hidden Content]
  14. 3 points
    Majesty

    [10.x Old/ 11.49] Ombra Global Pack - Base OTX

    [10.x Old/ 11.49] Ombra Global Pack - Base OTX Download de servidor Global na versão 10.x old e 11.49 - Base OTX. 1- Características: 2 - Imagens: 3 - Download: Gitlab Ombra Pack de Correção 1.3: MEGA Scan - Ombra Pack de Correção 1.3: VirusTotal 4 - Créditos: Desenvolvedores TFS Desenvolvedores OTX ADM Logan (Johncore) ADM Argel Erick Nunes
  15. 3 points
    Majesty

    [Servidor] Corrigindo erro dos itens ao relogar

    [Servidor] Corrigindo erro dos itens ao relogar Tutorial explicando como corrigir o erro dos itens ao relogar no servidor. 1 - Database: - Acesse sua database; - Clique em player_items. - Depois clique em Estrutura: - Na linha itemtype, clique para mudar: - Depois, em Tipo: - Altere para INT e valor 11: - O resultado final deverá ser esse: - O mesmo procedimento deverá ser feito para itemtype e count para a tabela player_depotitems, player_inboxitems e player_rewards. - Ou apenas executar essas queries na database > SQL: ALTER TABLE `player_items` CHANGE `itemtype` `count` INT(11) NOT NULL DEFAULT '0'; ALTER TABLE `player_depotitems` CHANGE `itemtype` `count` INT(11) NOT NULL DEFAULT '0'; ALTER TABLE `player_inboxitems` CHANGE `itemtype` `count` INT(11) NOT NULL DEFAULT '0'; ALTER TABLE `player_rewards` CHANGE `itemtype` `count` INT(11) NOT NULL DEFAULT '0'; 2 - Créditos: mattyx14 (queries SQL) sirarcken (tutorial)
  16. 3 points
    Majesty

    [Windows][Dev-C++] Compilando Sources Yurots Server 0.9.4f (7.6)

    [Windows][Dev-C++] Compilando Sources Yurots Server 0.9.4f (7.6) Tutorial explicando como compilar as sources do Yurots Server 0.9.4f (7.6) com o Dev-C++. 1 - Downloads Necessários: Dev-Cpp: [Hidden Content] Sources Yurots Server 0.9.4f (7.6): [Hidden Content] Scan - Dev-Cpp: [Hidden Content] 2 - Dev-C++: - Extraia o Dev-Cpp dentro do Disco Local (C:). - Deve ficar somente C:\Dev-Cpp com os arquivos e pastas. - O Dev-Cpp já está com as seguintes bibliotecas instaladas: - Dev-Cpp está pronto para compilar as sources. 3 - Sources Yurots Server 0.9.4f (7.6): - Extraia as sources do Yurots Server 0.9.4f (7.6) em uma pasta. - Com o dev-cpp aberto, use o comando Ctrl+o para procurar e abrir o projeto .dev do Yurots Server 0.9.4f (7.6). - O .dev está dentro da pasta devcpp das sources: - Abra o otserv.dev. - Para compilar as sources basta clicar em Executar > Compilar ou utilizar o comando Ctrl+F9. E pronto, sources compiladas com sucesso! 4 - DLL's Necessárias: - Para rodar o servidor você precisa baixar as DLL's: Download: [Hidden Content] Scan: [Hidden Content] - Coloque o executável e as DLL's na pasta raíz do servidor, onde se encontra o config.lua, pasta data, etc. - Se o servidor não abrir, clique com o botão direito do mouse em YurOTS.exe, depois clique em Propriedades > Compatibilidade > Modo de Compatibilidade > Executar este programa em modo de compatibilidade: > Windows 7. 5 - Conectando ao Servidor: - Para conectar ao servidor Yurots Server 0.9.4f (7.6) você pode baixar o Cliente Tibia 7.6 + IP Changer. Eles são encontrados para download nos seguintes tópicos: Clientes Tibia: IP Changer: - Você também pode utilizar o OTClient: (OTClient pronto e configurado para conectar em servidor 7.6). 6 - Créditos: Majesty (Tutorial + Dev-Cpp + Download DLL's) Yurez (Yurots Server 0.9.4f (7.6))
  17. 3 points
    Majesty

    Feliz 2019 + Retrospectiva OTBR 2018!

    Fala, Tibianos! Nós do OTServ Brasil desejamos a todos um feliz e próspero ano novo e que com ele venha ótimos momentos, recordações, diversão e muito OTServ! Gostaríamos de aproveitar e convidá-los para conferir nossa retrospectiva de 2018, afinal, nada melhor do que terminar o ano com um pouco de nostalgia, não é mesmo? Relembre conosco todos os conteúdos em destaque que passaram pela Cidade OTBR! → OTServ Notícias e Discussões (7 tópicos); Destaques: Porta de level 999? o que você faria? OTU - OpenTibiaUnity - Novo ClienteTibia baseado na engine Unity3D Suporte - Dúvidas, Bugs, Erros (148 tópicos respondidos); Downloads: OTServs Normais (10 tópicos); Destaques: [8.60] Yurots 1.2 [10.99] Global v30 - OTX [10x/12x] OTX Global - Full Global Project [10.x Old/ 11.49] Ombra Global Pack - Base OTX [10.x/12.x] GlobalFull Tibia 12 (11.44.5516) / Tibia 10 - New Asuras, Falcons, Warzones 4,5,6 OTServs Derivados (10 tópicos); Destaques: The Ruby Project - Base Pokémon Pokémon Mythology [8.54] PokéCamp.net [8.54] Pokémon Gabrieltxu 3.2 [Versão Final] PokeChampions Utilitários (19 tópicos); Destaques: Remere's Map Editor 3.5 [OTX Global - Full Global Project] Cliente Tibia 10 / Cliente Tibia 11 Discord Bot para Servidores Open Tibia Visual Studio Code TFS 1.x Snippets OTMapGen Mapas (11 tópicos); Destaques: Ethno, Gengia, Ghala, Ghenov, Oken, Pyre, Vikia, Atlantyda Feyrist [11.49] Hovera Custom Map [8.70] Elysium World Map Warzone 4, 5, 6 / New Asuras / Falcons Scripts: Sistemas (1 tópico); Funções e Bibliotecas (3 tópicos); Destaque: [TFS 1.2] Modal Window Helper Lib Actions (2 tópicos); Destaque: [TFS 1.2] Prision Boss Script Talkactions e Movements (2 tópicos); Creature Scripts e Global Events (2 tópicos); Destaque: [TFS 1.2] Death Cast NPCs (2 tópicos); Destaque: [TFS 1.x] NPC Cassino / Dicer Websites e Aplicações: Websites (7 tópicos); Destaques: GesiorAAC - Premium Pack 2018 Premium GesiorAAC - The Real Ferobra Gesior 2012 para OldServer 7.x Layouts (4 tópicos); Destaques: [MyAAC] Thora Layout [GesiorAAC] Thora Layout Aplicativos (1 tópico); Destaque: [GesiorAAC] Store para Tibia 11 Sprites (2 tópicos); Destaques: Sprites - Tibia 11.94.7595 Sprites - Tibia 12.00.7695 OTClient: Códigos C++ (1 tópico); MODs (1 tópico); Destaque: [MOD] Monster Maker Tutoriais: Infraestrutura (4 tópicos); Destaques: [10.x Old /11.x] Object Builder 0.3.3 + Item Editor 0.4 Cliente Tibia 11 - Edição de Recursos Gráficos Mapping (5 tópicos); Destaques: Remere's Map Editor 3.4 - Abrindo Mapa 11.x Como abrir e/ou criar mapas com o The Ruby RME (32-bit/64-bit) Manual do RME 01 - Introdução e configurações iniciais Scripting (3 tópicos); Destaque: Tutorial sobre Quests/Quest Log! Spriting (2 tópicos); Destaque: Como adicionar uma Mask (OBD) Programação (8 tópicos); Destaques: [Windows][VC2017] Compilando Sources OTXServer Global Full [Windows][VC2017] Compilando Sources TFS 1.3 + TFS SDK 3.2 [Windows][VC2017] Compilando Sources do The Ruby Server [Windows][VC2017] Compilando Sources RME (32-bit/64-bit) [Windows][Dev-C++] Compilando Sources TFS 0.4 (8.6) Websites (2 tópicos); Destaques: [Windows][MySQL] Ruby Website + WampServer [Cliente Tibia 11] [GesiorAAC] Solução para o problema "illegal value" OTClient (4 tópicos); Destaque: [Windows][VC2017] Compilando Sources do The Ruby Client Divulgação de Servidores (29 tópicos); Projetos e Formações de Equipes (14 tópicos); Encerramos mais um ano após uma longa jornada pelas Terras Tibianas e nos vemos ano que vem com mais novidades, conteúdo de qualidade e fazendo o melhor possível pelos cidadãos e viajantes que passam por nossa comunidade. Aproveitem a oportunidade para dar aquele feedback básico e contar suas expectativas para o próximo ano. 2004-2019
  18. 3 points
    OTServBR-Global 10.00 / 12.x Download de servidor Global na versão 10.00 old e 12.x. Obs: servidor não oficial do OTServ Brasil (OTBR) e apoiado pelo OTServ Brasil (OTBR). 1- Características: 2 - Imagens: 3 - Downloads: Servidor: Github Clientes: 4 - Créditos: Desenvolvedores TFS Desenvolvedores OTX Eduardo Dantas Otávio Milani
  19. 3 points
    Majesty

    GesiorAAC - Premium Pack 2018

    GesiorAAC - Premium Pack 2018 Download do website GesiorAAC baseado no layout oficial do Tibia criado pela Cipsoft, editado por Marco Oliveira. 1 - Características - Nova página Highscores; - Pagseguro Lightbox; - Página houses com imagens; - Sistema de tickets; - Diversos bugs de segurança corrigidos; - Página de downloads atualizadas; - Página Worlds igual ao global. 2 - Imagem 3 - Como instalar - Utilize XAMPP / Uniform Server com PHP 5.6 para abrir o site sem erros. - A instalação é muito simples, basta editar o config.php dentro da pasta config do site. 4 - Download: Github: [Hidden Content] 5 - Créditos Cipsoft Marco Oliveira
  20. 3 points
    Majesty

    Github OTBR!

    Fala, galera! Para facilitar a pesquisa e incentivar o desenvolvimento, nós do OTServ Brasil criamos um grupo no Github com cópias de repositórios de coisas e projetos relacionados ao Open Tibia. No Github OTBR você pode encontrar: - Servidores, - Utilitários, - Scripts, - Mapas, - Códigos, - Websites e aplicações, - Sprites, - OTClient, - E muito mais! Se alguém desenvolve algo Open Source e gostaria de ter maior divulgação, pode entrar em contato conosco no Discord: E nós adicionaremos o seu repositório em nosso grupo! Acessem o nosso grupo no Github: Atenciosamente, OTServ Brasil.
  21. 3 points
    Aralom

    [OTClient] Diagonal Movement Adjust

    Resumo Atualmente existe um pequeno delay que incomoda alguns jogadores. Com a aplicação das alterações abaixo você poderá ajustar a velocidade do jogador ao andar diagonal. Instalando Dentro do arquivo creature.cpp nas sources do OTClient procure por: getStepDuration(true) Altere todos que encontrar para: getStepDuration() Agora procure por: interval *= factor; Altere para: interval *= 1.5; Dentro do arquivo localplayer.cpp nas sources do OTClient procure por: getStepDuration(true) Altere para: getStepDuration() Dentro do arquivo creature.cpp nas sources do Servidor procure por: //diagonal extra cost lastStepCost = 3; Altere para: //diagonal extra cost lastStepCost = 1.5; Agora procure por: if ((dir & DIRECTION_DIAGONAL_MASK) != 0) { stepDuration *= 3; } Altere para: if ((dir & DIRECTION_DIAGONAL_MASK) != 0) { stepDuration *= 1.5; } Pronto! Os valores em vermelho definem a velocidade que será definida. A velocidade que foi utilizada no exemplo acima e que indico foi de 1.5.
  22. 3 points
    Majesty

    [Windows][MySQL] Ruby Website + WampServer

    [Windows][MySQL] Ruby Website + WampServer Tutorial explicando como instalar o Ruby Website feito em Laravel com o WampServer. Obs: Antes de abrir o website com o WampServer, clique com o botão esquerdo do mouse no ícone do Wamp que está na barra de tarefas (Tray) e mude a versão do PHP para 7.3.1. 1 - Downloads Necessários - WampServer: (32-bit download, 64-bit download) - Composer : [Hidden Content] - Node.js: (32-bit download, 64-bit download) - Ruby Website: [Hidden Content] - Ruby Server schema.sql: [Hidden Content] 2 - Instale os softwares necessários - Instale o WampServer. (C:\wamp64 se o SO é 64-bit) ou (C:\wamp86 se o SO é 32-bit) - Instale o Composer. Ele pedirá para utilizar o PHP do WampServer, selecione C:\wamp64\bin\php\php7.3.1\php.exe - Selecione a versão do PHP mais recente (no caso PHP 7.3.1). - Instale o Node.js (C:\nodejs). - Faça o download do Ruby Website e salve os arquivos na pasta C:\wamp64\www 3 – Database - Abra o WampServer e aguarde até que os serviços Apache + MySQL estejam rodando. - Acesse [Hidden Content] - O utilizador padrão é root, senha: em branco, servidor: MySQL. - Clique em +New no painel a esquerda e crie uma database. - Exemplo: rubyserver. - Importe o arquivo schema.sql do Ruby Server. - Acesse a pasta C:\wamp64\www e renomeie o arquivo .env.example para .env - Caso não consiga renomear o arquivo, edite com as informações da sua database e depois salve como .env - É no arquivo .env que estão as configurações da database. - Se você criou a database no phpmyadmin com o nome rubyserver, configure assim no arquivo .env: - Neste caso, para o tutorial em localhost foi mantido o usuário root sem senha alterada no WampServer. 4 – Ruby Website - Abra o Prompt de Comando (CMD) do Windows com direito de Administrador (deve aparecer C:\WINDOWS\system32>) e acesse o diretório do Ruby Website com os comandos: - Neste caso, os arquivos do Ruby Website estão salvos em C:\wamp64\www Obs: o caminho do diretório dependerá de onde você salvou os arquivos do repositório do Ruby Website. - No Prompt de Comando (CMD), estando no diretório do rubywebsite utilize os comandos abaixo: - Feito isso, o Ruby Website está pronto! - Com o Ruby Website instalado, para abrir basta apenas seguir o passo 5 ou o passo 5.1. 5 – Abrindo o Ruby Website com Laravel - Acesse o Prompt de Comando (CMD) do Windows com direito de Administrador (deve aparecer C:\WINDOWS\system32>) e acesse o diretório do Ruby Website com os comandos: Neste caso, os arquivos do Ruby Website estão salvos em C:\wamp64\www Obs: o caminho do diretório dependerá de onde você salvou os arquivos do repositório do Ruby Website. - Para abrir o Ruby Website utilize o seguinte comando: php artisan serve (é o servidor do Laravel) - Depois em seu navegador, acesse [Hidden Content] ou [Hidden Content]. - Ruby Website será aberto com sucesso! 5.1 – Abrindo o Ruby Website com WampServer - Para abrir o website corretamente, primeiro deve ser feita a alteração do host no arquivo httpd-vhosts.conf (localizado em C:\wamp64\bin\apache\apache2.4.37\conf\extra) - Altere o virtual host deixando assim: - Salve o arquivo e depois reinicie os serviços do Wamp. Obs: Antes de abrir o website com o WampServer, clique com o botão esquerdo do mouse no ícone do Wamp que está na barra de tarefas (Tray) e mude a versão do PHP para 7.3.1. - Depois em seu navegador, acesse [Hidden Content] ou [Hidden Content]. - Ruby Website será aberto com sucesso! 6 – Créditos: Leohige: [Hidden Content] Tutorial: Majesty
  23. 3 points
    Jair Kevick

    Libs PokeStorm [Linux]

    @Behmen Por sorte achei ela perdida no meu Dropbox. [Hidden Content]
  24. 3 points
    Majesty

    [Windows][VC2017] Compilando Sources TFS 1.3 + TFS SDK 3.2

    [Windows][VC2017] Compilando Sources TFS 1.3 + TFS SDK 3.2 Tutorial explicando como compilar as sources do The Forgotten Server 1.3 + TFS SDK 3.2 com o Visual Studio 2017. 1 - Downloads Necessários - Visual Studio 2017 Community: [Hidden Content] - Microsoft Visual C++ 2017 Redistributable: (32-bit download, 64-bit download) - TFS SDK 3.2 (Bibliotecas): [Hidden Content] -- sha1sum: 3fb1b140e40e8e8bc90f82f92bd022a50569b185 -- sha256sum: 2ffb549f336ad11550da9b9c40716880e13b1cc0ee86e7599022dcacc972a3bf - Bibliotecas Boost C++ 1.66.0: (32-bit download, 64-bit download) - Sources TFS 1.3 (commit 335e373): [Hidden Content] 2 - Instale os softwares necessários - Instale as bibliotecas Boost C++ 1.66.0. 3 - Visual Studio 2017 - Na tela inicial do Visual Studio, no produto Visual Studio Community 2017 clique no botão Instalar. - Na próxima tela, selecione Desenvolvimento para Desktop com C++. - Na mesma tela em Resumo, selecione: - Depurador Just-In-Time; - Conjunto de ferramentas VC++ 2017 versão 15.9 v14.16 ferramentas v141 [x86 e x64]; - Ferramentas de criação do perfil do C++; - SDK do Windows 10 (10.0.17763.0); - Ferramentas do Visual C++ para CMake; - Visual C++ ATL para x86 e x64; - SDK do Windows 10 (10.0.17134.0) para Desktop [x86 e x64]; - SDK do Windows 10 (10.0.16299.0) para Desktop [x86 e x64]; - Conjunto de Ferramentas do VC++ 2015.3 v140 (x86, x64). - Componentes Individuais: - SDK do CRT Universal do Windows; - SDK do Windows 8.1; - Pacotes de Idiomas (Inglês). - Depois de baixado e instalado o Visual Studio Community 2017 e suas ferramentas, você estará apto a compilar as sources do TFS. 4 - TFS SDK 3.2 - Extraia os arquivos do TFS SDK 3.2. - Antes de rodar o arquivo "register_tfssdk_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx TFSSDKDir %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx TFSSDKDir "%CD%" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 4.1 - Boost C++ - Mova o arquivo "register_boost_env.bat" que está na pasta do TFS SDK 3.2 para o diretório onde foi instalado o Boost C++ 1.66.0 (Exemplo: C:\local\boost_1_66_0) - Antes de rodar o arquivo "register_boost_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx BOOST_ROOT %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx BOOST_ROOT "%CD" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 4.2 - Adicionando manualmente os diretórios das bibliotecas - Se os .bat não funcionarem, adicione manualmente os diretórios. - Utilize a Tecla do logotipo do Windows + Pause para acessar as Propriedades do Sistema. - Acesse Configurações avançadas do sistema. - Na aba Avançado, clique em Variáveis de Ambiente. - Em variáveis de usuário adicione os diretórios do TFSSDKDir e BOOST_ROOT. - Exemplo: 5 - Compilando as Sources do The Forgotten Server - Encontre o diretório vc14 do TFS e abra o arquivo theforgottenserver.sln. Isso irá abrir o Visual Studio e você estará apto a compilar as sources. - No Visual Studio, escolha a opção Release e a solução "Win32" ou "x64". - Para compilar as sources, clica em Build no menu e depois em Build Solution. - As sources serão compiladas com sucesso. 6 - DLL's Necessárias - Para rodar o servidor você precisa baixar as DLL's, elas são encontradas para download neste tópico: 7 - Créditos Desenvolvedores TFS: [Hidden Content] Ninja: [Hidden Content] Majesty (Tutorial de compilação no VS2017)
  25. 2 points
    Gengo

    [OTClient] HealthInfo OTPokemon

    [OTClient] Health Player Info OTPokemon Eae galerinha do OTServ Brasil, hoje venho trazer mais uma contribuição para a comunidade, um módulo indêntico ao do OtPokemon. Mesmo que seja simples a instalação, tem sempre aquele que não sabe onde deve colocar o módulo, peço então que tenha paciência quanto a esse simples tutorial, aos demais aqueles que já sabem, peço que ao menos leia a Observações do módulo. 1º Faça o download do módulo. 2º Extraia o módulo para a pasta do seu otClient em /modules ficando assim: Feito o passo 1 e 2 creio que já estará funcionando, isto se você fez tudo certinho. •Observações do módulo• Demonstrativo do módulo no jogo. Obs: Sei que a comunidade é mais voltada para o tibia, mas gostaria de fazer uma contribuição de derivados, afinal o módulo é independente de servidor, só fazer pequenas alterações para adaptar ao seu serv.
  26. 2 points
    Majesty

    Anel de Sauron (true ghost player)

    Solução: - src/game.cpp, substituir o que está nas linhas 3738 até 3747 por: Movement script (onEquip e deEquip): Créditos: @Eduardo Dant.
  27. 2 points
    Majesty

    Extended Opcodes

    Adaptação para sources de servidores 8.54+ Códigos: protocolgame.h Embaixo de void AddShopItem(NetworkMessage_ptr msg, const ShopInfo item); Adicione void parseExtendedOpcode(NetworkMessage& msg);void sendExtendedOpcode(uint8_t opcode, const std::string& buffer); protocolgame.cpp Embaixo de uint32_t key[4] = {msg.GetU32(), msg.GetU32(), msg.GetU32(), msg.GetU32()};enableXTEAEncryption();setXTEAKey(key); Adicione // notifies to otclient that this server can receive extended game protocol opcodesif(operatingSystem >= CLIENTOS_OTCLIENT_LINUX)sendExtendedOpcode(0x00, std::string()); Embaixo de void ProtocolGame::AddShopItem(NetworkMessage_ptr msg, const ShopInfo item){const ItemType& it = Item::items[item.itemId];msg->AddU16(it.clientId);if(it.isSplash() || it.isFluidContainer())msg->AddByte(fluidMap[item.subType % 8]);else if(it.stackable || it.charges)msg->AddByte(item.subType);elsemsg->AddByte(0x01);msg->AddString(item.itemName);msg->AddU32(uint32_t(it.weight * 100));msg->AddU32(item.buyPrice);msg->AddU32(item.sellPrice);} Adicione void ProtocolGame::parseExtendedOpcode(NetworkMessage& msg){uint8_t opcode = msg.GetByte();std::string buffer = msg.GetString();// process additional opcodes via lua script eventaddGameTask(&Game::parsePlayerExtendedOpcode, player->getID(), opcode, buffer);}void ProtocolGame::sendExtendedOpcode(uint8_t opcode, const std::string& buffer){// extended opcodes can only be send to players using otclient, cipsoft's tibia can't understand themNetworkMessage_ptr msg = getOutputBuffer();if(msg){TRACK_MESSAGE(msg);msg->AddByte(0x32);msg->AddByte(opcode);msg->AddString(buffer);}} Embaixo de case 0x1E: // keep alive / ping responseparseReceivePing(msg);break; Adicione case 0x32: // otclient extended opcodeparseExtendedOpcode(msg);break; enums.h Embaixo de enum GuildLevel_t{GUILDLEVEL_NONE = 0,GUILDLEVEL_MEMBER,GUILDLEVEL_VICE,GUILDLEVEL_LEADER}; Substitua o OperatingSystem por este enum OperatingSystem_t{CLIENTOS_LINUX = 0x01,CLIENTOS_WINDOWS = 0x02,CLIENTOS_OTCLIENT_LINUX = 0x0A,CLIENTOS_OTCLIENT_WINDOWS = 0x0B,CLIENTOS_OTCLIENT_MAC = 0x0C,};/ player.h Embaixo de void sendCreatureShield(const Creature* creature) Adicione void sendExtendedOpcode(uint8_t opcode, const std::string& buffer){if(client) client->sendExtendedOpcode(opcode, buffer);} luascript.cpp Embaixo de void LuaScriptInterface::registerFunctions(){ Adicione //doSendPlayerExtendedOpcode(cid, opcode, buffer)lua_register(m_luaState, "doSendPlayerExtendedOpcode", LuaScriptInterface::luaDoSendPlayerExtendedOpcode); Embaixo de SHIFT_OPERATOR(int32_t, LeftShift, <<)SHIFT_OPERATOR(int32_t, RightShift, >>)SHIFT_OPERATOR(uint32_t, ULeftShift, <<)SHIFT_OPERATOR(uint32_t, URightShift, >>)#undef SHIFT_OPERATOR Adicione int32_t LuaScriptInterface::luaDoSendPlayerExtendedOpcode(lua_State* L){//doSendPlayerExtendedOpcode(cid, opcode, buffer)std::string buffer = popString(L);int opcode = popNumber(L);ScriptEnviroment* env = getEnv();if(Player* player = env->getPlayerByUID(popNumber(L))) {player->sendExtendedOpcode(opcode, buffer);lua_pushboolean(L, true);}lua_pushboolean(L, false);return 1;} luascript.h Embaixo de virtual void registerFunctions(); Adicione static int32_t luaDoSendPlayerExtendedOpcode(lua_State* L); creatureevent.h Substitua CREATURE_EVENT_PREPAREDEATH Por isso CREATURE_EVENT_PREPAREDEATH,CREATURE_EVENT_EXTENDED_OPCODE // otclient additional network opcodes Embaixo de uint32_t executePrepareDeath(Creature* creature, DeathList deathList); Adicione uint32_t executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer); creatureevent.cpp Embaixo de else if(tmpStr == "death")m_type = CREATURE_EVENT_DEATH; Adicione else if(tmpStr == "extendedopcode")m_type = CREATURE_EVENT_EXTENDED_OPCODE; Embaixo de case CREATURE_EVENT_DEATH:return "onDeath"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "onExtendedOpcode"; Embaixo de case CREATURE_EVENT_DEATH:return "cid, corpse, deathList"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "cid, opcode, buffer"; Embaixo de std::cout << "[Error - CreatureEvent::executeFollow] Call stack overflow." << std::endl;return 0;}} Adicione uint32_t CreatureEvent::executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer){//onExtendedOpcode(cid, opcode, buffer)if(m_interface->reserveEnv()){ScriptEnviroment* env = m_interface->getEnv();if(m_scripted == EVENT_SCRIPT_BUFFER){env->setRealPos(creature->getPosition());std::stringstream scriptstream;scriptstream << "local cid = " << env->addThing(creature) << std::endl;scriptstream << "local opcode = " << (int)opcode << std::endl;scriptstream << "local buffer = " << buffer.c_str() << std::endl;scriptstream << m_scriptData;bool result = true;if(m_interface->loadBuffer(scriptstream.str())){lua_State* L = m_interface->getState();result = m_interface->getGlobalBool(L, "_result", true);}m_interface->releaseEnv();return result;}else{#ifdef __DEBUG_LUASCRIPTS__char desc[35];sprintf(desc, "%s", player->getName().c_str());env->setEvent(desc);#endifenv->setScriptId(m_scriptId, m_interface);env->setRealPos(creature->getPosition());lua_State* L = m_interface->getState();m_interface->pushFunction(m_scriptId);lua_pushnumber(L, env->addThing(creature));lua_pushnumber(L, opcode);lua_pushlstring(L, buffer.c_str(), buffer.length());bool result = m_interface->callFunction(3);m_interface->releaseEnv();return result;}}else{std::cout << "[Error - CreatureEvent::executeRemoved] Call stack overflow." << std::endl;return 0;}} game.h Embaixo de int32_t getLightHour() {return lightHour;}void startDecay(Item* item); Adicione void parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer); game.cpp Embaixo de player->sendTextMessage(MSG_INFO_DESCR, buffer);} Adicione void Game::parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer){Player* player = getPlayerByID(playerId);if(!player || player->isRemoved())return;CreatureEventList extendedOpcodeEvents = player->getCreatureEvents(CREATURE_EVENT_EXTENDED_OPCODE);for(CreatureEventList::iterator it = extendedOpcodeEvents.begin(); it != extendedOpcodeEvents.end(); ++it)(*it)->executeExtendedOpcode(player, opcode, buffer);} /creaturescripts/creaturescrips.xml <event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/> /creaturescripts/extendedopcode.lua OPCODE_LANGUAGE = 1function onExtendedOpcode(cid, opcode, buffer)if opcode == OPCODE_LANGUAGE then-- otclient languageif buffer == 'en' or buffer == 'pt' then-- example, setting player language, because otclient is multi-language...--doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)endelse-- other opcodes can be ignored, and the server will just work fine...endend Exemplo de aplicação, getPlayerVocation em extended opcode: No cliente: 1- Vá em otclient/modules/gamelib/game.lua e adicione: function getPlayerVocation() local protocol = g_game.getProtocolGame() protocol:sendExtendedOpcode(25,5) end 2- No seu script adicione isto: ProtocolGame.registerExtendedOpcode(26, function(protocol, opcode, buffer) vocation = buffer print(vocation) end ) No servidor: 1- Em creaturescripts/script/extendedopcode.lua adicione isto: function onExtendedOpcode(cid, opcode, buffer) if opcode == 25 then doSendPlayerExtendedOpcode(cid, 26, getPlayerVocation(cid)) end return true end Créditos : MaXwEllDeN 100% por adaptar o código
  28. 2 points
    Majesty

    OpenTibia DLL Pack (v2.0)

    OpenTibia DLL Pack (v2.0) Créditos: Talaturen - OTLand Imagem e link: OpenTibia DLLs OTServ DLLs necessárias para rodar servidores de OTServ Windows Esses arquivos DLLs foram compilados com o Microsoft Visual Studio, isso significa que você precisa ter o Microsoft Visual C++ 2010 Redistributable Package instalado. 32bit - C++ Redistributable Package Download: [Hidden Content] 64bit - C++ Redistributable Package Download: [Hidden Content] Arquivos: → Scan: OpenTibiaDLLPack32bit - VirusTotal OpenTibiaDLLPack64bit - VirusTotal → Download: OpenTibia DLL Pack v2.0 32bits: [Hidden Content] OpenTibia DLL Pack v2.0 64bits: [Hidden Content]
  29. 2 points
    Luan MF

    Problema para cria acc no site gesior

    @Majesty Deu certo mano, cara to muito feliz HAHA, MUITO obrigado a vc e ao @underewar vcs 2 me ajudaram muito nesse projeto, muito grato de vdd
  30. 2 points
    Majesty

    Problema para cria acc no site gesior

    Consegui conectar no jogo. 1ª opção: - Com o Gesior2012 para OldServer 7.x, o Account Name deve ser com caracteres numéricos (máx 8 digitos). 2ª opção: - Baixe e instale o XAMPP: [Hidden Content] - Crie a database e importe o arquivo DB_FULL.sql do Gesior2012 para OldServer 7.x no PHPMyadmin. - No config.lua do servidor, configure assim (no caso está para 127.0.0.1 (localhost) e sem senha do root no XAMPP): - Baixe e instale o MyAAC: [Hidden Content] - No MyAAC, na tela de configuração coloque o diretório do servidor, email, versão 7.6, etc. - Quando criar a conta, o Account Name deve ser com caracteres numéricos (máx 8 digitos). Solução alternativa: modificar o MyAAC para aceitar somente caracteres numéricos no Account Name. 3ª opção: - Esperar o autor do servidor global 7.6 postar site compatível.
  31. 2 points
    Melara

    Seu último trabalho!

    @Henrique Lacerda, haha ironia entrar aqui essa altura da vida e me ver sendo citado no último comentário. Saudades mesmo. <3
  32. 2 points
    Neykos

    Feyrist + Items.xml e Items.otb

    Feyrist + Items.xml e Items.otb Download do mapa Feyrist. Eu apenas reconstruí o mapa porque quando você tentava abrir ele bugava inteiro agora não está mais tento esse problema. Esse mapa eu estou usando ele no projeto publico do maluco(Erick) com os arquivos dentro da pasta items do Guilherme. Foi utilizado o item.xml e items.otb do Guilherme segue o link do topico: [Hidden Content] tibia-10-cliente-tibia-11/ Fotos: Download: forum postar essa feyrist.rar Scan: [Hidden Content] Créditos: Eu (Neykos) Erick. Guilherme. Se caso estiver faltando alguém nos créditos me avise que coloco.
  33. 2 points
    SiinX

    TibiaGun

    Baixe o Client Aqui Crie sua conta através do 1/1 Um "shooter tibiano com elementos de RPG" é como eu chamo. Não sei se estou certo, porém, é com esse conceito em mente que venho aqui apresentar meu novo projeto. Removi espadas e escudos e coloquei no lugar, pistolas, metralhadoras, rifles e espingardas. Me concentrei em por um gameplay mais dinâmico e intuitivo. O servidor se encontra em estado BETA e preciso de ajudar para testar o jogo e sua jogabilidade. A EXP é por HIT e a experiência é única. Apresento a vocês o TibiaGun!
  34. 2 points
    Majesty

    [TFS 0.4 - 8.6] Autoloot Não Cumpre o Prometido

    1 - if vip.hasVip (cid) then if getPlayerStorageValue(cid, 04420011) < 2 then No código acima, altere o 2 para um valor maior. 0, 1 - free account 0, 1, 2 - premium account obs: são números de storages utilizados. Para liberar mais 2 slots aos jogadores premium account, aumente o valor para 3. O código está estruturado para ter no máximo 4 slots, então se precisar liberar mais slots terá que modificar o sistema. 2 - data/creaturescripts/scripts/autoloot.lua: function onLogin(cid) if not vip.hasVip(cid) then local active_slots = getPlayerStorageValue(cid, 04420011) if active_slots >= 1 then for i = 1, active_slots do doPlayerSetStorageValue(cid, (04420031 + (i * 10)), -1) doPlayerSetStorageValue(cid, 04420011, active_slots - 1) end end end return true end Créditos: Dwarfer. data/creaturescripts/creaturescripts.xml: <event type="login" name="AutoLoot" script="autoloot.lua" />
  35. 2 points
    Majesty

    Erro ao instalar qualquer tipo de GesiorAAC

    $config['site']['serverPath'] = "/"; Configure somente o diretório do servidor. Exemplo: $config['site']['serverPath'] = "C:\OTServ/";
  36. 2 points
    Majesty

    Monster Maker

    Monster Maker Download do Monster Maker, aplicativo para criação de monstros para servidores OpenTibia. Fica a escolha do usuário adicionar imagens (addons, itens, efeitos). Obs: as imagens precisam estar em formato .gif. 1 - Como utilizar: 2 - Downloads: Monster Maker: Monster Maker.zip Monster Maker - Sources: Monster Maker - source.zip Scan: Monster Maker: [Hidden Content] Monster Maker - Sources: [Hidden Content] 3 - Créditos: jestem pro (OTLand)
  37. 2 points
    GryLLo

    [Script] Criar nova script no /creaturescripts

    RESOLVIDO POR CONTA PRÓPRIA, HEHE Bom galera, com mais um pouco de insistência e varredura pelos códigos descobri que precisava adicionar o name do event KillMonster em mais um script, o login.lua, caso alguém venha a ter este problema, faça o seguinte: Passo 1: Crie seu script em "data/creaturescripts/scripts/" (exemplo acima killmonster.lua); Passo 2: Adicione ele no creaturescripts.xml (exemplo também acima); Tente rodá-lo, com algum print() para verificar no console, como fiz acima, se está sendo chamado, se sim, está pronto, caso esteja com o mesmo problema que eu, vá para o passo 3. Passo 3: Vá em "data/creaturescripts/scripts/others" e procure por login.lua ali terá uma lista de eventos, adicione o nome do seu novo evento (script) nessa lista - no meu caso era KillMonster - e reinicie o servidor (não sei se são esses passos para outros servidores); Valeu guys!
  38. 2 points
    Toxynha

    Noxitu Sprite Editor

    Salve salve, pessoal! Quero compartilhar com vocês esse editor de sprites, que eu utilizo e recomendo. Imagem: Download: - Noxitu_Sprite_Editor.exe - Mediafire Scan: - VirusTotal Ele é super simples e fácil de mexer. Assim que possível trarei um breve tutorial de como utilizá-lo. Abraços!
  39. 2 points
    Toxynha

    Noxitu Sprite Editor

    Salve salve, pessoal! Como prometido, lhes trago um breve tutorial de como usar o Noxitu Sprite Editor. Primeiramente, escolha um item para trocar pela sua Sprite. No meu caso, escolhi o Small Axe: Abra o Noxitu Sprite Editor, clique em Load Items, navegue até a pasta do seu Tibia, e selecione o Tibia.spr: Mantenha a cor rosa padrão como fundo das sprites, para não dar problema ao importar/exportar as sprites: Ao terminar de carregar seu Tibia.spr, o Noxitu mostrará à você todos os sprites do seu Tibia: Selecione a sprite que você quer editar: Abra sua sprite em algum editor de imagens, copie a imagem completa, e dê "Paste" no Noxitu, para copiar sua sprite em cima da sprite já selecionada: Clique em "Save Items" e salve com um nome qualquer (lembrando que você não pode salvar por cima do Tibia.spr, já que ele está sendo usado no Noxitu): Depois de salvo, basta você trocar os nomes dos arquivos .spr, substituindo o antigo pelo seu novo arquivo .spr: É sempre recomendado você salvar seu .spr antes de fazer qualquer alteração: Abra o cliente do seu Tibia, e veja sua nova sprite já alterada. Espero que tenham gostado, e até a próxima!
  40. 2 points
    Faraon

    [10.x Old/ 11.49] Ombra Global Pack - Base OTX

    Pacote de atualização para o Ombra 117 arquivos atualizado com esse pacote a distrito roda liza sem nenhum erro nos arquivos lua! a maioria dos arquivos atualizados são as spells correção nas function/string! Créditos meus Faraon ~~ Ruruu SCAN: VirusTotal Download: MEGA
  41. 2 points
    vankk

    [TFS 1.2] Prision Boss Script

    Prision Bosses TFS 1.2 by vankk Eu estava com um código bem ruim dos bosses da Prision Key no Aura, e resolvi atualizar, e decidi compartilhar aqui com vocês. Caso vocês queiram ver o script em funcionamento entre já em Aura. Clique aqui para ir para o site. O sistema está bem fácil de ser configurado, está tudo em tabelas, esse script é para os bosses: Zavarash, Horadron, Terofar. data/actions/actions.xml <action itemid="22606" script="prision_bosses.lua"/> <action itemid="22605" script="prision_bosses.lua"/> <action itemid="22604" script="prision_bosses.lua"/> data/actions/prision_bosses.lua local config = { [22606] = { targetId = 22636, -- Target ID. bossName = 'Zavarash', -- boss name keyPlayerPosition = Position(296, 1650, 12), -- Where the player should be. newPosition = Position(220, 1591, 13), -- Position to teleport bossPosition = Position(216, 1587, 13), -- Boss Position centerPosition = Position(215, 1591, 13), -- Center Room exitPosition = Position(293, 1634, 12), -- Exit Position rangeX = 20, -- Range in X rangeY = 20, -- Range in Y time = 15, -- time in minutes to remove the player }, [22605] = { targetId = 22634, -- Target ID. bossName = 'Horadron', -- boss name keyPlayerPosition = Position(291, 1650, 12), -- Where the player should be. newPosition = Position(293, 1676, 13), -- Position to teleport bossPosition = Position(300, 1677, 13), -- Boss Position centerPosition = Position(296, 1678, 13), -- Center Room exitPosition = Position(293, 1634, 12), -- Exit Position rangeX = 20, rangeY = 20, time = 15, -- time in minutes to remove the player }, [22604] = { targetId = 22638, -- Target ID. bossName = 'Terofar', -- boss name keyPlayerPosition = Position(302, 1650, 12), -- Where the player should be. newPosition = Position(257, 1675, 13), -- Position to teleport bossPosition = Position(260, 1676, 13), -- Boss Position centerPosition = Position(255, 1678, 13), -- Center Room exitPosition = Position(293, 1634, 12), -- Exit Position rangeX = 20, rangeY = 20, time = 15, -- time in minutes to remove the player } } local function roomIsOccupied(centerPosition, rangeX, rangeY) local spectators = Game.getSpectators(centerPosition, false, false, rangeX, rangeX, rangeY, rangeY) if #spectators ~= 0 then return true end return false end function clearBossRoom(playerId, centerPosition, rangeX, rangeY, exitPosition) local spectators, spectator = Game.getSpectators(centerPosition, false, false, rangeX, rangeX, rangeY, rangeY) for i = 1, #spectators do spectator = spectators[i] if spectator:isPlayer() and spectator.uid == playerId then spectator:teleportTo(exitPosition) exitPosition:sendMagicEffect(CONST_ME_TELEPORT) end if spectator:isMonster() then spectator:remove() end end end function onUse(player, item, fromPosition, target, toPosition, isHotkey) local tmpConfig = config[item.itemid] if not tmpConfig then return true end if target.itemid ~= tmpConfig.targetId then return true end local creature = Tile(tmpConfig.keyPlayerPosition):getTopCreature() if not creature or not creature:isPlayer() then return true end if roomIsOccupied(tmpConfig.centerPosition, tmpConfig.rangeX, tmpConfig.rangeY) then player:sendCancelMessage("There is someone in the room.") return true end local monster = Game.createMonster(tmpConfig.bossName, tmpConfig.bossPosition) if not monster then return true end -- Send message player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have entered an ancient demon prison cell!') player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have fifteen minutes to kill and loot this boss, else you will lose that chance.') -- Let's roll addEvent(clearBossRoom, 60 * tmpConfig.time * 1000, player:getId(), tmpConfig.centerPosition, tmpConfig.rangeX, tmpConfig.rangeY, tmpConfig.exitPosition) item:remove() player:teleportTo(tmpConfig.newPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return true end Não ensinarei a configurar a tabela, isso é uma tarefa bem fácil, e para não ter nada de mão beijada também né,
  42. 2 points
    Marco Oliveira

    Auto git pull e backup

    O script nada mais faz que dar um git pull do seu repositório automaticamente quando o servidor recebe reload ou crasha. Na pasta raiz de seu repositório crie um arquivo chamado startserver.sh e uma pasta chamada logs dentro da pasta raiz de seu site. pastaOt="caminho do servidor" comandoBackup="caminho do servidor/backup/backup.sh" echo "Iniciando o programa" cd $pastaOt mkdir -p /logs mkdir -p build while true do cd $pastaOt ./tfs 2>&1 | awk '{ print strftime("%F %T - "), $0; fflush(); }' | tee "/var/www/html/logs/$(date +"%F %H-%M-%S.log")" exitcode=${PIPESTATUS[0]} if [ $exitcode -eq 0 ]; then echo "Clean close" git pull cd build cmake .. make if [$? -ne 0]; then echo "Compilation failed!" else echo "Compilation successful!" mv tfs .. fi cd .. else echo "Server Crash!!! (O arquivo de log está guardado na pasta logs)" fi echo "Server Down, backup database..." $comandoBackup sleep 2 done; Ainda na pasta raiz do seu servidor crie uma pasta chamada backup e dentro dela crie um arquivo chamado backup.sh CAMINHO="caminho do servidor/backup/" NOMEBACKUP="nome do arquivo de backup" USER="usuario do phpmyadmin" SENHA="senha do phpmyadmin" BANCO="nome da database" TEMPO="$(date +'%d-%m-%Y-%H-%M')" if [[ -z "$USER" || -z "$SENHA" || -z "$BANCO" ]]; then echo "Por favor preencha o usuário, senha e banco de dados nas configurações." else mysqldump -u$USER -p$SENHA $BANCO > $CAMINHO"/"$NOMEBACKUP"-"$TEMPO".sql" fi Não se esqueça da permissão 777 em todos os arquivos, e também de ligar o servidor com o comando ./startserver.sh OBS: você deve configurar a chave ssh no seu git para que não peça o e-mail e senha a cada reload, o git clone também deve ser feito atraves de ssh e não https
  43. 2 points
    Nolis

    Manual do RME 01 - Introdução e configurações iniciais

    MANUAL DO REMERE'S MAP EDITOR SUMÁRIO - 01 Introdução, Menu "File" e configurações iniciais. (Você está aqui!) - 02 Menu "Edit", "Map", "View", "Floor" e "Window". (Ir para o tópico) - 03 Ferramentas, Extensões e Live Mapping (Em construção) INTRODUÇÃO AO REMERE'S MAP EDITOR Criado por Hampus Joakim Nilsson, em 2007, o RME (escrito em C++) surgiu pela necessidade de um editor que rodasse em outro sistema operacional além do Windows e pela frustração de Remere por não poder rodar o único map editor existente na época em 64 bits. O programa utilizava inicialmente um processador de software através do wxWidgets, o que não foi bom devido à dificuldades com velocidade de carregamento. Mais tarde, passou a utilizar OpenGL, e então surgiram novas ferramentas que destacaram o editor, como as poderosas ferramentas de seleção. Depois disso veio a automatização de várias outras funcionalidades, uma delas é o conhecido auto-magic (ou auto-border, como costumamos dizer). A última versão oficial atualizada é a 2.2, suportando até o protocolo 9.60. Mas por ser um programa Open Source e não tão complexo, outras versões superiores foram sendo atualizadas pela comunidade. Essas novas versões tiveram como objetivo acompanhar os protocolos mais recentes e trouxeram algumas funcionalidades extras, como por exemplo o Mapping Live que possibilita a criação de um mapa em conjunto. OUTROS EDITORES CONHECIDOS SimOne Map Editor; Forgotten Map Editor (módulo do OTClient e que depende do OTC para funcionar. O editor parou de ser atualizado em 2014.). SABENDO UTILIZAR O MAP EDITOR POSSO CRIAR MAPAS MELHORES? O RME possui uma ferramenta chamada Auto-Magic, ou Auto-Border. São paletas categorizadas que permitem que você mapeie como se estivesse pincelando um quadro. Alguns itens que precisam ser montados são postos diretamente no mapa com um click, as bordas surgem automaticamente ao preencher um piso, além disso há atalhos para ferramentas do editor com funcionalidades de busca e edição. No geral, é possível construir um bom mapa utilizando auto-border, isso por que existem diversos estilos de mapeamento: alguns estilos priorizam a menor quantidade de informação visual, o que resulta em um mapa limpo e simples, enquanto outros estilos trazem mapas modulados e com muita ou pouca sobreposição. (quando você estiver editando com o auto-border ativado, ao mover um item em cima de outro, vários itens ao redor deste serão alterados, e essa parte do mapa se transforma em um bug. Mappers experientes utilizam a tecla de atalho A para ativar ou desativar o auto-border, possibilitando usufruir das ferramentas de facilidade do editor combinando à um estilo próprio). Pode levar tempo para alcançar um resultado positivo, as vezes você pode acabar se frustrando por causa de bugs do editor (alguns podem corromper o mapa), o tempo gasto procurando itens nas paletas, uma indecisão ou até mesmo falta de inspiração. Mas se houver paciência e muita prática, se vasculhar todas as paletas e procurar memorizar e conhecer a localidade dos itens, observar lugares e paisagens, imaginar possibilidades, treinar ideias com potencial e aplicar a grandes continentes, no mapping tudo é possível. Vou deixar umas dicas que você deve levar em consideração antes de começar. Procure optar por versões mais recentes do programa, elas possuem algumas opções mais completas como o Live, Sprites movimentando-se, placas/textos sinalizados, transparência e suporte para protocolos atuais. Não use map editor de instalador, tenha versões desktop (para lidar com configurações diferentes, muitas vezes é necessário ter mais de um editor em seu PC, alguns mapas precisam ser abertos pela ferramenta import então abrir o mapa clicando diretamente no arquivo passa a ser um problema). Tenha conhecimento das limitações do seu computador ou então você pode se deparar com um editor lerdo e quase impossível de lidar. Ainda antes de mapear, faça um backup. Se o mapa estiver sendo feito do 0, quando sentir que mapeou boa parte, salve e realize o backup logo em seguida (de preferência em outra pasta). Enquanto estiver mapeando, salve seu mapa a cada X minutos, eu já me acostumei após perder muitos mapas, por erros ou até mesmo queda de energia.. Crie sempre backup de tudo que for modificar na pasta Data, um errinho qualquer nos arquivos modificados e o editor não abrirá corretamente. MENU FILE Se esta é a primeira vez que você abre o seu editor, comece explorando a opção preferences, pois é nela que você dita o protocolo que irá trabalhar e a localidade dos arquivos necessários para carregá-lo (no caso, a pasta do seu tibia ou derivado) New - Ao clicar nessa opção, o editor usará a configuração Default Version de preferences/client version para iniciar um novo mapa. Se não estiver configurado o editor pedirá que você selecione o diretório correto. Open- Use para abrir um mapa. O editor pode pedir que você selecione a pasta daquela versão. Save- Esta opção guardará seu mapa no local escolhido. Se você estiver com o mapa salvo e aberto no editor, caso houver uma queda de energia repentina o mapa poderá corromper. Save as - Use esta opção para salvar seu mapa sem alterar o original. Use essa opção para fazer backups do seu mapa. Close - Fechará o mapa. Não se esqueça de salvar. IMPORT - É uma ferramenta que pode ser utilizada em diferentes situações. O Import Map, funciona apenas com um mapa já aberto em branco ou com edições. É possível mesclar mapas da mesma versão ou abrir mapas que não estão abrindo pela opção Open devido à problemas de compatibilidade. Com o Import Map pode escolher a posição do mapa em que será importado, além de opções para importação de houses e spawns. E o Import Monsters/NPC possibilita a adição de criaturas e NPCs customizados. IMPORTANDO MAPAS < • > Map file: Com o mapa A aberto, vá em Browse e selecione o mapa B para mesclar. É possível importar mapas de versões diferentes, mas como o itens.otb de cada uma varia, é muito fácil ocorrer bugs desastrosos. Import offset: Determine aqui a posição em que o novo mapa ficará no mapa receptor. House & Spawn import behaviour: Permite alterar como os arquivos house e spawns serão importados. IMPORT OFSET: A ferramenta de import do Remere's Map Editor (file -> import -> import map) vai posicionar as partes do mapa na posição em que elas estavam + os valores X e Y de offset. Se você importar um mapa que está na posição x1000, y2000 e atribuir em offset os valores x3000,y3000 - o mapa será adicionado em x4000,y5000. Você também pode usar valores negativos (x-3000,y-3000) em Offset para mudar a direção de X e Y. Para verificar ou alterar as dimensões do seu mapa use Map - Properties (ctrl + p). VOLTANDO AO MENU: Export- Utilizado para exportar minimaps. A imagem será exportada no formato .bmp, é possível exportar apenas o terreo, um andar específico ou todos os andares. Basta selecionar a pasta onde será salvo. Reload - Isto irá reiniciar todas as configurações do map editor, pode ser utilizada ao acrescentar uma extensão na pasta ou editar um novo item/sprite do cliente em execução. Recent Files - Um atalho para mapas que foram abertos recentemente. Preferences- Este menu trás várias opções sobre a performance do editor, incluindo protocolos, opções gráficas, e outros. MENU PREFERENCES - GENERAL Always make map backup: Cria um backup automático para restauração, recomendo fazer seu próprio backup. Create map on startup: Essa opção vai fazer com que automaticamente o editor carregue uma versão e crie um novo mapa ao abrir o editor. Ou você pode configurar para abrir sem carregar nada, o que é recomendado quando se trabalha com diferentes protocolos. Check for updates on startup: Updates no editor são raros. Open all maps in the same instance: Abre vários mapas selecionados mesmo que sejam de versões diferentes. Undo queue size: (PAR): Memória ram do seu PC, é recomendado por a metade dela aqui para não travar tanto o editor. Undo maximum memory size (MB): Tamanho máximo de memória que o RME poderá utilizar, aumente para metade da memória ram de seu pc (caso queira coloque mais). Worker Threads: Número de núcleos de processador que o RME pode utilizar, nessa parte depende se seu processador, caso seu pc só tenha um núcleo deixe apenas um caso tenha 2, deixe 2 e se for maior que isso deixe o tanto que você preferir. Replace Count: Quantidade de itens que você pode substituir no mapa utilizando a ferramenta de substituição (Ctrl + Shift + F). MENU PREFERENCES - EDITOR Group same-type actions: Vai agrupar ações do mesmo tipo (desenho, seleção, etc...)) quando várias ocorrerem em ordem consecutiva. (PAR). Warn for duplicate IDs: Avisará se tiver IDs duplicados no mapa. House brush removes items: Se ativado, o brush de houses vai remover itens que apareceriam toda vez que o mapa iniciasse no server. Auto-assign door ids: Isso irá atribuir automaticamente IDs de porta únicas para todas as portas colocadas com o brush de portas (ou portas feitas com house brush). Não afeta as portas colocadas usando a paleta RAW. Doodad brush only erases same: Doodad brush vai apenas apagar itens que pertencem a brush atual. Eraser leaves unique items: A ferramenta eraser (borracha) vai ignorar containers com itens dentro, assim como itens com action/unique ids. Auto create spawn when placing creature: Se marcado, não vai precisar por o spawn manualmente, quando colocar a criatura o spawn vai ser posto automaticamente. Prevent toporder conflict: Se marcada, você não pode por vários itens com a mesma toporder em um tile usando o raw brush. Use merge move: Itens movidos não vão substituir os mesmos itens já inseridos. Use merge paste: Itens colados não vão substituir os mesmos itens já inseridos. MENU PREFERENCES - GRAPHICS Hide items when zoomed out: Vai esconder alguns itens quando der zoom para longe. Use icon selection shadow: Vai por uma “sombra” no item selecionado na paleta, pra facilitar a visualização. Use memcached sprites: Quando marcado, as sprites serão carregadas na memória logo na abertura do mapa e descompactadas no tempo de execução. Isso é mais rápido, mas consome mais memória. Se não for marcado, o editor usará menos memória, mas haverá uma diminuição do desempenho devido à leitura de sprites a partir do disco. Icon background color: Isso muda a cor do background dos icones em todas as janelas. Exemplo: Cursor color: Muda a cor do quadradinho transparente que acompanha o mouse. Secondary cursor color: Este muda a cor do cursor secundário, para houses e flags. Screenshot directory: Diretório onde será salvo as prints. Screenshot format: Formato das imagens (para tirar print aperte f11) MENU PREFERENCES - INTERFACE Terrain, doodad, item e raw palette style: Define se a paleta será com ícones grandes, pequenos ou listados: PALETTE STYLE Switch mouse buttons: Troca o direito e esquerdo do mouse conforme sua preferência. Double click for properties: Dando clique duplo vai abrir as propriedades do item. Used inversed scroll: Quando marcado, arrastar o mapa usando o botão central do mouse será invertido (comportamento RTS padrão). Scroll e zoom speed: Muda a velocidade do zoom e do scroll. MENU PREFERENCES - CLIENT VERSION Client Version - Através dessas opções o RME vai localizar cliente a ser utilizado no mapa, assim ele vai poder identificar o Tibia.spr e Tibia.dat que são arquivos necessários para abrir um novo mapa ou editar um existente. Por exemplo, se você estiver tentando abrir um mapa de poketibia usando um client do Tibia Global, vai dar erro porque poketibia tem itens configurados de formas diferentes, além disso o editor também vai checar o Itens.otb (que contém informações funcionais de cada item). Antes de tudo, o items.otb do diretório REMERESMAPEDITOR/DATA/VERSÃO deve ser o mesmo do seu servidor (SERVER/DATA/ITEMS). Default client version é a versão que você quer utilizar, selecione-a e toda vez que abrir um novo mapa essa versão será carregada. Version Search Path é o local do seu cliente. Check file signatures desmarcada não vai pedir para confirmar o diretório do client novamente ao abrir um mapa. Exit - Fecha o editor. Créditos: Nolis Hampus (remeres) Comunidade Otbr
  44. 2 points
    Majesty

    TFS para OTServ 8.0

    [Hidden Content]
  45. 2 points
    Majesty

    [Windows][VC2017] Compilando Sources do The Ruby Server

    [Windows][VC2017] Compilando Sources do The Ruby Server Tutorial explicando como compilar as sources do The Ruby Server com o Visual Studio 2017. 1 - Downloads Necessários - Visual Studio 2017 Community: [Hidden Content] - Microsoft Visual C++ 2017 Redistributable: (32-bit download, 64-bit download) - Git: [Hidden Content] 2 - Visual Studio 2017 - Na tela inicial do Visual Studio, no produto Visual Studio Community 2017 clique no botão Instalar. - Na próxima tela, selecione Desenvolvimento para Desktop com C++. - Na mesma tela em Resumo, selecione: - Depurador Just-In-Time; - Conjunto de ferramentas VC++ 2017 versão 15.9 v14.16 ferramentas v141 [x86 e x64]; - Ferramentas de criação do perfil do C++; - SDK do Windows 10 (10.0.17763.0); - Ferramentas do Visual C++ para CMake; - Visual C++ ATL para x86 e x64; - SDK do Windows 10 (10.0.17134.0) para Desktop [x86 e x64]; - SDK do Windows 10 (10.0.16299.0) para Desktop [x86 e x64]; - Conjunto de Ferramentas do VC++ 2015.3 v140 (x86, x64). - Componentes Individuais: - SDK do CRT Universal do Windows; - SDK do Windows 8.1; - Pacotes de Idiomas (Inglês). 3 - Instale os softwares necessários - Instale o Git. - Utilize o Git Bash ou Windows Powershell no diretório C:\ Git Bash: cd C:\ Windows Powershell: cd C:\ - Para fazer a instalação completa do VCPKG, execute os comandos abaixo no Git Bash ou Windows Powershell: 4 - Sources The Ruby Server: - Faça o download das sources do The Ruby Server com o comando abaixo no Git Bash ou Windows Powershell: 5 - Instalação das bibliotecas VCPKG - Escolha um dos conjuntos de bibliotecas abaixo de acordo com o seu sistema operacional. - Execute o comando com o Git Bash ou Windows Powershell. - Para compilação em 32-bit: ./vcpkg install boost-iostreams:x86-windows boost-asio:x86-windows boost-filesystem:x86-windows boost-system:x86-windows boost-variant:x86-windows boost-lockfree:x86-windows luajit:x86-windows libmariadb:x86-windows pugixml:x86-windows mpir:x86-windows - Para compilação em 64-bit: ./vcpkg install boost-iostreams:x64-windows boost-asio:x64-windows boost-filesystem:x64-windows boost-system:x64-windows boost-variant:x64-windows boost-lockfree:x64-windows luajit:x64-windows libmariadb:x64-windows pugixml:x64-windows mpir:x64-windows 6 - Compilando as Sources do The Ruby Server - Abra o arquivo src/configmanager.cpp e altere o #include <lua.hpp> para #include <luajit/lua.hpp>. - Abra o arquivo src/luascript.h e altere o #include <lua.hpp> para #include <luajit/lua.hpp>. - Encontre o diretório vc14 do TRS (C:\vcpkg\rubyserver\vc14) e abra o arquivo therubyserver.sln. Isso irá abrir o Visual Studio e você estará apto a compilar as sources. - No Visual Studio, escolha a opção Release e a solução "Win32" ou "x64". - Para compilar as sources, clica em Build no menu e depois em Build Solution. - As sources serão compiladas com sucesso. 6 - DLL's Necessárias Para compilação em 32-bit: - Copie as DLLs da pasta (C:\vcpkg\rubyserver\vc14\Release) ou da pasta (C:\vcpkg\installed\x86-windows\bin): Para compilação em 64-bit: - Copie as DLLs da pasta (C:\vcpkg\rubyserver\vc14\x64\Release) ou da pasta (C:\vcpkg\installed\x64-windows\bin): 7 - Abrindo o The Ruby Server - Para abrir o The Ruby Server, siga o tutorial abaixo: 8 - Créditos Desenvolvedores TFS: [Hidden Content] Leohige: [Hidden Content] Majesty (Tutorial de Compilação no VS2017) Microsoft - VCPKG: [Hidden Content]
  46. 2 points
    vyctor17

    LockPick - [PXG/SKYRIM]

    só pra mostrar que eu não esqueci do fórum, vou postar uma brincadeirinha minha no Ot-Client. basicamente um lockpick inspirado no skyrim ou no PXG.
  47. 2 points
    Nolis

    Exura Sio com base na vida máxima e magic level

    Depois de uma aula demorada com um amigo consegui entender algumas funções novas. Ele fez eu pensar e desenvolver sozinho e deu algumas dicas, e esse foi o resultado: O script faz com que ao usar exura sio "cid ou exura sio "tid seja levado em consideração a vida máxima do player, então o health é calculado a partir de uma porcentagem base de vida que eu quero curar vezes o magic level do jogador dividido por 100. Eu fiz desse jeito por que o servidor que eu estou desenvolvendo é HIGH EXP, então são quantidades absurdas de vida e mana e há diferentes magias de cura para cada promoção. Esse script faz com que o player de uma vocação avançada não sinta necessidade de usar uma magia de cura da vocação anterior, já que esta curará bem menos. Além disso, podendo definir uma porcentagem base eu consigo manter o Skill Magic Level Rate em 1, valorizando o treino de skills no servidor, mesmo sendo high exp. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onCastSpell(cid, var) local voc = getPlayerVocation(cid) local maglevel = getPlayerMagLevel(cid) local tid = variantToNumber(var) local lifeme = getCreatureMaxHealth(cid) local lifefriend = getCreatureMaxHealth(tid) if not isPlayer(tid) then --druid-- healthpercent5 = 35 * (lifeme / 100) * (maglevel / 100) healthpercent6 = 28 * (lifeme / 100) * (maglevel / 100) healthpercent7 = 24 * (lifeme / 100) * (maglevel / 100) healthpercent8 = 22 * (lifeme / 100) * (maglevel / 100) else healthpercent5 = 36 * (lifefriend / 100) * (maglevel / 100) healthpercent6 = 34 * (lifefriend / 100) * (maglevel / 100) healthpercent7 = 32 * (lifefriend / 100) * (maglevel / 100) healthpercent8 = 30 * (lifefriend / 100) * (maglevel / 100) end if isInArray({2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50}, voc) then local healthmax, hois if not isPlayer(tid) then healthmax = lifeme hois = cid else healthmax = lifefriend hois = tid end if (healthmax <= 10000) then doCreatureAddHealth(hois, healthpercent5) elseif (healthmax > 10000) and (healthmax <= 90000) then doCreatureAddHealth(hois, healthpercent6) elseif (healthmax > 90000) and (healthmax <= 200000) then doCreatureAddHealth(hois, healthpercent7) elseif (healthmax > 200000) then doCreatureAddHealth(hois, healthpercent8) end end return doCombat(cid, combat, var) end
  48. 2 points
    Nolis

    OpenTibia Sprite Pack

    Tópico bem organizado, parabéns. Muito bacana esse projeto, foi muito bom contribuir para o Pixel Realm e fico contente em saber que o projeto foi adiante.. Se eu voltar a fazer mais sprites com certeza disponibilizarei!
  49. 2 points
    Majesty

    OTX Server 3.8

    OTX Server 3.8 Créditos: mattyx14 OTX Server 3 é um fork de OpenTibia baseado em: The Forgotten Server 1.3. Protocolos suportados: 7.6 / 7.72 com flag: _MULTIPLATFORM77 8.54/58 8.6 8.70/71 10.98/99 11.00 Extras: Esta versão está baseada em The Forgotten Server 1.3 dando um máximo em desempenho e funções. Esta versão inclui a versão de items.otb (oficial para 10.98 / 99) no qual não se tinha visto em mais de um ano de desenvolvimento o uso de uma items.otb oficial. Esta é uma versão melhorada de OTX Server 3.6 e 3.7 a qual soluciona muitos de seus erros. A lista completa de ajustes, melhorias e mais no próximo LOG. NOTA Esta versão não é compatível com o TFS 0.3 / 0.4 e outras versões do OTX Server 1 e OTX Server 2 não são compatíveis com Windows XP e Windows Server 2003 - Win9x / ME / 2k Correções Somente 8.7 Requisitos Microsoft Visual C++ 2015 Redistributable Package - 32/64Bits Wiki: [Hidden Content] Downloads: [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content]
  50. 2 points
    Majesty

    [Windows][VC2017] Compilando Sources OTClient + OTClient SDK 1.0

    [Windows][VC2017] Compilando Sources OTClient + OTClient SDK 1.0 Tutorial explicando como compilar as Sources do OTClient com o Visual Studio 2017. 1 - Downloads Necessários - Visual Studio 2017 Community: [Hidden Content] - Microsoft Visual C++ 2017 Redistributable: (32-bit download, 64-bit download) - OTClient SDK 1.0 (Bibliotecas): [Hidden Content] - Sources OTClient (commit a6c7269): [Hidden Content] 2 - Visual Studio 2017 - Na tela inicial do Visual Studio, no produto Visual Studio Community 2017 clique no botão Instalar. - Na próxima tela, selecione Desenvolvimento para Desktop com C++. - Na mesma tela em Resumo, selecione: - Depurador Just-In-Time; - Conjunto de ferramentas VC++ 2017 versão 15.9 v14.16 ferramentas v141 [x86 e x64]; - Ferramentas de criação do perfil do C++; - SDK do Windows 10 (10.0.17763.0); - Ferramentas do Visual C++ para CMake; - Visual C++ ATL para x86 e x64; - SDK do Windows 10 (10.0.17134.0) para Desktop [x86 e x64]; - SDK do Windows 10 (10.0.16299.0) para Desktop [x86 e x64]; - Conjunto de Ferramentas do VC++ 2015.3 v140 (x86, x64). - Componentes Individuais: - SDK do CRT Universal do Windows; - SDK do Windows 8.1; - Pacotes de Idiomas (Inglês). - Depois de ter feito o download e instalado o Visual Studio 2017 e suas ferramentas, você estará apto a compilar as sources do OTClient. 3 - OTClient SDK 1.0 - Extraia os arquivos do OTClient SDK 1.0. - Antes de rodar o arquivo "register_otclient_sdk_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx OTCLIENTSDKDir %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx OTCLIENTSDKDir "%CD%" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 3.1 - Boost C++ 1.63.0 - Antes de rodar o arquivo "register_otclient_boost_env.bat" que está na pasta do OTClient SDK 1.0/boost 1_63_0 clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx BOOST_ROOT_OTCLIENT %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). setx BOOST_ROOT_OTCLIENT "%CD%" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 3.2 - Adicionando manualmente os diretórios das bibliotecas - Se os .bat não funcionarem, adicione manualmente os diretórios. - Utilize a Tecla do logotipo do Windows + Pause para acessar as Propriedades do Sistema. - Acesse Configurações avançadas do sistema. - Na aba Avançado, clique em Variáveis de Ambiente. - Em variáveis de usuário adicione os diretórios do OTCLIENTSDKDir e BOOST_ROOT. - Exemplo: 4 - Compilando as Sources do OTClient - Encontre o diretório vc14 do OTClient e abra o arquivo otclient.sln. - Abrirá uma nova janela para Examinar Ações de Solução, basta selecionar as opções conforme a imagem abaixo: - Feito isso, você estará apto a compilar as sources do OTClient. - No Visual Studio, escolha Release e a solução "Win32". - Para compilar as sources, clica em Build no menu e depois em Build Solution. - As sources serão compiladas com sucesso. 5 - Abrindo o OTClient - Copie as DLLs glew32.dll (glew2.0.0 > bin > x86), zlib.dll (zlib-1.2.8.8> bin > x86) e openal32.dll (OpenAL-1.15.1> bin > x86) da pasta OTClient SDK 1.0 para a pasta do executável do OTClient. - OTClient será aberto com sucesso! 6 - Créditos edubart: [Hidden Content] Ninja: [Hidden Content] Majesty (Tutorial de compilação no VS2017) Microsoft
This leaderboard is set to Sao Paulo/GMT-03:00
×