Ir para conteúdo
Banner com Efeitos

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 06/16/19 em todas áreas

  1. Creature Information Offset

    Standard reagiu a Snowsz por uma resposta no tópico

    1 ponto
    Faz tempo que não posto nada, então deu vontade, tava brincando um pouco ai fiz esse sisteminha básico. • Gifs Nesse primeiro Gif, ao trocar a direção da Outfit, o nome e as barras de informações como Health, Mana, mudam de posição, isso é bom para ajustar as Outfits de acordo com o seu tamanho, como o Demon, ficar com as informações logo em cima da cabeça, ou Hydra, todos estão com o local padrão. Aqui era como as informações ficavam com essa Outfit originalmente, no padrão de sempre dos clients. Comparativo em imagem estática: Tibia Outfit antes e depois: Aqui estão algumas outfits que meu primo @Fae1z fez, apliquei o sistema de offset nelas, uma do Graves, uma do Ekko, ambos são personagens do game League of Legends, e uma baseada Uganda Knuckle: Ekko antes: Ekko depois: Graves antes e depois: Uganda Knuckle antes e depois: Aqui eu estava brincando de por as informações da Outfit de anão de modo drogado kkk. • Código Em Creature.h modifique nesta linha: void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point". Ficando: void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags) Embaixo de: std::string getName() { return m_name; } Adicione: Point getInformationOffset() { return m_informationOffset; } void setInformationOffset(int x, int y) { m_informationOffset.x = x; m_informationOffset.y = y; } Embaixo de: Position m_oldPosition; Adicione: Point m_informationOffset; Agora, em Creature.cpp procure por: void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point". Ficando: void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags) Sim, isso está repetido, é assim mesmo, o processo é necessário em Creature.h e Creature.cpp, nessa função a variável point tem seu tipo alterado de Const para normal. Ainda em Creature.cpp procure por: if(!useGray) fillColor = m_informationColor; Pule duas linhas e adicione: point.x += m_informationOffset.x; point.y += m_informationOffset.y; Agora, em Luafunctions.cpp procure por: g_lua.bindClassMemberFunction<Creature>("jump", &Creature::jump); Embaixo adicione: g_lua.bindClassMemberFunction<Creature>("setInformationOffset", &Creature::setInformationOffset); g_lua.bindClassMemberFunction<Creature>("getInformationOffset", &Creature::getInformationOffset); A parte da source é só isso. Foi criada uma variável do tipo Point na classe Creature, que pode armazenar dois valores do tipo Int, sendo eles X & Y, assim detendo uma posição de offset, para ajustar a posição das informações(Health Bar, Mana Bar e Name) da criatura, essa variável é usada na função Creature::drawInformation, onde ocorre todo o desenho de informações das criaturas, lá o offset criado altera a posição de um Point usado como posição base das informações, alterando esse Point todo o resto segue aquela posição, você pode setar o offset diretamente na criatura, as funções podem ser usadas tanto na source usando C++ quanto nos scripts usando Lua, em Lua o uso das funções é o seguinte: Essa função retorna uma tabela com X & Y, algo como "table = {x = 10, y = 20}", são as posições do offset. Creature:getInformationOffset() Exemplo de uso: local Offset = Creature:getInformationOffset() print(Offset.x) print(Offset.y) Isso vai printar no client_terminal do OTClient os valores de X & Y. Enquanto esta altera as posições usando os valores X & Y. Creature:setInformationOffset(x, y) Exemplo: Creature:setInformationOffset(10, -5) Essa configuração de offset vai aumentar X em 10 Pixels e diminuir Y em 5 Pixels, no meu primeiro gif, na direção Sul do Char, eu usei X diminuindo 13 Pixels e Y diminuindo 8 Pixels, algo como isso: Creature:setInformationOffset(-13, -8) Para tudo isso funcionar igual os gifs acima eu fiz um módulo especial, onde dependendo da Outfit e da direção que a criatura está olhando, ele vai alterar o offset de acordo. Para criar o módulo, siga estes passos: Na pasta do OTClient em modules/ crie uma pasta chamada game_creatureinformation, dentro crie um arquivo com o mesmo nome e a extensão .otmod, algo como "game_creatureinformation.otmod", o conteúdo do arquivo é este: Module name: game_creatureinformation description: Changes the position of the informations point to correctly draw names and creature bars. author: Snowsz website: tibiaking.com autoload: true reloadable: true sandboxed: true version: 1.0 scripts: [ game_creatureinformation ] @onLoad: init() @onUnload: terminate() Crie um arquivo com o mesmo nome e a extensão .lua, algo como "game_creatureinformation.lua", o conteúdo do arquivo é este: --[[ Directions: North /\ East > South \/ West < Structure: [OutfitID] = { [Direction] = {x = OFFSETX, y = OFFSETY}, } ]] --Lista de offsets para cada Outfit. local OutfitOffsets = { [143] = { --Outfit do primeiro gif [North] = {x = -13, y = -8}, [East] = {x = -17, y = -8}, [South] = {x = -13, y = -8}, [West] = {x = -15, y = -8}, }, [160] = { --Outfit de anão com o nome full drogado. [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = -13, y = -80}, [West] = {x = 0, y = 0}, } } local function translateDir(dir) if dir == NorthEast or dir == SouthEast then return East elseif dir == NorthWest or dir == SouthWest then return West end return dir end local function getOutfitInformationOffset(outfit, dir) if OutfitOffsets[outfit] then return OutfitOffsets[outfit][translateDir(dir)] end return {x = 0, y = 0} end local function onCreatureAppear(creature) local Offset = getOutfitInformationOffset(creature:getOutfit().type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureDirectionChange(creature, oldDirection, newDirection) local Offset = getOutfitInformationOffset(creature:getOutfit().type, newDirection) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureOutfitChange(creature, newOutfit, oldOutfit) local Offset = getOutfitInformationOffset(newOutfit.type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end function init() connect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) connect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end function terminate() disconnect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) disconnect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end A parte do módulo está finalizada, o que resta agora é configurar as Outfits na tabela com seus determinados Offsets, e não se preocupe, se a outfit não estiver configurada, ela vai seguir o padrão normal, o módulo só altera algo quando determinada Outfit está configurada. Para configurar o módulo é simples, basta seguir o padrão: [ID DA OUTFIT AQUI] = { [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = 0, y = 0}, [West] = {x = -0, y = 0}, }, Nos primeiros colchetes coloque o ID da sua Outfit para ter o offset modificado, os colchetes restantes são as direções, não é necessário mexer neles, dentro de cada índice da tabela tem os offsets X & Y, basta modificar o valor de acordo, sendo ele positivo ou negativo. NÃO SE ESQUEÇA DA VÍRGULA NO FINAL "},".
  2. Lothus Online™ - Project RPG

    ADM Mayk on BaiakME reagiu a Huni por uma resposta no tópico

    1 ponto
    Última Atualização: 18/06/2019, 02:07 BRT OBS: Esse é apenas um resumo do Lothus Online! [+] O Projeto Por conta de alguns acontecimentos, a equipe decidiu modificar o nome de World of Tibia para Lothus. Facebook do projeto: https://www.facebook.com/LothusOnline O projeto foi iniciado á 6 meses, Lothus Online conta com 2 integrantes e será baseado no mundo de Azeroth. E estaremos trazendo esse mundo fantástico e misterioso para os tibianos. Meu objetivo é criar um novo estilo de jogo, com sistema de PVP competitivo: Battleground e Arena e PVE: Dungeon e Raid. A primeira versão do jogo será simples, e ao longo da história e dos acontecimentos de Azeroth, o mundo ganhará conteúdos novos. A Origem dos Mundos Ninguém sabe exatamente como o universo começou. Alguns teorizam que uma explosão cósmica catastrófica espalhou as jóias do infinito nos mundos na imensidão da Grande Escuridão – mundos que um dia teriam formas de vida maravilhosas e fofas. Outros acreditam que o universo foi criado por uma única entidade todo-poderosa. Embora as origens exatas do universo caótico permaneçam incertas, está claro que uma raça de seres poderosos surgiu para trazer estabilidade a esses vários mundos e assegurar um futuro seguro para os seres que seguissem seus passos. Os titãs, deuses colossais que tinham a pele metálica, dos cantos distantes do cosmo, exploraram o universo recém nascido e se fixaram nos planos encontrados para trabalhar nele. Eles moldaram os mundos elevando imponentes montanhas e cavando vastos oceanos. Espiraram céus e criaram atmosferas. Tudo partindo de um plano, criar ordem a partir do caos. Eles deram poder a raças primitivas para cuidar e manter a integridade dos seus respectivos planos. Comandado pela elite conhecida como o Panteão, os titãs trouxeram ordem a cem milhões de mundos espalhados ao longo da Grande Escuridão do Além, durante os primeiros anos de criação. O benevolente Panteão que buscava proteger estes mundos estruturados, sempre estava vigilante contra a ameaça de ataque das entidades extra-dimensionais vis da Espiral Etérea. O Caos Inferior, uma dimensão etérea de magias caóticas que conectada a inúmeros mundos do universo, era lar de um número infinito de seres malignos que só buscavam destruir a vida e devorar as energias vivas do universo. Incapazes de conceber o mal em qualquer forma, os titãs tentaram achar um modo de terminar com a constante ameaça dos demônios. Facções: Alliance As nobres raças da aliança estão unidas por altivas tradições de nobreza, honra, fé, justiça e sacrifício. Os muito povos dessa facção contribuem com sabedoria técnica arcana e espiritual para alcançar um mundo pacifico e justo. Horde As altivas nações da horda estão unida por uma frágil aliança de convivência de um mundo hostil que buscava destruí-las. Determinadas, ferozes e as vezes monstruosas, a horda valoriza a força e a honra, mas luta para manter agressividade sob controle. [-] Mapa O mundo de Azeroth é a terra natal de várias raças, as mais notáveis sendo os elfos (elfos da Noite, elfos Nobres, elfos de Sangue e outros), humanos, anões, taurinos, goblins, trolls, gnomos e dragões. [-] Sistema Profissão – Profissões de produção: Encatamento: Encantar Itens (dando ML, resistência, etc) Ferraria: Criar itens com ataque e armadura mais fortes Alquimia: Criar poções mais fortes (Buffs, regeneração mais alto, etc) – Profissões de coleta: Herborismo: Coletar Plantas (Alquimia) Mineração: Coletar Minérios (Ferreiro) Destruição de equipamentos: Coletar magia dos itens (Encatamento) [-] Equipe Como a primeira versão será MVP, preciso de uma Equipe dedicada (não precisa ser profissional e sim força de vontade, querer aprender , ter ideias bacana, e querer inovar sempre e ter disciplina). Sou Mapper e mexo com mapa já tem 8 anos. E nossas vagas disponíveis: Scripter Spriter Designer Mapper Para se inscrever, é só me add no discord: Marcelo Weis#1024
  3. Lothus Online™ - Project RPG

    ADM Mayk on BaiakME reagiu a Huni por uma resposta no tópico

    1 ponto
    Obrigado a todos pelo apoio, o projeto está caminhando muito bem e em breve estarei fazendo um canal no youtube e página no facebook para vocês acompanharem todo o desenvolvimento. Ainda temos vaga disponível para programador, spriter e designer! Contato está no tópico.
  4. [OLD] Como mudar o ip do seu client 8.54 e 8.60

    LeoTK reagiu a Weddson por uma resposta no tópico

    1 ponto
    Olá este é meu primeiro tópico, então pode ter muita coisa errada Bem muita gente esta tendo problema em relação a mudança de IP dos clients já que o vapus não esta funcionando mais então resolvi criar este tópico aqui, Só testei esses métodos nos clients 8.54 e 8.60 acredito que o do 8.60 funcione em sua versões posteriores e o 8.54 nas suas versões anteriores. Programa necessário: Notepadd++ Acredito que todos já tenham notado que cada client tem modificações em relação de ip essas diferenças podem ser vistas nos codigos, vamos começar pelo client 8.54. No 8.54 ao procurar por "Bad Add" encontraremos o "Bad address." onde indo um pouco para direita na segunda linha abaixo temos o ip do client, a frente deste IP teremos valores NULL somando cada letra deste IP junto aos valores NULL você ira perceber que o temos 20 caracteres, colocaremos nosso ip ali retirando ou adicionando valores NULL para ficar no total de 20 caracteres. Para adicionar você irá perceber que não podemos simplesmente copiar e colocar o valor NULL, então para adicionar iremos digitar AAA= selecionar o mesmo e ir na aba Plugins>MIME TOOLS>Base 64Decode, isso ira adicionar 2 valores NULL para adicionar 3 devesse digitar AAAA. Após isso é só salvar e pronto seu client 8.54 está pronto. Agora o client 8.60, este é mais "complicado", Este eu peguei um client qualquer de tibia com o ip original Dowload caso necessite: Tibia 8.60 Agora vamos para o mesmo esquema porem agora pesquisaremos por "tibia05.cipsoft.com", e iremos substituir o este IP pelo nosso e adicionar os valores NULL como no 8.54 substituiremos os seguintes IPS tibia05.cipsoft.com tibia04.cipsoft.com tibia03.cipsoft.com tibia02.cipsoft.com tibia01.cipsoft.com login05.tibia.com login04.tibia.com login03.tibia.com login02.tibia.com login01.tibia.com Porém sobretudo e não menos importante no IP login01.tibia.com você perceberá que o valor de NULL's em sua soma com o IP é maior que 20 pois temos 7 NULL's vamos considerar destes apenas 3 ignore os outros. na frente deste ultimo IP nos temos uma enorme sequencia de números: 124710459426827943004376449897985582167801707960697037164044904862948569380850421396904597686953877022394604239428185498284169068581802277612081027966724336319448537811441719076484340922854929273517308661370727105382899118999403808045846444647284499123164879035103627004668521005328367415259939915284902061793 Substitua por: 109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413 Salve o client, pronto agora você tem seu client 8.60. Espero ter ajudado.
  5. (Resolvido)Npc que troca item por vida e mana

    Maniaco reagiu a Agaka por uma resposta no tópico

    1 ponto
    @Maniaco Me desculpe se esqueci de alguma verificação hahaha. Npc.lua Npc.xml
  6. É porque ele tá entrando na primeira condição, do flag. Caso seja tfs 1.3, deixe seu código atualizo com as funções da versão atual, ficando desta forma: function onSay(player, words, param) if not (player:hasFlag(PlayerFlag_CanBroadcast)) then return true end print("> " .. player:getName() .. " broadcasted: \"" .. param .. "\".") for _, targetPlayer in ipairs(Game.getPlayers()) do targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST) end return false end Caso não resolva, verifique se sua conta do player que está utilizando o comando tem acesso necessário, experimente colocar type 5. (sua database -> accounts -> conta_escolhida: type 5), desta forma: Caso não queira setar o nível de acesso da conta, pode modificar o script deixando desta forma: local nivel_acesso = 2 -- ID dos GMs nas novas versoes function onSay(player, words, param) if not (player:getGroup():getId() >= nivel_acesso) then return true end print("> " .. player:getName() .. " broadcasted: \"" .. param .. "\".") for _, targetPlayer in ipairs(Game.getPlayers()) do targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST) end return false end Modifique o nível de acesso, no caso tá 2 porque é GM (versão atual 1.3). Caso queira outro ID, modifique ali a variável 'nivel_acesso'.
  7. PVP Mode HELP

    Jhonjhon775 reagiu a vankk por uma resposta no tópico

    1 ponto
    Vá em events/scripts/creature.lua procure pela a função onTargetCombat e adiciona esse código logo abaixo: if self:isPlayer() and target:isPlayer() then if self:hasSecureMode() then return RETURNVALUE_YOUMAYNOTATTACKTHISCREATURE end end Jogadores que atacarem outros jogadores e tiverem no modo secure (sem a mão fechada) não conseguiram atacar outros jogadores.
  8. Lothus Online™ - Project RPG

    Setth reagiu a Huni por uma resposta no tópico

    1 ponto
    Obrigado pessoal pela força, fico feliz que o projeto agradou muita gente
  9. 1 ponto
    Qual versão do client que vocês estão usando?
  10. [Adapta] Look System NTO

    LeoTK reagiu a leozincorsair por uma resposta no tópico

    -1 pontos
    #UP
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo