Jump to content

Código HAX


Recommended Posts

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

 

Link to comment
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
Link to comment

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
Link to comment
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

Link to comment
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
Link to comment
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.

Link to comment
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í

Link to comment
  • Other Languages Moderators

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

Link to comment

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