Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 08/02/20 em todas áreas
-
PokeAimar (Level System) 8.54 2020 (Com Sources)
GeanPro e um outro reagiu a GamerGoiano por um tópico no fórum
Versão corrigida pelo @Jair Kevick https://mega.nz/file/bkFmDaIZ#dvrsamLjPvCzIhq-OmT8_xAlj97fiy8QUYIApL3csGM Me mandaram esse servidor e eu decidi deixar ele jogável porque muita gente tinha dificuldade em deixar online. Como deixar online: Basta criar um banco de dados com o xampp (use o xampp mais recente), com o nome poketibia e do lado onde está utf, escolhe Agrupamento (Colation) após isso é só importar o banco de dados que ta junto com o servidor. Ai é só abrir o servidor, esperar carregar e depois abrir o cliente e logar Conta god: GOD / 123456 Download: https://www.mediafire.com/file/3atv44omlf3f036/PokeAimar.rar/file Vem com Sources e SPR+Dat Editável Scan: https://www.virustotal.com/gui/file/828a6e443c29221b9cd46f3fffe5f65c63bbb8e8ffc109a4fc91554d9c10e752/detection Créditos: Kaboflow, PDA, Psoul, Pstorm, Gengo, TFS Team, Cipsoft, DxP, PokemasterX. É um mistão de scripts do fórum + scripts próprios, acima listados os responsáveis pela criação do datapack e servidor. Descrição: Level System 100% 1ª e 2ª geração completos Kanto e Ilhas Laranjas 100% Tv System 100% (Techinical Machine) Ensinar Moves pros Pokes 100% Daycare e Egg System 100% Duel System (PVP) 100% Gym System 100% Berries (Plantar, Colher e Usar) 100% Fly, Surf, Ride, Dive e Headbutt 100% Mastery System (Especializar em Elemento) 100% Tournament System 100% Saffari Zone 100% Poke Balls Effects 100% Pokemons na Character List 100% Poke Bar 100% Atravessar seu pokemon 100% Relógio In-Game 100% New Pokedex 100%2 pontos -
[OTC] Modificando seu OTcliente
cowboynordico reagiu a Luga03 por um tópico no fórum
Eai Pesosal, blz? estou atualizando o tópico de como Editar as funções mais basicas do OTC! Vou ensinar a trocar o IP do OTC! Trocar a Resolver o Debug que fica preto ao andar! Resolver o erro que diz que não existe um arquivo dat compatível! Como deixar o OTC com aparencia Transplarente! como o OTP Como Mudar o Nome Que Aparece no Canto Superior do OTC! 1.0- Trocar o IP do OTC Primeiramente, Para Rrocar o IP, Localize o Arquivo "Cliente/Module/Cliente_entergame/Entergame.lua" Abra o Arquivo entergame.lua Procure Por: "setUniqueServer" Ai vai ter algo parecido com isto: "EnterGame.setUniqueServer('127.0.0.1', 7171, 854, 270, 210)" Ai o "127.0.0.1" Troque Pelo Seu IP! Agora o OTC esta Entrando Normalmente no seu OTserv! 2.0- Trocar os Arquivos .spr e .dat pelos seus! Vá em data/things/854 Ai Vai ter Dois Arquivos .spr e .dat, Remova eles e troque Pelo Seu! Pronto, Cliente com as Sprites do Seu Servidor! 3.0- Resolver Erro de Arquivo Dat Não Compatível! Existem Duas Soluções! 3.1- A Primeira Solução: Se seus Arquivos .dat e .spr não forem EXTENDIDO, você pode EXTENDER ele, Segue o Tutorial ao Lado >> http://www.tibiaking...ite-de-sprites/<< 3.2- A Segunda Solução: Vá em Cliente\modules\game_things e Abre o Arquivo Things.lua Procure Por: "g_game.enableFeature(GameSpritesU32)" Se seu cliente For EXTENDIDO não mexa em nada! Mas se seu Cliente Não for Extendido Substitua: "g_game.enableFeature(GameSpritesU32)" Por: "--g_game.enableFeature(GameSpritesU32)" 4.0- Para deixar o OTC por padrão com Forma Transplarente Igual ao OTP! Abrir o Arquivo: "modules\game_interface\gameinterface.lua" Procure Por "setupViewMode(0)" obs: Pode ter Até 3 deste! Substitua todos Por "setupViewMode(2)" 5.0- Como Mudar o Nome Que Aparece no Canto Superior do OTC! Vá em modules\client Abra o Arquivo Client.lua e Procure Por: "g_window.setTitle" Vai Tar Algo Mais ou Menos Como Isto: "g_window.setTitle('OTclient')" Oque esta dentro da Aspas na Tag, substitua pelo Nome desejado! ex: "g_window.setTitle('OTclient1000000')" Pronto, Este Tutorial Já Ajudou Muita Gente e Agora Vai Ajudar a Muito mais! Atualizei o Tópico, com Mais Informações, Removi as Imagens Por Deixarem o Tópico com Poluição Visual e Reformulei Todo o Resto do Tópico! Créditos Summer Slyer(Zet0N0Murmurou) Pelo Tutorial! GabrielSapient Por Me Ensinar a Deixar o OTC Transplarente Como o OTP! Wend Por Me Ensinar a Mudar o Nome!1 ponto -
Corrigido, só não está com a correção que você fez no nome da pasta data. catch system.lua1 ponto
-
PokeAimar (Level System) 8.54 2020 (Com Sources)
GamerGoiano reagiu a becertified por um tópico no fórum
1 ponto -
Aqui está todas as funções relacionadas a statistics do meu OT, ve se funciona. Se ainda der erro deve ser algo na sua source sei lá, pq aqui ta perfeito. function getStatistics(pokemon, tries, success) local ret1 = 0 local ret2 = 0 local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret1 = 0 else ret1 = num end arq:close() local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret2 = 0 else ret2 = num end arq:close() if tries == true and success == true then return ret1, ret2 elseif tries == true then return ret1 else return ret2 end end function doIncreaseStatistics(pokemon, tries, success) local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" if tries == true then local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end if success == true then local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end end function doUpdateGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "NUMBER NAME TRIES / CATCHES\n\n" local str = "" for a = 1, 251 do if string.len(oldpokedex[a][1]) <= 7 then str = "\t" else str = "" end local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."]\t"..oldpokedex[a][1].."\t"..str..""..number1.." / "..number2.."\n" end local arq = io.open(dir, "w") arq:write(base) arq:close() end function getGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "Number/Name/Tries/Catches\n\n" local str = "" for a = 1, 251 do local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."] "..oldpokedex[a][1].." "..str..""..number1.." / "..number2.."\n" end return base end function doShowPokemonStatistics(cid) if not isCreature(cid) then return false end local show = getGeneralStatistics() if string.len(show) > 8192 then print("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.") doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.") return false end doShowTextDialog(cid, math.random(2391, 2394), show) end1 ponto
-
local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "r+") --<<<<<<<<<<<<<<<1 ponto
-
abra datapack/lib/some functions.lua e adiciona isso la em cima happinessRate = { [5] = {rate = 1.5, effect = 183, n = getConfigValue(PokemonStageVeryHappy)}, [4] = {rate = 1.2, effect = 170, n = getConfigValue(PokemonStageHappy)}, [3] = {rate = 1.0, effect = 182, n = getConfigValue(PokemonStageOK)}, [2] = {rate = 0.7, effect = 169, n = getConfigValue(PokemonStageSad)}, [1] = {rate = 0.4, effect = 168, n = getConfigValue(PokemonStageMad)} }1 ponto
-
Salve, éks!! Uma parte da comunidade me conhece, e a um tempo estou afastado de quaisquer atividades relacionadas a tibia e derivados, porém tenho meu servidor de pokemon, que cheguei inclusive a abrir um beta.. E que me rendeu bons frutos, com muitos players e os poucos problemas q apareceram foram momentaneamente corrigidos. Porém, dias atrás, e muito por conta da quarentena, me peguei jogando novamente um servidor pokemon (não precisa dar nomes), e vi que ainda tinha um grande público.. E ai fui até meu pen drive, joguei meu servidor pro pc, e fui só rever como estava, e me senti apaixonado novamente pelo que eu desenvolvi, do 0, obviamente com ajuda de alguns amigos, Gui Coruja e Alexandre Lorenzon (Lorezon o melhor mapper que já conheci!!), dois fudidos (no melhor dos sentidos), com qualidades incríveis, mas que com o tempo fomos perdendo o foco inicial que era a abertura do jogo, e querendo criar mais, criar mais, oq resultava em um jogo "nunca" pronto.. Mas, deixarei algumas fotos, a página do facebook, e o changelog do game, e gostaria de avaliações.. se vale a pena ir em frente e dar continuidade, pq basicamente é por online.. é um jogo, q ao meu ver está magnifico e com características únicas, oq é essencial para um servidor ter futuro, obviamente, sprites, ou coisas parecidas, se vê e muito porai, quase que frequentemente; Porém em sistemas e jogabilidade, são detalhes muito únicos. Fiquem com algumas imagens, aguardo comentários.. se possível.. abraços!! O servidor conta apenas com primeira geração e TODOS com suas versões shiny, no seguimento de um servidor baseado em shinys/megas. Change Log: IMAGENS... A ULTIMA IMG É A VERSÃO ATUAL DO CLIENT.1 ponto
-
Quest Log em Janela
fearwar reagiu a Yan Oliveira por um tópico no fórum
Olá amigos do Xtibia, venho trazer um tutorial simples, mas interessante, que exibe uma caixa de diálogo com texto contendo todas as quests do seu servidor. Atenção: Testado somente em TFS 0.3/0.4 Vamos lá! Vá em Data/Talkactions/Scripts e crie um arquivo.lua chamado quest_log.lua e adicione o script: ---------------- QUEST LOG BY YAN18 ----------------- -- NOME DA QUEST NO ÍNDICE, O NÍVEL E STORAGE NO VALOR -- local quests = { ["Cerulean City"] = {level = 30, storage = 32500}, ["Fire Stone"] = {level = 50, storage = 32501}, ["Boost Machine"] = {level = 100, storage = 32502} } function onSay(cid, words, param) local quest_completada = "- Quests completadas: \n\n" local quest_incompleta = "\n- Quests não completadas: \n\n" for i, _ in pairs (quests) do if (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) < 1) then quest_incompleta = quest_incompleta .. "* " ..i.. " - Nível: " ..quests[i].level.. " \n" elseif (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) >= 1) then quest_completada = quest_completada .."* " ..i.. " - Nível: " ..quests[i].level.. " \n" end end if quest_completada == "- Quests completadas: \n\n" then quest_completada = quest_completada .. " Nenhuma quest foi completada ainda. \n\n" elseif quest_incompleta == "\n- Quests não completadas: \n\n" then quest_incompleta = quest_incompleta .. " Todas as quests foram completadas." end local quest = quest_completada .. quest_incompleta return doShowTextDialog(cid, 1811, quest) end Agora abra o talkactions.xml que fica em Data/Talkactions/talkctions.xml e adicione a tag: <talkaction words="!quest" event="script" value="quest_log.lua"/> Deixei o comando !quest ali em words na tag xml, mas você pode colocar outro comando de sua preferência. Explicação: Adicione todas as quests do servidor na tabela quests, colocando o nome dela como índice, o level e storage (preste bem atenção para colocar a storage correta) como valores. Em caso de dúvidas, só seguir o exemplo que fiz. Também fiz verificação para ver se todas as quests do jogo (que você colocar na tabela) foram feitas ou não, e também fiz verificação de nível do jogador por quest, ou seja, os jogadores só verão as quests que eles tem nível para fazer. De resto não tem muito o que mexer, só se quiser reduzir ou aumentar a quantidade de espaço entre as linhas, mas ai é da preferência de cada um. Caso queira retirar a verificação de nível do jogador (pare verem todas as quests) só mudar isso: for i, _ in pairs (quests) do if (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) < 1) then quest_incompleta = quest_incompleta .. "* " ..i.. " - Nível: " ..quests[i].level.. " \n" elseif (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) > 1) quest_completada = quest_completada .."* " ..i.. " - Nível: " ..quests[i].level.. " \n" end end Para isso: for i, _ in pairs (quests) do if getPlayerStorageValue(cid, quests[i].storage) < 1 then quest_incompleta = quest_incompleta .. "* " ..i.. " - Nível: " ..quests[i].level.. " \n" else quest_completada = quest_completada .."* " ..i.. " - Nível: " ..quests[i].level.. " \n" end end Se fizer tudo corretamente, é para aparecer essa janela com as informações e nível da(s) quest(s): Essa janela é criada na função doShowTextDialog, e o segundo parâmetro dela é um item que aparece como ícone, geralmente deixam 0 (e recomendo deixar 0 como padrão), mas tem base que o id do item 0 aparece como algum item do jogo (as vezes montanhas ou outros itens de ambiente), então deixei um blackboard, até para ficar mais coerente hehe. Você também pode criar um item para representar essa janela, mas vai da preferência e criatividade de cada um. Se você tiver source, pode até criar uma janela com título de "Quests" para ficar mais bonito a interface, mas vai de cada um. OBS: Em alguns servidores pode ser que dê crash na distro por conta do item passado no segundo parâmetro da função doShowTextDialog(cid, id_item, texto), precisa ficar atento nisso. Qualquer dúvida só perguntar! Abraços e fiquem com Deus!1 ponto -
Para que serve as sources e qual a utilidade de compilar elas?
duduprec reagiu a Developer Berg por uma questão
olá, bom dia as sources são os códigos fontes do seu game. vamos dizer que é onde a mágica toda acontece, pra ficar mais fácil vou usar uma metáfora: as sources é como o cérebro do seu game, o servidor como o map, pasta de monsters, libs, spells digamos que seria o corpo do seu game. sem o cérebro o corpo se torna apenas uma carcaça vazia sem vida, e sem o corpo o cérebro se torna infuncional. as sources é onde ele faz a leitura dessas pastas que citei a cima, ela ler o mapa, os monstros, tudo, lá tem um arquivo com o nome creatures.cpp, lá contem comandos para dizer o life dos monstros, se ele deve atacar, se ele deve andar. sabe aquele arquivo .exe que vc executa para iniciar o servidor ? quando vc compila gera aquele arquivo, sem ele vc n tem como rodar seu servidor. um Otserver é composto por 2 partes, o Back-end que é a parte do servidor, e o Front-end que é a parte de imagens que é o OTClient ou o OldClient, e dessas 2 partes sai mais 2 partes que são as sources de cada 1, ou seja, o servidor possui uma source e o Client também possui uma source. quer fazer o game de sucesso ? aprenda a programar, vá com calma, aprenda primeiro sobre linguagens de programação, depois a lógica da programação, aprenda a usar um (if, else, for, while, switch, try), aprenda o que são variáveis, depois que aprender a lógica da programação, corra atrás de aprender POO ( programação orientada o objetos), porque o game é desenvolvido todo em Orientação A Objetos. se você souber programar, você desenvolve um ótimo Otserver. se você gostar da área de desenvolvedor, recomendo fazer uma graduação de TI.1 ponto -
item que da doublee hit
Senju uchira reagiu a xugrude456 por uma questão
oiee queria um item que da double hit, e quando sai esse double hit sai a fala !DOUBLE HIT obrigado quem ajuda dou REP++1 ponto