Ir para conteúdo

Líderes

Conteúdo Popular

Mostrando conteúdo com a maior reputação desde 04/08/24 em todas áreas

  1. Após anos contribuindo pro desenvolver do DB.D, venho com muita dor no coração, disponibilizar para todos essa base(2018) que por anos fez a felicidade de muitos players e que com certeza trás nostalgia só de citar o nome. Infelizmente tem algumas pessoas usando o nome do Moz# e o meu (Abreu) e o nome D.UD em outros servidores, oportunismo e coisa de retardado (sinceramente). O servidor tem bastante gambiarras e coisas a ser arrumada, mas é um bom ponto de partida pra quem quer um bom servidor. Espero que façam bom proveito.
    11 pontos
  2. 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): 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.
    3 pontos
  3. Strogman

    Projeto PokeTfs 1.7

    Github: Strogman/PokeTfs1.7 (github.com) PokeTibia 1.7 // PokeTfs 1.7 PokeTfs 1.7 é uma base de Poketibia desenvolvida a partir do TFS 1.7, modificado por Muniz GitHub(https://github.com/TibiaDev/forgottenserver-downgrades). Este projeto visa atualizar o código dos Poketibia open-source, que frequentemente utilizam sistemas e códigos desatualizados do TFS 0x. Optamos por construir o projeto sobre um downgrade de protocolo, em vez de usar o protocolo atual, para garantir compatibilidade com mapas, itens, e outros recursos das versões mais antigas. Objetivo O projeto PokeTfs 1.7 permite utilizar itens, sprites, arquivos DAT, e mapas das versões anteriores do protocolo, enquanto mantém o código atualizado. Embora o sistema esteja baseado em um downgrade de protocolo, será possível atualizar para a versão mais recente do protocolo de forma rápida e simples, se desejado. No entanto, essa atualização exigirá reconfiguração completa da arquitetura de itens, sprites, e mapas, devido às diferenças no protocolo atual. Funcionalidades pokeballs config Goback Tradicional: ✅ Completo Pokeballs: 🔄 Em progresso Pokedex: 🔄 Em progresso Catch: 🔄 Em progresso Pokeball limit: 🔲 Não iniciado Pokemon Status: 🔲 Não iniciado Order Movements: 🔲 Não iniciado Fishing: 🔲 Não iniciado Fly: 🔲 Não iniciado Ride: 🔲 Não iniciado Surf: 🔲 Não iniciado Dig: 🔲 Não iniciado Rock Smash: 🔲 Não iniciado Cut: 🔲 Não iniciado Control Mind: 🔲 Não iniciado Teleport: 🔲 Não iniciado Blinks: 🔲 Não iniciado Icon System Avançado: 🔲 Não iniciado Advanced Goback: 🔲 Não iniciado Pokebar Avançada: 🔲 Não iniciado Moves Bar: 🔲 Não iniciado Geração 1: 🔲 Não iniciado Geração Moveset 1: 🔲 Não iniciado Como Contribuir https://www.vakinha.com.br/vaquinha/poketibia-tfs-1-7? Contribuições são bem-vindas! Se você deseja contribuir para o projeto, por favor, siga estas etapas: Faça um fork do repositório. Crie uma branch para sua feature ou correção. Faça suas alterações e teste-as. Envie um pull request descrevendo suas mudanças. Se você precisar de mais alguma coisa ou ajustes adicionais, é só me avisar!
    3 pontos
  4. Bem-vindo ao tutorial sobre como compilar o OTClient Mehah no Visual Studio 2022! Neste tutorial, vou guiá-lo pelo processo de configuração do ambiente de desenvolvimento e compilação do OTClient Mehah no Visual Studio 2022 Tutorial: Compilando o OTClient Mehah no Visual Studio 2022 Passo 1: Downloads necessários baixe todos primeiro Visual Studio 2022 Comunidade: Faça o download: https://visualstudio.microsoft.com/pt-br/downloads/ Microsoft Visual C++ Redistributable 2015-2022: Download: 32bits: https://aka.ms/vs/17/release/vc_redist.x86.exe ou 64 bits: https://aka.ms/vs/17/release/vc_redist.x64.exe Git: Se ainda não tiver o Git instalado, faça o download: https://git-scm.com/download/win Passo 2: Instalando abra o visual studio 22 ai quando chegar nessa tela você marca essas opções e desmarca as outras: instalando o git, pode só dar next até o final... instalando o Microsoft Visual C++ Redistributable 2015-2022 abra seu powershell digite os comando 1 por vez: git clone https://github.com/Microsoft/vcpkg cd vcpkg .\bootstrap-vcpkg.bat bibliotecas 64bits referente ao seus sistema .\vcpkg install boost-iostreams:x64-windows boost-asio:x64-windows boost-system:x64-windows boost-variant:x64-windows boost-lockfree:x64-windows luajit:x64-windows glew:x64-windows boost-filesystem:x64-windows boost-uuid:x64-windows physfs:x64-windows openal-soft:x64-windows libogg:x64-windows libvorbis:x64-windows zlib:x64-windows opengl:x64-windows openssl:x64-windows liblzma:x64-windows nlohmann-json:x64-windows protobuf:x64-windows bibliotecas 32bits referente ao seus sistema .\vcpkg install boost-iostreams:x86-windows boost-asio:x86-windows boost-system:x86-windows boost-variant:x86-windows boost-lockfree:x86-windows luajit:x86-windows glew:x86-windows boost-filesystem:x86-windows boost-uuid:x86-windows physfs:x86-windows openal-soft:x86-windows libogg:x86-windows libvorbis:x86-windows zlib:x86-windows opengl:x86-windows openssl:x86-windows liblzma:x86-windows nlohmann-json:x86-windows protobuf:x86-windows por final: .\vcpkg integrate install Download cliente mehah versão nova: https://github.com/mehah/otclient/archive/refs/tags/3.1.zip Agora só abrir o projeto pelo visual studio e clica compilar que vai configura tudo certinho e vai compilar
    2 pontos
  5. Gengo

    [OTClient] Player Info OTPokemon

    [OTClient] Health Player Info OTPokemon Eae galerinha do xtibia, 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.
    2 pontos
  6. Desenvolvi por muito tempo uma base Pokémon do 0 (parti do TFS 1.2 e fui implementando tudo até chegar nessa versão que estou disponibilizando). O resultado é um servidor extremamente leve e estável (já testado com 100+ players e por mais de 1 mês sem cair). Basicamente, ele suporta tranquilamente 1k+ players e não tem nenhum bug conhecido que faça com que ele caia. Esse servidor ficou no ar por muito tempo (mais de 2 anos) e era conhecido como PokeDash. Acabei ficando sem tempo para administrar o servidor, o que fez com que a maioria dos players parassem de jogar e com que eu fechasse de vez. Pensei por muito tempo sobre o que fazer com ele, e decidi disponibilizar para a comunidade. Trata-se de algo único (eu ao menos nunca vi um servidor de Pokémon construído a partir do TFS 1.2)! Como desenvolvi todos os sistemas do 0, tomei cuidado para fazer tudo da melhor maneira possível e para que possa ser facilmente modificado e atualizado. Basicamente, os Pokémons podem ser criados a partir de um único arquivo XML (como monstros do Tibia), e nesse arquivo você pode especificar tudo, desde level máximo e mínimo de spawn, loots, tipos (fogo, agua, etc), se ele pode usar habilidades (surf, fly, etc), moves (quando alguém captura), ataques (quando selvagem), evoluções, chance de catch, etc. Exemplo de Pokemon Resumo de alguns sistemas (tem muita coisa, então coloquei os principais) ✅ Pokemons com level, status e boost. O level do player/boost também influencia no status dos pokes. ✅ Sistema de Love (seu poke fica mais forte que os demais quando upa de level matando pokemons mais fortes que ele). ✅ Base propria com Shinys e Ancients. ✅ Cada player pode conseguir ancient stone para evoluir 1 shiny para ancient através de quest. ✅ Moves bar e pokemon bar (troca de pokemon com 1 click). ✅ Autoloot agrupando em bags. ✅ Ganho de exp ao capturar/dar dex em pokes com um bonus adicional para o primeiro catch de cada poke. ✅ Mapa original com mais de 40 quests, incluindo outland com Ancients. ✅ Eventos diários automáticos: Futebol todo dia 19:30, arena PVP todo dia 20:00, golden arena aos sabados 17:00, bag premiada aos domingos/feriados 17:00. ✅ Profissões (facilmente customizáveis): Catcher: 3.5% mais chance de capturar um Pokemon. Hunter: 10% mais status de dano para o seu Pokemon (tanto magico quanto fisico). Blocker: 25% mais vida para seus Pokemons. Healer: 100% mais cura que aplica tanto em potions quando moves dos seus Pokemons. Explorer: 15% mais experiencia para seu personagem durante a caça. ✅ Task diária de catch/loot dando Tokens. Os tokens podem ser trocados por itens raros (dentre eles premier ball e bags personalizadas) além de pagar seu curso com o NPC Job Manager para aprender uma das profissões acima. Uma das maneiras de conseguir tokens é fazendo tasks diárias. ✅ Muito mais! Screenshots Download Baixe o pack contendo o servidor, cliente, site, editor de mapa e editor de itens clique aqui!. Caso considere minha contribuição interessante para a comunidade, considere realizar uma doação para a chave pix: server.pokedash@gmail.com GM account: gm/gmgmgm O projeto será atualizado em sua homepage: https://pokedashpota.vercel.app/ SCAN Sources Download sources SCAN ----- Edit Problemas e soluções GroupID não existe ao tentar logar no server. Erros ao importar o schema.sql. Comando /cb não funcionando.
    1 ponto
  7. Não deixe seu evento de Natal para última hora, faltam apenas 4 dias. Aproveite as sprites com desconto no site: https://otsprites.com
    1 ponto
  8. Creio que TFS 0.3.6 nao possui a função onStatsChange na source, voce teria de adicionar ela
    1 ponto
  9. rafersiq

    Poke hand SRC

    Bom dia estou atras da src da base poke hand mas nao estou achando alguem possui ela pra poder disponibilizar pra mim ?
    1 ponto
  10. Poke Hero

    Poke hand SRC

    estou com essa mesma base atualizada à venda quem tiver interessado só entrar em contato comigo me adiciona lá no discord : zeon0456
    1 ponto
  11. rafersiq

    [Show-off] Poke Frenzy

    oq tera de novo nessa base oq ja foi feita na base obs: nao tera imagem pois fiz tudo ate agora sem usar o otclient obs: pra aqueles que devem esta perguntando o pq estou arumando essa base do poke frenzy e pra aprender a mecher com arquivos .LUA melhor
    1 ponto
  12. Venho divulgar o mais novo servidor de Tibia 10.98 2024 ⚒️ Mineração, 🌿 Herborista, 🪓 Lenhador, 🛠️ Artesanato, 🎴 Sistema de Decks, 🧙‍♂️ Sistema Ancestral, 🗺️ Pontos de Passagem, 🎖️ Insígnias, 🐉 Chefes Mundiais, 📜 Missões, 🏝️ Ilhas, 🏆 Tiers, 🌍 Expansão, 🚢 Sistema de Navios (Navegação por todo o continente com um navio!), 💠 Portais Azure e muito mais! 💥 SKILL RATE: 12X | ✨ MAGIC RATE: 10X | 🎁 LOOT RATE: 3X 🌐 Site oficial: www.tibiaconquest.com 💬 Discord: discord.com/invite/Aq9TJBDnzu
    1 ponto
  13. Discord: odranoels.s VIDEOS DO SISTEMA FUNCIONANDO https://imgur.com/qjg5a41
    1 ponto
  14. Soul System: ok!, action: ok!, auras: ok!, creaturescript: ok!, soul: ok! conclusao: Certifique-se de que o item que você está tentando encantar está listado em L_Soul.enchant.weapons. Cada item deve ter o ID correto correspondente. Atributos do Item: Verifique se os atributos como "Soul" estão sendo corretamente definidos no item durante o processo de encantamento. Pode haver um problema de manipulação de atributos. Tipos de Danos e Efeitos: Confira se os tipos de danos e efeitos estão definidos corretamente em L_Soul.souls para garantir que o encantamento aplique o efeito esperado. Garanta que as funções externas, como L_Soul.souls, L_Soul.creatures, L_Soul.lang, e L_Soul.language, estejam devidamente carregadas e acessíveis.
    1 ponto
  15. Eai galera, blz? Bom, vim trazer pra vcs a versão 1.0 do mod de pokedex que eu desenvolvi mês passado visando aprendizado no mundo de OTC, com o objetivo também de mostrar que o otclient é flexível suficiente para se fazer muitas coisas sem a necessidade das sources nem do servidor e nem do client... Para aqueles que não conhecem, vejam o Show Off desse trabalho. Atualizações: 1. Adicionado um pack com 276 imagens de pokemons (16,1MB); 2. Pokemons shiny tem a exibição da imagem de pokemons normais (para alterar, basta remover a linha 75 do arquivo game_pokedex.lua, na pasta modules/game_pokedex de seu client); 3. Pokedex fecha ao se deslogar do char com ela aberta [créditos a @@Soulviling pela ideia]; Bom, sem mais delongas; Instalação fácil: Passo 1. Faça o download do arquivo RAR (download no final do tópico); Passo 2. Copie a pasta modules pro seu client; Passo 3. "Deseja substituir?" [X]Sim [ ]Não Passo 4. Só vai até o passo 3; Bom, segue uma imagem ATUALIZADA Download e Scan
    1 ponto
  16. No Tibia, os efeitos gráficos são chamados de projectiles ou magic effects. Para criar o Kamehameha, você precisará usar um projectile que se move em uma direção. Aqui está um exemplo simples de como fazer isso: function onCastSpell(creature, variant) local position = creature:getPosition() -- Posição inicial do Goku local direction = creature:getDirection() -- Direção do Kamehameha local distance = 7 -- Distância que o ataque vai percorrer local damage = math.random(200, 300) -- Defina o dano do Kamehameha -- Definir o efeito gráfico do Kamehameha local projectileEffect = CONST_ANI_ENERGYBALL -- Escolha um efeito gráfico adequado -- Criação de um loop que movimenta o ataque for i = 1, distance do local newPosition = position:getNextPosition(direction, i) -- Calcula a posição seguinte creature:say("KAMEHAMEHA!", TALKTYPE_MONSTER_SAY) -- Grito de ataque, opcional -- Cria o projectile e o efeito creature:getPosition():sendDistanceEffect(newPosition, projectileEffect) -- Dano no alvo que está na posição do efeito local target = Tile(newPosition):getTopCreature() if target and target:isPlayer() then target:addHealth(-damage) target:getPosition():sendMagicEffect(CONST_ME_EXPLOSIONAREA) -- Efeito de explosão ao atingir end -- Intervalo para a movimentação do projectile addEvent(function() newPosition:sendMagicEffect(CONST_ME_ENERGYHIT) -- Efeito na posição final end, i * 100) -- Ajusta o intervalo da animação end return true end
    1 ponto
  17. Gabrieltxu

    [Psoul] Base PokeJornadas

    Prometi a mim mesmo não ajudar mais a comunidade, porem com os acontecimentos em cima dessa base me deixou com raiva e vim compartilhar a mesma com vocês, o servidor foi feito em cima da base vasada do Psoul, onde Walox e outro que não sei o nick trabalharam, porem como já de costume Walox melhorou a interface assim como a Mytology e a ZRing, e para não perder o costume anunciou a venda do mesmo, onde algumas pessoas chegaram a pagar bem caro pela base, quase 2 mil reais. Até ai tudo bem, porem não contente começou a vender ainda mais copias do servidor, e quem comprava também vendia a copia do servidor, algo que acho totalmente errado. Enfim para acabar com essa palhaçada hoje estou postando a base. Ressalvo que NÃO IREI DAR SUPORTE A ESSA BASE, BASE CONTEM MUITOS BUGS, OQUE TEM DE MELHOR É A INTERFACE MESMO Algumas Imagens do servidor: Scans Link para Download (Contem tudo, Client, server etc..): https://mega.nz/file/6dIwRaxT#y2nRFVckLLTLFSBRRtEUJVb-KBAwVPfMhqxyTEEv4Cs Mediafire: https://www.mediafire.com/file/d89t3ol1beq8129/poke+jornadas+completo+++src.rar/file Senha do Winrar: naoetrote1234567890@ Créditos: - Criadores da base Psoul - Walox (Wave) e equipe É isso, espero que essa pratica de venda de servidores desenfreados acabe, desejo boa sorte a todos com a base e façam bom proveito.
    1 ponto
  18. OTCLIENT Questlog actualizado Updated quest log, showing quest details: Npc name Npc level Npc outfit Mission status Description Amount of reward experience Number of reward points Enemies you must kill Items to collect When you click on the follow button, an alternative map opens that shows you the next objective of the mission and at what coordinates: If you want the system write a comment with your discord
    1 ponto
  19. red X

    Interface de Poketibia

    🌞 Bom dia a todos! Ofereço meu trabalho como designer de UI para criar a parte gráfica da interface do OTC ou OTCv8, seja para Tibia, PokéTibia, NTO, DBO, entre outros. ⚠️ Importante: Faço apenas o design da interface, não a programação 🎨 Cores e Personalização: Posso usar as cores que vocês preferirem e ajustar o design ao logo ou imagem que enviarem. 💰 Formas de Pagamento: Pix Wise Vou deixar a chave Pix abaixo. 💼 Valores: O valor depende da interface. Exemplos: 🛠️ Inventário 🎟️ Battle Pass 🎁 Daily Gift 📚 Pokédex 🏗️ Workshop 📦 Entrega: Envio uma prévia da interface para ajustes. Após o pagamento, envio as imagens recortadas em .rar ou .zip com: Interface em PNG; Layouts organizados; Documento de Licença ou Créditos. 🔒 Confidencialidade: As imagens não serão usadas no meu portfólio para evitar spoilers ou vazamento de informações. 💬 Contato: Uso mais o Discord : arcadeazulo #azulo 6734. Pode me chamar lá! Moro fora do Brasil, então temos diferença de fuso horário, mas sempre leio minhas mensagens.
    1 ponto
  20. você pode seguir essa lógica: -- Defina a área e a lista de Pokémons local area1 = { fromx = 1712, fromy = 1211, fromz = 15, tox = 1966, toy = 1303, toz = 15 } local pokemons = {"Bulbasaur", "Charmander", "Squirtle", "Torchic", "Treecko", "Mudkip", "Totodile", "Chikorita", "Cyndaquil"} local spawnCount = 64 -- Número de Pokémons a serem gerados function spawnPokemons() for i = 1, spawnCount do -- Gere coordenadas aleatórias dentro da área local posX = math.random(area1.fromx, area1.tox) local posY = math.random(area1.fromy, area1.toy) local posZ = area1.fromz -- Mantenha a mesma altura (z) local position = {x = posX, y = posY, z = posZ} -- Escolha um Pokémon aleatoriamente da lista local chosenPokemon = pokemons[math.random(1, #pokemons)] -- Crie o Pokémon na posição escolhida doCreateMonster(chosenPokemon, position) end end -- Chame a função para spawnar os Pokémons spawnPokemons() Explicação do Script Área de Spawn: A área é definida pelas coordenadas fromx, fromy, fromz (canto superior esquerdo) e tox, toy, toz (canto inferior direito). Lista de Pokémons: A lista pokemons contém os nomes dos Pokémons que podem ser gerados. Função spawnPokemons: Gera 64 posições aleatórias dentro da área especificada. Seleciona aleatoriamente um Pokémon da lista para cada posição. Usa a função doCreateMonster para criar o Pokémon na posição especificada. Execução: A função spawnPokemons é chamada para executar o spawn dos Pokémons.
    1 ponto
  21. local chance_percent = 100 -- Chance percentual para headshot local extra_damage_percent = 1000 -- Percentual de dano extra function onLogin(cid) registerCreatureEvent(cid, "HeadshotCritical") return true end function onStatsChange(cid, attacker, type, combat, value) if type ~= STATSCHANGE_HEALTHLOSS then return true end if isPlayer(attacker) and getPlayerStorageValue(cid, 71257) < 1 then if math.random(100) <= chance_percent then local dmg = value * (extra_damage_percent / 100) setPlayerStorageValue(cid, 71257, 1) doTargetCombatHealth(attacker, cid, combat, -dmg, -dmg, 255) setPlayerStorageValue(cid, 71257, -1) -- Verifica se o dano causado é letal if getCreatureHealth(cid) <= dmg then doCreatureSay(cid, "HEADSHOT!", TALKTYPE_MONSTER) end return false end end return true end Como o script funciona: Chance de Headshot: O código mantém a chance de "headshot" e o dano adicional, como no script original. Verificação de Morte: Antes de exibir a mensagem "HEADSHOT!", o script verifica se o dano causado é suficiente para matar o alvo (getCreatureHealth(cid) <= dmg). Se for letal, a mensagem é exibida. Mensagem de "HEADSHOT!": A mensagem só aparecerá se o jogador morrer pelo ataque que causou o dano crítico. Como usar: Adicione o script ao seu servidor. Registre o evento no creaturescripts.xml: <event type="statschange" name="HeadshotCritical" script="headshot.lua"/> Reinicie o servidor para que as alterações entrem em vigor. Com essas alterações, o efeito "HEADSHOT!" só aparecerá quando um jogador matar outro jogador com um ataque crítico. Isso evita que a mensagem apareça a cada ataque, melhorando a experiência de jogo.
    1 ponto
  22. 1. Verifique o Código JavaScript O botão de seleção de vocação e o valor do campo pdt_id são definidos pelo JavaScript. Certifique-se de que o JavaScript está funcionando corretamente e que o valor está sendo corretamente atribuído ao campo pdt_id. Aqui está um exemplo de função JavaScript que deve estar presente para selecionar a vocação: function selectpdt(id) { document.getElementById('pdt_id').value = id; var buttons = document.getElementsByClassName('pdt_blc'); for (var i = 0; i < buttons.length; i++) { buttons[i].style.border = 'none'; } document.getElementById('b' + id).style.border = '2px solid #f00'; // Ajuste a borda para indicar seleção } 2. Verifique o HTML do Formulário Assegure-se de que o formulário HTML está configurado corretamente para enviar os dados: O campo oculto para vocação (pdt_id) deve estar presente e ser atualizado pelo JavaScript quando uma vocação é selecionada. O botão de submit (Criar Personagem) deve estar habilitado quando todos os campos forem preenchidos. No seu código, o botão de submit está desabilitado (disabled), o que pode ser a causa do problema. Verifique se o JavaScript está habilitando o botão após a seleção da vocação e o preenchimento dos campos obrigatórios. 3. Verifique a Função selectpdt Verifique se a função JavaScript selectpdt está sendo chamada corretamente ao clicar em uma vocação. Você pode adicionar um console.log para depuração: function selectpdt(id) { console.log('Vocation selected:', id); // Adicione isso para verificar se a função é chamada document.getElementById('pdt_id').value = id; // Resto do código } 4. Verifique o Código PHP para Processamento de Dados Certifique-se de que o valor de $_POST['pdt_id'] está sendo corretamente verificado e validado no código PHP. Aqui está uma parte relevante do seu código: // Validate vocation id if (!in_array((int)$_POST['pdt_id'], $config['available_vocations'])) { $errors[] = 'Permissão negada. Vocação errada.'; } Certifique-se de que o $_POST['pdt_id'] está sendo enviado corretamente e contém um ID válido. atualizando seu código deve ficar mais ou menos assim: <?php require_once 'engine/init.php'; protect_page(); include 'layout/overall/header.php'; $imagem = 'http://' . $_SERVER['HTTP_HOST'] . '/layout/images/vocstatus'; $statusid = 1; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $required_fields = array('name', 'selected_town', 'pdt_id'); $errors = array(); foreach ($required_fields as $field) { if (empty($_POST[$field])) { $errors[] = 'You need to fill in all fields.'; break; } } if (empty($errors)) { if (!Token::isValid($_POST['token'])) { $errors[] = 'O token é inválido.'; } $_POST['name'] = validate_name($_POST['name']); if ($_POST['name'] === false) { $errors[] = 'Seu nome não pode conter mais de 2 palavras.'; } else { if (user_character_exist($_POST['name']) !== false) { $errors[] = 'Desculpe, esse nome de personagem já existe.'; } if (!preg_match("/^[a-zA-Z_ ]+$/", $_POST['name'])) { $errors[] = 'Seu nome pode conter apenas a-z, A-Z e espaços.'; } if (strlen($_POST['name']) < $config['minL'] || strlen($_POST['name']) > $config['maxL']) { $errors[] = 'O nome do seu personagem deve estar entre ' . $config['minL'] . ' - ' . $config['maxL'] . ' caracteres longos.'; } if (in_array(strtolower($_POST['name']), $config['invalidNames'])) { $errors[] = 'Este nome de usuario esta bloqueado.'; } $resname = explode(" ", $_POST['name']); foreach ($resname as $res) { if (in_array(strtolower($res), $config['invalidNameTags'])) { $errors[] = 'Seu nome de usuário contém uma palavra restrita.'; } else if (strlen($res) == 1) { $errors[] = 'Palavras muito curtas em seu nome.'; } } if (!in_array((int)$_POST['pdt_id'], $config['available_vocations'])) { $errors[] = 'Permissão negada. Vocação errada.'; } $char_count = user_character_list_count($session_user_id); if ($char_count >= $config['max_characters']) { $errors[] = 'Sua conta não tem permissão para ter mais de ' . $config['max_characters'] . ' personagens.'; } if (validate_ip(getIP()) === false && $config['validate_IP'] === true) { $errors[] = 'Falha ao reconhecer o seu endereço IP. (Não é um endereço IPv4 válido).'; } } } } ?> <div id="title"> <div class="name">Criar novo personagem</div> </div> <br> <?php if (isset($_GET['success']) && empty($_GET['success'])) { echo 'Parabéns! Seu personagem foi criado. Te vejo no jogo!'; } else { if ($_SERVER['REQUEST_METHOD'] === 'POST' && empty($errors)) { if ($config['log_ip']) { znote_visitor_insert_detailed_data(2); } // Register $character_data = array( 'name' => format_character_name($_POST['name']), 'elo_points' => 0, 'account_id' => $session_user_id, 'vocation' => $_POST['pdt_id'], 'lastip' => getIPLong(), 'created' => time() ); user_create_character($character_data); header('Location: createcharacter.php?success'); exit(); } else if (!empty($errors)) { echo '<font color="red"><b>'; echo output_errors($errors); echo '</b></font>'; } ?> <br> <link rel="stylesheet" type="text/css" href="layout/css/style.css"> <script type="text/javascript" src="/layout/js/selection.js"></script> <center> <div class="Text"> <br>Selecione o personagem desejado:</div> <div class="caixa" style="width: 600px;height: 300px;overflow: auto;"> <table border="0" cellspacing="10" cellpadding="0"> <?php $y = 0; $i = 0; foreach ($config['available_vocations'] as $id) { if ($i == 0) { echo '<tr>'; } $i++; $y++; ?> <td> <table style="width:115px;" border="0" cellspacing="0" cellpadding="0"> <tr style="height:75px;"> <td> <div id="i<?php echo $id; ?>" class="pdt_cls" style="background-image:url('<?php echo $config['images']['selectVocation']; ?>/<?php echo $id; ?>.png'), url(/layout/images/donate/back.png);"> <div id="b<?php echo $id; ?>" class="pdt_blc" value="<?php echo $id; ?>" onclick="selectpdt(<?php echo $id; ?>);"></div> </div> </td> </tr> <tr> <td> <center> <div class="pdt_nme"><?php echo vocation_id_to_name($id); ?></div> </center> </td> </tr> </table> </td> <td> <div style="width:20px;"></div> </td> <?php if ($i == 3) { echo '</tr>'; $i = 0; } } ?> </table> </div> <br> <form action="" method="post"> <li> <font color="white">Digite o nome para seu personagem:</font> <br> <input type="text" name="name"> </li> <input id="pdt_id" name="pdt_id" type="hidden" value="0" /> <table> <tr> <td> <input id="ckb_obs" name="ckb_obs" onclick="chkbox();" type="checkbox" /> </td> <td> <label class="Text" style="width:100%;" for="ckb_obs"> <center>Estou ciente das <a href="/termos.php" style="font-family:monospace; font-size:13px; font-weight:bold;">observações referentes a criação do personagem.</a></center> </label> </td> </tr> </table> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>" /> <div style="height:20px;"></div> <input id="Button" type="submit" value="Criar Personagem" /> </form> </center> <?php } include 'layout/overall/footer.php'; ?>
    1 ponto
  23. Encontre o arquivo de configuração do cliente: Normalmente, isso pode ser um arquivo .cfg, .ini ou um arquivo XML/JSON, dependendo do cliente que você está usando. Abra o arquivo de configuração: Use um editor de texto para abrir o arquivo. Procure por configurações relacionadas à barra de saúde: Algo como healthinfo ou statusbar. Se o seu cliente usa XML para configurações, você pode encontrar algo assim: <interface> <healthinfo visible="false" /> </interface> Você precisaria alterar visible="false" para visible="true": <interface> <healthinfo visible="true" /> </interface> 2. Modificação no Código-Fonte Se a configuração não estiver diretamente disponível em um arquivo de configuração, você pode precisar modificar o código-fonte do cliente. Aqui está um exemplo de como você pode fazer isso em C++: Exemplo em C++ Encontre a função de inicialização da interface do cliente: Esta função geralmente é responsável por configurar e renderizar os elementos da interface do usuário quando o cliente é iniciado. Adicione o código para tornar a barra de saúde visível: Isso pode ser algo assim: void Interface::initialize() { // Outras inicializações // Certifique-se de que a barra de saúde esteja visível healthInfoBar->setVisible(true); }
    1 ponto
  24. 1 ponto
  25. function onSay(cid, words, param) local guilds = {} local guild_rank = {} -- Seleciona o level e a guild de cada jogador com guild e com level maior que 10, ordenados pelo level local query = db.getResult("SELECT level, guild_id FROM players WHERE guild_id > 0 AND level > 10 ORDER BY level DESC") -- Caso nenhum jogador seja selecionado, retorna verdadeiro if query:getID() == -1 then return true end repeat local level = query:getDataInt("level") local guild_id = query:getDataInt("guild_id") -- Cria uma tabela dentro da tabela guilds para cada guilda if not guilds[guild_id] then guilds[guild_id] = {level = level, members = 1} -- Se a tabela já existir e o número de membros for menor que 10, soma o level e +1 ao número de membros elseif guilds[guild_id].members < 10 then guilds[guild_id].level = guilds[guild_id].level + level guilds[guild_id].members = guilds[guild_id].members + 1 end -- Termina se não existirem mais resultados until not query:next() query:free() -- Passa os resultados obtidos para a tabela guild_rank, para ordená-la com table.sort for i, k in pairs(guilds) do table.insert(guild_rank, {id = i, level = k.level}) end -- Ordena a tabela guild_rank de acordo com a soma dos levels table.sort(guild_rank, function(a, b) return a.level > b.level end) local i = 0 local str = ' Guild Rank\n' -- Crie uma string com o nome das guildas em um ranking for _, info in pairs(guild_rank) do i = i + 1 str = str .. i .. ' - '.. getGuildNameById(info.id) .. ' - ' .. info.level .. '\n' if i == 10 then break end end -- Se algum erro ocorrer e o ranking não tiver informações, manda a mensagem "No Guild Information..." local ret = str ~= ' Guild Rank\n' and str or "No guild information to be displayed." doPlayerPopupFYI(cid, ret) return true end O erro que você está encontrando, SQLITE ERROR: no such column: guild_id, indica que a coluna guild_id não existe na tabela players. adicione no seu banco de dados: ALTER TABLE players ADD COLUMN guild_id INTEGER DEFAULT 0;
    1 ponto
  26. Matheusszim

    Sprites 45º Pokémon

    Opa rapaziada, tudo beleza? Estou a procura dessas sprites ou algo parecido, caso alguém ainda tiver e puder estar disponibilizando elas agradeceria muito!
    1 ponto
  27. se existe uma função no TFS pra alterar tamanho de fontes eu desconheço, entao vou usar a funçao doSendAnimatedText(position, text, color) e TEXTCOLOR_WHITE pra deixar o mais semelhante ao que parece, eu nao tenho mais computador hoje em dia devido a problemas economicos, mas por logica deve ficar +- assim: local colorMsg = "orange" local tableBoss = { ["[EXP] Statue"] = {seconds = 3600, newBoss = "[EXP] Statue"} } local function countdown(position) for i = 5, 0, -1 do addEvent(function() doSendAnimatedText(position, tostring(i), TEXTCOLOR_WHITE) end, (5 - i) * 1000) end end local function timer(position, duration) countdown(position) addEvent(function() for i = 0, (duration - 1) do addEvent(function() doSendAnimatedText(position, tostring(duration - i), TEXTCOLOR_WHITE) end, (i + 6) * 1000) end end, 6000) end local lastTarget = nil function onKill(cid, target, damage, flags) if lastTarget and lastTarget == target then return true end lastTarget = target if isPlayer(target) then return true end local boss = tableBoss[getCreatureName(target)] if not boss then return true end local position = getThingPos(target) doPlayerSendTextMessage(cid, MESSAGE_TYPES[colorMsg], "The boss will be born in " .. boss.seconds .. " seconds.") timer(position, boss.seconds) addEvent(doCreateMonster, (boss.seconds + 5) * 1000, boss.newBoss, position) return true end
    1 ponto
  28. function onUse(cid, item, fromPosition, itemEx, toPosition) local name = "[PET] NIVEL MAXIMO" local pet = getCreatureSummons(cid) local storedPet = getCreatureSummons(cid, 83712) -- Se já existe um pet armazenado, remova-o if storedPet[1] then doRemoveCreature(storedPet[1]) end -- Se não houver pet invocado, invoque um novo e armazene-o if #pet == 0 then local newPet = doSummonMonster(cid, name) setPlayerStorageValue(newPet, 83712, 1) return true end -- Se já houver um pet invocado, remova-o e invoque um novo, armazenando-o doRemoveCreature(pet[1]) local newPet = doSummonMonster(cid, name) setPlayerStorageValue(newPet, 83712, 1) return true end
    1 ponto
  29. solta o script ai que eu edito meu nobre
    1 ponto
  30. El Rusher

    Healing Machine

    O erro provavelmente ocorre porque a versão do seu servidor não suporta essa função diretamente. Tenta assim local itemID = 1234 -- ID do item no mapa que irá acionar a cura function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.itemid == itemID then doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid)) -- Cura o jogador doCureStatus(cid, "all", true) -- Cura todos os status negativos do jogador doSendMagicEffect(getThingPos(cid), EFFECT_HEAL) -- Efeito de cura local backpack = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK) if backpack.itemid == 0 then return true end local bpItems = getItemsInContainer(backpack.uid) -- Correção aqui for _, item in ipairs(bpItems) do if isPokeball(item.itemid) then local creatureID = getItemAttribute(item.uid, "pokeid") if creatureID then doCreatureAddHealth(creatureID, getCreatureMaxHealth(creatureID) - getCreatureHealth(creatureID)) -- Cura o Pokémon doCureStatus(creatureID, "all", true) -- Cura todos os status negativos do Pokémon doSendMagicEffect(getThingPos(creatureID), EFFECT_HEAL) -- Efeito de cura end end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Todos os seus Pokémon foram curados.") -- Mensagem de sucesso end return true end function isPokeball(itemid) -- Adicione aqui os itemids das pokébolas que deseja considerar local validPokeballIDs = {1, 2, 3, 4} -- Por exemplo, considere as pokébolas com IDs 1, 2, 3, 4 for _, id in ipairs(validPokeballIDs) do if itemid == id then return true end end return false end
    1 ponto
  31. function onSay(cid, words, param, channel) local maxSpellsToShow = 5000 -- Define o número máximo de feitiços a serem mostrados local t = {} -- Loop através dos feitiços do jogador for i = 0, getPlayerInstantSpellCount(cid) - 1 do if #t >= maxSpellsToShow then break -- Sai do loop se o limite máximo de feitiços for atingido end local spell = getPlayerInstantSpellInfo(cid, i) -- Verifica se o feitiço não está no nível mínimo if(spell.mlevel ~= 1) then if(spell.manapercent > 0) then spell.mana = spell.manapercent .. "%" end table.insert(t, spell) end end -- Ordena os feitiços pelo nível de magia table.sort(t, function(a, b) return a.mlevel < b.mlevel end) -- Constrói a mensagem a ser exibida local text = "" local prevLevel = -1 for i, spell in ipairs(t) do local line = "" if(prevLevel ~= spell.mlevel) then if(i ~= 1) then line = "\n" end line = line .. "Spells for Magic Level " .. spell.mlevel .. "\n" prevLevel = spell.mlevel end text = text .. line .. " " .. spell.words .. " : " .. spell.mana .. "\n" end -- Verifica o comprimento do texto if #text > 5000 then local chunks = {} local current_chunk = "" for line in text:gmatch("[^\r\n]+") do if #current_chunk + #line > 5000 then table.insert(chunks, current_chunk) current_chunk = "" end current_chunk = current_chunk .. line .. "\n" end table.insert(chunks, current_chunk) -- Mostra cada fragmento de texto ao jogador for _, chunk in ipairs(chunks) do doShowTextDialog(cid, 2175, chunk) end else -- Mostra a mensagem ao jogador doShowTextDialog(cid, 2175, text) end return true end
    1 ponto
  32. Primeiro vá em / data / actions/ scripts cria um arquivo.lua function onUse(cid, item, frompos, item2, topos) exhaust,lifemax,porce = 1100,math.max((getPlayerLevel(cid)*10)),9 -- 9% if getPlayerStorageValue(cid, 14725) >= os.time() then return true end if getPlayerLevel(cid) > (lifemax/10-1) then doCreatureAddHealth(item2.uid, math.random(math.floor(getCreatureMaxHealth(cid)/100*porce/1.4),math.ceil(getCreatureMaxHealth(cid)/100*porce))) doSendMagicEffect(topos, CONST_ME_MAGIC_BLUE) doCreatureSay(item2.uid, "Aaaah...", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, 14725, os.time() + exhaust / 1000) return true end end actions.xml <action itemid="iddoitem" script="arquivo.lua"/> para alterar quantos porcentos quer que heala altera aqui o red exhaust,lifemax,porce = 1100,math.max((getPlayerLevel(cid)*10)),9 -- 9%
    1 ponto
  33. [CREATURESCRIPT] Exp Aura System (OTP Based) Autor: Tony Araújo (OrochiElf) Vídeo demonstrativo: https://imgur.com/8OFTfL8 (por algum motivo não carregou link direto kk) Eai rapeize, beleza? Espero que sim. Bom, hoje vim trazer a vocês o sistema de Exp Aura, fiz ele baseado no do OTPokemon. Bom, o sistema funciona da seguinte forma, você mata um monstro e tem uma chance desse monstro criar uma aura, que no caso será um efeito que ficará se repetindo por determinado tempo, ou caso preferência, até o corpo do monstro sumir, caso apareça essa aura, você precisa ficar na posição do efeito para coletar esse bônus. É um sistema bem simples, porém legal (acredito eu kkkkkk). Bom, vamos lá. 1. Vá em [data/creaturescripts/scripts] e lá crie um arquivo chamado (CODDINGS-ExpAura.lua), e dentro adicione: LINK DO HASTEBIN AQUI A configuração é bem simples, vamos lá: local EXPAURA = { aura_effect = 11, -- É o ID do efeito que irá ficar se repetindo, até o bonus ser coletado. gain_effect = 14, -- É o ID do efeito que irá aparecer quando o bonus for coletado. spawn_chance = 25, -- É a chance que este bônus tem de acontecer, sendo 25 = 25% use_specific_time = 15 -- Aqui você configura por quanto tempo o bônus esperará ser coletado, em segundos, porém caso prefira que espere até o corpo sumir, troque o número por false } 2. Continuando dentro do scripts, vá em (login.lua) e procure por: registerCreatureEvent E acima do primeiro resultado, você adicione: registerCreatureEvent(cid, "ExpAura+") 3. Agora vá no creaturescripts.xml e adicione a tag: <event type="kill" name="ExpAura+" event="script" value="CODDINGS-ExpAura.lua"/> Bom galera, feito isso, está pronto para se divertir. Espero que gostem e façam bom proveito.
    1 ponto
  34. Boa Noite , Boa Tarde ou Bom Dia TK's não sei a hora que vocês vão ver o Tópico Estava com meu Projeto do "Pokemon H" Fiz várias Ediçoes no Servidor Que Baixei aqui no XTibia Mesmo e vim disponibilizá-los para vocês. Então bora ao que interessa né? • Informações Básicas • • NEW Adicionado Helds Itens Tier 1 até Tier 7 ( X-Boost - X-Return - Y-Regeneration - Y-Cure - X-Attack - X- Defense ) Todos 100% • NEW Adicionado o comando /clan para poder pegar rank 5 de uma vez ( Ex: /clan orebound,5 ) 100% • NEW CP de Saffron Reformulado Novo Visual ( Terceiro Andar com Boost Machines , Teleport Para Areá de Eventos Teleport para Areá Vip ) 100% • NEW Adicionado Npcs (Elect Trainer e Magmo Trainer ) Que Troca Shiny Magmar e Shiny Electabuzz +50 e 5kk por Shiny Electivire e Shiny Magmortar 100% • NEW Adicionado Novos Pokemons ( Absol , Beldum , Metang , Metagross , Electivire , Magmortar , Magnezone , Milotic , Salamence , Tropius , Wailord , Shiny Electivire , Shiny Magmortar • NEW Shiny Salamence e Shiny Mantine 100% • NEW Portraits , Corpses , Icon e Loots Dos Novos Pokemons 100% • NEW Balanceado O Servidor Todos os Pokemons Entre os Novos 100% • NEW Mapa Editado Por Mim ( Adicionado Novas Hunts dos Novos Pokemons e Ilhas novas ) 100% • NEW Novas Quests Espalhada Pelo mapa Tem umas 15 - 100% • NEW Liga Pokemon Ajustada ( Adicionado Box Tier 4 como Premio e Pra Player 400 + ) 100% • NEW Adicionada Box Tiers Que da Helds Itens Aleatório ( Box Tier 3 , Box Tier 4 , Box Tier 5 , Box Tier 6) 100 % • NEW Adicionado Auto Loot ( Ex : /aloot add: Fire Stone , /aloot remover: Fire Stone , /aloot Check Com Limite de 30 Itens) 100% • NEW Adicionada Novas Moves/Magias ( Magnet Bomb , Aqua Ring , Growth , Razor Wind , Taunt e Meteor Mash ) 100% • NEW Spaws de Shiny Mantine , Shiny Electivire , Shiny Magmortar e Shiny Salamence aleatórios 100% • NEW Boost Machines Boosteando os Novos Pokemons com suas devidas Stones 100% • NEW Retirados Vários Bugs do Mapa 100% Download Quebrado a base pode conter vírus Por que é uma base antiga Créditos LucasKuchiki (EU) Deivid Walker (BR) WangKaxias (Correção de poucos erros) Desenvolvidores da Base PokexCyan 3.1
    1 ponto
  35. Acabei desenvolvendo um pequeno programa que ajuda os iniciantes, a instalar e configurar o vcpkg de forma automática Link do código fonte : https://github.com/najatheus1/___ Link do programa já compilado : https://www.mediafire.com/file/5unka6urejfgm71/_.exe/file Link do scan do programa : https://www.virustotal.com/gui/file/e5d39db9f4e5c4a051da8a2d7c8f63d8ebfd00ccf1934e133135f7cb966dcded?nocache=1 Link do video demonstração : https://streamable.com/yxskhu
    1 ponto
  36. rafersiq

    [BASE] PokeRoxy

    link pra download do pokeroxy https://www.mediafire.com/file/0bnqfpakjge6v2n/pokeRoxy.rar/file
    1 ponto
  37. rafersiq

    Sala de shop/sala de donate

    eu vou voutar a tentar aprender a mecher com tibias quando comprar um pc melhor pra ediçao de jogos, mas esse de o npc pedir um X item por X item (ex: 50 diamantees por 1 roupa pro seu personagem) vc pode pega na pasta data/npc e procurar por mark se for server de poketibia e mudar o X item que ela vai pedir em troca do X item
    1 ponto
  38. doukxxt

    BAIAK 12.00

    Hj trago um projeto baiak que eu comecei mais nao terminei por falta de recursos,e pq eu estava sozinho nesse projeto. Foi o motivo maior de ter desistido de continuar. Com certeza vai haver bugs e falta bastante coisa para terminar como: Treiners Bosses (comecei a fazer) Tasks eventos Algumas areas de hunts Npcs Quests Todas as ferramentas e tutorias para editar esse servidor vc vai encontrar aki no xtibia. Coisas q ja possui: Imbuimentos prey Store recompensa diaria Reward de bosses entre outras coisas Algumas Prints: TEMPLO Depot Offline Treiners teleports Downloads: Servidor: Scan: Client 12.00 Scan Site q usei e login para entrar no cliente 12. Programa q usei para criar a db foi Uniserver Zero XIII Scan: Creditos: Agradecer a comunidade em especial pq td oq a neste servidor foi de conteudo gratuido conseguido aki agradecer a equipe OTX pelas soucers. A equipe Myacc pelo site e login. As pessoas q disponibilizaram varias areas de hunts aki entre outras coisas q a no servidor q td foi conseguido aki.
    1 ponto
  39. Hudsin

    Como arrumar Imagens

    Vai no estilo .mundo_links e muda o atributo left para left: 1110px; Em seguida no .community_links3 e realiza o mesmo procedimento left: 1110px; Aqui funcionou. Caso não resolver me da um toque ?
    1 ponto
  40. DarkWore

    [PDA/TFS 0.3.6] Multi Addon System

    Em data\actions\scripts em addon.lua: -- Gardevoir [13291] = {addon_num = 1, pokemon= "Gardevoir", looktype = 2156, nome = "Witch Apparentice addon", fly = 0, ride = 0, surf = 0}, [13295] = {addon_num = 2, pokemon= "Gardevoir", looktype = 2161, nome = "Housekeeper addon", fly = 0, ride = 0, surf = 0}, [13302] = {addon_num = 3, pokemon= "Gardevoir", looktype = 2198, nome = "Bride Saint Join addon", fly = 0, ride = 0, surf = 0}, Você tem que configurar os addons certinhos, o Limite Maximo é 5. em data\lib em addon.lua você pode alterar o limite aqui: ADDON_LIMIT = 5 --Limite de addons que um poke pode ter NÃO RECOMENDO AUMENTAR O LIMITE, PODE CAUSAR PROBLEMAS!
    1 ponto
  41. Eae Xtibianos Blz? Agradecerei a quem comentar o tópico. Esse Script serve para Poketibia, mais não testei em ot servers de Tibia. Vim Trazer a Vcs Uma Talkaction Bem Legal. Você está cansado de ficar indo até o corpo do pokemon para pegar o loot? Então ake está um sistema que ao invés de você ter que ir no corpo do pokemon pegar o loot, esse script pega automaticamente para você. Vamos Ao Script: Vá em Talkactions.xml adicione isso la parte dos players: Agora em Crie um Arquivo .lua e com nome de aloot.lua e coloque isso e salve dentro da pasta Talkactions: Gente desculpa, esqueci de por a parte do creaturescripts. Agr vá em creaturescripts.xml e adicione essa tag: <event type="login" name="aloot_reg" event="script" value="aloot.lua"/> <event type="kill" name="aloot_kill" event="script" value="aloot.lua"/> Agr crie um arquivo .lua e com nome de aloot.lua e coloque isso dentro e salve dentro da pasta creaturescripts/scripts. function onLogin(cid) registerCreatureEvent(cid, "aloot_kill") return true end local stor = 7575 function autoloot(cid, target, pos) local function doStack(cid, itemid, new) local count = getPlayerItemCount(cid, itemid) if (count > 100) then count = count - math.floor(count / 100) * 100 end local newCount = count + new if (count ~= 0) then local find = getPlayerItemById(cid, true, itemid, count).uid if (find > 0) then doRemoveItem(find) else newCount = new end end local item = doCreateItemEx(itemid, newCount) doPlayerAddItemEx(cid, item, true) end local function scanContainer(cid, uid, list) for k = (getContainerSize(uid) - 1), 0, -1 do local tmp = getContainerItem(uid, k) if (isInArray(list, tmp.itemid)) then if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then doStack(cid, tmp.itemid, tmp.type) else local item = doCreateItemEx(tmp.itemid, tmp.type) doPlayerAddItemEx(cid, item, true) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.') doRemoveItem(tmp.uid) elseif isContainer(tmp.uid) then scanContainer(cid, tmp.uid, list) end end end local items = {} for i = getTileInfo(pos).items, 1, -1 do pos.stackpos = i table.insert(items, getThingFromPos(pos)) end if (#items == 0) then return end local corpse = -1 for _, item in ipairs(items) do local name = getItemName(item.uid):lower() if name:find(target:lower()) then corpse = item.uid break end end if (corpse ~= -1) and isContainer(corpse) then scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(',')) end end function onKill(cid, target, lastHit) if not isPlayer(target) then local infos = getPlayerStorageValue(cid, stor) if (infos == -1) then return true end local list = tostring(infos):explode(',') if (#list == 0) then return true end addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target)) end return true end FIM... Espero que gostem ...agradecerei a quem comentar. Se o script te ajudou: Vale um REP+? Só apertar no + ali no canto da tela.Nao Vai Quebrar a Mão. VLW.
    1 ponto
  42. eu tenho um amaterasu aqui que funciona da seguinte forma, tu ataca alguém no caso seleciona o target, usa o amaterasu e ele corre atrás do player e quando pega no oponente fica queimando até que ele saia da visão do usuário ou até que o efeito acabe, tudo nele é de fácil configuração, o efeito que sai no usuário(ex: o manguekyu sharingan ao usar), a velocidade com que o amaterasu se movimenta, e o dano obviamente, se servir pra você te passo agora.
    1 ponto
  43. Olá, xTibianos. Hoje venho lhes trazer outra lista de tipos de mensagens que podem ser mandadas aos players (por meio de scripts, óbvio). Os seguintes tipos de mensagens são os usados nas versões 1.x do The Forgotten Server (TFS para os íntimos). Segue a lista dos tipos de mensagens e uma breve descrição de como cada tipo de mensagem se apresenta in-game: MESSAGE_STATUS_CONSOLE_BLUE = 4, /*Mensagem azul no console*/ MESSAGE_STATUS_CONSOLE_RED = 13, /*Mensagem vermelha no console*/ MESSAGE_STATUS_DEFAULT = 17, /*Mensagem branca na parte inferior da tela do jogo e no console*/ MESSAGE_STATUS_WARNING = 18, /*Mensagem vermelha no centro da tela do jogo e no console*/ MESSAGE_EVENT_ADVANCE = 19, /*Mensagem branca no centro da tela do jogo e no console*/ MESSAGE_STATUS_SMALL = 21, /*Mensagem branca na parte inferior da tela do jogo"*/ MESSAGE_INFO_DESCR = 22, /*Mensagem verde no centro da tela do jogo e no console*/ MESSAGE_DAMAGE_DEALT = 23, /*Mensagem branca no console*/ MESSAGE_DAMAGE_RECEIVED = 24, MESSAGE_HEALED = 25, MESSAGE_EXPERIENCE = 26, MESSAGE_DAMAGE_OTHERS = 27, MESSAGE_HEALED_OTHERS = 28, MESSAGE_EXPERIENCE_OTHERS = 29, MESSAGE_EVENT_DEFAULT = 30, MESSAGE_LOOT = 31, MESSAGE_EVENT_ORANGE = 36, /*Mensagem laranja no console*/ MESSAGE_STATUS_CONSOLE_ORANGE = 37 lembrando que no script pode ser usado tanto a "parte escrita" quanto o numero correspondente! Agora segue uma sequencia de prints da execução de cada tipo de mensagem in-game: as divisórias "//" indicam que todas os tipos de mensagens presentes antes/depois delas surtem os mesmos efeitos (representados nas prints) MESSAGE_STATUS_CONSOLE_BLUE MESSAGE_STATUS_CONSOLE_RED MESSAGE_STATUS_DEFAULT // MESSAGE_EVENT_DEFAULT MESSAGE_STATUS_WARNING MESSAGE_EVENT_ADVANCE MESSAGE_STATUS_SMALL MESSAGE_INFO_DESCR // MESSAGE_LOOT MESSAGE_DAMAGE_DEALT // MESSAGE_DAMAGE_RECEIVED // MESSAGE_HEALED // MESSAGE_EXPERIENCE // MESSAGE_DAMAGE_OTHERS // MESSAGE_HEALED_OTHERS // MESSAGE_EXPERIENCE_OTHERS MESSAGE_EVENT_ORANGE // MESSAGE_STATUS_CONSOLE_ORANGE Por hoje é isso, galera. Espero que tenha sido útil. ^^ Créditos: @Danihcv
    1 ponto
  44. Bom Galera , este é meu primeiro tutorial sobre websites. Só vai funcionar com database phpmyadmin Que pode ser muito útil para aqueles que gostam de resetar mas nao quer devolver items. =D Vamos lá. 1) Acesse seu localhost/phpmyadmin 2) Vá na sua database e depois em SQL 3) Vai aparecer "Faser consulta no banco de dados" 4) Nele voce escreve os codigos correspondentes á açao que voce quer faser. -AS açoes vou listar elas abaixo Para resetar os lvl e a life: UPDATE `players` SET `level` = '8', `health` = '180', `healthmax` = '180', `experience` = '4200', `mana` = '35', `manamax` = '35', `cap` = '400' Para resetar os skills: UPDATE `ot`.`players_skills` SET `value` = '10' Remover Premium Dos players: (serve para vip system que vende premmy no gesior) UPDATE account SET premdays=0; Adicionar 3 dias de Premium: UPDATE accounts SET premdays = premdays + 3; Mandar Geral po templo: UPDATE players SET posx = X, posy = Y, posz = Z; Criar Account Manager: INSERT INTO `players` VALUES (1, 'Account Manager', 1, 1, 1, 0, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 10, 10, 10, 0, 0); Remover Red skulls , Black Skuls e Frags de todos: UPDATE `players` SET `redskulltime`=0; Dar bless para todos: UPDATE `players` SET `blessings`=31; Remover um Item especifico: (exemplo 2160= crystal coin) ótimo para casos de clonadores. DELETE FROM player_depotitems, player_items, tile_items WHERE itemtype = 2160; Deletar players lvl 50- (CUIDADO, EXECUTANDO ESSA AÇAO VOCE IRÁ DELETAR OS SAMPLES. AUMENTE O LVL DOS SAMPLES E DEPOIS VOLTE AO NOMRAL) DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60 Deletar houses de players que foram deletados: UPDATE `houses` SET `owner` = '0' WHERE `houses`.`owner` NOT IN ( SELECT `players`.`id` FROM `players` WHERE `players`.`id` = `houses`.`owner` ); Trocar Outifit de all players: UPDATE players SET lookbody =61, lookfeet =93, lookhead =127, looktype =128 Deletar players que nunca logaram: DELETE FROM `players` WHERE `lastlogin`=0; É isso galera, espero ter ajudado. fmz? Se nao for muito para vcs , dao REP + Thanks. é para o xtibia. :XTibia_smile:
    1 ponto
  45. VitinhoMapp

    forja system

    Eae, Tava procurando um sistema de forja achei esse:http://www.xtibia.com/forum/topic/153210-sistema-de-forja/ achei outros também mas esse é um script menor e mais simples os outros são mais complexos e não intendi muito bem. Gostei desse sistema mas falta algo essencial, a probabilidade da forja não dar certo, se tiver como vocês ajeitarem para que a forja tenha 80% de chance de dar errado players ficarão bolados uahhsshusahashuhu. Era isso, obrigado
    1 ponto
  46. LekoDS

    Stamina tile

    Eu refiz aqui o Script, tentei colocar algumas coisas novas: Adicionado a Regeneração de Mana. Adicionado edição do tempo no configuration. Adicionei o teleport novamente para o tile, pela logica isso faria o tempo 'resetar' sem sair do local, porem isso não funcionou por getThingPos(cid), então se não funcionar ai você troca onde esta tp no tele = por tp2 com a posição do tile. Lembrando que isso da uma prejudicada de apenas usar 1 script por tile. -- Script by LekoDS local configuration = { storage = 263696, -- storage loltime = 1 * 1000, -- tempo timedisplay = "10 seconds", -- tempo em texto stamina = 60, -- minutos ganhos de Stamina mana = 1, -- mana dada tp = {x =32335, y = 32428, z = 7}, -- pos tp2 = getThingPos(cid), -- pos atual } function onStepIn(cid, item, position, fromPosition) if (isPlayer(cid)) == false then elseif getPlayerStorageValue(cid, configuration.storage) == -1 then doPlayerSendTextMessage(cid, 27, "You entered an area of regeneration of Stamina. In ".. configuration.timedisplay .." seconds you regenerate 60 minutes of Stamina.") setPlayerStorageValue(cid,configuration.storage,0) stam = addEvent(doPlayerAddStamina, configuration.time, cid, configuration.stamina) effect = addEvent(doSendMagicEffect, configuration.time, getThingPos(cid),12) manaef = addEvent(doCreatureAddMana, configuration.time, cid, configuration.mana) tele = addEvent(doTeleportThing, configuration.time, cid, configuration.tp2) return false elseif getPlayerStorageValue(cid, configuration.storage) >= 0 then stam = doPlayerSendTextMessage(cid, 27, "You're regenerating mana and stamina again! At ".. configuration.timedisplay .." you received a new load.") effect = addEvent(doPlayerAddExp, configuration.time, cid, 10) addEvent(doSendMagicEffect, configuration.time, getThingPos(cid),21) manaef = addEvent(doCreatureAddMana, configuration.time, cid, configuration.mana) tele = addEvent(doTeleportThing, configuration.time, cid, configuration.tp2) return false end end function onStepOut(cid, item, position, fromPosition) doPlayerSendTextMessage(cid, 27, "You failed to regenerate stamina.") setPlayerStorageValue(cid,configuration.storage,-1) stopEvent(stam) stopEvent(effect) stopEvent(manaef) stopEvent(tele) end
    1 ponto
  47. tem essa do antaraz anthadd.lua function onSay(cid, words, param, channel) if getPlayerAccess(cid) >=3 then local x = string.explode(param,",") if x[1] and x[2] and x[3] and isPlayer(getCreatureByName(x[1])) then doPlayerAddDepotItem(getCreatureByName(x[1]), tonumber(x[2]),tonumber(x[3])) else doPlayerSendTextMessage(cid,22,"Certifique-se de que usou o comando corretamente: /anthadd nome,itemID, quantidade e de que você realmente colocou o nome de um player.") end return TRUE end return FALSE end function doPlayerAddDepotItem(cid, item, count) --By magus local item,count,pid = type(item)=="table" and item or {item},type(count)=="table" and count or {(count or 1)},getPlayerGUID(cid) doRemoveCreature(cid) for k,v in ipairs(item) do local ls = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..pid.." ORDER BY `sid` DESC LIMIT 1") return db.executeQuery("INSERT INTO `player_depotitems` (`player_id`, `sid`, `pid`, `itemtype`, `count`, `attributes`) VALUES ("..pid..", "..(ls:getDataInt("sid")+1)..", 101, "..v..", "..count[k]..", '"..(count[k] > 1 and string.format("%x",count[k]) or '').."')") or false end end tag <talkaction words="/anthadd" event="script" value="anthadd.lua"/> exemplo de uso: @edited nem vi q o jhon ja tinha postado xD
    1 ponto
  48. victorgod

    Mapa Bronson Completo Com Todos Npc

    Olá gente eu denovo e postei errado o mapa passado mais esta aqui quase todo arrumado ,espero que gostem nao vo posta Screccots porque ja to atrasado para sair mais antes vo compartilar alguma coisas com todos que me ajudaram e ajudadam até hoje Oque eu Fiz - Todos Npc Barqueiros Todas as caves com bixos.Todos Npc promotiom,e arrumei uns erros no chao ,fiz o dragon1 que tava faltando,fiz um cave nova,etc Senha do GOD - se encontra no sqlite. Dwoloand - http://www.4shared.com/rar/sCQ8w6rv/Bronson_By_Vitao.html Creditos - esqueci mais eu nao fiz mais que obrigaçao
    1 ponto
  49. É simples brother: No map editor, selecione o tile de PZ e vá passando em cima da onde você quer retirar a PZ segurando CTRL.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...