Ir para conteúdo
  • Cadastre-se

(Resolvido)Talkaction, comando /B (broadcast) não funcionando!


Ir para solução Resolvido por lordzetros,

Posts Recomendados

Oi pessoal,

 

Seguinte, quando executo o comando /B em meu ot, o mesmo não funciona, não aparece nenhuma mensagem em vermelho que os GMs e GODs costumam enviar para todos. Queria que ele fizesse isso.

 

Segue meu /data/talkactions/scripts/broadcast.lua

 

function onSay(player, words, param)
	if not getPlayerFlagValue(player, PlayerFlag_CanBroadcast) then
		return true
	end

	print("> " .. player:getName() .. " broadcasted: \"" .. param .. "\".")
	for _, targetPlayer in ipairs(Game.getPlayers()) do
		targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST)
	end
	return false
end

 

/data/talkactions/talkactions.lua

 

	<talkaction words="/B" separator=" " script="broadcast.lua" />

 

O que tem de errado?

 

Grato!

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

Old-Rush-announcement.gif.f0083fce9e14dacf24cd925e7c957c3b.gif

 

discord.png.6476c9ceb2fa7a9344b32a00f85f05e4.png

Link para o post
Compartilhar em outros sites
44 minutos atrás, d0gw4r disse:

up!

 

aparece algum erro no console?

 

O rei de seu proprio destino é aquele que luta pela gloria do amanhã!
Discord : ZoR#9373


 

Link para o post
Compartilhar em outros sites
5 minutos atrás, ZikaLord disse:

aparece algum erro no console?

 

 

Nenhum, simplesmente não funciona, já tentei buscar outros scripts, mas em vão! :/

Old-Rush-announcement.gif.f0083fce9e14dacf24cd925e7c957c3b.gif

 

discord.png.6476c9ceb2fa7a9344b32a00f85f05e4.png

Link para o post
Compartilhar em outros sites
  • Solução

É porque ele tá entrando na primeira condição, do flag. Caso seja tfs 1.3, deixe seu código atualizo com as funções da versão atual, ficando desta forma:
 

function onSay(player, words, param)
	if not (player:hasFlag(PlayerFlag_CanBroadcast)) then
		return true
	end

	print("> " .. player:getName() .. " broadcasted: \"" .. param .. "\".")
	for _, targetPlayer in ipairs(Game.getPlayers()) do
		targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST)
	end
	return false
end

Caso não resolva, verifique se sua conta do player que está utilizando o comando tem acesso necessário, experimente colocar type 5. (sua database -> accounts -> conta_escolhida: type 5), desta forma:
Screenshot_66.thumb.png.407a9fa501fee1297fb04837364da377.png

Caso não queira setar o nível de acesso da conta, pode modificar o script deixando desta forma:
 

local nivel_acesso = 2 -- ID dos GMs nas novas versoes

function onSay(player, words, param)
	if not (player:getGroup():getId() >= nivel_acesso) then
		return true
	end

	print("> " .. player:getName() .. " broadcasted: \"" .. param .. "\".")
	for _, targetPlayer in ipairs(Game.getPlayers()) do
		targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST)
	end
	return false
end

Modifique o nível de acesso, no caso tá 2 porque é GM (versão atual 1.3). Caso queira outro ID, modifique ali a variável 'nivel_acesso'.

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
9 horas atrás, lordzetros disse:

É porque ele tá entrando na primeira condição, do flag. Caso seja tfs 1.3, deixe seu código atualizo com as funções da versão atual, ficando desta forma:
 


function onSay(player, words, param)
	if not (player:hasFlag(PlayerFlag_CanBroadcast)) then
		return true
	end

	print("> " .. player:getName() .. " broadcasted: \"" .. param .. "\".")
	for _, targetPlayer in ipairs(Game.getPlayers()) do
		targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST)
	end
	return false
end

Caso não resolva, verifique se sua conta do player que está utilizando o comando tem acesso necessário, experimente colocar type 5. (sua database -> accounts -> conta_escolhida: type 5), desta forma:
Screenshot_66.thumb.png.407a9fa501fee1297fb04837364da377.png

Caso não queira setar o nível de acesso da conta, pode modificar o script deixando desta forma:
 


local nivel_acesso = 2 -- ID dos GMs nas novas versoes

function onSay(player, words, param)
	if not (player:getGroup():getId() >= nivel_acesso) then
		return true
	end

	print("> " .. player:getName() .. " broadcasted: \"" .. param .. "\".")
	for _, targetPlayer in ipairs(Game.getPlayers()) do
		targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST)
	end
	return false
end

Modifique o nível de acesso, no caso tá 2 porque é GM (versão atual 1.3). Caso queira outro ID, modifique ali a variável 'nivel_acesso'.

 

A segunda opção funcionou, muito obrigado!!

 

A propósito, meu type já estava setado em 5.

Old-Rush-announcement.gif.f0083fce9e14dacf24cd925e7c957c3b.gif

 

discord.png.6476c9ceb2fa7a9344b32a00f85f05e4.png

Link para o post
Compartilhar em outros sites

@d0gw4r Show. Então se a primeira não funcionou, pode ser que no seu data/XML/groups.xml não esteja setada a flag para o cargo determinado. Depois verifica lá e teste o código antigo, adicione isto abaixo de uma semelhante.
 

<flag canbroadcast="1" />

 

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

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