Ir para conteúdo

Perfect nick system 100%


Strogman

Posts Recomendados

Precisa remover o break da função luaDoCreatureSetNick para o nome ser enviado para todos os jogadores na tela.

E também tem que arrumar o que a função lua irá retornar, no caso acho que seria bom um false ou true.

O certo seria assim:

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);
           }
        }
        lua_pushboolean(L, true);
    } else {
        lua_pushboolean(L, false);
    }
    return 1;
}
Link para o comentário
Compartilhar em outros sites

Amigo venho informar que a função tem um pequeno problema ela ate funciona só que para outro player que está vendo você usando outro client as vezes a função não funciona. Imagens a seguir.

 

Aqui e eu me vendo.

Aqui e o outro pleyer me vendo.

 

Está usando tfs 0.3.6?

Link para o comentário
Compartilhar em outros sites

Sim uso 0.3.6

Precisa remover o break da função luaDoCreatureSetNick para o nome ser enviado para todos os jogadores na tela.
E também tem que arrumar o que a função lua irá retornar, no caso acho que seria bom um false ou true.
O certo seria assim:

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);
           }
        }
        lua_pushboolean(L, true);
    } else {
        lua_pushboolean(L, false);
    }
    return 1;
}

Cara agora está funcionando 100% obrigado.


Está usando tfs 0.3.6?

sim uso tfs 0.3.6

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

^^ nem quero sair do lixo pda pois trabalhar com sourcers é complicado e minha equipe é: eu, eu e eu ^^ entao to de boa com pda só mas msm assim reputei valeu pela contribuçao

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...