Jump to content

Código HAX


Recommended Posts

Posted

Boa noite, queria saber como faço para criar 1 outputChatBox que não possa usar códigos HAX e se caso o player usar quero que não apareça o código e nem mude a cor!?

Posted

Código Hex você quis dizer.

É possível remover esses códigos com a função string.gsub, ex:

local mystring = "#ff0000hello world"
print( mystring )
-- saída: #ff0000hello world

mystring = mystring:gsub("#%x%x%x%x%x%x", "") -- removendo os códigos hex
print( mystring )
-- saída: hello world

 

Please do not PM me with scripting related question nor support, use the forums instead.

Posted (edited)
26 minutes ago, DNL291 said:

Código Hex você quis dizer.

É possível remover esses códigos com a função string.gsub, ex:


local mystring = "#ff0000hello world"
print( mystring )
-- saída: #ff0000hello world

mystring = mystring:gsub("#%x%x%x%x%x%x", "") -- removendo os códigos hex
print( mystring )
-- saída: hello world

 

Somente isso e já está pronto o script?

Edited by CoelhO
Posted (edited)

Qual script? Esse foi um exemplo que dei pra remover código em Hex.

Pra aplicar na mensagem do outputChatBox é só usar essa função. Vai depender do que você quer exatamente.

Aqui por exemplo irá remover esses códigos da mensagem no chat e no nick:

addEventHandler( "onPlayerChat", root,
	function(msg, type)
		if type == 0 then
			cancelEvent()
			msg = msg:gsub('#%x%x%x%x%x%x', '')
			outputChatBox( getPlayerName(source):gsub('#%x%x%x%x%x%x', '') .. ": #FFFFFF" .. msg, root, 255, 255, 255, true )
		end
	end
)

 

Edited by DNL291

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
16 minutes ago, DNL291 said:

Qual script? Esse foi um exemplo que dei pra remover código em Hex.

Pra aplicar na mensagem do outputChatBox é só usar essa função. Vai depender do que você quer exatamente.

Aqui por exemplo irá remover esses códigos da mensagem no chat e no nick:


addEventHandler( "onPlayerChat", root,
	function(msg, type)
		if type == 0 then
			cancelEvent()
			msg = msg:gsub('#%x%x%x%x%x%x', '')
			outputChatBox( getPlayerName(source):gsub('#%x%x%x%x%x%x', '') .. ": #FFFFFF" .. msg, root, 255, 255, 255, true )
		end
	end
)

 

Estou querendo fazer isso nas tags... Para deixar o chat meio que igual o samp, sem nenhuma cor em alguns cargos específicos

Posted
1 hour ago, DNL291 said:

Código Hex você quis dizer.

É possível remover esses códigos com a função string.gsub, ex:


local mystring = "#ff0000hello world"
print( mystring )
-- saída: #ff0000hello world

mystring = mystring:gsub("#%x%x%x%x%x%x", "") -- removendo os códigos hex
print( mystring )
-- saída: hello world

 

Tem alguns espertinhos que tentam burlar essa única verificação utilizando códigos do tipo ##000000000000 com isso aconselharia a utilização de algo similar a isto:

while(msg:find("#%x%x%x%x%x%x")) do
	msg = msg:gsub("#%x%x%x%x%x%x","")
end

Outro jeito simples seria alterar o 6º parâmetro da função outputChatBox para false, que então os códigos de cores não funcionarão (mas também não irá oculta-los).

outputChatBox("texto",root,255,255,255,false)

 

  • Like 1
Posted
9 minutes ago, MaligNos said:

Tem alguns espertinhos que tentam burlar essa única verificação utilizando códigos do tipo ##000000000000 com isso aconselharia a utilização de algo similar a isto:


while(msg:find("#%x%x%x%x%x%x")) do
	msg = msg:gsub("#%x%x%x%x%x%x","")
end

Outro jeito simples seria alterar o 6º parâmetro da função outputChatBox para false, que então os códigos de cores não funcionarão (mas também não irá oculta-los).


outputChatBox("texto",root,255,255,255,false)

 

Eu lembro disso na época que ainda jogava, tinha gente que conseguia colocar cores nas mensagens. Então essa seria a forma ideal de remover cores Hex quando se trata de chat. Uma versão como função:

function removeHex( s )
	if type(s) == "string" then
		while(s:find("#%x%x%x%x%x%x")) do
			s = s:gsub("#%x%x%x%x%x%x","")
		end
	end
	return s or false
