Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. 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
  2. Não adianta publicar um servidor dessa forma, é inútil, lixo total, apague sua publicação, é melhor que ninguém perca tempo com essa bobagem. Se você vai publicar algo, faça bem, não pela metade. .
    1 ponto
  3. No script Lua do NPC que lida com transações comerciais (geralmente dentro da pasta data/npc/scripts/), você deve incluir verificações do saldo bancário do jogador, além de verificar o dinheiro que ele tem em mãos. Usar a função getBankBalance: Use a função getPlayerBalance(cid) para verificar o saldo bancário do jogador. Se o jogador não tiver dinheiro suficiente em mãos, mas tiver saldo no banco, o NPC pode debitar diretamente do banco. Exemplo de implementação: Aqui está um exemplo básico de como ajustar o código de um NPC para verificar o saldo bancário: local function playerHasMoney(cid, amount) local money = getPlayerMoney(cid) -- Dinheiro que o jogador tem na mochila local bankBalance = getPlayerBalance(cid) -- Saldo do banco -- Verifica se o jogador tem dinheiro suficiente na mochila ou no banco return (money + bankBalance) >= amount end local function removePlayerMoney(cid, amount) local money = getPlayerMoney(cid) if money >= amount then -- Se o jogador tiver dinheiro suficiente na mochila, remover da mochila doPlayerRemoveMoney(cid, amount) else -- Se não, remover o que tem na mochila e o restante do banco doPlayerRemoveMoney(cid, money) doPlayerSetBalance(cid, getPlayerBalance(cid) - (amount - money)) end end -- Exemplo de função de venda de item local function sellItem(cid, itemId, amount, cost) if not playerHasMoney(cid, cost) then npcHandler:say("Você não tem dinheiro suficiente.", cid) return false end -- Se o jogador tiver dinheiro suficiente, remover o dinheiro e dar o item removePlayerMoney(cid, cost) doPlayerAddItem(cid, itemId, amount) npcHandler:say("Aqui está o seu item!", cid) return true end -- Exemplo de uso no script de NPC local tradeItems = { {name = "sword", id = 2376, price = 100}, -- Exemplo de item para vender } function onCreatureSay(cid, type, msg) if msgcontains(msg, 'trade') then npcHandler:say("Gostaria de comprar algo?", cid) openShopWindow(cid, tradeItems) -- Abre a janela de trade end end Explicação: playerHasMoney(cid, amount): Verifica se o jogador tem dinheiro suficiente na mochila e/ou no banco. removePlayerMoney(cid, amount): Deduz a quantia necessária primeiro da mochila e depois, se necessário, do banco. Adicionar ao sistema de NPC existente: Certifique-se de ajustar os nomes das funções e estruturas de diálogo do NPC para o formato usado no seu servidor. Você pode integrar essa lógica com o sistema de eventos de NPCHandler que já está no OTX2. sellItem: Implementa a lógica de venda de um item, removendo o dinheiro do jogador e entregando o item.
    1 ponto
  4. 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!
    1 ponto
  5. 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
  6. 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.
    1 ponto
  7. kaizy536

    Npc que vende items por Outros items

    Então galera do xTibia, Blz? Esses dias eu tava me matando pra conseguir por um Npc que venda items por outro tipo de moeda, porem não achava nada, nem conseguia modificar os script, os unicos script que eu achei nunca funcionava direito, ou o npc realmente anunciava que vendia os items, porem nao vendia, ou simplesmente nao falava nada, ficava perambulando la, foi quando eu achei um script que realmente funcione, e quero compartilha ele com voces, porque sei que muita gente quer esse tipo de npc . Começando: Vai em data/npc e crie um arquivo.xml, nomeia ele como você quiser, depois você cola isso dentro dele: Editando: Vermelho - Nome de seu npc que vai aparecer no jogo. Azul - nome do arquivo .lua que voce vai criar na pasta data/npc/script esse script eu vou passar pra voce jaja aki em baixo. Verde - Aparencia do Npc. Pronto, feito isso vai em data/npc/script, e cria um arquivo .lua é so copiar um arquivo existente e renomear, depois voce cola isso dentro: Pronto, agora é so testar PS: Esse script so tem um pequeno "erro", para comprar os items no npc é preciso ter GOLD na backpack, mais o GOLD nao sera removido, so sera removido a "Moeda" que voce escolheu . . Espero ter ajudado. boa sorte. Creditos pelo script: Vodkart (ele que postou em um topico, nao sei se foi ele, mais enfim, tem que por os credito ne kkk)
    1 ponto
  8. Opa, galerinha do XTibia, resolvi trazer a solução de uns problemas que vejo que ocorrem com uma certa frequência: Os erros da data base. Neste tutorial vou ensinar a resolver os erros do tipo No such table, Insert into, No such column, ... has no column named... etc. 1°) NO SUCH TABLE Bom, para o erro No such table, basta vc visualizar qual table está faltando. Para isso basta ler o erro na distro: No caso da imagem, está faltando a table: player_statements Para resolver este e qualquer outro problema deste tipo, caso sua data base seja sqlite, basta abrir sua data base pelo Sqlite Studio(download: http://sqlitestudio.pl/?act=download) e clicar em Open SQL query editor: Mas caso sua data base seja Mysql abra pelo phpMyadmin, ou por outro editor de sua preferencia. 1.1°) EXECUTANDO OS COMANDOS PARA RESOLVER O PROBLEMA Bom, dependendo da table que estiver faltando, vc irá colocar seu respectivo comando, segue abaixo TODOS os comandos básicos necessários para que sua data base fique Ok! : (VC VAI PEGAR O COMANDO REFERENTE À TABLE QUE VC QUER!!!) account_viplist accounts bans environment_killers global_storage guild_invites guild_kills guild_ranks guild_wars guilds house_auctions house_data house_lists houses killers market_history market_offers player_deaths player_depotitems player_inboxitems player_items player_killers player_namelocks player_skills player_spells player_statements player_storage player_viplist players server_config server_motd server_record server_reports tile_items tile_store tiles announcements pagsegurotransacoes player_advances reports thanks z_bug_logs z_featured_article z_forum z_helpdesk z_monsters z_network_box z_news_tickers z_ots_comunication z_polls z_polls_answers z_poll_votes z_shop_history_item z_shop_history_pacc z_shop_offer z_spells z_news_big 2°) No such column / "NOME DA TABLE" has no column named "NOME DA COLUMN QUE FALTA" / Insert into Bom, para resolver esse problema vc deve identificar em qual TABLE está essa coluna que falta. Para isso, basta ler o erro como na imagem: No caso da imagem, está faltando a column WORLD_ID dentro da table MARKET_OFFERS. Para resolver, vc deve executar excluir a sua table MARKET_OFFERS existante em sua data base, e em seguida, executar o domando da da market_offers, encontrado acima, logicamente isso só se aplica ao caso da imagem, depende do seu caso, vc deve excutar o comando da table que estiver sendo referida no erro. Mas antes de executá-lo vc deve excluir a sua table EXISTENTE, para então executar o comando. ESTA FORMA DE RESOLUÇÃO SE APLICA AOS TRÊS CASOS: NO SUCH COLUMN, ...HAS NO COLUMN NAMED... e INSERT INTO. Bom galera, é isso. SE ENCONTRAREM, OU SE DEPARAREM COM ALGUM ERRO, BASTA ME PEDIR AJUDA QUE EU DAREI TOTAL SUPORTE PARA VOCÊS! SE ESTIVER FALTANDO MAIS ALGUMA TABLE QUE EU NÃO COLOQUEI AQUI, PF ME INFORMEM E EU ATUALIZAREI O TÓPICO!!! Lembrem-se, se eu te ajudei, por favor, deem REP++ pois foi meio trabalhoso fazer este tutorial todo... ^^ ESTOU A DISPOSIÇÃO DE TODOS! Espero ter ajudado!! E isso é tudo, pessoal! ^^ Créditos Eu (@Danihcv) Abraços.
    1 ponto
  9. Outland completa para POKÉMON. Atualizado 26/11/2013 DOWNLOAD: http://www.4shared.com/rar/VaQnQ718/Outlands_26112013.html? O 4shared já faz o scan. Outlands Leaf Ghost Psychic Fire (East) Bug Rock Fire (South) Normal Fly Ice Electric Earth Fight Dragon SE GOSTOU, DÁ UM CURTIR E DEIXE SEU COMENTÁRIO Créditos: murluka
    1 ponto
  10. 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
  11. Fiz um script tbm, vou postar pq começei a fazer antes do vod postar o dele. O meu script vai funcionar como um evento. O Gm ordena quando começa e acaba esse evento. Vai em data/creaturescripts/scripts, duplica um arquivo e nomeia para "login_exp" sem as aspas e nele cole: function onLogin(cid) local rate = 2 -- 100% local msg = "Aproveite o evento Doble Exp!" local stor = 13545 -- storage vip if (getGlobalStorageValue(stor) > 0) then doPlayerSetExperienceRate(cid, rate) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, msg) end return TRUE end Em creaturescripts.xml cole a tag: <event type="login" name="Login_Exp" event="script" value="login_exp.lua"/> ------------------------------------------------------------------------------------------------------------ Vai em data/talkactions/scritps e duplica um arquivos, e nomeia para "eventexp" sem as aspas e nele cole: function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if (param == "open") then if (getGlobalStorageValue(13545) > 0) then doPlayerSendTextMessage(cid, 22, "O evento ja esta aberto.") return true end setGlobalStorageValue(13545, 1) doBroadcastMessage("O evento Double Exp esta aberto, todos os player serão kikados após 10 segundos!") addEvent(RemoveAll, 10000, cid) elseif (param == "close") then if (getGlobalStorageValue(13545) <= 0) then doPlayerSendTextMessage(cid, 22, "O evento ja esta feixado.") return true end setGlobalStorageValue(13545, 0) doBroadcastMessage("O evento Double Exp esta feixado, todos os player serão kikados após 10 segundos!") addEvent(RemoveAll, 10000, cid) end return true end function RemoveAll(cid) local online = getOnlinePlayers() for i=1, #online do if (isPlayer(getPlayerByName(online[i]))) then doRemoveCreature(getPlayerByName(online[i])) end end end Em talkaction.xml cole a tag: <talkaction log="yes" access="5" words="eventxp" event="script" value="eventexp.lua"/> Para abrir o evento basta com o gm usar o comando "eventxp open" e para feixar "eventxp close".
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...