Ir para conteúdo
  • Cadastre-se

OTClient [OTCV8] Aumentar altura do nome e barra de vida no OTClient V8


Posts Recomendados

Eu tava com uma dificuldade, e no grupo do Discord Academia de Programação um usuário o Anyone, me passou este código e estou compartilhando com vocês.

Ele levanta o nome e barra de hp do jogador e monstros, ja que hoje muitos usam outfits com 64px e o nome fica no rosto do boneco.
 

Vamos a explicação:
Primeiro, na pasta do OTClient, procure a pasta Modules e cole a pasta "game_creatureinformation" dentro.feito isso abra e lá terá 2 scripts.
"game_creatureinformation.lua"
"game_creatureinformation.otmod"
Você vai fazer as alterações em "game_creatureinformation.lua"
Aconselho usar o notepadc++ q vc pode baixar pesquisando no google.
Nesta parte, você configura outfits individualmente, que seriam as maiores. onde [583] é o ID da outfit, no X você move o nome para a esquerda, e Y você move o nome para cima, quanto maior o numero, mais ele avança. Configure de acordo com cada outfit.
 Basta copiar um trecho semelhante a esse, colar acima ou abaixo e fazer as modificações.

OBS: a ultima linha não deve ter a virgula depois da chave "}"
Reparem que no final do script está assim "}," na ultima linha no script completo, observe que está assim "}" sem a vircula.

    [583] = {
        [North] = {x = -58, y = -55},
        [East] = {x = -58, y = -55},
        [South] = {x = -58, y = -55},
        [West] = {x = -58, y = -55},
    },

 

Esta parte, é a configuração padrão da outfit, no caso que afeta a todas que não estão na lista acima.
Então caso suas outfits não tenham o padrao 32px. vc levanta um pouco a altura padrao nessa parte.

local function getOutfitInformationOffset(outfit, dir)
    if OutfitOffsets[outfit] then
        return OutfitOffsets[outfit][translateDir(dir)]
    end
    return {x = -0, y = -2}
end

 

Imagens:
image.png.2708149222e357599be4014ee51fc769.png

image.png.5035766ceabddd28d739a5d77f69c6d7.png

image.png.3ded92e37cab440b8af6ee7fe04e98db.png

 

Scan: game_creatureinformation.zip
VirusTotal - File - 5db7b482095990efad17e285581f1622b12d9921a79db7907f834e78a39ab098

 

game_creatureinformation.zip

