Ir para conteúdo

Featured Replies

Postado
  Em 22/07/2014 em 11:58, luanluciano93 disse:

Olá pessoal, eu estava ajudando um amigo em um script de Tibia Naruto, e me deparei com a necessidade de usar uma função para trocar o nome de um summon, mas isso teria que ser inGame, e depois de procurar um pouco achei a função setCreatureName, que faz exatamente o que eu precisava.

O que ela faz?
Como eu expliquei acima, ela muda o nome da Creature inGame, podendo ser bastante útil (dependendo da sua criatividade).

Como instalar? 
A instalação é feita inteiramente nas sources, então vamos lá .. 

1 - No arquivo monster.h encontre esse trecho: 


class Monster : public Creature
{
	private:
		Monster(MonsterType* _mType);

	public

E adicione isso abaixo de public::


std::string name, nameDescription;

2 - Ainda em monster.h procure por:


virtual const std::string& getName() const {return mType->name;}

E substitua por isso:


virtual const std::string& getName() const {return name;}

3 - Ainda em monster.h procure por:


virtual const std::string& getNameDescription() const {return mType->nameDescription;}

E substitua por isso:


virtual const std::string& getNameDescription() const {return nameDescription;}

4 - Ainda em monster.h procure por:


virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";}

E substitua por isso:


virtual std::string getDescription(int32_t) const {return nameDescription + ".";}

5 - Agora em monster.cpp procure por:


Monster::Monster(MonsterType* _mType):

Nas linhas abaixo tem a linha: raid = NULL; , adicione isso logo abaixo: 


name = _mType->name;
nameDescription = _mType->nameDescription;

 

 

Conteúdo Oculto

 

 

 

6 - Agora em luascript.h adicione isso perto das linhas semelhantes:


static int32_t luaSetCreatureName(lua_State* L);

7 - Agora em luascript.cpp adicione isso perto das linhas semelhantes:


//setCreatureName(cid, name, description)
lua_register(m_luaState, "setCreatureName", LuaInterface::luaSetCreatureName);

8 - Ainda em luascript.cpp adicione isso perto das linhas semelhantes: 


int32_t LuaInterface::luaSetCreatureName(lua_State* L)
{
    // setCreatureName(cid, newName, newDescription)
    std::string newDesc = popString(L);
    std::string newName = popString(L);
    ScriptEnviroment* env = getEnv();
    
	Creature* creature;
    if (creature = env->getCreatureByUID(popNumber(L)))
	{
        Monster* monster = (Monster*)creature;
        monster->name = newName;
        monster->nameDescription = newDesc;
        lua_pushboolean(L, true);
    }
    else
	{
        errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));
        lua_pushboolean(L, false);
    }
    
	return 1;
} 

Pelo fato de algumas diferenças no modo de escrever a função entre as TFS, pode ocorrer erros, e então substitua as seguintes linhas dos 2 passos anteriores:
 

 

Conteúdo Oculto

 

 

 

Créditos: Scarlet Ayeid

 

 

É isso pessoal ... um exemplo de uso dentro de alguma função é assim basicamente:


local pos = {x = 10, y = 10, z = 7}
local Teste = doCreateMonster("Rat", pos)
setCreatureName(Teste, ""..getCreatureName(cid).."", "a "..getCreatureName(cid).."")

Espero ter ajudado pessoal, até mais.

o Nome so aparece no look mas continua o nome do summon , sabe porque??

  • 1 year later...
  • Respostas 74
  • Visualizações 15k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Não modifique tudo roriscrave, mude apenas "mType->nameDescription" para "nameDescription"

  • vlw deu tudo certo, estou usando 8.54 vlw

  • Esse arquivo é encontrado na source, que seria os arquivos para compilar a distro(executável) do servidor. Alguns servidores já vem com a source na pasta, mas você pode encontrar a source do seu serv

Posted Images

Postado
  • Diretor
  Em 07/01/2017 em 17:28, Gustavo Ntos disse:

o Nome so aparece no look mas continua o nome do summon , sabe porque??

     local pos = {x = 10, y = 10, z = 7}
     local teste = doSummonCreature("Rat",pos)
     setCreatureName(pos, "Fake Rat", "a fake rat")

ou

     local pos = {x = 10, y = 10, z = 7}
     local teste = doCreateMonster("Rat",pos)
     setCreatureName(pos, "Fake Rat", "a fake rat")

 

  Em 17/09/2020 em 00:22, H3ITORR disse:

a minha source e 0.4 e esta dando erro na hora de copilar me ajuda plis!

pode ser que isso é diferente na sua 

 

LuaScriptInterface:

para

LuaInterface:

altere todos

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Postado
  Em 17/09/2020 em 05:22, L3K0T disse:

     local pos = {x = 10, y = 10, z = 7}
     local teste = doSummonCreature("Rat",pos)
     setCreatureName(pos, "Fake Rat", "a fake rat")

ou


     local pos = {x = 10, y = 10, z = 7}
     local teste = doCreateMonster("Rat",pos)
     setCreatureName(pos, "Fake Rat", "a fake rat")

 

pode ser que isso é diferente na sua 

 


LuaScriptInterface:

para


LuaInterface:

altere todos

os meus sao todos luainterface preciso mudar todos para luascriptinterface?

por que e nesse luascriptinterface que ta dando erro!

Postado
  • Diretor
  Em 17/09/2020 em 05:29, H3ITORR disse:

os meus sao todos luainterface preciso mudar todos para luascriptinterface?

por que e nesse luascriptinterface que ta dando erro!

todos

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo