Ir para conteúdo

Featured Replies

Postado

Nome: doPlayerSendChannelsDialog(cid)

Tipo: Função Lua

Autor: Oneshot


Essa é uma função para enviar a janela de canais através de uma função Lua que pode ser usada em diferentes scripts. Está presente nos diversos servidores de Pokémon, como uma maneira de enviar a janela de canais ao dar Use no computador.


Em luascript.h, procure por:



static int32_t luaGetChannelList(lua_State* L);

E adicione logo abaixo:
static int32_t luaDoPlayerSendChannelsDialog(lua_State* L);
Em luascript.cpp, procure por:


lua_register(m_luaState, "getChannelList", LuaInterface::luaGetChannelList);

E adicione logo abaixo:


lua_register(m_luaState, "doPlayerSendChannelsDialog", LuaInterface::luaDoPlayerSendChannelsDialog);

Ainda em luascript.cpp, procure por:


int32_t LuaInterface::luaGetChannelList(lua_State* L)

{

        //getChannelList()

        lua_newtable(L);

        ChannelList list = g_chat.getPublicChannels();


        ChannelList::const_iterator it = list.begin();

        for(uint32_t i = 1; it != list.end(); ++it, ++i)

        {

                createTable(L, i);

                setField(L, "id", (*it)->getId());

                setField(L, "name", (*it)->getName());


                setField(L, "flags", (*it)->getFlags());

                setField(L, "level", (*it)->getLevel());

                setField(L, "access", (*it)->getAccess());

                pushTable(L);

        }


        return 1;

}

E adicione logo abaixo:
int32_t LuaInterface::luaDoPlayerSendChannelsDialog(lua_State* L)

{

        //doPlayerSendChannelsDialog(uid)

        ScriptEnviroment* env = getEnv();

        if(Player* player = env->getPlayerByUID(popNumber(L)))

        {

                player->sendChannelsDialog();

                lua_pushboolean(L, true);

        }

        else

        {

                errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));

                lua_pushboolean(L, false);

        }


        return 1;

}

Re-compile o servidor e seja feliz.


  • 1 year later...
Postado

@Emersonssss, você reviveu um tópico de 2012... quando tiver uma dúvide crie um tópico no suporte e cole o link desse tópico pra guiar melhor quem for te ajudar. Essa função manda pro player a lista de canais existentes no servidor e pra usar vc coloca essa linha no script: doPlayerSendChannelsDialog(cid). Ela vai retornar a lista completa de todos os canais existentes (Trade, Help, Game-Chat...etc)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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.7k

Informação Importante

Confirmação de Termo