Editado por koyotestark (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

in mehah OT client +2.8 .

 

the user need to modify c++

 

 

[1/3] src\client\creature.cpp

 

 

in void

 

void Creature::drawInformation(const MapPosInfo& mapRect, const Point& dest, bool useGray, int drawFlags)

 

modify

L 237

    auto backgroundRect = Rect(p.x - (13.5), p.y - cropSizeBackGround, 27, 4);

for

    auto backgroundRect = Rect(p.x + m_informationOffset.x - (13.5), p.y + m_informationOffset.y - cropSizeBackGround, 27, 4);

 

 

--------------------

modify

L 240

 

    auto textRect = Rect(p.x - nameSize.width() / 2.0, p.y - cropSizeText, nameSize);

for

 

    auto textRect = Rect(p.x + m_informationOffset.x - nameSize.width() / 2.0, p.y + m_informationOffset.y - cropSizeText, nameSize);


-----------------------------------------

 

In 

L 663

void Creature::setDirection(Otc::Direction direction)

 

ADD

 

   callLuaField("onDirectionChange", m_direction, direction);

 

under of

 

void Creature::setDirection(Otc::Direction direction)
{
    assert(direction != Otc::InvalidDirection);

 

 

 

 

[2/3] src\client\creature.h

L 260

 

under of 

    Position m_lastStepFromPosition;
    Position m_lastStepToPosition;
    Position m_oldPosition;

ADD

   Point m_informationOffset;

 

 

 

[3/3] src\client\luafunctions.cpp

L 525

under of

 

    g_lua.bindClassMemberFunction<Creature>("setDrawOutfitColor", &Creature::setDrawOutfitColor);
    g_lua.bindClassMemberFunction<Creature>("setDisableWalkAnimation", &Creature::setDisableWalkAnimation);
    g_lua.bindClassMemberFunction<Creature>("isDisabledWalkAnimation", &Creature::isDisabledWalkAnimation);

 

 

ADD

 

    g_lua.bindClassMemberFunction<Creature>("setInformationOffset", &Creature::setInformationOffset);
    g_lua.bindClassMemberFunction<Creature>("getInformationOffset", &Creature::getInformationOffset);

 

Editado por bonvallet (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por maikon1993
      Fala galerinha de boas ?
       
      Preciso de ajuda, preciso de um macro para otcV8, que faça um item dar use no outro.
      Exemplo: Tem um item no servidor "spellswand" e ela é usada para vender item, dando "use" nela e no item que quer vender, queria deixar isso automático, se alguém poder me ajudar agradeço.
    • Por AddroJhonny
      Andei buscando de tudo que é forma para que o minimap fique com a imagem já liberada, assim como é no PxG. Porém, não encontrei em nenhum lugar alguma instrução. Comecei a mexer no arquivo minimap.lua e consegui avançar em algo.
       
      Meu script ficou assim:
      function updateCameraPosition() local player = g_game.getLocalPlayer() if not player then return end local pos = player:getPosition() if not pos then return end if not minimapWidget:recursiveGetChildById('posLabel') then local minimap = g_ui.createWidget('Minimap', minimapWidget) minimapWidget:setImageSource('/mapa/pisos/piso1') minimapWidget:setId('posLabel') minimapWidget:setOpacity(0.3) minimapWidget:centerInPosition(map, {x = 1015, y=1012, z=7}) end if not minimapWidget:isDragging() then if not fullmapView then minimapWidget:setCameraPosition(player:getPosition()) end minimapWidget:setCrossPosition(player:getPosition()) end minimapPos = minimapWindow:recursiveGetChildById('posLabel') minimapPos:setText('X:'..pos.x..' Y:'..pos.y..' Z:'..pos.z) if minimapWidget:getCameraPosition().z ~= 7 then local minimap = minimapWidget:recursiveGetChildById('posLabel') minimap:setVisible(false) minimapWidget:setColor('black') end end  
      Agora a imagem realmente está aparecendo no minimap com transparência... e quase perfeito. Mas ainda falta conseguir fazer ela acompanhar a posição do player no lugar de ficar aberto por inteiro.
       
      Segue como ficou:
       

       
      Alguém consegue ajudar a melhor maneira de fazer isso? Ou se fiz errado também...
       
      Ty.
    • Por brunei
      Olá galera bom dia , boa tarde e boa noite a todos !
      venho trazer meu primeiro projeto para contribuir com o TK , se trata de um modulo bastante util 
      como é minha primeira vez trazendo algo aqui , talvez eu esqueça de algo , sem enrolação vamos la.

      o modulo é um Shiny Ditto Memory para PDA ,o melhor é que nao precisa de source e é bem simples de instalar !

      1° ponto - Adicionar o memory sistem por TalkAction do @zipter98 (fiz algumas correçoes e melhorias no script para funcionar de uma melhor forma com o modulo)

      em Talkactions.xml adicione a tag :  <talkaction words="/memory;!memory" event="script" value="sdittomemory.lua"/>
       
      2° - Em talkaction/script ,crie um arquivo sdittomemory.lua e cole esse script : 
       
      em : local cd = 2 (em segundos) mude para o numero que desejar como cooldown para efetuar a troca .
      Para efetuar a troca o pokemon precisa esta com os Moves 100% ,caso contrario ira mandar uma mensagem de bloqueio.
       

      3° - em somefunctions.lua adicione essas funçoes !

       
      tem umas correções q eu mesmo fiz no ditto system e shiny ditto system ,e é necessario pro modulo funcionar 100% .

      4° - extraia e adicione o arquivo na pasta Modulos do seu OTClient !

      pronto , com isso vai funcionar o modulo 
       

       
      1 - no icone salvar , vc consegue salvar o pokemon que o ditto esta transformado em cada slot (pokebola) e reverter o ditto.
      2 - no icone check , vc consegue remover uma memoria ou checar quais memorias o seu ditto esta usando.
      3 - e no icone transformar vc transforma em cada memoria salva no s.ditto e tbm consegue reverter para virar um pokemon novo sem usar a memori etc..

      entao é isso galera , espero que seja util .

      CREDITOS :
      @zipter98 
      @usoparagames Eu
      game_memory.rar
    • Por Gryffindori
      Já procurei à fundo mas não achei nada resolvido sobre isso, sempre que vou compilar acaba dando o erro. Alguém tem alguma solução?
       
      Problema - > . C2139 'OTMLNode': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to' (compiling source file ..\src\client\localplayer.cpp) type_traits 325
       

    • Por JulianoZN
      Mobile Modificado sem arquivos data/modules etc
      >> o mesmo ja conta com o sistema de rotação de tela
      scan// https://www.virustotal.com/gui/file/596ea29e221af84af5771c94b6160531f681975f8727410060e2d474cd0ab679/detection

      --> Com extensão de tela sem bordas preta requer extensão de tela para mobile
      > http:// https://www.mediafire.com/file/jumo15q39gc9n4d/liberado+extendido.apk/file

      29/2 > 14
      17/2 > 8
       
      Possui cor nos nome procurando as tag \/ no nick do player
      0 [ADM], [GOD], [GM], [CM], [Tutor], [Help], [YT], [Youtuber]
       
      Cor nos nome dos monstro que possuir genero

      Male > Azul 
      Female > Rosa
      Indefinido > Amarelo

      --> Sem Extenção de tela Bordas Preta
      > https://www.mediafire.com/file/fnzhwciwws1om26/liberado.apk/file

      padrao do tibia 
      8
      6
       
      Possui cor nos nome procurando as tag \/ no nick do player
      0 [ADM], [GOD], [GM], [CM], [Tutor], [Help], [YT], [Youtuber]
       
      Cor nos nome dos monstro que possuir genero
      Male > Azul 
      Female > Rosa
      Indefinido > Amarelo
       

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo