Jump to content

Leaderboard

  1. Majesty

    Majesty

    Imperadores


    • Points

      236

    • Content count

      4,276


  2. underewar

    underewar

    Cidadãos


    • Points

      26

    • Content count

      47


  3. GryLLo

    GryLLo

    Cidadãos


    • Points

      18

    • Content count

      20


  4. Nolis

    Nolis

    Cidadãos


    • Points

      16

    • Content count

      35



Popular Content

Showing content with the highest reputation since 07/23/2018 in all areas

  1. 9 points
    Majesty

    OTServBR-Global 10.00 / 12.x

    Tutoriais: Mapping: Programação: Compilando Sources OTServBR-Global: Infraestrutura: [MySQL]OTServBR-Global + Uniform Server + MyAAC: Downloads: Clientes: FAQ 1: Pergunta: O executável fecha na hora de abrir o mapa, o que fazer? Resposta: Pasta data/, descompacte o world.rar na pasta world e deixe junto o realmap.otbm + mapas complementares com o realmap-house.xml e realmap-spawn.xml. 2: Pergunta: As imagens do store não aparecem no cliente 11, o que fazer? Resposta: Vá até pasta do cliente em packages/Tibia/storeimages e apague as pastas data8 e prepared. Depois, reinicie o XAMPP ou UniformServer, servidor e o cliente. E com os nomes, categorias, etc corretos no gamestore.lua, o cliente deverá carregar as imagens no shop. Para dúvidas e/ou problemas, utilize a seção Suporte: [Hidden Content]
  2. 8 points
    Majesty

    OTServBR-Global 10.00 / 12.x

    OTServBR-Global 10.00 / 12.x Download de servidor Global na versão 10.00 old e 12.x. 1º servidor open source com o Protocolo 12! Obs: servidor apoiado pelo OTServ Brasil (OTBR). 1- Características: 2 - Imagens: 3 - Downloads: Servidor - Protocolo 12: Github Servidor Compilado: Appveyor DLL's: Clientes: 4 - Créditos: PARA DÚVIDAS E/OU PROBLEMAS, UTILIZE A SEÇÃO SUPORTE: [Hidden Content]
  3. 8 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]
  4. 6 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]
  5. 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
  6. 5 points
    Majesty

    OTServBR-Global anuncia: Protocolo 12!

    OTServBR-Global - Protocolo 12! Fala pessoal, Nós do OTServ Brasil estamos apoiando o projeto OTServBR-Global que tem como objetivo de ajudar a comunidade OpenTibia com um servidor de Tibia Global sempre atualizado com os melhores conteúdos, limpos e funcionais. Hoje temos uma nova atualização para apresentar a vocês: Protocolo 12! Segue algumas imagens abaixo: Acesse o repositório com a atualização do Protocolo 12: [Hidden Content] Acesse o tópico do OTServBR-Global e confira mais informações: Queremos convidá-los a fazer parte do desenvolvimento do projeto, pois será disponibilizado gratuitamente para todos. Para contribuir, não é necessário entender programação. Você pode ajudar a testar e reportar bugs, com sugestões e ideias através do repositório no Github, WhatsApp e Discord: Acesse o Github do OTServBR-Global: [Hidden Content] Acesse o WhatsApp do OTServBR-Global: [Hidden Content] Acesse o Discord do OTServBR-Global: [Hidden Content] Atenciosamente, OTServ Brasil.
  7. 5 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)
  8. 5 points
    SpiderOT

    Tibia 11+ Downgrade tool

    Hey guys! This is a simple tool to convert client 11+ to outdated client 10.00 Tibia.dat & Tibia.spr Features: Export sprites sheet to .png Slice all sheets to 32X32 .png Convert sprites sheet to Tibia.spr Convert appearances file to Tibia.dat Know Issues: Application is really slow like 20 minutes on a good computer Missing Equip flags (if anyone knows how tibia 11 handle this I would be more than happy to edit this) Codes are really messy Requirements: Net Framework 4.7.2 How to use: -Run the application and select assets folder should be AppData\Local\Tibia\packages\Tibia\assets -Select the output directory -Check slice sheets to slice all sprites to .png or Check export .spr and click Export sheets -And of course, Export dat to export Tibia.dat -Sources can be found HERE You can also download a converted client from latest 12.15 from HERE Credits a big part of the codes copied from other released applications, so most of it goes to: jo3bingham EdMignari Summ gpedro Download: [Hidden Content]
  9. 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
  10. 4 points
    Ocap

    Rookgaard Tales+

    Introdução (Perdón por mi Portugués malo, mi idioma nativo es el Español) Meu nome é Francisco Fonseca, sou do México, tenho 30 anos e trabalho no governo local da minha cidade. Por causa disso, eu perdi um sonho, o sonho de hospedar meu próprio servidor ... Sim, como você pode ver hoje, estou lançando meu servidor Rookgaard Tales + Passei mais de 12 anos programando e pensando em Quests para isso, eu realmente coloquei meu coração nisso Eu não tenho muito tempo para as coisas do Open Tibia ou para os videogames atualmente, agora estou preso a uma verdadeira vida adulta. Estou espantado com a forma como a comunidade Open Tibia prosperou e com todas as novas coisas que são agora. Se ainda existem alguns amantes de Rookgaards, então você vai amar Rookgaard Tales+, este servidor é antigo, mas eu prometo-lhe muita diversão! Eu só espero que alguém se apaixone por esse servidor que eu criei e hospedei, e não esqueça de me convidar! Informação técnica Hecho en México, por Francisco Fonseca 9.1 FonsecaServ 1.0 Você precisa do SQLite Studio Se você encontrar um erro, por favor me avise Funcionalidades 69 NPCs, cada um com personalidades e muitas palavras-chave. Mais de 40 Quests, incluindo surpresas clássicas e novas. Mais de 50 raids Todas as Outfits, Addons e Mounts podem ser obtidas através de quests / objetos. Sistema do Spells Áreas Remodeladas Novas áreas de caça Novas armas Todos os itens funcionam exatamente como no Tibia RL. NPCs visitam a ilha dando acesso a mais aventuras. Houses System Marriage System Bank System Rare Spawns/Bosses Mining System Lumberjack System Improved Fishing Depots Blessings E mais surpresas! Screenshots Em memória do meu gatinha Virgilia, obrigado por todos os purrs Rookgaard_Tales+.zip FonsecaServ.zip
  11. 4 points
    Majesty

    OTServBR-Global 10.00 / 12.x

    Tópico atualizado! Servidor OTServBR-Global agora com protocolo 12! 1º servidor open source com protocolo 12!
  12. 4 points
    gpedro

    [OTServBR-Global][MyAAC] login.php para Tibia 12

    [MyAAC] login.php para Tibia 12 Este plugin permite que você use novos recursos de login.php do cliente Tibia 12 e superior. Este plugin inclui o arquivo login.php, que será extraído para o diretório de instalação principal após a instalação. Plugin utilizado para conectar ao servidor OTServBR-Global com MyAAC. 1 - Como instalar: Vá para o Painel de Administração, selecione 'Plugins' e, em seguida, selecione myaac-tibia12-login-v1.0.zip e clique em upload. Isso é tudo! 2 - Download: [Hidden Content] 3 - Créditos slawkens fear lucien gpedro
  13. 4 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)
  14. 4 points
    TEKADON

    PxG Sprites 2019

    Sprites PXG 2019. Conteúdo: Pokemons; Efeitos; Itens; Parede e pisos; Itens diversos. Arquivos (90.42 MB): Download: [Hidden Content] Scan: [Hidden Content] Imagens: to Créditos: PXG.
  15. 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:
  16. 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)
  17. 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 !?
  18. 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:
  19. 4 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.
  20. 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, siga a opção abaixo: [MySQL] OTServBR-Global + Uniform Server + MyAAC: 8 - Créditos Desenvolvedores TFS: [Hidden Content] Ninja: [Hidden Content] Majesty (Tutorial de compilação no VS2017) Microsoft
  21. 3 points
    Majesty

    [OTServBR-Global] Cliente Tibia 10 / Cliente Tibia 12

    [OTServBR-Global] Cliente Tibia 10 / Cliente Tibia 12 Downloads de Cliente Tibia 10 / Cliente Tibia 12 que são utilizados para acessar o OTServBR-Global. Cliente Tibia 10: [Hidden Content] IP Changer: [Hidden Content] Obs: utilize o IP Changer somente com o Cliente Tibia 10. Cliente Tibia 12: Créditos Cipsoft (Cliente Tibia 10, Cliente Tibia 12) OTLand (IP Changer)
  22. 3 points
    Eduardo Dant

    OTServBR-Global 10.00 / 12.x

    Melhor projeto!!! Agora é só dar continuidade ao protocolo e trazer conteúdo novo. Falta apenas colaboradores. =D Para a galera que baixar, deixa o curtir aí, o nosso amigo Majesty faz um ótimo trabalho no fórum, e sinceramente se não fosse por ele e pelo Fórum OTBR o projeto não existiria. Curtir e comentar agradecendo não cai o dedo.
  23. 3 points
    Majesty

    [OTServBR-Global] Cliente Tibia 11.44 (Sprites até 12.15.8706)

    Cliente Tibia 11.44 (Sprites até 12.15.8706) Cliente Tibia 11.44 com sprites até 12.15.8706. Download do cliente Tibia 11 que é utilizado para acessar o OTServBR-Global. Observação: items sem nome no market. Cliente 11.44.5516: Download: [Hidden Content] Scan: [Hidden Content] Créditos: Cipsoft (Cliente Tibia 11) Majesty (Configuração Cliente 11.44 + Sprites 12.15.8706)
  24. 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))
  25. 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.
  26. 3 points
    underewar

    TFS [0.4] Fix. War System + Cast (8.60)

    Bom vou disponibilizar as dlls, os executáveis e a source, não darei suporte para a compilação de tal source pois exige conhecimento, e não tem como explicar aqui em um topico, da para usar o code blocks para compilar ou mvs qualquer um que não seja o 2017,em linux tem as instruções, leiam com atenção e terão exito na compilação. A source já possui NEW war system(com os escudos) para sqlite e mysql FIX bug do elf bot FIX stack item FIX house system FIX npcs systems, FIX slot system(Shield só pode ser colocado no shield etc....) NEW Party System avaliable. New Exp Share System Dou suporte para aqueles que compilarem e estiverem usando a source criando 0 qual quer duvida ou erro postem aqui e melhoraremos ela. LEMBRANDO DENTRO DA PASTA DE DOWNLOAD DOCS TEMOS O CHANGE LOG DO QUE FOI ALTERADO TFS 0.4 Linux instruções(A versão que esta no arquivo é a versão do linux que devera ser usada.) Abram todos os arquivos e leia. qual quer duvida relacionada a compilação em linux não darei suporte no tópico mandem msg. Aqrquivos de blocos de comando os nomes são autogen (salvo como shell) build (salvo como shell) compile (salvo como shell) tfs-dep_Nix (salvo como shell) Abra os e modifique para a compilação linux. DOWNLOADS SCANS VIRUS TOTAL: DATAFILES VIRUS TOTAL : SOURCE VIRUS TOTAL : DLLS VIRUS TOTAL : GUI.exe VIRUS TOTAL : Consosle.exe CREDITOS : Tfs team from github, underewar,gesior,posk.
  27. 3 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
  28. 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 (5 tópicos); Destaques: [8.60] Yurots 1.2 [10x/12x] OTServBR-Global 10.00 - 12.x OTServs Derivados (10 tópicos); Destaques: The Ruby Project - Base Pokémon Pokémon Mythology [8.54] PokéCamp.net PokeChampions Utilitários (19 tópicos); Destaques: Remere's Map Editor 3.5 [OTServBR-Global] Cliente Tibia 10 + Cliente Tibia 11 + OTServBR Client (OTClient) 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 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 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 12.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 OTServBR-Global [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 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
  29. 3 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)
  30. 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]
  31. 2 points
    Majesty

    [OTServBR-Global] Cliente Tibia 12

    Cliente Tibia 12 Download do cliente Tibia 12 que é utilizado para acessar o OTServBR-Global. Download - Cliente 12: [Hidden Content] Scan: [Hidden Content] Créditos: Cipsoft (Cliente Tibia 12) Majesty (Configuração Cliente 12 para localhost (127.0.0.1))
  32. 2 points
    Firevolks

    OTServBR-Global anuncia: Protocolo 12!

    parabéns a todos os envolvidos pelo excelente trabalho, espero que com isso, mais e mais pessoas se dediquem a implementação das features que faltam. mais um vez ... parabéns e continuem com o ótimo trabalho (:
  33. 2 points
    Brunozxy

    Abrir Spider Egg

    Abrir SpiderEgg Fala galera, meu primeiro POST no fórum, um script bem básico de uma funcionalidade do global que não vejo em OTs... Caso já tenham feito desconsiderem Hehe! Ao dar USE na Spider Egg ela é aberta e com chances de nascer algum tipo de Spider(spider, tarantula, poison spider, GS...) assim como acontece no global! TUTORIAL Crie um arquivo em actions /other com extensão .lua De o nome que desejar, no meu caso vou salvar como transformSpiderEgg.lua Copie e cole o código no arquivo criado Segue o código do script abaixo: --[[Spider Egg --Classe: Ferramentas (Objetos) --Atributos: Sumona um monstro quando quebrado. --Adicionado: Desconhecido. --Localização: Cavernas de Spiders e Tarantula, encontradas em grande quantidade em Tiquanda. --Notas: Spider Eggs são envolvidos por uma seda muito frágil e irão quebrar quando atacados. Muitas vezes, elas "libertam" uma Spider, uma Poison Spider, ou em casos raros uma Tarantula e em casos extremamente raros Giant Spiders. --Para quebrar o Spider Egg, simplesmente "use" o ovo.]] --[[Spider Egg --Classification: Natural Products --Attributes: Summon a monster when broken. --Add: Unknow --Location: Spider and Tarantula caves, such as those found in Tiquanda. --Notes: Spider Eggs are very fragile and will break when attacked. They will either release nothing, a Spider, a Poison Spider, a Tarantula at rare times and very rarely a Giant Spider. Spiders that come from those eggs will not puff like normal spiders do when taken away too far from their spawn point. --To break the Spider Egg, simply use the egg.]] function onUse(player, item, fromPosition, target, toPosition, isHotkey) math.randomseed(os.time()) n = math.random(0, 1000) -- Gera um número randomico de 0 a 1000 / Generates a random number from 0 to 1000 if n > 999 then Game.createMonster("Giant Spider", item:getPosition()) -- 1/1000 chance de nascer uma GS / chance to be born a GS elseif n >= 985 then Game.createMonster("Tarantula", item:getPosition()) -- 15/1000 chance de nascer uma Tarantula / chance to be born a Tarantula elseif n >= 900 then Game.createMonster("Poison Spider", item:getPosition()) -- 85/1000 chance de nascer uma PS / chance to be born a PS elseif n >= 500 then Game.createMonster("Spider", item:getPosition()) -- 400/1000 chance de nascer uma Spider / chance to be born a Spider else fromPosition:sendMagicEffect(CONST_ME_POFF) -- 500/1000 chance dee falhar / chance of Fail end item:transform(7536) -- << ID DA remains of a spider egg | Transforma na remains of a spider egg / Transform on remains of a spider egg function backInitialId() -- Função para voltar ao Id inicial / Function to return to the initial Id item:transform(7537) -- << ID DA SPIDER EGG end addEvent(backInitialId, 30000) -- Volta a ser Spider Egg em 30 segundos / Back to Spider Egg in 30 seconds end Agora em actions, no actions.xml coloque a action com o ID da spider egg: <action itemid="ID DA SPIDER EGG" script="other/transformsSpiderEgg.lua" /> É isso, espero que gostem e de sugestões de melhoria de código!!!
  34. 2 points
    loponi

    AmazonCamp Mapa Download

    "Amazon Camp" Há um tempo haviam me pedido um "Amazon Camp" que também desse para colocar uns apes. Esse é um trecho de um mapa que fiz há alguns anos, nunca foi usado. Espero que o rapaz que tinha pedido ainda use o fórum. Fica pra você... E pra quem mais quiser baixar. Download: AmazonCamp.rar (only.otbm) -L. Loponi (Lunus)
  35. 2 points
    Toxynha

    OTProject Ultimate Sprite Editor

    Salve! Venho mais uma vez disponibilizar um utilitário que eu utilizo. Dessa vez, o OTProject Ultimate Sprite Editor! É, como o nome já diz, um editor de sprites. Super fácil e simples de utilizar. Imagens: Funciona nas versões: 7.8, 7.81, 7.9, 7.92, 8.0, 8.1, 8.11, 8.2, 8.3, 8.31, 8.4, 8.41, 8.42, 8.5, 8.54, 8.6, 8.61, 8.62, 8.7, 8.71, 9.0, 9.10, 9.20, 9.44, 9.46, 9.5, 9.52, 9.53, 9.54, 9.6, 9.86, 10.1 Pra carregar um .spr: File -> Open Pra salvar um .spr: File -> Save Lembre-se sempre de manter um backup do .spr que você estiver editando, caso o arquivo se corrompa ou se torne inutilizável Você também tem opções de criar um .spr do zero e adicionar novos slots em .spr existentes, além de, é claro, trocar sprites. Download: OTProject Ultimate Sprite Editor.7z Scan: [Hidden Content]
  36. 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.
  37. 2 points
    Majesty

    Duvida sobre a Spell Exevo gran mas pox [7.6]

    Isso é da mecânica do TFS, o dano em players é a metade do valor do dano em monstros. Dá para fazer assim: 1ª opção: 2ª opção: Defina o valor mínimo e máximo de dano para players e para monstros.
  38. 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
  39. 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
  40. 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.
  41. 2 points
    Raulcdj

    Addons remove

    Ola pessoal hoje venho trazer para comunidade Otserv Brasil o sistema de remove addon do pokemon não esta 100% na hora que você remove addon da esse erro "OnUse" Bom vamos la. Lembrando que não fui eu o criador foi o " TheRatazana do otserv brasil" eu tentei e não deu certo então ele me ajudo espero que ajude vocês. vai em Servidor / data / actions / addon.lua Pra que funcione legal, você precisa adicionar isso aqui na linha 30 do seu sistema doSetItemAttribute(pb, "addonItem", item.itemid) ele tem que fica assim no Actions. vai em Servidor\data\talkactions\scripts cria um arquivo addon.lua Agora vai em talkaction.xml e coloca essa tag la <talkaction words="/addonsRemove" access="1" event="script" value="addons.lua"/>
  42. 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!
  43. 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/";
  44. 2 points
    Majesty

    Sprite para Cliente 11

  45. 2 points
    Majesty

    Cliente Tibia 11.49.5884

    Cliente Tibia 11.49.5884 Download de cliente Tibia 11.49.5884 que é utilizado para acessar o OTXServer 3.10. O caminho do cliente 11 é packages/Tibia/bin/client.exe. Nesta lista contém o cliente original e o configurado para localhost. Caso queira trocar o IP, segue abaixo 2 opções: Cliente 11.49.5884: Download - original: [Hidden Content] Download - localhost (editado com Notepad++): [Hidden Content] Scan - original: [Hidden Content] Scan - localhost: [Hidden Content] Créditos Cipsoft (Cliente original) Majesty (Configuração localhost)
  46. 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é,
  47. 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
  48. 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
  49. 2 points
    zaksz

    Sprites RPG Server

    Sprites RPG Server (+39,000). Conteúdo: Monstros; Conjuntos; Armas e armaduras; Parede e pisos; Itens diversos. Imagens: Arquivos (34.4 MB): Download: 1° opção / 2° opção. Scan: Clique aqui. Créditos: Altaron.
  50. 2 points
    Majesty

    Pokemon Bolz 2.0 Open Source

    Pokemon Bolz 2.0 Open Source Download de Servidor Derivado de Pokémon. Base Bolz 2.0, com sources TFS 0.3.6. 1- Características: 2- Imagem: 3 - Downloads: Servidor: [Hidden Content] senha do arquivo: loko OTClient: [Hidden Content] Sources: [Hidden Content] senha do arquivo: loko Scan: Servidor: [Hidden Content] OTClient: [Hidden Content] Sources: [Hidden Content] 4 - Créditos: Pokemon X Ice - Luizmachado1 Kevick RaskGames-
This leaderboard is set to Sao Paulo/GMT-03:00
×