Ir para conteúdo

Líderes

Conteúdo Popular

Mostrando conteúdo com a maior reputação desde 07/13/25 em %

  1. 2 pontos
    Olá galera, em 02/12/23 o projeto Canary atualizou seu release para a versão 3.1.2 e como estou desenvolvendo um servidor usando esta base decidi divulga-la, pois a cada dia ela melhor muito, é um projeto promissor. Para quem não conhece, Canary é um projeto desenvolvido no github de um servidor completo na versão 13.21 (atualmente) com todas as features do tibia global. Ele tem duas opções de datapack que seriam o global e um custom. Aqui está o link do projeto para quem quiser conhecer melhor: https://github.com/opentibiabr/canary Aqui está o link do lançamento do release para a versão 3.1.2 e suas mudanças e melhorias: https://github.com/opentibiabr/canary/compare/v3.1.1...v3.1.2 Aqui está o link do discord do projeto para dúvidas e etc: https://discord.com/invite/gvTj5sh9Mp Aqui está o link de tutoriais e a documentação do projeto: https://docs.opentibiabr.com/home/welcome Algumas das features existentes no projeto: BOOSTED CREATURE: EVENT SCHEDULE: CYCLOPEDIA: CHARMS: DAILY REWARD: PREY: IMBUEMENTS: MARKET: STORE: CUSTOM CHARACTERS: DENTRE MUITOS OUTROS!
  2. Se você curte desenvolvimento de servidores Tibia e ainda não conhece este projeto, agora é a hora. Uma versão personalizada do The Forgotten Server, com downgrade para o protocolo 8.60, rodando na moderna engine TFS 1.8. O projeto já conta com quase 1.200 commits, mais de 13 sistemas exclusivos, várias partes feitas em C++ puro e otimizações que você não encontra em uma versão padrão. 🔧 O que já está implementado: ⚙️ Sistema de Instâncias — dungeons privadas por jogador ou grupo; ⚙️ Sistema de Forge — fusão e evolução de itens por níveis; ⚙️ Sistema de Imbuements — pergaminhos, matérias-primas e bônus personalizados; ⚙️ AutoLoot integrado ao núcleo, sem sobrecarga pesada em Lua; ⚙️ Transmissão ao Vivo com bônus de EXP; ⚙️ Proteção de Tokens — sistema anti-roubo; ⚙️ Sistema de Espionagem para administradores; ⚙️ Boss de Recompensa global no estilo Tibia; ⚙️ Sistema Harmony / Monk vocation; ⚙️ Guild Wars, Guild Halls e Zone System; ⚙️ ClientID direto do .dat, sem necessidade de mapear ServerID/ClientID; ⚙️ Patches de DLL para estender os limites do cliente CIP 8.60; ⚙️ E muito mais no README completo do GitHub. 💡 Importante: Alguns sistemas mais avançados, como Forge, Imbuements e Monk/Harmony, vêm desativados por padrão para manter a compatibilidade com o protocolo 8.60 e deixar a base mais limpa para quem quer algo clássico. Quem quiser usar esses sistemas só precisa ativar no config.lua, mudando a opção correspondente para true. 🐧 Compilação no Linux: Para compilar no Linux, use o script: ./build.sh Ele detecta automaticamente arquivos antigos de build, remove versões antigas quando necessário e instala as dependências mais recentes de forma segura, evitando erros comuns durante a compilação. 🚀 Base estável, ativa e otimizada: Compilada com -O3, mimalloc, simdutf e LTO. Funciona muito bem no Ubuntu 22.04/24.04 e também no Windows via vcpkg. 👇 Como você pode ajudar: 🐞 Encontrou um bug? Abra uma Issue detalhada no GitHub. 🔧 Conhece C++ ou Lua? Envie um PR — patches bem feitos são muito bem-vindos. ⭐ Gostou do projeto? Deixe uma estrela no repositório para ajudar na visibilidade. 👉 GitHub: Mateuzkl/forgottenserver-downgrade-1.8-8.60 TFS Downgrade 1.8+ é uma base inspirada no downgrade do nekiro, porém altamente atualizada com código moderno do TFS, módulos Lua separados e suporte a Lua 5.5. Eu e a equipe agradecemos qualquer contribuição — código, relatórios de bugs ou feedback técnico. Feito com 💜 por Mateuzkl, SoyFabi e Skyyzyy.
  3. Base Wo-naruto shinobi Returns [WONSR]

    bankaidai2 e um outro reagiu a Jeff Delay por uma resposta no tópico

    2 pontos
    Salve pessoal, como ja coletei mt conteudo daqui hoje vim compartilhar algo que na verdade já está free em alguns canais de discord, uma base de nto que eu abri em 2020/2021 até que deu certo e pegou 500/600 players no auge, porem com varios problemas fechei e vendi porem ela ja roda de graça em varios canais então tenho certeza que não tem problema divulgar ela aqui, oque a base tem? Sistema de elo [Rankeamento]; Sistema edo tensei [Selamento de corpos]; Sistemas de saga [historia]; 42 pessonagens completos, todos funcionais e com habilidades unicas; Sistema de vocação do dia [primeiro nto a ter]; Sistema de raridade [Primeiro nto a ter]; Sistema de fontes termais; Sistema anbu/akatsuki com bonus; Sistema de roleta [acredito nunca ter visto uma rotela parecida com a que nos fizemos] Sistema de cidadão; Sistema de jinchuriki; e outros ai que não lembro alem de alguns eventos, o jogo tem bastante coisa e eu dediquei bastante tempo nele, porem atualmente estou trabalhando em outro novamente assim que ficar disponivel iirei postar aqui. quem tiver curiosidade tem varios videos no yt sobre o jogo] Creditos a mim que começei o projeto e ao meu irmão jean, lembro como ta o nome dele aqui então vai ficar por isso mesmo. no arquivo contem Otc, server, site e sourcer. Base utilizada foi nto shinobi 8.54 não pretendo dar suporte a nada até porque esta abandonado por mim desde 2021 https://mega.nz/file/4cdxiJQT#AYXaTLB_Avkys9VrLKymzNY_I2UJcLxDLFLzIgjL-js VirusTotal - File - f9f1bc435cdfc98845ede6adbbc03763aaf5e2c942732f21efe3e1fe1c1b36fe
  4. Primeiramente gostaria de esclarecer algumas polemicas relacionas a base na época (2019) em que estava online comigo. O "SERVIDOR" (nome PokemonRoxy com grupo no facebook de 600 pessoas e pagina) foi vendido na época por 500 reais, sendo que a mesma estava com uma média de 50 players diarios com donaters ativos, chegou a atingir o limite de 140 players simultanêos. Quando vendi a base avisei ao comprador que a venda do servidor não limitaria a minha venda da BASE, tenho prints que comprovam. Nessa vendi uma copia da base por 100 reais na época e acabaram vazando (copias da base que estão em outros forums) Pessoas mal intensionadas colocaram um monte de trap na source pra disponibilizar a base e ganhar vendendo a source original. O pokemon roxy pra quem não sabe foi feito a partir da base do PokemonChampions, foi corrigido todos bugs criticos da base, source e mapa refeitos do 0. A source que acompanha é a original Vamos um ajudar o outro pra comunidade crescer cada dia mais e aumentar o nivel sempre 😉 O intuito do servidor era realmente ser algo diferente do estilo PxG da vida, algo um pouco mas casual mas ainda sim um servidor serio. porém tenho certeza que a base tem capacidade pra um projeto serio com outra proprosta de jogo. E tem gente que tem projeto excelente e promissor com a base como por exemplo pokegenerations que será lançada em breve CRÉDITOS: Eu (MORDUK) que fiz praticamente tudo no servidor, desde mapa que refiz do 0, até a maioria dos scripts em lua e investi alto em alguns sistemas Kevin L Ajudou bastante na parte de sprites e alguns modulos Carlos Guiminha Sempre ajudou o servidor in-game e com sprites Se tiver mais alguem manda msg pois não me lembro PRINTS ANTIGAS DE QUANDO O SERVIDOR ESTAVA ONLINE (MESMOS ARQUIVOS DAQUI): https://imgur.com/a/ttJVmFK CONTEÚDO: -Site (100% funcional, com shop entregando in-game automaticamente) -Source do OTCLIENT -Source do OTCLIENT com criptografia -Source do Servidor -Codeblocks usado para compilar DOWNLOAD: https://www.4shared.com/rar/DrHxw3cYiq/pokemon_roxy__1_.html? SENHA DOS ARQUIVOS: 12roxy12 SCAN: https://www.virustotal.com/gui/file/d1da37db89197ab2633488005da040bff25d126b086e8b440ff6b0f1a5642226 DATABASE: Usar a mysteryous.sql que está na base do servidor Sou mapper, todas as ilhas do mapa e maioria das quests foram feitas por mim. Faço trampo de copia também, a hunt de altaria foi feita por mim 100% igual da PXG, até mesmo os detalhes! faço por encomenda também! Também faço scripts em lua Posso ajudar com suporte a alguns problemas Ótima base para retirada de sistemas em lua, c++ e modulos do client ESPERO AJUDAR A COMUNIDADE E ESPERO QUE CRESÇAMOS CADA DIA MAIS UM AJUDANDO AO OUTRO.
  5. 2 pontos
    Ola Pessoal, Boa noite.. venho postar no grupo para vocês um servidor 8.6 MAPA Styller. Atualmente vazaram a base e estão vendendo por um preço absurdo kkkk. Para acabar com a picaretagem de gente sem vergonha, vou disponibilizar para vocês... lembrando que não vou dar suporte. Só estou postando para acabar com a covardia. Contém montarias, prey, imbui... enfim, muito conteúdo legal para dar início a um projeto!" Vou Procurar o Site e posto, tbm Projeto era meu, mais enfim.. Deus Abençoe Servidor: https://www.mediafire.com/file/26typjx3953237d/StyllerOTX2.zip/file Client : https://www.mediafire.com/file/vyx2tqld4p938x8/Styller_OTS.zip/file SQL : https://www.mediafire.com/file/6zq8pj70omv4lug/styller_%25282%2529.sql/file
  6. OTUI Editor PRO

    Peixola e um outro reagiu a TheFallenKing por uma resposta no tópico

    2 pontos
    🚀 OTUI Editor PRO - Professional Visual Editor for OTClient! Tired of editing OTUI files in Notepad? Revolutionize your development! What is it? The first visual editor for OTUI/OTMD files, developed in C++ with Qt6 for maximum performance. Features: • Modern visual interface - drag and drop widgets • Intuitive resizing with visual handles • Intelligent grid system with automatic snapping • Unlimited Undo/Redo - never lose your work • Real-time property editor • Complete OTClient project management • Support for all widgets (Window, Button, Label, etc.) Benefits: • 10x faster than manual editing • Zero syntax errors - graphical interface eliminates bugs • Pixel-perfect alignment • Compatible with Windows, Linux, and macOS Supported Widgets: Window, Panel, Label, Button, Image, TextEdit, CheckBox, ComboBox, ScrollablePanel, and many more! Why choose us? Native C++ performance Modern Qt6 interface Instant visualization Active Brazilian community Access now: https://otui.com.br/ Free download available!
  7. 🌍🔥 Mapa Exclusivo by Gabriel Desastre - Arquiteto Tibiano 🔥🌍⚠️ Antes de tudo...Esse mapa já foi roubado, comercializado e chegou a render quase R$ 10.000,00 💸. Agora, caiu em mãos de pessoas que eu não gostaria que tivessem acesso, então decidi postar EU MESMO, de forma 100% gratuita, aqui no fórum. 👉 Sou Gabriel Desastre – Arquiteto Tibiano (também no Instagram 📸: @arquiteto.tibiano). 🛠️ Tenho experiência com SimOne Map Editor desde 2008 e hoje isso se tornou meu trabalho profissional. Sou especialista em revamp, rework e mapas do zero, e por conta dos anos de experiência, mapeio diretamente em RAW, o que dá muito mais liberdade, qualidade e detalhe. 🏙️ O Conteúdo do MapaEste projeto, se fosse encomendado, valeria +R$ 5.000,00 em horas de dedicação e detalhamento. E agora está liberado gratuitamente para a comunidade. 📌 O mapa é um Map Canary 15x com: 🦇 Thais Gótica – atmosfera sombria e única ⚔️ Edron Editada 2 – uma versão repaginada da clássica Edron 🤠 Darashia Velho Oeste – clima faroeste inédito 👑 Carlin Imperial – arquitetura real e imponente 🚂 Dawnport Eldourado – com trem customizado no lugar do barco 🌳 Old Venore – a clássica cidade em sua forma nostálgica ⛏️ Femor Ville – uma vila/cidade de mineradores nas colinas de Femor Além disso: 📜 Salas de Bosses já prontas 🗺️ Mapa Canary atualizado (Monk + Summer Update 2025) ✅ Links separados por cidades + link do mapa completo ✨ Prints!https://imgur.com/a/nshyWdd 💾 DownloadDarashia https://www.mediafire.com/file/8minpasv59m0wzv/darashiaVelhoOeste.rar/file https://www.virustotal.com/gui/url/43ec0e02d34cf35222bbe9fa34f1a9e4ff34fc3e5a2ade2b224a07298e13988b Dawnport https://www.mediafire.com/file/bvr7dibjyfxe3cg/DawnportElDourado.rar/file https://www.virustotal.com/gui/url/9c0b0ff8beebffed44968326bc2d41efda5406b34dc4d11fe64a8baf046373e5 Edron https://www.mediafire.com/file/wziws4665z3zinw/Edron2.rar/file https://www.virustotal.com/gui/url/56415660f40e4d7196e3c42c15b68af782249cd57544eecee12a41db91f14d70 Femor Ville https://www.mediafire.com/file/jcm613vasgcse9k/FemorVille.rar/file https://www.virustotal.com/gui/url/019225af742e25b6375fbdb32bb205a1c06cda5bd6620f4e26524ee3e4997e95 Forja + Rouletas https://www.mediafire.com/file/o6ii2dmoxi0ylcr/forge.rar/file https://www.virustotal.com/gui/url/3c20124708d9ed0f0f3c1de72613b40d98d5de2138ae3dfde342464ffad03626 Thais https://www.mediafire.com/file/dwgfwcjbpbwtec1/thaisGotic.rar/file https://www.virustotal.com/gui/url/5bfa06078e894928f9e1fae168bf5de706150c03e23cb41f4fd36339c882ec3d Mapa Full (Summer Update 2025) https://www.mediafire.com/file/ydmxqm23w1m4qv9/worldArquitoTibiano.rar/file https://www.virustotal.com/gui/url/5072d2ff7efca235eb7b4438c95fdb9b52abc4e23bc46dc73fac724c4c26b03b 📢 Importante❌ Não autorizo a venda. ✅ 100% grátis. 🙌 Quem quiser me contratar para futuros trabalhos, estou à disposição. ✨ Sobre mim🎨 Arquiteto Tibiano com experiência desde 2008 no SimOne Map Editor 📸 Instagram: @arquiteto.tibiano 🔨 Faço mapas do zero, com estilo próprio. ♻️ Especialista em revamp e rework de cidades e áreas. 🧱 RAW Mapper – aproveitando minha experiência para criar detalhes impossíveis nos editores comuns. Se gostou do meu trabalho e quer algo único para seu servidor, só chamar! 🚀
  8. Bom, hoje venho contribuir com mais um servidor de Poketibia TFS 1.2 para a comunidade. O servidor foi desenvolvido em cima da PokeDash TFS 1.2 O servidor tem os sistemas principais surf,ride,fly, pesca, sistema de passiva (tudo funcionando normalmente dentre outros sistemas que nao me lembro no momento,quests feitos por mim) Como eu abandonei o projeto pois troquei para uma base TFS 1.4, estou postando pra nao ficar perdido no meu hd. facam bom proveito Creditos: Morduk (correcoes e alteracao de quase tudo no servidor) Pota (Criador da PokeDASH). plooner157(por adaptar o mapa da pxg) Se faltar algum credito so entrar em contato que eu coloco. Se precisarem faço freelance com mapas,scripts, compilacao em linux/windows e correcoes no geral e tambem tenho uma base do meu projeto mais atual TFS 1.4 Whatsapp (19) 99973-5390 Abaixo algumas prints do servidor LINKS PARA DOWNLOAD: SERVER: mega: https://mega.nz/file/GFt0XDrB#UgMq3eQ6vAASBKnerVyjdoGf9ZgGDr95MwjVOUt6c7g mediafire: https://www.mediafire.com/file/q0d85594lkrbyj5/SEVER_POKEHASH_BY_MORDUK.rar/file CLIENT: mega: https://mega.nz/file/CMsVxIYY#D0aKDznDBFMH4HuNSok46vE3RsdjnfefPsSz736ECIM mediafire: https://www.mediafire.com/file/l7s1qxtoeqw3e3y/CLIENT_POKEHASH.rar/file SITE: mega: https://mega.nz/file/2BVBwQZC#03TKrIk8f9XKVyoLXduvHfDhUhwmAYcMd6mRlwBTqIE SCAN: www.virustotal.com/gui/file-analysis/ODhlYWZmZTJiNmVjMDdiMjEyOWY0ZDI3OWU3MDUxYjI6MTc2MTQyNTQ1Nw==
  9. PokeFans é um servidor feito em cima base disponibilizada pelo @pota. No inicio era um projeto para estudar a TFS 1.2, visto que sempre trabalhei com 0.3.6. Fiquei maravilhado com a simplicidade e as possibilidades quase infinitas da base. Comecei a me dedicar mais e eventualmente nos tornamos um servidor sério. O PokeFans possui diversos sistemas novos que foram implementados em cima da base POTA, muitos mesmos, seria incapaz de nomear todos neste post, então deixo o link do https://trello.com/b/ELrkzeTi/pokefans O servidor era muito popular por um tempo, atingindo números bem altos para um Poketibia (100 ~ 120 players), mas eventualmente tivemos problemas sérios com lag, não sei se por alguém atacando, conflito de código causado pela quantidade de mudanças que fiz, fato é que após muito buscar uma resposta, finalmente consegui resolver o lag, mas não sem antes perder certa de 70% da player base. Junto à isso tive problemas pessoas sérios e tudo isso acabou me desmotivando bastante, entretanto, PokeFans pra mim foi uma ótima fase, fiz muitos amigos, tive bons momentos e aprendi ainda mais sobre lua, c++ e até esse HTML esquisito que usamos no OTC. Por isso não podia deixar a base mofando no meu drive, ela merece estar online e proporcionar bons momentos à todos. E com esta longa carta introdutória, com vocês, PokeFans. IMAGENS/SISTEMAS/CONTEUDO DOWNLOAD https://mega.nz/file/zVBVgKIZ#mfJZjw93ir3Rrpb05qfnafMMw9dlU3KJL9hLUQCXoV8 https://www.mediafire.com/file/ejry9qxpe71mkvz/pokefans.rar/file SCAN https://www.virustotal.com/gui/url/f5da18695fff6d14f92c75e6d211de27c450abc5c12bfe861466c6ee9ed37578/detection https://www.virustotal.com/gui/url/d750e2fad1faab64b5f549c854ecddb03a27ff938e03981f0f696aa16eb4a818?nocache=1 (Deu flag ESTsecurity - Malicious, não faço ideia do que seja, se alguém puder me auxiliar no que seja) OBSERVAÇÕES Não prestarei suporte à base, entretanto, atuo como freelancer de luascript e modulos para OTC, você pode entrar em contato comigo pelo Discord: zayonowatari Para abrir o mapa no Remeres você precisa de um SPR/DAT sem transparência, basta salvar sem transparência diretamente do object builder. Caso você tenha gostado da base e tenha interesse em fazer uma doação, utilize essa chave pix: f3cb7525-2b8c-47f8-8db6-876c8cd68bde CRÉDITOS @pota - por todo o seu trabalho e humildade em disponibilizar sua base inicialmente, sem ela não estariamos aqui. theforgottenserver - sem eles nenhuma base estaria aqui. OTLand e Tibiaking - ambas as comunidades me auxiliaram a vida toda com todas as dúvidas que tive, respeito máximo à todos que fazem parte disso.
  10. - Base Poke Lute 2018/2019

    dyegojpluliniwew e um outro reagiu a S H I O N por uma resposta no tópico

    2 pontos
    oiee, estou aqui para disponibilizar uma base bem antiga que achei nos meus arquivos, eu iria apagar ela mais preferi deixar ela aqui para caso alguem queira usar ela para alguma coisa no futuro, pq eu simplesmente peguei em 2018 por ai e nem usei mais pelo o fato de ter muitos bugs e para quem nao entende de script e sistemas ela se torna um pesadelo na vida de alguem, a maioria dos bugs q ela tem da para corrigir muito rapido mais tem uns q sao extremamente dificeis entao um conselho para quem pegar essa base... boa sorte kkkk vc vai precisar de uns meses para tirar os bugs dela mais ela e jogavel ainda. façam um bom uso dela, se caso o cara manjar bem de editar poketibias e tirar bugs e mexer com scripts, para ele vai ser facil tirar esses bugs q tem nela. . . . . . . . vamos ao que interessa, o download dela vai esta pelo o mediafire e dentro contem o servidor e o client quando baixar e so trocar o ip do servidor e trocar o ip do seu client e pronto. . . . . . . vou deixar algumas prints abaixo. . . . espero ver um dia essa base online dnv, amava jogar, por isso nao excluir ela resolvi deixar aqui, acredito que vao cuidar bem dela. vlw fui.
  11. [PEDIDO] Base NDBO

    dgzim e um outro reagiu a Cat por uma resposta no tópico

    2 pontos
    Este tópico foi movido para a área correta. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!
  12. Esse tutorial será composto por vários passo-a-passo (tópicos) de como montar toda a infraestrutura para deixar um servidor TFS 1.x online no Linux Ubuntu 22.04. INICIANDO A MÁQUINA LINUX É importante que toda vez que você entrar em sua máquina UBUNTU você atualize os pacotes já instalados para as versões mais recentes com o comando: sudo apt update E depois procure por novos pacotes de atualização para a versão do UBUNTU instalado. (em alguns casos irá perguntar se você realmente deseja instalar determinado pacote, digite Y (yes - sim) e depois ENTER. sudo apt upgrade PILHA LEMP - Inicialmente você deve entender que as versões mais atuais do TFS suportam apenas o MySQL como armazenamento de banco de dados e não usam mais "account manager" no jogo para criação de contas, portanto você deverá ter um site para isto. - Para usar um site você deverá instalar o pacote de pilha conhecido como LEMP, que basicamente é um grupo de programas com a abreviação de LINUX - ENGINE X (nginx) - MySQL ou MariaDB (no caso usaremos a MariaDB) - PHP. - Para quem é mais leigo, é interessante saber que o Nginx é um servidor web (irá mostrar as páginas web), o MariaDB é programa de armazenamento e gerenciamento de dados do banco de dados e o PHP serve para processar código e gerar conteúdo dinâmico para o servidor Web. 1 - TUTORIAL DE COMO INSTALAR O NGINX NO UBUNTU 22.04 2 - TUTORIAL DE COMO INSTALAR O MARIADB NO UBUNTU 22.04 3 - TUTORIAL DE COMO INSTALAR O PHP NO UBUNTU 22.04 PHPMYADMIN - Apesar de já termos instalado o programa MariaDB que armazena e gerencia os dados de seu projeto, sabemos que não é muito fácil manipular os dados apenas por comandos no prompt (ainda mais por leigos) .. diante disso, iremos usar o PHPMYADMIN, que através de um interface web, realiza as ações no banco de dados de forma fácil e prática ... - TUTORIAL DE COMO INSTALAR O PHPMYADMIN NO UBUNTU 22.04 AJUSTANDO O TIMEZONE - Muitas máquina vem com o horário diferente do horário de sua região, para ver a hora da máquina basta usar o comando: date Se estiver diferente, você poderá usar o seguinte comando: sudo timedatectl set-timezone America/Sao_Paulo Com o comando acima, você estará mudando a timezone para "America/Sao_Paulo", ou seja, ficará com o horário local do estado de São Paulo. Caso queira encontrar outra timezone, digite: timedatectl list-timezones Para sair da lista use CTRL+C. Aposta feita a alteração, é necessário reiniciar a máquina: sudo shutdown -r now E depois testar novamente. COMPILAR E CONFIGURAR TFS - TUTORIAL DE COMO COMPILAR E CONFIGURAR O TFS NO UBUNTU 22.04 INSTALAR E CONFIGURAR SITE Existem, hoje em dia, várias opções de sites para otservs, e com o tempo quero fazer um tutorial para cada um ... - TUTORIAL DE COMO INSTALAR E CONFIGURAR O ZNOTE ACC NO UBUNTU 22.04 Esse tópico estará em constante atualização .. e cada mudança irei informar nos comentários. Bom uso!
  13. Configurando Docker no windows, adeus VM

    forkz reagiu a marcoshps11 por uma resposta no tópico

    1 ponto
    Neste tutorial, irei ensinar configurar o Docker no windows e rodar seu otserver - Diferença entre Docker x Máquina virtual: Docker e Máquinas Virtuais (VMs) ambas são fundamentais usadas para isolar recursos em um sistema de computação, mas funcionam de maneiras muito diferentes. VMs são ambientes de computação completos, incluindo um sistema operacional (SO) completo, que simulam o hardware de um computador físico. Isso significa que cada VM é um sistema autônomo e independente. Já o Docker, usa a tecnologia de contêineres. Os contêineres compartilham o mesmo sistema operacional do host, mas mantêm seu próprio espaço de processo, arquivos e rede. Isso significa que eles são muito mais leves do que as VMs, pois não precisam de um SO completo, e podem ser iniciados e parados muito mais rapidamente. - Vantagens em utilizar o Docker O Docker oferece várias vantagens significativas: Eficiência de recursos: Como os contêineres Docker compartilham o SO do host, eles são mais leves e usam menos recursos do que as VMs. Portabilidade: O Docker permite que você "construa uma vez, execute em qualquer lugar". Uma vez criado um contêiner Docker, ele pode ser executado em qualquer sistema que suporte o Docker, independentemente das configurações subjacentes. Isolamento: Cada contêiner Docker é isolado do resto do sistema, o que ajuda a evitar conflitos entre diferentes aplicações e versões de software. Integração e entrega contínua: O Docker se integra bem com ferramentas de CI/CD (Integração Contínua / Entrega Contínua), permitindo a automatização de testes e implantação de aplicações. Escalabilidade e Orquestração: O Docker facilita a escalabilidade de aplicações, permitindo que múltiplos contêineres sejam implantados facilmente. Além disso, com ferramentas como Docker Swarm e Kubernetes, a orquestração de contêineres se torna eficiente e gerenciável Colocando a mão na massa Este tutorial será dividido nas seguintes etapas: Preparação do Windows Instalando o Docker Instalando imagens mariadb e phpmyadmin Realizando a build da imagem TFS 1º PASSO: Preparando o Windows com o subsistema Linux. AVISO: Essa Etapa será necessária somente caso ainda não possua o subsistema Linux ativado em seu windows Os comandos a seguir, serão todos utilizando o POWERSHELL do windows, na barra de pesquisa digite POWERSHELL e execute como administrador. Com o POWERSHELL aberto, execute os seguintes comandos: Habilitando subsistema Linux: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart Habilitando recurso de máquina virtual: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart Baixe e instale Kernel do Linux: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi Após essa etapa, será necessário reiniciar o computador para atualização, após reiniciar, abra novamente o PowerShell Definindo o WSL 2 como padrão: wsl --set-default-version 2 Após esses passos, basta entrar na Microsoft Store e instalar o sistema Ubuntu: Após a instalação, abra o Ubuntu, como será a primeira vez, irá solicitar para que digite um nome de usuário e uma senha. Etapa 1 concluída. Fonte: https://learn.microsoft.com/pt-br/windows/wsl/install-manual 2º PASSO: Instalando Docker. este é um passo simples, apenas entre no site oficial do Docker, baixe e instale o Docker Desktop https://www.docker.com/ Etapa 2 concluída. 3º PASSO: Instalando imagens MariaDB e phpMyAdmin Assim como no passo 1, execute novamente o PowerShell como administrador e siga os seguintes passos: Primeiro vamos baixar as imagens necessárias, execute os seguintes comandos: docker pull mariadb docker pull phpmyadmin/phpmyadmin Agora iremos criar uma "Rede" para que o docker se comunique entre os containers que iremos utilizar. Execute o seguinte comando: docker network create mynetwork mynetwork é o nome que defini neste caso, você pode utilizar o nome que achar melhor, porém lembre-se desse nome que iremos utilizar nos próximos passos. Agora iremos iniciar essas imagens, utilizando os seguintes comandos: docker run --name mariadb --network=mynetwork -e MYSQL_ROOT_PASSWORD=your_password -d mariadb your_password = altere pela senha que deseja utilizar no mysql mynetwork = é o nome que criamos no passo anterior docker run --name myadmin --network=mynetwork --link mariadb:db -d -p 8080:80 phpmyadmin/phpmyadmin Lembrando novamente, mynetwork é o nome criado anteriormente Após esses passos, será possível ver seu container rodando no Docker Desktop: Etapa 3 concluída. 4º PASSO: Gerando Imagem do TFS e configurações necessárias: Baixe a TFS, nesse exemplo será o repositório oficial https://github.com/otland/forgottenserver Extraia os arquivos após baixar com o container mariadb e phpmyadmin rodando, acesse http://localhost:8080/ com o login root, e a senha que criou no passo 3, crie uma nova base de dados e importe o arquivo schema.sql do servidor edite o arquivo config.lua.dist -- MySQL mysqlHost = "mariadb" mysqlUser = "root" mysqlPass = "SUA SENHA CRIADO NO PASSO 3" mysqlDatabase = "NOME DA DATABASE" mysqlPort = 3306 mysqlSock = "" mariadb é o nome do container que estamos rodando o mysql ** Caso queira utilizar todo potencial do seu computador na hora de buildar a TFS, no arquivo Dockerfile, edite a linha 18: RUN cmake --preset default && cmake --build --config RelWithDebInfo --preset default para RUN cmake --preset default && cmake --build --config RelWithDebInfo --preset default -- -j 16 onde 16 é o numero de processadores lógicos que deseja ser utilizados, não é necessário utilizar 100% porém quanto mais melhor, porém caso utilize mais do que está disponível poderá travar, então utilize a quantidade mostrada pra menos. no gerenciador de tarefas aba desempenho, é possível visualizar a quantidade de núcleos e processadores lógicos do seu CPU Após isso, entre no Power Shell e execute o comando: docker build -t server . onde "server" é o nome da imagem que será gerada Após isso, é só iniciar o servidor com o seguinte comando docker run --name server --network=mynetwork -p 7171:7171 -p 7172:7172 -d server lembrando que mynetwork é o nome que geramos no passo 3, e o ultimo parametro é nome da imagem que geramos anteriormente. Você poderá ver seu sevidor ronando no Docker Desktop: caso queira parar algum servidor ou iniciar novamente, é só clicar no botão de ação: Caso precise fazer alguma alteração no server, basta utilizar os comandos de build e run citados anteriormente. Lembrando que isso é um tutorial básico para rodar o servidor na máquina local, qualquer dúvida ou sugestão, deixe comentário.
  14. Erro no script eggs de exp

    Tokias reagiu a premii por uma resposta no tópico

    1 ponto
    Olá, como não informou a versão que utiliza seu servidor, deduzi ser 0.4 faça o teste com esse abaixo: Script aqui local potions = { [6541] = {needLevel = 100, rate = 3.0, duration = 1800}, [6542] = {needLevel = 200, rate = 5.0, duration = 1800}, [6543] = {needLevel = 300, rate = 7.0, duration = 1800}, [6544] = {needLevel = 400, rate = 9.0, duration = 1800}, [6545] = {needLevel = 500, rate = 11.0, duration = 1800}, [2328] = {needLevel = 550, rate = 13.0, duration = 1800}, } if not expPotions then expPotions = {playerData = {}} end function expPotions:onUse(cid, item, fromPosition, itemEx, toPosition) local itemId = item.itemid local potion = potions[itemId] if not potion then return false end if getPlayerLevel(cid) < potion.needLevel then doPlayerSendCancel(cid, ('Você precisa ser level %d+ para usar esta potion.'):format(potion.needLevel)) return true end local guid = getPlayerGUID(cid) -- Verifica se o playerData do player existe if not self.playerData[guid] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'É necessário relogar para atualizar.') return true end local expData = self.playerData[guid][itemId] -- Verifica se a entrada para o item existe if not expData then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'É necessário relogar para atualizar.') return true end local now = os.time() if expData.duration > now then doCreatureSay(cid, 'Aguarde o bônus atual acabar para usar novamente.', TALKTYPE_ORANGE_1, false, cid) return true end expData.rate = potion.rate -- aplica apenas o novo bônus expData.duration = now + potion.duration doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, ('Agora você tem +%d%% de experiência por %s.'):format( potion.rate * 100, string.diff(potion.duration, true) )) doRemoveItem(item.uid, 1) return true end function expPotions:onLogin(cid) local guid = getPlayerGUID(cid) self.playerData[guid] = {} for itemId in pairs(potions) do self.playerData[guid][itemId] = {rate = 0, duration = 0} end return true end function expPotions:getCombo(cid) local playerData = self.playerData[getPlayerGUID(cid)] local potionsCombo = 1 if playerData then for _, expData in pairs(playerData) do potionsCombo = potionsCombo + expData.rate end end return potionsCombo end function expPotions:onSay(cid, words, param) local str = 'Experience Potion Combos:\n' local playerData = self.playerData[getPlayerGUID(cid)] if playerData then for itemId, expData in pairs(playerData) do str = str .. ('\n%s - %d%%'):format(getItemInfo(itemId).name, expData.rate * 100) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str) return true end
  15. Tem tudo no repositório do github
  16. https://www.4shared.com/rar/DrHxw3cYiq/pokemon_roxy__1_.html?
  17. TFS 04 860 (BASE TIBIA GTA QUILANTE)

    Underewar reagiu a kelwin por uma resposta no tópico

    1 ponto
    consegui logar e entrar na conta adm, porém o personagem não tem os poderes de GOD, como eu faço pra ter o poder de GOD no personagem ?
  18. edit: A Todos com esse problema, recomendo encontrarem um bom programador pra resolver. basicamente envolve muita modificação em client e server sources. e que até mesmo pra programadores experientes da muito trabalho porque cada base é diferente. boa sorte :]
  19. [OTX 12.64] Baiak Styller

    Nerivalhs reagiu a Deletera por uma resposta no tópico

    1 ponto
    Atenção! Os arquivos disponibilizados abaixo são da versão 12.64! Para obter otserv 12.64+ atualizado com novas áreas e novos gráficos acesse o github oficial do projeto OTX: https://github.com/opentibiabr/otservbr-global Servidor feito especialmente para jogadores que gostam do Tibia Oldstyle, mas colocado na versao 12 com novas funcionalidades, mounts, outfits e itens. Todos Outfits sao frees & Addons coletando itens PVP clássico, old school times Spells adaptadas a versao 8.60 Mais de 50 quests na Teleport Room Tasks e Missions para explorar o mapa Raids automáticas com novos bosses Reward System desabilitado, loot tradicional (bem melhor assim, certo?) Áreas custom e inovadoras como Hogwarts Em resumo, o OT busca ser simples, resgatando a naturalidade do que era o baiak da versão 8.60 em 2009, mas com implementações 12x+ ◄IMAGENS► ◄DATAPACK & DLLS► » OTX Baiak Styller 12.64 MediaFire (Scan) » OtservBR Dlls & Executável (Windows 64x) (Antes de rodar o OT verifique de usar a mesma database e configurar o login no config.lua) ◄CLIENTS► » Tibia Client 12.64 MediaFire (Scan) (Para conectar ao cliente 12 (localhost), acesse usando 127.0.0.1_client.exe, localizado na pasta bin.) ◄WEB► » [GesiorAcc] para Tibia 12.64 MediaFire (Scan) Instale o XAMP para rodar com a data base e site disponíveis (não se esquece de alterar o login e senha no config.lua, para o atual a senha do mysql está como "XIPA2") » [Data base] acc/email e senha: god/god MediaFire (Scan) O OT está configurado para aceitar acc no lugar de email (opcional) para usar as acc de testes é senha 123123 ◄Créditos► Waldir Teixeira (Saruman/Deletera) &
  20. [OTC Module] Game Upgrade

    Jeff Delay reagiu a idlerpl por uma resposta no tópico

    1 ponto
    https://www.virustotal.com/gui/file/350f2b5121318a194fe84c4a30766fd1cad70ef5cdb49dc54e6c61aa987b6ac9?nocache=1 game_upgrades.zip https://gyazo.com/512aca60b9b260f5588afe4dc03fb449 https://gyazo.com/99d4756d47dad405639818c2b9453c20
  21. Apresentamos com orgulho: VERTUS SPRITER

    L3K0T reagiu a Erimyth por uma resposta no tópico

    1 ponto
    Apresentamos com orgulho: VERTUS SPRITER – O Mestre da Pixel Art no Universo OTServ! Quem é Vertus Spriter? É com grande honra que o TibiaKing apresenta oficialmente Vertus Spriter como parceiro e artista recomendado da comunidade! Se você é desenvolvedor de servidores de Tibia (OTServ), seja 8x, 14x ou versões personalizadas, com certeza já ouviu falar sobre o talento absurdo de Vertus. Ele não é apenas um "spriter", mas sim um verdadeiro artista digital, com anos de experiência transformando pixels em obras-primas que dão vida aos mundos mais imersivos dos servidores OT. Com um portfólio de respeito e contribuições em grandes projetos nacionais e internacionais, Vertus traz um padrão técnico, estético e profissional digno de jogos comerciais. Ele domina desde a criação de sets de equipamentos completos, outfits originais, Itens, Boxes e efeitos visuais, que encantam jogadores à primeira vista. Profissionalismo que vai além da arte Vertus não é apenas técnico — ele é estrategista visual. Ao trabalhar com ele, você conta com: Análise de estilo visual do seu servidor para criar sprites compatíveis com a identidade do projeto Criação de conteúdos únicos, com inspiração em lore, temáticas de RPG, mitologia, sci-fi, fantasia sombria e muito mais Sprites otimizados, com peso leve e encaixe perfeito nas engines utilizadas (OTClient, OTClientV8, OTCv2 etc.) Entrega ágil e com documentação, facilitando a implementação dos assets na base do seu servidor Comunicação profissional, com cronograma claro e abertura para revisões quando necessário Experiência com trabalhos encomendados por empresas e servidores internacionais Vertus é 100% confiável, pontual, e respeita cada detalhe do que o seu projeto precisa. Se você procura excelência visual, chegou no lugar certo. SHOWCASE DE OUTFITS – Inovação, Detalhe e Personalidade Prepare- se para ver outfits únicos, com animações fluídas, detalhes impactantes e silhuetas marcantes. Todos criados exclusivamente por Vertus. Cada um desses outfits carrega identidade, lore visual e um nível de detalhamento que aumenta drasticamente a percepção de qualidade do servidor. SHOWCASE DE SETS – Armas, Armaduras, Shields, Wings e Acessórios Vertus também é especialista em sets: conjuntos completos de armaduras, armas e acessórios que dão aquele toque épico à gameplay visual. Cada pixel é desenhado com propósito e harmonia, garantindo um visual balanceado e coerente no ambiente do jogo. ENTRE EM CONTATO COM VERTUS SPRITER E-mail Profissional: [email protected] WhatsApp: CLIQUE AQUI E FALE COMIGO! Pedidos personalizados? Vertus está aberto para novas parcerias! Quer um pacote de outfits/set exclusivos? Ele cria sob medida para o seu projeto! CONCLUSÃO Se você está investindo tempo e recursos no seu servidor de Tibia, não entregue uma experiência visual genérica. Aposte no que realmente faz diferença: personalidade visual, qualidade artística e identidade única. Vertus Spriter é hoje uma das maiores referências em Pixel Art para OTServ. E o TibiaKing tem orgulho de apoiar, recomendar e reconhecer o trabalho desse verdadeiro mestre dos pixels. A revolução visual do seu servidor começa aqui. Com Vertus.
  22. 1 ponto
    [TESTADO EM OTX 2.1+] 8.60 [TESTADO EM TFS 0.3.6] 8.54 ~ 8.60 Créditos: ~Mathias Kenfi
  23. * Áudio de saudação * Neste tutorial, irei ensinar alguns passos inicias para utilizar o OTClientV8 1º Passo: Como fixar ip e colocar a spr no local correto - Faço o download no link: https://github.com/OTCv8/otclientv8 - Extraia o arquivo - Dentro da pasta principal, vá até o arquivo init.lua Neste trecho, precisará remover os comentários --[[ e ]]: Servers = { --[[ OTClientV8 = "http://otclient.ovh/api/login.php", OTClientV8c = "otclient.ovh:7171", OTClientV8Test = "http://otclient.ovh/api/login2.php", LocalTestServ = "127.0.0.1:7171:1098:110:30:93" ]] } Ficando assim: Servers = { Meuserver = "127.0.0.1:7171:1098" } ficando na seguinte configuração NOME = "IP:PORTA:VERSÃO" Para fixar e não aparecer a lista de servers, basta alterar: ALLOW_CUSTOM_SERVERS = true -- if true it shows option ANOTHER on server list Para: ALLOW_CUSTOM_SERVERS = false -- if true it shows option ANOTHER on server list Caso queira trocar o nome do aplicativo é só mudar g_app.setName("OTCv8") trocando o "OTCv8" para o nome desejado, lembrando que isto irá alterar apenas o nome da janela do aplicativo Incluir a SPR/Dat: Para incluir, basta ir na pasta data, criar uma nova pasta e renomear com o nome "things" e depois criar uma outra pasta dentro dela com o nome da versão que desejar utilizar, exemplos: * 800 * 860 * 910 * 1100 dentro desta pasta, incluir as respectivas spr/dat da versão correspondente Um vídeo objetivo do conteúdo citado acima: 2º Passo: Remover campo "Token" da tela inicial Apesar de ser algo simples, vejo muitos perguntarem como remover este campo, vamos lá: - Vá até a pasta modules -> client_entergame - Abra o arquivo entergame.lua - Na linha 380 remova ou comente o trecho: enterGame:getChildById('accountTokenTextEdit'):clearText() - Na linha 412 remova ou comente o trecho: G.authenticatorToken = enterGame:getChildById('accountTokenTextEdit'):getText() - salve o arquivo - na mesma pasta, abra o arquivo entergame.otui - da linha 32 a 44 remova ou comente o seguinte trecho: MenuLabel !text: tr('Token') anchors.left: prev.left anchors.top: prev.bottom text-auto-resize: true margin-top: 8 TextEdit id: accountTokenTextEdit anchors.left: parent.left anchors.right: parent.right anchors.top: prev.bottom margin-top: 2 Um vídeo objetivo do conteúdo citado acima: 3º Passo: como encriptar os arquivos - Recomendo inicialmente criar uma cópia da pasta que ira encriptar, pois não é reversivo - Copie o endereço da pasta onde estão os arquivos - Abra o cmd e navegue até esta pasta utilizando o comando cd (link do endereço da pasta) - utilize o comando otclient_dx.exe --encrypt - Aguarde o sistema sinalizar que os arquivos foram encriptados PS: a pasta do modulo bot ( modules -> game_bot ) não pode ser encriptado, remova ela antes deste processo. Um vídeo objetivo do conteúdo citado acima: 4º Passo: Utilizando o auto update IMPORTANTE: Este processo precisa ser feito exatamente como demonstrado, qualquer link errado o sistema não irá funcionar. - Dentro da pasta API, abra o arquivo updater_advanced.php em $files_dir = "/var/www/otclient/files"; é a pasta onde conterá os arquivos do otclient para download, lembrando que o caminho precisa estar especificada desde a pasta inicial em $files_url = "http://otclient.ovh/files"; é o link que você pode utilizar o navegador para acessar a pasta "files" a mesma pasta do processo anterior. em $checksum_update_interval = 60; é o tempo em segundos, que o update levará para checkar se há alguma atualização ( não é necesário alterar ) - Na sua vps, dentro da pasta do SITE, cria uma pasta chamada API e outra pasta dentro dela chamada FILES - Envie o arquivo updater_advanced.php para a pasta API - De permissão 777 para pasta e subpasta API * voltando aos arquivos do otclient * - Abra o arquivo init.lua aconselho alterar o "APP_NAME = "otclientv8", pois é o nome da pasta que ficará salva nos arquivos temporários, isso evitará conflitos com versões já existe no pc altere o campo updater, colocando o endereço apontado para o arquivo updater_advanced.php enviado para o seu site nos passos anteriores. - Após as edições anteriores, salve o arquivo - Compacte os arquivos data, layout, modules e init.lua, renomeando para data.zip ( obrigatoriamente precisa ser zip ) - Exclua os arquivos zipados e os demais desnecessários para os jogadores. Atenção: o auto update só funcionará se os arquivos estiverem zipado conforme descrito. - Envie todos os arquivos para a pasta files em sua vps ( recomendo zipar para enviar, poupara processamento e tempo de envio ) - Após enviar, extraia os arquivos NA VPS, os arquivos no pc devem continuar zipado - Atenção nesta parte, as pastas e arquivo data / layout / modules / init.lua necessáriamente precisam estar na mesma pasta do executáveis, conforme time 4:20 no vídeo que deixarei disponível no final. lembrando: o update só aceitará arquivos editados após o tempo estipulado em checksum_update_interval , se fizer edições antes deste tempo, o sistema não irá considerar Um vídeo objetivo do conteúdo citado acima:
  24. System Drop Global - L3K0T TFS 0.4

    BrownDeveloper reagiu a L3K0T por uma resposta no tópico

    1 ponto
    Sistema de Drop Personalizado Esse sistema de loot foi projetado para adicionar um elemento de sorte e surpresa ao derrotar monstros. Sempre que um jogador derrota um monstro, há uma chance configurada para que ele solte entre 1 a 3 itens especiais, garantindo recompensas valiosas ao jogador. O sistema realiza as seguintes ações: Chance de Drop: A cada morte de um monstro, há uma chance configurada para dropar itens específicos. O sistema permite que sejam dropados entre 1 a 3 unidades do item, tornando o sistema mais dinâmico. Efeito Visual: Quando o loot é bem-sucedido, um efeito visual especial (ID 231) é exibido na posição exata onde o monstro foi derrotado, criando uma animação visual que destaca a recompensa. Notificação ao Jogador: Após o drop, o jogador recebe uma mensagem personalizada informando a quantidade de itens obtidos. Essa notificação aparece após 3 segundos, adicionando uma camada de imersão e evitando sobrecarregar o chat imediatamente após a morte do monstro. *Ótimo para fazer eventos de dropar certo itens para alguma missão ou resgates. *Uso no meu TIBIA HARRY POTTER ORIGIN VAi em creaturescripts/scripts.lua local function findCorpse(position) for i = 1, 255 do position.stackpos = i local corpse = getThingfromPos(position) if isCorpse(corpse.uid) then return corpse.uid end end return false end local function dropLoot(position, killer) local corpse = findCorpse(position) if not corpse then return false end local itemId = 2160 local chance = 23 if math.random(100) <= chance then local amountToDrop = math.random(1, 3) doAddContainerItem(corpse, itemId, amountToDrop) local corpsePosition = getThingPos(corpse) doSendMagicEffect(corpsePosition, 7) local function sendMessage() if isPlayer(killer) then local message = string.format("Você dropou %d Crystal Coin(s).", amountToDrop) doPlayerSendTextMessage(killer, MESSAGE_INFO_DESCR, message) end end addEvent(sendMessage, 2500) end return true end function onKill(cid, target) local position = getCreaturePosition(target) addEvent(dropLoot, 100, position, cid) return true end creaturescripts.xml <event type="kill" name="GlobalDrops" registerTo ="GlobalDrops" event="script" value="globalDrops.lua"/> ou depende do tfs <event type="kill" name="GlobalDrops" event="script" value="globalDrops.lua"/> Para ambos TFS registra o evento no login.lua registerTo ="GlobalDrops" feito isso.. agora todos os monstros do mapa vai cair os crystal coins de 1 há 3.
  25. Mapa do server PokémonBR [antigo] otbm

    DarkRed reagiu a Dom Matteo por uma resposta no tópico

    1 ponto
    GALERA QUERO COMPARTILHAR COM VOCÊS ALGO QUE EU DEMOREI MUITO TEMPO PRA ENCONTRAR NA NET E QUE ME TRAZ MUITA NOSTALGIA MAPA ANTIGO DO POKEMONBR OBG: ALGUNS FLOORS E TILES BUGADOS OU TROCADOS, MAS TROCANDO DE UM POR UM OS ITENS ACHO QUE DA PRA USAR SUSSA O MAPA PRINT LINK PARA DOWNLOAD E SCAN:
  26. [TFS 1.X] Online Bonus System

    DECARLYDEV reagiu a Movie por uma resposta no tópico

    1 ponto
    Olá a todos, e estou de volta pra postar alguns conteúdos... Fui atrás de um online bonus system para tfs 1.3 e não achei e portanto decidi fazer o meu, com a ajuda do @vankk. ================================================================================================================ Testado em TFS 1.3 na versão 8.60. ================================================================================================================ ================================================================================================================ No seu banco de dados, execute a seguinte query ALTER TABLE `players` ADD `online_time` int(11) NOT NULL DEFAULT 0 ================================================================================================================ O próximo passo é apenas para quem gostaria de que, a cada server save, o número seja zerado! ================================================================================================================ Em globalevents/scripts/startup.lua, após o inicio da função onStartup() adicione o seguinte código db.query("UPDATE `players` SET `online_time` = 0") ================================================================================================================ Agora crie um arquivo chamado onlinebonus.lua em creaturescripts/scripts com isso dentro local event = {} local function addOnlineToken(playerId) local player = Player(playerId) if not player then return false end if player:getIp() == 0 then event[player:getId()] = nil return false end player:addOnlineTime(1) player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você ganhou 1 online token por permanecer online por 1 hora sem deslogar.") player:addItem(12543, 1) event[player:getId()] = addEvent(addOnlineToken, 60 * 60 * 1000, player:getId()) end function onLogin(player) player:registerEvent("OnlineBonus") player:registerEvent("OnlineBonusLogout") if event[player:getId()] == nil then event[player:getId()] = addEvent(addOnlineToken, 60 * 60 * 1000, player:getId()) end return true end function onLogout(player) if event[player:getId()] then event[player:getId()] = nil end return true end -- <event type="login" name="OnlineBonus" script="onlineBonus.lua" /> -- <event type="logout" name="OnlineBonusLogout" script="onlineBonus.lua" /> A tag XML está no fim desse código. ================================================================================================================ Agora, na pasta lib, crie um arquivo chamado onlineTime.lua e coloque isso dentro function Player.getOnlineTime(self) local resultId = db.storeQuery(string.format('SELECT online_time FROM `players` WHERE `id` = %d', self:getGuid())) if not resultId then return 0 end local value = result.getNumber(resultId, "online_time") result.free(resultId) return value end function Player.addOnlineTime(self, amount) db.query(string.format("UPDATE `players` SET `online_time` = `online_time` + %d WHERE `id` = %d", amount, self:getGuid())) end Não esqueça de registrar essa lib no lib.lua. ================================================================================================================ Agora, na pasta talkactions/scripts, crie um arquivo chamado onlinebonus.lua com o seguinte código dentro: function onSay(player, words, param) local skill = player:getOnlineTime(player) local message = "--------[+]------- [Online Bonus System] -------[+]--------\n\nGanhe um online token a cada hora que você passa online sem deslogar.\n\n---------------------------------------------------\n Total\n Desde o server save você já ganhou " .. skill .. " online tokens." doPlayerPopupFYI(player, message) end -- <talkaction words="!onlinebonus" script="onlineBonus.lua"/> A tag XML está no fim desse código. ================================================================================================================ O usuário irá receber um item a cada hora online sem deslogar. O item está no código de creaturescripts com o id 12543, que pode ser alterado para qualquer item que seja agrupável. ================================================================================================================ É isso por hoje.
  27. é pq na storage você só pode armanezar até um valor númerico - decimais, acho que é 99999999, e com essa experiencia do level toda, teria que ser armazenado em um outro arquivo as experiencias. por exemplo level 3 mil: 449,100,849,800
  28. Dark Complex | Cave Hunt | 8.60

    Klailex reagiu a DdJs por uma resposta no tópico

    1 ponto
    Cave hunt - Dark Complex. Download: Here Scan: Here Imagens:
  29. [TFS 1.5 - 8.60] STYLLER OT - 2023

    Vllz reagiu a luanluciano93 por uma resposta no tópico

    1 ponto
    Projeto atualizado, mudança na engine (código fonte) e adicionado ao projeto as libs e exe para quem usa em windows.
  30. AutoLoot 100% Funcional

    brendonbh reagiu a Belmont por uma resposta no tópico

    1 ponto
    E ai pessoal, vi que muitas pessoas tem problemas em instalar, e achar um script de autoloot 100% funcional. Foi ai que decidi postar aqui para vocês, um script totalmente novo e que realmente funciona, pronto para usar e abusar dele kkk. Bom, vamos parar de lero lero e bora ao que interessa. Fixados: Dinheiro Duplicado; Coleta itens até mesmo dentro das bag dos monstros; Lembrando que esse script NÃO é de minha autoria, e que já existe no Tk, mas em tópicos diferentes. Como eu uso ele já vou deixar tudo certo para o uso do mesmo. 1° Passo - Dentro da pasta data/actions/scripts crie um arquivo chamado autoloot_boost.lua Em data/actions/actions.xml registre o script assim: <action itemid="ITEMID" event="script" value="autoloot_boost.lua"/> 2° Passo - Vá na pasta data/creaturescripts/script e crie dois arquivos, um chamado autoloot.lua e o outro fimautoloot.lua depois, adicione os seguintes códigos: autoloot.lua fimautoloot.lua Agora em data/creaturescripts/creaturescripts.xml você vai registrar esses scripts dessa forma: <event type="kill" name="autoloot" event="script" value="autoloot.lua"/> <event type="login" name="fimautoloot" event="script" value="fimautoloot.lua"/> Abra o arquivo login.lua localizado na mesma pasta e adicione este código abaixo de outro registerCreatureEvent registerCreatureEvent(cid, "autoloot") Depois de instalar tudo, vamos para a pasta data/talkactions/script nela você irá criar um arquivo chamado autoloot.lua e vai adicionar este código: Em data/talkactions/talkcations.xml resgistra o script assim: <talkaction words="!autoloot" event="script" value="autoloot.lua"/> Vá na pasta lib, e crie um arquivo chamado autoloot, e cole isso dentro: Ainda na pasta lib crie um arquivo .lua e coloque esse script dentro, ou faça o download do mesmo logo abaixo: Download: killua's lib.lua Isso é tudo pessoal! Informações: Este sistema funciona através de Premium Account, junto com ele vem o sistema de Autoloot Booster, que consiste em vender automaticamente os itens coletados. Foi testado em um servidor de Tibia 8.60 utilizando OTX 2. Créditos: @lordzetros @KOLISAO @Dwarfer
  31. Shiny Ditto Memory

    DarkRed reagiu a brunei por uma resposta no tópico

    1 ponto
    Olá galera bom dia , boa tarde e boa noite a todos ! venho trazer meu primeiro projeto para contribuir com o TK , se trata de um modulo bastante util como é minha primeira vez trazendo algo aqui , talvez eu esqueça de algo , sem enrolação vamos la. o modulo é um Shiny Ditto Memory para PDA ,o melhor é que nao precisa de source e é bem simples de instalar ! 1° ponto - Adicionar o memory sistem por TalkAction do @zipter98 (fiz algumas correçoes e melhorias no script para funcionar de uma melhor forma com o modulo) em Talkactions.xml adicione a tag : <talkaction words="/memory;!memory" event="script" value="sdittomemory.lua"/> 2° - Em talkaction/script ,crie um arquivo sdittomemory.lua e cole esse script : em : local cd = 2 (em segundos) mude para o numero que desejar como cooldown para efetuar a troca . Para efetuar a troca o pokemon precisa esta com os Moves 100% ,caso contrario ira mandar uma mensagem de bloqueio. 3° - em somefunctions.lua adicione essas funçoes ! tem umas correções q eu mesmo fiz no ditto system e shiny ditto system ,e é necessario pro modulo funcionar 100% . 4° - extraia e adicione o arquivo na pasta Modulos do seu OTClient ! pronto , com isso vai funcionar o modulo 1 - no icone salvar , vc consegue salvar o pokemon que o ditto esta transformado em cada slot (pokebola) e reverter o ditto. 2 - no icone check , vc consegue remover uma memoria ou checar quais memorias o seu ditto esta usando. 3 - e no icone transformar vc transforma em cada memoria salva no s.ditto e tbm consegue reverter para virar um pokemon novo sem usar a memori etc.. entao é isso galera , espero que seja util . CREDITOS : @zipter98 @usoparagames Eu game_memory.rar
  32. [Npc] Todos GYM 100% (Base: Pokemon Away)

    DarkRed reagiu a Stigal por uma resposta no tópico

    1 ponto
    Ola Poketibianos, Venho Trazer Todos Gym Funcionais. • GYM: ├ Misty; ├ Blaine; ├ Brock; ├ Erika; ├ Koga; ├ Sabrina; ├ Surge; └ Giovanni; • Download: http://www.mediafire.com/?18e923ns5mm1ccq
  33. in mehah OT client +2.8 . the user need to modify c++ [1/3] src\client\creature.cpp in void void Creature::drawInformation(const MapPosInfo& mapRect, const Point& dest, bool useGray, int drawFlags) modify L 237 auto backgroundRect = Rect(p.x - (13.5), p.y - cropSizeBackGround, 27, 4); for auto backgroundRect = Rect(p.x + m_informationOffset.x - (13.5), p.y + m_informationOffset.y - cropSizeBackGround, 27, 4); -------------------- modify L 240 auto textRect = Rect(p.x - nameSize.width() / 2.0, p.y - cropSizeText, nameSize); for auto textRect = Rect(p.x + m_informationOffset.x - nameSize.width() / 2.0, p.y + m_informationOffset.y - cropSizeText, nameSize); ----------------------------------------- In L 663 void Creature::setDirection(Otc::Direction direction) ADD callLuaField("onDirectionChange", m_direction, direction); under of void Creature::setDirection(Otc::Direction direction) { assert(direction != Otc::InvalidDirection); [2/3] src\client\creature.h L 260 under of Position m_lastStepFromPosition; Position m_lastStepToPosition; Position m_oldPosition; ADD Point m_informationOffset; [3/3] src\client\luafunctions.cpp L 525 under of g_lua.bindClassMemberFunction<Creature>("setDrawOutfitColor", &Creature::setDrawOutfitColor); g_lua.bindClassMemberFunction<Creature>("setDisableWalkAnimation", &Creature::setDisableWalkAnimation); g_lua.bindClassMemberFunction<Creature>("isDisabledWalkAnimation", &Creature::isDisabledWalkAnimation); ADD g_lua.bindClassMemberFunction<Creature>("setInformationOffset", &Creature::setInformationOffset); g_lua.bindClassMemberFunction<Creature>("getInformationOffset", &Creature::getInformationOffset);
  34. Mega Evolution (PxG) PDA

    DarkRed reagiu a lango rullez por uma resposta no tópico

    1 ponto
    Oi. Antes de tudo, este sistema foi escrito para o servidor PDA by Slicer, versão 1.9. A adaptação para outras bases pode ser bem simples, dependendo do seu conhecimento em Lua (que na verdade nem precisa ser grande). Resolvi escrever este simples sistema porque me deu um certo desgosto ver vários servidores onde a mega evolução é literalmente uma evolução (inclusive o que estive jogando, onde alguns jogadores também concordaram com minha opinião). Quero dizer, o pokémon fica transformado direto, para sempre, forever, algo que contraria a ideia original. Optei por fazer o sistema igual (ou semelhante, já que me baseei apenas nas informações disponíveis no Blog PxG, que aliás são poucas) ao da PokeXGames. Mais futuramente, no entanto, posso fazer uma outra versão voltada a ideia de uma mega evolução temporária. Para quem não conhece o sistema, bem, estou com preguiça de explicar, logo recomendo acessar este link. A diferença é que a pedra (mega stone) não ocupa o espaço de um Held Item tier Y (visto que não são todos os servidores que possuem este sistema). O sistema, como poderão notar, possui muitos detalhes. O motivo é que tenho a tendência de deixar a configuração o menor possível. Ou seja, basta configurar o efeito no código da spell e a tabela das mega evoluções. Nossa, que textão. TL;DR: Igual ao sistema da PxG; PDA; muitos detalhes mas pouquíssima configuração. data/lib: cooldown bar.lua: Troque o código da função getNewMoveTable(table, n) por este: function getNewMoveTable(table, n) if table == nil then return false end local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9, table.move10, table.move11, table.move12} local returnValue = moves if n then returnValue = moves[n] end return returnValue end No código da função doUpdateMoves(cid), troque o segundo: table.insert(ret, "n/n,") Por: local mEvolve if not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then if not isInArray(ret, "Mega Evolution,") then table.insert(ret, "Mega Evolution,") mEvolve = true end end if not mEvolve then table.insert(ret, "n/n,") end Depois, em pokemon moves.lua: Troque: min = getSpecialAttack(cid) * table.f * 0.1 --alterado v1.6 por: min = getSpecialAttack(cid) * (table and table.f or 0) * 0.1 --alterado v1.6 Código da spell: elseif spell == "Mega Evolution" then local effect = xxx --Efeito de mega evolução. if isSummon(cid) then local pid = getCreatureMaster(cid) if isPlayer(pid) then local ball = getPlayerSlotItem(pid, 8).uid if ball > 0 then local attr = getItemAttribute(ball, "megaStone") if attr and megaEvolutions[attr] then local oldPosition, oldLookdir = getThingPos(cid), getCreatureLookDir(cid) doItemSetAttribute(ball, "poke", megaEvolutions[attr][2]) doSendMagicEffect(getThingPos(cid), effect) doRemoveCreature(cid) doSummonMonster(pid, megaEvolutions[attr][2]) local newPoke = getCreatureSummons(pid)[1] doTeleportThing(newPoke, oldPosition, false) doCreatureSetLookDir(newPoke, oldLookdir) adjustStatus(newPoke, ball, true, false) if useKpdoDlls then addEvent(doUpdateMoves, 5, pid) end end end end end Depois, em configuration.lua: megaEvolutions = { --[itemid] = {"poke_name", "mega_evolution"}, [11638] = {"Charizard", "Mega Charizard X"}, [11639] = {"Charizard", "Mega Charizard Y"}, } Agora, em data/actions/scripts, código da mega stone: function onUse(cid, item) local mEvolution, ball = megaEvolutions[item.itemid], getPlayerSlotItem(cid, 8).uid if not mEvolution then return doPlayerSendCancel(cid, "Sorry, this isn't a mega stone.") elseif ball < 1 then return doPlayerSendCancel(cid, "Put a pokeball in the pokeball slot.") elseif #getCreatureSummons(cid) > 0 then return doPlayerSendCancel(cid, "Return your pokemon.") elseif getItemAttribute(ball, "poke") ~= mEvolution[1] then return doPlayerSendCancel(cid, "Put a pokeball with a(n) "..mEvolution[1].." in the pokeball slot.") elseif getItemAttribute(ball, "megaStone") then return doPlayerSendCancel(cid, "Your pokemon is already holding a mega stone.") end doItemSetAttribute(ball, "megaStone", item.itemid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Now your "..getItemAttribute(ball, "poke").." is holding a(n) "..getItemNameById(item.itemid)..".") doRemoveItem(item.uid) return true end Depois, em goback.lua: Abaixo de: if not pokes[pokemon] then return true end coloque: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end Depois, em data/creaturescripts/scripts, look.lua: Abaixo de: local boost = getItemAttribute(thing.uid, "boost") or 0 coloque: local extraInfo, megaStone = "", getItemAttribute(thing.uid, "megaStone") if megaStone then extraInfo = getItemNameById(megaStone) if pokename:find("Mega") then pokename = megaEvolutions[megaStone][1] end end Depois, acima de: doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) coloque: if extraInfo ~= "" then table.insert(str, "\nIt's holding a(n) "..extraInfo..".") end Já em data/talkactions/scripts, move1.lua: Troque: if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end por: if not move then local isMega = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") if not isMega or name:find("Mega") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local moveTable, index = getNewMoveTable(movestable[name]), 0 for i = 1, 12 do if not moveTable[i] then index = i break end end if tonumber(it) ~= index then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local needCds = true --Coloque false se o pokémon puder mega evoluir mesmo com spells em cooldown. if needCds then for i = 1, 12 do if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then return doPlayerSendCancel(cid, "To mega evolve, all the spells of your pokemon need to be ready.") end end end move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0, f = 0, t = "?"} end E troque: doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) por: local spellMessage = msgs[math.random(#msgs)]..""..move.name.."!" if move.name == "Mega Evolution" then spellMessage = "Mega Evolve!" end doCreatureSay(cid, getPokeName(mypoke)..", "..spellMessage, TALKTYPE_SAY) Se quiser que o "Mega" não apareça no nome do pokémon, vá em data/lib, level system.lua: Acima de: if getItemAttribute(item, "nick") then nick = getItemAttribute(item, "nick") end coloque: if nick:find("Mega") then nick = nick:match("Mega (.*)") if not pokes[nick] then nick = nick:explode(" ")[1] end end E, caso o seu servidor possua pokémons evoluídos permanentemente na forma mega, em data/actions/scripts, goback.lua: Troque: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end por: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if not normalPoke then local megaStone for itemid, table in pairs(megaEvolutions) do if table[2] == pokemon then megaStone = itemid break end end if not megaStone then return doPlayerSendTextMessage(cid, 27, "Your pokemon is bugged. Please, talk to the administrator.") end doItemSetAttribute(item.uid, "megaStone", megaStone) normalPoke = megaEvolutions[megaStone][1] end doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end Bom pessoal é isso! Espero que ajude ! Creditos: zipter98 (Pela criação) Eu Lango Rullez (Por Divulgar ^_^)
  35. Player Info OTPokemon

    Insaeand reagiu a Gengo por uma resposta no tópico

    1 ponto
    [OTClient] Health Player Info OTPokemon Eae galerinha do TibiaKing, 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.
  36. [0.4] Evento Click Up

    Tokias reagiu a Lurk por uma resposta no tópico

    1 ponto
    Salve pessoal, eu amo tibia e a comunidade já me deu muito, hoje finalmente sinto que posso dar algo de volta e vou estar disponibilizando esse código pra evento que eu fiz pro meu servidor. Esse código pode ser melhorado bastante mas é funcional e acredito ter pensando em todas as possibilidades de abuso e ter corrigido, ainda assim caso você faça alguma melhora por favor compartilhe aqui nos comentários :). Vou disponibilizar também a hotkey de elfbot no fim do tópico. Durante o evento (duração de 15 min que você pode diminuir/aumentar), quando um player clica no item ele vai receber x leveis e a cada 2 clicks ele vai ganhar um item (no meu caso, uma event coin). Tem um exhaust de 2 secs a cada click pra evitar abuso com elfbot/auto click e eu não recomendo tirar, embora você possa diminuir/aumentar tranquilamente Em globalevents.xml adicione <globalevent name="clickupstart" time="19:00" event="script" value="clickupstart.lua"/> <globalevent name="clickupclose" time="19:15" event="script" value="clickupend.lua"/> Em globalevents/scripts crie um novo arquivo e nomeie de clickupend.lua e cole isso dentro local storage = 64242 -- storage function onTime() setGlobalStorageValue (storage, -1) doBroadcastMessage("THE CLICK UP EVENT HAS ENDED") return true end Ainda em globalevents/scripts crie um novo arquivo e nomeie de clickupstart.lua e cole isso dentro local storage = 64242 -- storage que você quer zerar. function onTime() setGlobalStorageValue (storage, 1) doBroadcastMessage("THE CLICK UP EVENT HAS STARTED") return true end Agora em actions.xml adicione a tag <action actionid="42113" script="clickup.lua"/> Em actions/scripts crie um arquivo chamado clickup.lua e cole isso dentro local tempo = 2 -- segundos para usar novamente function onUse(cid, item, frompos, item2, topos) if getGlobalStorageValue(64242) == 1 then if getPlayerStorageValue(cid, 45890) > os.time() or getPlayerLevel(cid) >= 717217 then -- se estiver no cooldown ou se for level maximo return doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, 45890) - os.time()).. " segundos para usar novamente e nao pode ser nivel maximo.") end if getPlayerStorageValue(cid, 45891) < 1 then doPlayerAddLevel(cid, 32) doCreatureSay(cid, "LEVEL UP", TALKTYPE_ORANGE_1, true, cid) setPlayerStorageValue(cid, 45890, 2 + os.time()) local bah = getPlayerStorageValue(cid, 45891) doPlayerSetStorageValue(cid, 45891, bah+1) return true else doPlayerAddLevel(cid, 32) doCreatureSay(cid, "LEVEL UP + EVENT COIN", TALKTYPE_ORANGE_1, true, cid) doPlayerAddItem(cid,10558,1) setPlayerStorageValue(cid, 45890, 2 + os.time()) doPlayerSetStorageValue(cid, 45891, -1) return true end else -- msg quando o evento não ta rolando return doPlayerSendCancel(cid, "The event haven't started yet.") end end Agora você abre seu mapa, cria uma area pro evento e você coloca a actions 42113 na statua/pedra/cristal que o player vai precisar dar use pra ganhar os leveis (eu uso o id 9779) NÃO SE ESQUEÇA QUE A HOTKEY DE ELFBOT VAI MUDAR SE VOCÊ NÃO USAR O MESMO ID QUE EU auto 200 listas 'Evento' | usegrounditem 8865
  37. (Resolvido)Cast System

    brendonbh reagiu a 9k22 por uma resposta no tópico

    1 ponto
    Olá @bellatrikz, tudo bem? Você deverá ter uma conta com accountName = 10
  38. Iniciar - > %appdata% - > RMEMAPEDITOR - > Versão -> creatures.xml (ADICIONAR OU REMOVER A LINHA QUE ACHAR NECESSÀRIO!)
  39. [Pedido] Item de Bless

    brendonbh reagiu a Adm Evolution por uma resposta no tópico

    1 ponto
    Gente, eu gostaria de um script de um item que só necessita está dentro da backpack que já irá ficar com bless ativa, sem ser necessário clicar nele para ativar, esse item seria infinito. a bless que uso é necessário clicar para receber a bless, se alguém puder me ajudar agradeço mais uma vez! local cfg = { bless = { 1, 2, 3, 4, 5 }, level = 8 } function onUse(cid, item, fromPosition, itemEx, toPosition) for i = 1, table.maxn(cfg.bless) do if(getPlayerBlessing(cid, cfg.bless[i])) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doCreatureSay(cid, "Voce ja possui todas as bless ativas.", TALKTYPE_ORANGE_1) return true end end if getPlayerLevel(cid) >= cfg.level then for i = 1, table.maxn(cfg.bless) do doPlayerAddBlessing(cid, cfg.bless[i]) end doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYAREA) doSendAnimatedText(getCreaturePosition(cid), "BLESSED!", TEXTCOLOR_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce ativou todas as bless!.") end return true end
  40. Sprites Para Poketibia

    DarkRed reagiu a Zawse por uma resposta no tópico

    1 ponto
    Olá queridos do TibiaKing Hoje estou aqui no meu primeiro tópico para compartilhar com vocês algumas sprites de alguns pokémons para poketibia. Nesse "pacote" contém as seguintes sprites: OBS: O icone dos pokémon tem apenas a imagem do pokémon, não tem a imagem da ball atrás (mas nada que um photoshop não resolva kkk). Em Breve irei adicionar mais sprites e colocar os corpses! Bom é isso, Não são aquelas sprites que "NOSSAAA QUE INCRIVEL!!!", mas são algumas que pra quem ta querendo fazer um projeto de poketibia e está precisando dessas sprites, ta ai. Eu tentarei atualizar o máximo que eu conseguir. Download: https://www.mediafire.com/file/2dz6d2cop2t7d3w/Sprites by Zawse.rar Scan: https://www.virustotal.com/#/file-analysis/ODIzZjJmMmNmZmNhMzg1Y2IzMzY4NzE3OTE1MWEyZjg6MTUwNTI3OTQyMQ== Creditos: Eu(Por pegar as sprites e fazer o pack), Ao meu primo Anderson(Ajudou a achar as sprites), E a uma galera ae, que não me recordo o nome(Que ripou tudo da PxG).
  41. [8.60] Exp Weekend Event

    Tokias reagiu a chaito.soft por uma resposta no tópico

    1 ponto
    Olá pessoal, este sistema já existe nas versões +9.86, porém para 8.60 ainda não existia então decidimos por faze-lo e distribuir ele para a comunidade. Criticas construtivas são sempre bem vindas Imagem da Página Web A imagem da página web que acompanha o sistema já explica como o sistema funciona e como ele está pré-instalado. Arquivos Crie uma arquivo em data/lib chamado weekend_exp.lua e insira o código abaixo dentro: config_weekend_exp = { dates = {"Tuesday", "Wednesday"}, -- Dias da semana que será ativo rates = { {1, 1.05}, -- {quantidade de jogador online, taxa de bonus} {200, 1.10}, {300, 1.15}, }, storage_bonus = 30303, } function get_bonus_weekend_exp() for _, rate in ipairs(config_weekend_exp.rates) do if #getPlayersOnline() >= rate[1] then if getGlobalStorageValue(config_weekend_exp.storage_bonus) ~= 1 then doBroadcastMessage("[Weekend Exp Event] The server reached "..rate[1].." players online! The bonus of exp is now "..((rate[2] - 1)*100).."%!") end setGlobalStorageValue(config_weekend_exp.storage_bonus, 1) --Bonus ativado return rate[2] --retornando a taxa de exp que deve ser adicionada else setGlobalStorageValue(config_weekend_exp.storage_bonus, -1) end end return 1 end function set_bonus_weekend_exp(cid, monster_name) local rate_bonus = get_bonus_weekend_exp() local monster = getMonsterInfo(monster_name) if getGlobalStorageValue(config_weekend_exp.storage_bonus) == 1 then if getConfigValue("experienceStages") == true then doPlayerAddExp(cid, (monster.experience * getExperienceStage(getPlayerLevel(cid))) * rate_bonus) doPlayerSendTextMessage(cid, 25, "[Weekend Exp Event] Voce esta com "..((rate_bonus - 1)*100).."% de bonus experiencia.") end end return true end Crie uma arquivo em data/creaturescripts chamado weekend_exp.lua e insira o código abaixo dentro: function onKill(cid, target, lastHit) if lastHit and isMonster(target) then local master = getCreatureMaster(target) if not master or master == target then set_bonus_weekend_exp(cid, getCreatureName(target)) end end return true end Crie uma arquivo em data/globalevents chamado weekend_exp.lua e insira o código abaixo dentro: function onThink() if table.find(config_weekend_exp.dates, os.date("%A")) then get_bonus_weekend_exp() end return true end Siga até o diretório data/creaturescripts e adiciona a linha abaixo no arquivo login.lua: registerCreatureEvent(cid, "weekend_exp") Tags XML Adicione cada tag em seu respectivo lugar. creaturescripts.xml <event type="kill" name="weekend_exp" event="script" value="weekend_exp.lua"/> globalevents.xml <globalevent name="weekend_exp" interval="55000" event="script" value="weekend_exp.lua"/> Páǵina PHP Compatível com versões gesior. <?php $main_content .= ' <center> <h2>Weekend Experience Event</h2> </br> Este é um <b>evento automático</b> que é ativado todo final de semana, começando no sábado e terminando no final de domingo. Quando o server atingir uma determinada quantidade de jogadores online, irá ativar um bonus de exp específico, O mesmo vale para quando o servidor diminuir de players, o bonus irá diminuir de acordo com a tabela, confira a seguir. </center> </br> <table width="100%" border="0" cellpadding="4" cellspacing="1"> <tbody> <tr> <td colspan="3" bgcolor="#d4c0a1"> A partir de <b>50 jogadores online</b>, o bonus de exp será de <b>2%</b>. </td> </tr> <tr> <td colspan="3" bgcolor="#f1e0c6"> A partir de <b>100 jogadores online</b>, o bonus de exp será de <b>5%</b>. </td> </tr> <tr> <td colspan="3" bgcolor="#d4c0a1"> A partir de <b>150 jogadores online</b>, o bonus de exp será de <b>10%</b>. </td> </tr> <tr> <td colspan="3" bgcolor="#f1e0c6"> A partir de <b>200 jogadores online</b>, o bonus de exp será de <b>15%</b>. </td> </tr> <tr> <td colspan="3" bgcolor="#d4c0a1"> A partir de <b>300 jogadores online</b>, o bonus de exp será de <b>20%</b>. </td> </tr> </tbody> </table> </br> Quando atingir determinada quantidade de players online, uma mensagem automática será enviada, por exemplo quando atingir 1000:<br><br> <b>Weekend Event:</b> The server reached 1000 players online! The bonus of exp is now 2%!.<br><br> Se vocês forem calcular a porcentagem, podem ver que não é nada exagerado, por exemplo, bonus de 6%: Se ao matar um monstro você for ganhar 2000 de exp, com 6% de bonus você irá ganhar 2120.</font> </br> <center>Desenvolvido por <a href="http://chaitosoft.com/">ChaitoSoft.com</a>.</center> '; ?> Acho que não tem créditos, se alguém souber o nome do idealizador do sistema deixe no comentário.
  42. Verificar premium account

    DarkRed reagiu a Wakon por uma resposta no tópico

    1 ponto
    Esta é uma mensagem automática! Este tópico foi movido para a área correta. Pedimos que você leia as regras do fórum.
  43. In-game store images

    maquea reagiu a Bruno Carvalho por uma resposta no tópico

    1 ponto
    Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
  44. [Pokemon] Servidor Stigal 3.0

    DarkRed reagiu a Stigal por uma resposta no tópico

    1 ponto
    • Servidor Stigal 3.0 {PDA 1.5} [Download]• • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Download; └ Creditos. • Informações Basicas • • Edições / Ajustes • • Erros Do Servidor • • Download's • Servidor Stigal 3.0 {PDA 1.5} 8.54 (4shared) http://www.4shared.com/rar/QhexHDf8/Pokemon_Servidor_Stigal_30_PDA.html? Client PDA 1.6/2.6 (4shared) http://www.mediafire.com/?2a6012x9oz8i5ga Scan Servidor Stigal 3.0 {PDA 1.5+} 8.54 (Virus Total) https://www.virustotal.com/file/f591c04b9323c5bb1f3edb8863a105aa28012732e453766a5783ca44f64abfa9/analysis/1347638278/ Aviso: Os 3 Virus Contidos São Do Executavel... Por Ser "TROJAN" Não Se Multiplica e não fazem mal ao computador! • Creditos • Slicer - {Criador do PDA 1.5} Stigal - {Ajeitar o Mapa e Deixalo "90% Completo"}
  45. Poketibia Sprites de Mega Evoluções

    DarkRed reagiu a Vortexboy por uma resposta no tópico

    1 ponto
    Hey hey pessoal desta vez eu vim disponibilizar para vocês, um dat e spr com varias mega evoluções PxG com portrait (nem todos eu consegui a portrait desculpem) enfim a gente acha varias sprites nos mais diversos clients por ai só que eu resolvi trazer um compilado para os poupar da procura vale lembrar, que todas as sprites funcionam e são compatíveis com old client por terem sido removidas dos próprios. DOWNLOAD Download: http://www.mediafire.com/download/g03rae9nsyih5a0/Sprites_Mega.zip Scan : https://virustotal.com/pt/file/0afa2fb33eccf425350350e21b79951ad17dc0554e52d645c1fd078ba2c169e5/analysis/1470975384/ Créditos: PxG pelas outfits e maioria dos portraits ??? As outras portraits que não da pxg e não desconheço a autoria "Da um REP pro pai que o dedo não cai."
  46. 1 ponto
    Troca toda a função AddPlayerStats por essa: void ProtocolGame::AddPlayerStats(NetworkMessage_ptr msg) { msg->AddByte(0xA0); if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0) { msg->AddU16(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH))); msg->AddU16(100); } else { msg->AddU16(0); msg->AddU16(0); } msg->AddU32(uint32_t(player->getFreeCapacity() * 100)); uint64_t experience = player->getExperience(); if(experience > 0x7FFFFFFF) // client debugs after 2,147,483,647 exp msg->AddU32(0x7FFFFFFF); else msg->AddU32(experience); msg->AddU16(player->getPlayerInfo(PLAYERINFO_LEVEL)); msg->AddByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT)); if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0) { msg->AddU16(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA)); msg->AddU16(100); } else { msg->AddU16(0); msg->AddU16(0); } msg->AddByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVEL)); msg->AddByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT)); msg->AddByte(player->getPlayerInfo(PLAYERINFO_SOUL)); msg->AddU16(player->getStaminaMinutes()); }
  47. 1 ponto
    script faz com que quando dar use no Item você ganhe todas as Bless. Em actions.xml adicione: <action itemid="8977" event="script" value="actionbless.lua"/> actionbless.lua local cfg = { bless = { 1, 2, 3, 4, 5 }, level = 8 } function onUse(cid, item, fromPosition, itemEx, toPosition) for i = 1, table.maxn(cfg.bless) do if(getPlayerBlessing(cid, cfg.bless[i])) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doCreatureSay(cid, "You have already been blessed.", TALKTYPE_ORANGE_1) return true end end if getPlayerLevel(cid) >= cfg.level then for i = 1, table.maxn(cfg.bless) do doPlayerAddBlessing(cid, cfg.bless[i]) end doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYAREA) doSendAnimatedText(getCreaturePosition(cid), "BLESSED!", TEXTCOLOR_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have been blessed by the gods.") end return true end Créditos: DataPack GlobalWar
  48. (Resolvido)Source para PDA

    Klailex reagiu a Liongm por uma resposta no tópico

    1 ponto
    Bom gente, quero uma source para PDA, se alguem tiver e poder disponibilizar ... Se poder arrumar a source tbm para poder ter mais efeitos no client .. pois só adicionando na spr e dat n vai por causa do limite .. TY REP + SE ALGUEM AJUDAR!
  49. [Ajuda] Como Editar A imagem de fundo do OTClient

    DarkRed reagiu a Wend por uma resposta no tópico

    1 ponto
    tem uma imagem na pasta data\images chamada de background é ela que é a imagem de fundo
  50. Fazendo Foto Do Mapa Completo!

    DarkRed reagiu a ryukicho por uma resposta no tópico

    1 ponto
    Cara , abra o mapa , depois vai em file no seu remeres , logo apos clique em export depois export minimapa , logo apos selecione o local desejado a salvar coloque um nome e cliquem em salvar , ele vai carregar uns 13 minimapa se não me engano são os "Z" ai se vai no no mine mapa 7 e pronto ajudei rep+ , se tiver vaga pra mapper no seu poektibia se quiser que eu seja só fala com migo
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo