~#Gaton Posted July 23, 2019 Share Posted July 23, 2019 adm eu queria script que bloqueia a função de escrever colorido mais o nick mantém colorido Link to comment
DNL291 Posted July 23, 2019 Share Posted July 23, 2019 Tópico movido para Portuguese / Português > Programação em Lua. @~#Gaton Link to comment
~#Gaton Posted July 24, 2019 Author Share Posted July 24, 2019 nao entendi tem como me explicar como fazer Link to comment
DNL291 Posted July 25, 2019 Share Posted July 25, 2019 Use esta função na mensagem que terá os códigos hex removidos: 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 Link to comment
Other Languages Moderators Lord Henry Posted July 25, 2019 Other Languages Moderators Share Posted July 25, 2019 3 hours ago, DNL291 said: Use esta função na mensagem que terá os códigos hex removidos: 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 Testei essa função mas por algum motivo ela está falhando. Pois o string.find está sempre retornando nil. Fiz assim e resolveu: function removeHex (s) if type (s) == "string" then while (s ~= s:gsub ("#%x%x%x%x%x%x", "")) do s = s:gsub ("#%x%x%x%x%x%x", "") end end return s or false end Link to comment
Jonas^ Posted July 26, 2019 Share Posted July 26, 2019 Exemplo aplicado no chat do freeroam: addEventHandler ("onPlayerChat", root, function (msg, type) if type == 0 then cancelEvent () local mainChatDelay = 1000 if chatTime[source] and chatTime[source] + mainChatDelay > getTickCount() then return outputChatBox ("[ERRO] #FFFFFFNão floode o chat.", source, 255, 50, 50, true) else chatTime[source] = getTickCount() end if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(source)), aclGetGroup ("Admin")) then outputChatBox ("[ADM] #FFFFFF"..removeHex(getPlayerName(source)).." : #FF0000"..removeHex(msg), root, 255, 0, 0, true) outputServerLog( "ADMINCHAT: "..removeHex(getPlayerName(source)).. ": "..removeHex(msg)) elseif isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(source)), aclGetGroup ("Everyone")) then outputChatBox(removeHex(getPlayerName(source))..": #FFFFFF"..removeHex(msg), root, 51, 170, 255, true) outputServerLog( "CHAT: "..removeHex(getPlayerName(source))..": "..removeHex(msg)) end end end) function removeHex (text) local text = text or "" while (string.find (text, "#%x%x%x%x%x%x" )) do text = string.gsub (text, "#%x%x%x%x%x%x", "") end return text; end Link to comment
DNL291 Posted July 26, 2019 Share Posted July 26, 2019 23 hours ago, Lord Henry said: Testei essa função mas por algum motivo ela está falhando. Pois o string.find está sempre retornando nil. Fiz assim e resolveu: function removeHex (s) if type (s) == "string" then while (s ~= s:gsub ("#%x%x%x%x%x%x", "")) do s = s:gsub ("#%x%x%x%x%x%x", "") end end return s or false end Eu testei a função com várias formas de códigos hexadecimal e funcionou sem retornar nil; Talvez foi um erro causado no seu teste? Link to comment
Other Languages Moderators Lord Henry Posted July 26, 2019 Other Languages Moderators Share Posted July 26, 2019 2 minutes ago, DNL291 said: Talvez foi um erro causado no seu teste? Pode ser. Pois também achei estranho ele sempre retornar nil. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now