Ir para conteúdo
PoRaI

Name Displacement

Posts Recomendados

Como tinha dito em outro tópico, estou aqui postando, até pq eu acabei que fiz pra usar em um servidor meu também, rs. De qualquer forma, esse é um código para reposicionar o nome quando uma criatura está com X outfit de forma fácil pelo arquivo OTML. É necessário editar as sources do otclient e compila-lo. 

 

No arquivo thingtype.cpp, adicione abaixo de:

        if(node2->tag() == "opacity")
            m_opacity = node2->value<float>();

isso:

        else if(node2->tag() == "name-displacement")
            m_name_displacement = node2->value<Point>();

No arquivo thingtype.h, adicione acima de:

float getOpacity() { return m_opacity; }

adicione isso:

Point getNameDisplacement() { return m_name_displacement; }

acima de:

float m_opacity;

adicione isso:

Point m_name_displacement;

No arquivo creatures.cpp, troque isso:

    // calculate main rects
    Rect backgroundRect = Rect(point.x-(13.5), point.y, 27, 4);
    backgroundRect.bind(parentRect);

    Size nameSize = m_nameCache.getTextSize();
    Rect textRect = Rect(point.x - nameSize.width() / 2.0, point.y-12, nameSize);
    textRect.bind(parentRect);

por isso:

    // calculate main rects
    const ThingTypePtr& thingType = getThingType();

    Rect backgroundRect = Rect(point.x - (13.5) + thingType->getNameDisplacement().x, point.y + thingType->getNameDisplacement().y, 27, 4);
    backgroundRect.bind(parentRect);

    Size nameSize = m_nameCache.getTextSize();
    Rect textRect = Rect(point.x - (nameSize.width() / 2.0) + thingType->getNameDisplacement().x, point.y - 12 + thingType->getNameDisplacement().y, nameSize);
    textRect.bind(parentRect);

 


Pronto. Para configurar, basta editar o arquivo .otml do seu otclient, exemplo:

creatures
  10
    name-displacement: 2 -12
  11
    name-displacement: 5 10
  12
    name-displacement: -4 3

No caso, alterei a outfit 10 para um displacement no eixo X + 2 e no eixo Y - 12, a outfit 11 para um displacement no eixo X + 5 e no eixo Y + 10 e a outfit 12 para um displacement no eixo X - 4 e no eixo Y + 3. O código foi testado e está funcionando perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 horas atrás, PoRaI disse:

Fica na pasta /data/things/things.otml. Se não tiver o arquivo, crie ele com oq eu postei aqui e edita.

 

Obrigado pela dica Rep+

Aparentemente no meu não funcionou provavelmente eu tenha feito algo errado mas pelo que eu intendo é só por o id da outfit e a position do nome certo ? então, fiz tudo certinho adicionei o código na sources coloquei o otml na pasta things e nada até agora sera que pode me dar uma força nissoScreenshot_1.png.0774d912d04ab74fef39f149d888daf3.png

Please login or register to see this attachment.

Please login or register to see this attachment.

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui tbm ficou do msm jeito, n deu erro nem nada, mas n aconteceu nada tbm, tentei colocar o otml dentro da pasta do 854, e tbm n deu nada, e tentei com ele fora da 854

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, ricardoberg disse:

aqui tbm ficou do msm jeito, n deu erro nem nada, mas n aconteceu nada tbm, tentei colocar o otml dentro da pasta do 854, e tbm n deu nada, e tentei com ele fora da 854

Tem que ser dentro da pasta data/things, não pode ser dentro da pasta da versão.

5 horas atrás, Walox disse:

Obrigado pela dica Rep+

Aparentemente no meu não funcionou provavelmente eu tenha feito algo errado mas pelo que eu intendo é só por o id da outfit e a position do nome certo ? então, fiz tudo certinho adicionei o código na sources coloquei o otml na pasta things e nada até agora sera que pode me dar uma força nisso

Please login or register to see this link.

Please login or register to see this attachment.

Please login or register to see this attachment.

?

Você já tentou usar valores negativos? Valores positivo o nome vai pra baixo, valores negativos, pra cima.
Também recomendo colocar opacidade na outfit pra ver se você tá colocando a outfit certa/sistema funcionando, se a outfit pegar opacidade, só remover. Exemplo:

4MNVVGF.png

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, PoRaI disse:

Tem que ser dentro da pasta data/things, não pode ser dentro da pasta da versão.

Você já tentou usar valores negativos? Valores positivo o nome vai pra baixo, valores negativos, pra cima.
Também recomendo colocar opacidade na outfit pra ver se você tá colocando a outfit certa/sistema funcionando, se a outfit pegar opacidade, só remover. Exemplo:

4MNVVGF.png

Sabe me dizer se tem alguma função para ser adicionada na pasta Game_Things ? 

Eu tinha visto algo relacionado a isso envolvendo esta pasta mas não me lembro onde foi mas vou testar como você me disse logo logo retorno com novidades 

Compartilhar este post


Link para o post
Compartilhar em outros sites
30 minutos atrás, Walox disse:

Sabe me dizer se tem alguma função para ser adicionada na pasta Game_Things ? 

Eu tinha visto algo relacionado a isso envolvendo esta pasta mas não me lembro onde foi mas vou testar como você me disse logo logo retorno com novidades 

Bom, a única coisa que pode ter acontecido é terem desabilitado o suporte de OTML do seu cliente (que vem por padrão no OTC). Vai no arquivo modules/game_things/things.lua e vê se você acha isso lá:

osli8YV.png

load dat, load spr e load otml. Se não tiver o loadOtml, faça o seguinte:
 

abaixo de:

local datPath, sprPath

adicione:

local otmlPath = "/data/things/things"

abaixo de:

if not g_sprites.loadSpr(sprPath) then
    errorMessage = errorMessage .. tr("Unable to load spr file, please place a valid spr in '%s'", sprPath)
end

adicione:

if not g_things.loadOtml(otmlPath) then
    errorMessage = errorMessage .. tr("Unable to load otml file, please place a valid otml in '%s'", otmlPath)
end

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, PoRaI disse:

Bom, a única coisa que pode ter acontecido é terem desabilitado o suporte de OTML do seu cliente (que vem por padrão no OTC). Vai no arquivo modules/game_things/things.lua e vê se você acha isso lá:

osli8YV.png

load dat, load spr e load otml.

é como você avia dito acho que o problema é este  pois não tem ativado, eu só achei estranho pois estou utilizando o cliente do edubart 0.6.6 e não me lembro de ter modificado nada ali 

Please login or register to see this attachment.

Sera que você pode me enviar esta  função ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, Walox disse:

é como você avia dito acho que o problema é este  pois não tem ativado, eu só achei estranho pois estou utilizando o cliente do edubart 0.6.6 e não me lembro de ter modificado nada ali 

Please login or register to see this attachment.

Sera que você pode me enviar esta  função ?

 

a função ta escrita ali tenta copiar kk

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, Gabrieltxu disse:

 

a função ta escrita ali tenta copiar kk

Poo da mou preguiça ficar dando CTRL + TAB toda hora kkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×