end

@CoelhO Mostre seu script de tags se tiver com dificuldade em usar essa função.

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
On 09/01/2019 at 01:55, DNL291 said:

Eu lembro disso na época que ainda jogava, tinha gente que conseguia colocar cores nas mensagens. Então essa seria a forma ideal de remover cores Hex quando se trata de chat. Uma versão como função:


function removeHex( s )
	if type(s) == "string" then
		while(s:find("#%x%x%x%x%x%x")) do
			s = s:gsub("#%x%x%x%x%x%x","")
		end
	end
	return s or false
end

@CoelhO Mostre seu script de tags se tiver com dificuldade em usar essa função.

words = {}
SQLS3D = { qury = executeSQLQuery }
chatTime = {}
lastChatMessage = {}
addEventHandler("onPlayerChat", getRootElement(),
	function(text, msgtype, thePlayer)
    local account = getAccountName(getPlayerAccount(source))
    local name = getPlayerName(source)
    local root = getRootElement()
    local name = getPlayerName(source)
    local r,g,b = getPlayerNametagColor(source)
	local Account1 = getPlayerAccount ( source )
		
		
		lastChatMessage[source] = text
		local r, g, b = getPlayerNametagColor(source)
		cancelEvent()
      if isObjectInACLGroup("user." .. account, aclGetGroup("Console")) then
	 cancelEvent(true)
        outputChatBox("#FFD700" .. name .." #FFD700[TODOS]: " .. text, root, 255, 255, 255, true)
        outputServerLog("CHAT: " .. name .. ": " .. text)

       elseif isObjectInACLGroup("user." .. account, aclGetGroup("Admin")) then
	 cancelEvent(true)
		outputChatBox("#FFFFFF" .. name .." #FFFFFF[TODOS]: "..text, root, 255, 255, 255, true)
        outputServerLog("CHAT: " .. name .. ": " .. text)
		
	  elseif isObjectInACLGroup("user." .. account, aclGetGroup("Everyone")) then
	 cancelEvent(true)
		outputChatBox("#FFFFFF" .. name .." #FFFFFF[TODOS]: "..text, root, 255, 255, 255, true)
        outputServerLog("CHAT: " .. name .. ": " .. text)
		end
	end
)

quero adicionar esta função aí

  • Moderators
Posted

Coloque a função que remove o código Hex fora da função principal. E então na linha acima do lastChatMessage[source] transforme o texto com código em texto sem código.

Tente isso:

words = {} -- Isso é desnecessário.
SQLS3D = { qury = executeSQLQuery } -- Isso é desnecessário.
chatTime = {} -- Isso é desnecessário.
lastChatMessage = {} -- Isso é desnecessário.

function removeHex (s)
	if type(s) == "string" then
		while(s:find("#%x%x%x%x%x%x")) do
			s = s:gsub("#%x%x%x%x%x%x","")
		end
	end
	return s or false
end

addEventHandler("onPlayerChat", getRootElement(),
	function (text, msgtype, thePlayer)
		local account = getAccountName (getPlayerAccount (source))
		local name = getPlayerName (source)
		local root = getRootElement () -- Isso é desnecessário.
		local r,g,b = getPlayerNametagColor (source) -- Isso é desnecessário.
		local Account1 = getPlayerAccount (source) -- Isso é desnecessário.
		text = removeHex (text)
		lastChatMessage [source] = text -- Isso é desnecessário.
		cancelEvent()
		if isObjectInACLGroup ("user."..account, aclGetGroup ("Console")) then
			cancelEvent(true)
			outputChatBox ("#FFD700"..name.." #FFD700[TODOS]: "..text, root, 255, 255, 255, true)
			outputServerLog ("CHAT: "..name..": "..text)
		elseif isObjectInACLGroup ("user." .. account, aclGetGroup ("Admin")) then
			cancelEvent(true)
			outputChatBox ("#FFFFFF"..name.." #FFFFFF[TODOS]: "..text, root, 255, 255, 255, true)
			outputServerLog ("CHAT: "..name..": "..text)
		elseif isObjectInACLGroup ("user."..account, aclGetGroup("Everyone")) then
			cancelEvent(true)
			outputChatBox ("#FFFFFF"..name.." #FFFFFF[TODOS]: "..text, root, 255, 255, 255, true)
			outputServerLog ("CHAT: "..name..": "..text)
		end
	end
)

(Não testado.)

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...