Ir para conteúdo
  • Cadastre-se

(Resolvido)-=[tfs]=- 0.4 8.60 Quando Loga Aparece os Canais; Não Esta Configurado no Source; Pretendo Meche login.lua


Ir para solução Resolvido por FeeTads,

Posts Recomendados

 

doPlayerOpenChannel(cid, CHANNEL_HELP)
        if(lastLogin > 0) then

Aparece Isso

[28/09/2022 17:03:13] [GOD] Bryaan has logged in.

[28/09/2022 17:03:13] [Error - CreatureScript Interface] 
[28/09/2022 17:03:13] data/creaturescripts/scripts/login.lua:onLogin
[28/09/2022 17:03:13] Description: 
[28/09/2022 17:03:13] data/creaturescripts/scripts/login.lua:14: attempt to call global 'doPlayerOpenChannel' (a nil value)
[28/09/2022 17:03:14] stack traceback:
[28/09/2022 17:03:14] 	data/creaturescripts/scripts/login.lua:14: in function <data/creaturescripts/scripts/login.lua:5>
[28/09/2022 17:03:14] [GOD] Bryaan has logged out.

 

Editado por Muvuka (veja o histórico de edições)

91-thais.png

Link para o post
Compartilhar em outros sites
  • Muvuka mudou o título para -=[tfs]=- 0.4 8.60 Quando Loga Aparece os Canais; Não Esta Configurado no Source; Pretendo Meche login.lua

Se o objetivo é abrir canais específicos sempre que o player logar no servidor, experimente fazer o seguinte:

 

em data > creaturescripts > creaturescripts.xml:

 

<!-- Abrir channel ao logar -->
<event type="login" name="openChannels" event="script" value="openChannels.lua"/>

 

 

creaturescripts > scripts > openChannels.lua:

 

function onLogin(cid)
    -- Coloque as ID's do channel que você quer abrir assim que o player logar.
    -- Você encontra todas as ID's em data > XML > channels.xml
    doPlayerOpenChannel(cid, 9)
    doPlayerOpenChannel(cid, 6)
return true
end

 

em creaturescripts > scripts > login.lua > adicione a tag abaixo antes do último return true:

 

registerCreatureEvent(cid, "openChannels")

 

Link para o post
Compartilhar em outros sites
[29/09/2022 09:17:36] Account Manager has logged in.

[29/09/2022 09:17:36] [Error - CreatureScript Interface] 
[29/09/2022 09:17:37] data/creaturescripts/scripts/openChannels.lua:onLogin
[29/09/2022 09:17:37] Description: 
[29/09/2022 09:17:37] data/creaturescripts/scripts/openChannels.lua:4: attempt to call global 'doPlayerOpenChannel' (a nil value)
[29/09/2022 09:17:37] stack traceback:
[29/09/2022 09:17:37] 	data/creaturescripts/scripts/openChannels.lua:4: in function <data/creaturescripts/scripts/openChannels.lua:1>
[29/09/2022 09:17:37] Account Manager has logged out.

 

[29/09/2022 09:23:00] [GOD] Bryaan has logged in.

[29/09/2022 09:23:00] [Error - CreatureScript Interface] 
[29/09/2022 09:23:00] data/creaturescripts/scripts/openChannels.lua:onLogin
[29/09/2022 09:23:00] Description: 
[29/09/2022 09:23:00] data/creaturescripts/scripts/openChannels.lua:4: attempt to call global 'doPlayerOpenChannel' (a nil value)
[29/09/2022 09:23:00] stack traceback:
[29/09/2022 09:23:00] 	data/creaturescripts/scripts/openChannels.lua:4: in function <data/creaturescripts/scripts/openChannels.lua:1>
[29/09/2022 09:23:01] [GOD] Bryaan has logged out.

 

Tentei no que voce falo @Imperius

doPlayerOpenChannel(cid, 9)

e assim

 

 

doPlayerOpenChannel(cid, HELP)

 

E não pego.

Editado por Muvuka (veja o histórico de edições)

91-thais.png

Link para o post
Compartilhar em outros sites

Tenta registrar apenas isso no login.lua, caso não funcione sua source não tem essa função.

 

doPlayerOpenChannel(cid, 9)

 

Editado por King Laker (veja o histórico de edições)

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
24 minutos atrás, Muvuka disse:

@King Laker ok vo tenta

Ok, boa sorte

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
22 horas atrás, King Laker disse:

Tenta registrar apenas isso no login.lua, caso não funcione sua source não tem essa função.

 


doPlayerOpenChannel(cid, 9)

 

 

JA TENTEI PELO LOGIN.LUA ACHO QUE NEM CRIANDO SCRIPT IGUAL CARA FEZ AI RESOLVE É PELA SOURCE MESMO VLW PELA AJUDA AI.

91-thais.png

Link para o post
Compartilhar em outros sites
6 minutos atrás, Muvuka disse:

 

JA TENTEI PELO LOGIN.LUA ACHO QUE NEM CRIANDO SCRIPT IGUAL CARA FEZ AI RESOLVE É PELA SOURCE MESMO VLW PELA AJUDA AI.

É que pelo oque eu tinha visto não tinha funcionado, ai tentei ajudar dando uma formula diferente mas.. boa sorte ai amigo!

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
  • Moderador
  • Solução
2 horas atrás, Muvuka disse:

 

JA TENTEI PELO LOGIN.LUA ACHO QUE NEM CRIANDO SCRIPT IGUAL CARA FEZ AI RESOLVE É PELA SOURCE MESMO VLW PELA AJUDA AI.


bem facil resolver isso amigo.

abre 2 arquivos da sua source
"luascript.cpp" 
e depois abre o 
"luascript.h"

em luascript.cpp 
procure por "doCreatureChannelSay" ou "doPlayerSendTextMessage"

E adicione abaixo:

	//doPlayerOpenChannel(cid, channelId)
	lua_register(m_luaState, "doPlayerOpenChannel", LuaInterface::luaDoPlayerOpenChannel);

 

depois, FAÇA NOVAMENTE a busca pelo "doCreatureChannelSay" ou "doPlayerSendTextMessage"
até chegar em uma função +/- assim:

int32_t LuaInterface::luaDoPlayerSendTextMessage(lua_State* L)
{

 

vai ter varias coisas dentro dessa função, então COM CUIDADO, após o fechamento dela
após o " } "
 procure pela chave que fecha essa função, e adicione essa função abaixo:
 

int32_t LuaInterface::luaDoPlayerOpenChannel(lua_State* L)
{
	//doPlayerOpenChannel(cid, channelId)
	uint16_t channelId = popNumber(L);
	uint32_t cid = popNumber(L);

	ScriptEnviroment* env = getEnv();
	if(env->getPlayerByUID(cid))
	{
		lua_pushboolean(L, g_game.playerOpenChannel(cid, channelId));
		return 1;
	}

	errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
	lua_pushboolean(L, false);
	return 1;
}

 

 

IMPORTANTE** preste bem atenção pra não colocar uma função dentro da outra, coloque a função exatamente ABAIXO da outra.

feito isso, vá em 
luascript.h

PROCURE novamente por  "doCreatureChannelSay" ou "doPlayerSendTextMessage"

e adicione abaixo:

static int32_t luaDoPlayerOpenChannel(lua_State* L);



após isso, recompile sua source, apenas com "make" não precisa recompilar ela toda do 0, pode recompilar apenas esses arquivos, e reabrir seu ot com o novo exe e pronto, estará 100% funcionando a função.

 

caso isso tudo não de certo, me avise, que ai precisará adicionar algumas coisas em mais 3 arquivos.

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo