Ir para conteúdo
  • 0

[RESOLVIDO] Modificação de um código {Shiny name}


Marcos VMA

Pergunta

Boa tarde a todos, gostaria de uma ajuda de vocês sobre modificar um código que foi disponível nesse fórum (Shiny name na Source OTC)

Qual modificação ? Que esse código meio que funcione para NPC exemplo : Nurse Joy , Nurse Chansey.

Queria que o Nurse vire uma nome como : Enfemeira encima do Chansey ou Joy

Em baixo estará o código de qual estou falando..

 

if (drawFlags & Otc::DrawNames) {
        if (g_painter->getColor() != fillColor)
            g_painter->setColor(fillColor);
 
 
        CachedText shiny;
        shiny.setText("Shiny");
        shiny.setFont(g_fonts.getFont("verdana-11px-rounded"));
        Rect shinyrect = Rect(point.x - shiny.getTextSize().width() / 2.0, point.y - 26, shiny.getTextSize());
        if (m_name.find("Shiny") != std::string::npos)
        {
            char* shinys = "Shiny";
            std::string nname = m_name;
            nname.erase(0, 5);
            m_nameCache.setText(nname);
            m_nameCache.draw(textRect);
            g_painter->setOpacity(0.5);
            g_painter->setColor(Color(255, 255, 0));
            shiny.draw(shinyrect);
            g_painter->resetColor();
            g_painter->resetOpacity();
            m_nameCache.setText(m_name);
        } else {
            m_nameCache.draw(textRect);
        }
    }

Obrigado pela atenção e quem me ajudar.

Editado por Marcos VMA
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 1

substitui seu 

if(drawFlags & Otc::DrawNames) {

completo por esse

Spoiler

if(drawFlags & Otc::DrawNames) {
        if(g_painter->getColor() != fillColor)
            g_painter->setColor(fillColor);
		CachedText shiny;
        shiny.setText("Shiny");
        shiny.setFont(g_fonts.getFont("verdana-11px-rounded"));
        Rect shinyrect = Rect(thingType->getNameDisplacement().x + point.x - shiny.getTextSize().width() / 2.0,thingType->getNameDisplacement().y + point.y - 26, shiny.getTextSize());
		CachedText enfermeira;
        enfermeira.setText("Enfermeira");
        enfermeira.setFont(g_fonts.getFont("verdana-11px-rounded"));
        Rect enfermeiraRect = Rect(thingType->getNameDisplacement().x + point.x - enfermeira.getTextSize().width() / 2.0,thingType->getNameDisplacement().y + point.y - 26, enfermeira.getTextSize());
	   if (m_name.find("Shiny") != std::string::npos)
        {
            std::string nname = m_name;
            nname.erase(0, 5);
            m_nameCache.setText(nname);
            m_nameCache.draw(textRect);
            g_painter->setOpacity(0.5);
            g_painter->setColor(Color(255,255,0));
            shiny.draw(shinyrect);
            g_painter->resetColor();
            g_painter->resetOpacity();
            m_nameCache.setText(m_name);
		}
        else if (m_name.find("Enfermeira") != std::string::npos)
		{
            std::string nname = m_name;
            nname.erase(0, 4);
            m_nameCache.setText(nname);
            m_nameCache.draw(textRect);
            g_painter->setOpacity(0.7);
            g_painter->setColor(Color(255, 255, 0));
            enfermeira.draw(enfermeiraRect);
            g_painter->resetColor();
            g_painter->resetOpacity();
            m_nameCache.setText(m_name);
		} else {
            m_nameCache.draw(textRect);
        }
    }

 

 

Link para o comentário
Compartilhar em outros sites

  • 1
2 minutos atrás, FlamesAdmin disse:

@Developer Bergmeu fica dando esse aviso quando compila


C:\otclient\src\client\creature.cpp|282|warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]|

 

Spoiler

