ST

Perfect nick system 100%

Por Strogman, 24 de dez. de 2015 em Linguagens de Programação

64
12.8k
StrogmanS
25 de dezembro de 2015 às 21:40

ops me esqueci que tinha declarado Nick não nick kkkk

só mudar creature->nick para creature->Nick

 

topic corrigido

Editado Dezembro 25 por gristony

CaronteC
25 de dezembro de 2015 às 21:58

Bem código, parabéns...

 

@@gristony, explique claramente o que faz o código no começo.

uma olhada rápida eu acho que é um sistema que faz alterar o nick sem dar logout...

 

 

StrogmanS
25 de dezembro de 2015 às 22:16

Bem código, parabéns...

r

@@gristony, explique claramente o que faz o código no começo.

uma olhada rápida eu acho que é um sistema que faz alterar o nick sem dar logout...

 

 

 

não vejo necessidade de explicar o que o code faz, pois praticamente todo mundo conhece o sistema de nick/apelido, é um system bem popular no poketibia.

 

bom resumindo ela muda o nome exibido em cima do personagem.

Editado Dezembro 25 por gristony

Luga03L
25 de dezembro de 2015 às 22:23

Manin, eu tentei mudar o nome do player ao utilizar uma actions com estes parametros:

 

 

doCreatureSetNick(cid, "Gooh")

 

... Ele começa a dar lag no servidor e 2 segundos dps crasha :/ Vou tentar com Summons agr

StrogmanS
25 de dezembro de 2015 às 22:32

Manin, eu tentei mudar o nome do player ao utilizar uma actions com estes parametros:

doCreatureSetNick(cid, "Gooh")

... Ele começa a dar lag no servidor e 2 segundos dps crasha :/ Vou tentar com Summons agr

 

compilou a source no modo rebuild all ou sem os arquivos .obj?

Luga03L
25 de dezembro de 2015 às 22:38

Mais ou menos... vou dar um rebuild certin agora...

 

Obs: Sem o Rebuild eu testei no summon utilizei isso:

 

 

doSummonCreature("fire elemental", getCreaturePosition(cid))
addEvent(function()
doCreatureSetNick(getCreatureSummons(cid)[1], "Gooh")
end, 5000)

 

Isto executa ao clicar em um item... vou dar o rebuild aqui e se funfar ganha rep + :D

CaronteC
25 de dezembro de 2015 às 23:15

 

não vejo necessidade de explicar o que o code faz, pois praticamente todo mundo conhece o sistema de nick/apelido, é um system bem popular no poketibia.

 

bom resumindo ela muda o nome exibido em cima do personagem.

Nem todo mundo joga poketibia.

Se você não explica, o tópico fica direcionando para quem conhece o sistema...

 

Você que sabe, só tentei sugerir...

StrogmanS
25 de dezembro de 2015 às 23:57

Nem todo mundo joga poketibia.

Se você não explica, o tópico fica direcionando para quem conhece o sistema...

 

Você que sabe, só tentei sugerir...

 

vlw pela sugestão irei por, mas sim é direcionado para poketibia ele só muda a exibição do nome no client não o nome mesmo então meio que nao tem utilidade em um tibia ou algo do tipo. mas vai saber né alguém pode ter uma ideia pra usar esse system em outros projetos XD.

Editado Dezembro 26 por gristony

dalvorsnD
26 de dezembro de 2015 às 04:55

Cara. não sei se tu testou isso:

 

        Player* player;
        creature->nick = nick;
        player->sendCreatureNick(creature);

Mas veja bem, tu declara uma variavel do tipo Player*, mas não inicializa, ou seja, isso é um objeto nullptr, ai tu logo em seguida usa um metodo dela? sendo que esse metodo necessita da variavel cliente que é uma instancia do protocolgame ...

Eu acho que isso não vai enviar é nada pra ninguem '-'

o certo na minha opnião seria tu fazer o seguinte, mudou o nome da creature cid, pega os spectators dela, e envia isso pra cada um deles, ai sim creio que va funcionar

StrogmanS
26 de dezembro de 2015 às 09:45

Cara. não sei se tu testou isso:

        Player* player;
        creature->nick = nick;
        player->sendCreatureNick(creature);

Mas veja bem, tu declara uma variavel do tipo Player*, mas não inicializa, ou seja, isso é um objeto nullptr, ai tu logo em seguida usa um metodo dela? sendo que esse metodo necessita da variavel cliente que é uma instancia do protocolgame ...

Eu acho que isso não vai enviar é nada pra ninguem '-'

o certo na minha opnião seria tu fazer o seguinte, mudou o nome da creature cid, pega os spectators dela, e envia isso pra cada um deles, ai sim creio que va funcionar

 

pser eu não tinha testado, meio que fiz o code as presas tive nem tempo de testar.

corrigi o erro e testei agora tá tudo certin.

 

topic corrigido

int32_t LuaScriptInterface::luaDoCreatureSetNick(lua_State* L)
{
    //doCreatureSetNick(cid, nick)
    ScriptEnviroment* env = getEnv();
    std::string nick = popString(L);
    Creature* creature = env->getCreatureByUID(popNumber(L));
    if(creature)
    {    
        SpectatorVec list;
        g_game.getSpectators(list, creature->getPosition());  
        Player* player = NULL;
        creature->Nick = nick;
         for(SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it)
        {
           if(player = (*it)->getPlayer())
               {
                   player->sendCreatureNick(creature);
                   break;
               }
        }
    }else{
        lua_pushnil(L);
    }
    return 1;
}

Editado Dezembro 26 por gristony

Luga03L
26 de dezembro de 2015 às 09:53

Manin, VOcê esqueceu denovo de colocar "Nick" ao invez de nick... corrige ae dnv pros lek não terem o mesmo problema dnv

StrogmanS
26 de dezembro de 2015 às 09:59

Manin, VOcê esqueceu denovo de colocar "Nick" ao invez de nick... corrige ae dnv pros lek não terem o mesmo problema dnv

 

vlw, pronto corrigido.

 

Luga03L
26 de dezembro de 2015 às 10:02

Manin, vou re-fazer o tutorial e aquela função reload e blablabla parece q ja existe né... int vou substituir ela e vou dar rebuild pra ver se funciona :D

kingpradosK
26 de dezembro de 2015 às 10:50

ei você sabe onde posso encontrar a base pokepro?

Luga03L
26 de dezembro de 2015 às 11:15

Pronto... Dei Re-build, Substitui a função reloadCreature e quando vai compilar dá este erro:

https://gyazo.com/0186ddead9be8175bad3f93176881430

tem uma parte do tutorial que é isso:

substitua:

msg->AddString(creature->getHideName() ? "" : creature->getName());
por:
msg->AddString(creature->getHideName() ? "" : nick);

No meu não tem isto:

 

 

msg->AddString(creature->getHideName() ? "" : creature->getName());

mas tem isto:

 

 

msg->putString(creature->getHideName() ? "" : creature->getName());

então eu substitui do mesmo jeito...

 

Iai, teria como ajudar dnv?? kkk

Editado Dezembro 26 por Drazyn1291