Postado Janeiro 7, 2017 8 anos 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??
Postado Setembro 17, 2020 4 anos a minha source e 0.4 e esta dando erro na hora de copilar me ajuda plis!
Postado Setembro 17, 2020 4 anos 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 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 Setembro 17, 2020 4 anos 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 Setembro 17, 2020 4 anos 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 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.