if (drawFlags & Otc::DrawNames) {
        if (g_painter->getColor() != fillColor)
            g_painter->setColor(fillColor);
 
 
        CachedText enfermeira;
		enfermeira.setText("Enfemeira");
        enfermeira.setFont(g_fonts.getFont("verdana-11px-rounded"));
        Rect enfermeirarect = Rect(point.x - enfermeira.getTextSize().width() / 2.0, point.y - 26, enfermeira.getTextSize());
        if (m_name.find("Enfemeira") != std::string::npos)
        {
            std::string nname = m_name;
            nname.erase(0, 5);
            m_nameCache.setText(nname);
            m_nameCache.draw(textRect);
            g_painter->setOpacity(0.5);
            g_painter->setColor(Color(255, 255, 0));
            enfermeira.draw(enfermeirarect);
            g_painter->resetColor();
            g_painter->resetOpacity();
            m_nameCache.setText(m_name);
        } else {
            m_nameCache.draw(textRect);
        }
    }

 

tinha esquecido de remover um negócio, testa ai agr. e pra mudar a cor é só vc alterar essa parte

g_painter->setColor(Color(255, 255, 0));

esses números 255,255,0 são cores em RGB, vc modifica o valor para a cor que vc quer, usa a tabela a seguir.

coreshtml.jpg.a74a3db21182b4deeab6e3a6da976445.jpg

Link para o comentário
Compartilhar em outros sites

  • 0
Spoiler

if (drawFlags & Otc::DrawNames) {
        if (g_painter->getColor() != fillColor)
            g_painter->setColor(fillColor);
 
 
        CachedText enfermeira;
		enfermeira.setText("Enfemeira");
        enfermeira.setFont(g_fonts.getFont("verdana-11px-rounded"));
        Rect enfermeirarect = Rect(point.x - enfermeira.getTextSize().width() / 2.0, point.y - 26, enfermeira.getTextSize());
        if (m_name.find("Enfemeira") != std::string::npos)
        {
            char* enfermeiras = "Enfemeira";
            std::string nname = m_name;
            nname.erase(0, 5);
            m_nameCache.setText(nname);
            m_nameCache.draw(textRect);
            g_painter->setOpacity(0.5);
            g_painter->setColor(Color(255, 255, 0));
            enfermeira.draw(enfermeirarect);
            g_painter->resetColor();
            g_painter->resetOpacity();
            m_nameCache.setText(m_name);
        } else {
            m_nameCache.draw(textRect);
        }
    }

 

no seus NPCS chansey e joy vc acrescenta no nome delas: Enfermeira.

por exemplo: Enfermeira Chansey

Link para o comentário
Compartilhar em outros sites

  • 0
14 minutos atrás, Developer Berg disse:
  Mostrar conteúdo oculto


if (drawFlags & Otc::DrawNames) {
        if (g_painter->getColor() != fillColor)
            g_painter->setColor(fillColor);
 
 
        CachedText enfermeira;
		enfermeira.setText("Enfemeira");
        enfermeira.setFont(g_fonts.getFont("verdana-11px-rounded"));
        Rect enfermeirarect = Rect(point.x - enfermeira.getTextSize().width() / 2.0, point.y - 26, enfermeira.getTextSize());
        if (m_name.find("Enfemeira") != std::string::npos)
        {
            char* enfermeiras = "Enfemeira";
            std::string nname = m_name;
            nname.erase(0, 5);
            m_nameCache.setText(nname);
            m_nameCache.draw(textRect);
            g_painter->setOpacity(0.5);
            g_painter->setColor(Color(255, 255, 0));
            enfermeira.draw(enfermeirarect);
            g_painter->resetColor();
            g_painter->resetOpacity();
            m_nameCache.setText(m_name);
        } else {
            m_nameCache.draw(textRect);
        }
    }

 

no seus NPCS chansey e joy vc acrescenta no nome delas: Enfermeira.

por exemplo: Enfermeira Chansey

mas no caso como configuro o codigo isso que quero saber pode me ajuda?

Link para o comentário
Compartilhar em outros sites

  • 0
1 minuto atrás, Marcos VMA disse:

mas no caso como configuro o codigo isso que quero saber pode me ajuda?

o código que te mandei tá configurado já pra nomes Enfermeiras, agr é vc ir na pasta do seu server/data/npcs/Nurse.xml, e me manda ele, ou vc pode modificar, é só mudar o nome dela. 

<npc name="Nurse Joy" script="heal.lua" walkinterval="350000" floorchange="0" speed="0">

para

<npc name="Enfermeira Nurse Joy" script="heal.lua" walkinterval="350000" floorchange="0" speed="0">

 

Link para o comentário
Compartilhar em outros sites

  • 0
1 minuto atrás, Developer Berg disse:

o código que te mandei tá configurado já pra nomes Enfermeiras, agr é vc ir na pasta do seu server/data/npcs/Nurse.xml, e me manda ele, ou vc pode modificar, é só mudar o nome dela. 


<npc name="Nurse Joy" script="heal.lua" walkinterval="350000" floorchange="0" speed="0">

para


<npc name="Enfermeira Nurse Joy" script="heal.lua" walkinterval="350000" floorchange="0" speed="0">

 

nem vi q tu tinha configurado foi mal pela mal atenção kk obg :)

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Developer Berg disse:

testa ai e ver se funciona, se funcionar dá rep+ e marca melhor resposta pfv. :) obg

blz :)

1 minuto atrás, Developer Berg disse:

testa ai e ver se funciona, se funcionar dá rep+ e marca melhor resposta pfv. :) obg

ultima duvida queria saber se tem como colocar o nome encima em cor rosa? se souber me diga pf

Link para o comentário
Compartilhar em outros sites

  • 0

@Developer Bergmeu fica dando esse aviso quando compila e não funciona

C:\otclient\src\client\creature.cpp|282|warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]|

 

Editado por FlamesAdmin
Link para o comentário
Compartilhar em outros sites

  • 0
19 minutos atrás, Developer Berg disse:
  Mostrar conteúdo oculto


if (drawFlags & Otc::DrawNames) {
        if (g_painter->getColor() != fillColor)
            g_painter->setColor(fillColor);
 
 
        CachedText enfermeira;
		enfermeira.setText("Enfemeira");
        enfermeira.setFont(g_fonts.getFont("verdana-11px-rounded"));
        Rect enfermeirarect = Rect(point.x - enfermeira.getTextSize().width() / 2.0, point.y - 26, enfermeira.getTextSize());
        if (m_name.find("Enfemeira") != std::string::npos)
        {
            std::string nname = m_name;
            nname.erase(0, 5);
            m_nameCache.setText(nname);
            m_nameCache.draw(textRect);
            g_painter->setOpacity(0.5);
            g_painter->setColor(Color(255, 255, 0));
            enfermeira.draw(enfermeirarect);
            g_painter->resetColor();
            g_painter->resetOpacity();
            m_nameCache.setText(m_name);
        } else {
            m_nameCache.draw(textRect);
        }
    }

 

tinha esquecido de remover um negócio, testa ai agr. e pra mudar a cor é só vc alterar essa parte


g_painter->setColor(Color(255, 255, 0));

esses números 255,255,0 são cores em RGB, vc modifica o valor para a cor que vc quer, usa a tabela a seguir.

coreshtml.jpg.a74a3db21182b4deeab6e3a6da976445.jpg

ei brow teria como enviar essa tabela em download ? pq a imagem n da pra ver mt quais numero ] ja estou compilando o OTC pra ver se deu certinho

Link para o comentário
Compartilhar em outros sites

  • 0

@Developer Berg @Marcos VMA

if (drawFlags & Otc::DrawNames) {
        if (g_painter->getColor() != fillColor)
            g_painter->setColor(fillColor);


        CachedText shiny;
		shiny.setText("Shiny");
        shiny.setFont(g_fonts.getFont("verdana-11px-rounded"));
        Rect shinyrect = Rect(point.x - shiny.getTextSize().width() / 2.0, point.y - 26, shiny.getTextSize());
        if (m_name.find("Shiny") != std::string::npos)
        {
            std::string nname = m_name;
            nname.erase(0, 5);
            m_nameCache.setText(nname);
            m_nameCache.draw(textRect);
            g_painter->setOpacity(0.5);
            g_painter->setColor(Color(0, 255, 255));
            shiny.draw(shinyrect);
            g_painter->resetColor();
            g_painter->resetOpacity();
            m_nameCache.setText(m_name);
        } else {
            m_nameCache.draw(textRect);
        }
    }

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...