Name Displacement
15/6/2018, 10:33
Título: Name Displacement
Descrição: Reposicionar barra de vida de criaturas de acordo com outfit.
Autor: @Porai.
OBS.: Testado em TFS 0.3.6
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:
Isso:
No arquivo thingtype.h, adicione acima de:
Adicione isso:
Acima de:
Adicione isso:
No arquivo creatures.cpp, troque isso:
Por isso:
Pronto. Para configurar, basta editar o arquivo .otml do seu otclient, exemplo:
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.
Descrição: Reposicionar barra de vida de criaturas de acordo com outfit.
Autor: @Porai.
OBS.: Testado em TFS 0.3.6
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:
- Spoiler:
- if(node2->tag() == "opacity")
m_opacity = node2->value();
Isso:
- Spoiler:
- else if(node2->tag() == "name-displacement")
m_name_displacement = node2->value();
No arquivo thingtype.h, adicione acima de:
- Spoiler:
- float getOpacity() { return m_opacity; }
Adicione isso:
- Spoiler:
- Point getNameDisplacement() { return m_name_displacement; }
Acima de:
- Spoiler:
- float m_opacity;
Adicione isso:
- Point m_name_displacement;:
No arquivo creatures.cpp, troque isso:
- Spoiler:
- // 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:
- Spoiler:
- // 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:
- Spoiler:
- 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.
Permissões neste sub-fórum
Não podes responder a tópicos
|
|