OrrutoSCR Posted December 16, 2019 Share Posted December 16, 2019 Bom dia alguem poderia me ajudar estou com uma dificuldade no meu chat local, estou tentando colocar o meu chat local para quando os jogadores usar codigos de cores no nick deles ficar branco a cor quando eles for falar no chat, Assim bloqueando as cores para não modificar no chat local. Esse script abaixo é meu chat local, espero que me ajudem, já tem muito tempo que tou tentando não consigo de jeito nenhum. DistanciaDoChatLocal = 200 -- Metros MensagemFalandoRapidoDemaisLocal = '#ffffff[ #CE98EBAnti Flood #ffffff] - #ffffffVocê Esta Digitando Muito Rapido, Aguarde 2 Segundos' -- ComandoDoChatGlobal = "f" -- Ex /g Mensagem ComandoDoChatGlobal2 = "u" ValorDoChatGlobal = 0 -- Dinheiro --MensagemFalandoRapidoDemaisGlobal = '#ffffff[ #FF0000Anti Flood #ffffff] - #ffffffVocê Esta Digitando Muito Rapido, Aguarde 5 Segundos' MensagemVoceEstaMutadoGlobal2 = '#ffffff[ #FF0000Aviso #ffffff] - #FF0000Você Esta Mutado, e Não Podera Utilizar os Chat do Servidor' MensagemVoceEstaMutadoGlobal = '#ffffff[ #FF0000Aviso #ffffff] - #FF0000Você Esta Mutado, e Não Podera Utilizar os Chat do Servidor' -------------------------------------------------------------------------------------------- -- Config do Chat Local addEventHandler("onPlayerChat", root, function(tresc, msgtype) if (msgtype == 0) then cancelEvent() local x,y,z = getElementPosition(source) for key, gracze in ipairs(getElementsByType("player")) do local x2,y2,z2 = getElementPosition(gracze) -- if getElementData (source, "ChatLocal:Delay", true) then -- outputChatBox ( MensagemFalandoRapidoDemaisLocal, source, 255, 255, 255, true ) return end if ( getDistanceBetweenPoints3D ( x, y, z, x2, y2, z2 ) < DistanciaDoChatLocal ) then local int = getElementInterior ( source ) local dim = getElementDimension ( source ) local int2 = getElementInterior ( gracze ) local dim2 = getElementDimension ( gracze ) if ( int == int2 and dim == dim2 ) then conta = getAccountName ( getPlayerAccount ( source ) ) if isObjectInACLGroup ("user."..conta, aclGetGroup ( "Console" ) ) then outputChatBox("*#FFEE00ʙᴄʙ ʟᴏᴄᴀʟ #FFEE00- #FF6A6APresidente #FFEE00- #ffffff"..getPlayerName(source).. " ("..getElementData(source, "ID")..")#FFEE00 - #ffffff#FF6A6A "..tresc, gracze, 255, 255, 255, true) elseif isObjectInACLGroup ("user."..conta, aclGetGroup ( "Admin" ) ) then outputChatBox("*#FFEE00ʙᴄʙ ʟᴏᴄᴀʟ #FFEE00- #FF6A6AVice Presidente #FFEE00- #ffffff"..getPlayerName(source).." ("..getElementData(source, "ID")..")#FFEE00 - #ffffff#FF6A6A "..tresc, gracze, 255, 255, 255, true) Link to comment
Other Languages Moderators Lord Henry Posted December 16, 2019 Other Languages Moderators Share Posted December 16, 2019 Utilize o botão <> do fórum para postar códigos. Não cole direto no texto. 1 1 Link to comment
OrrutoSCR Posted December 16, 2019 Author Share Posted December 16, 2019 8 hours ago, OrrutoSCR said: Bom dia alguem poderia me ajudar estou com uma dificuldade no meu chat local, estou tentando colocar o meu chat local para quando os jogadores usar codigos de cores no nick deles ficar branco a cor quando eles for falar no chat, Assim bloqueando as cores para não modificar no chat local. Esse script abaixo é meu chat local, espero que me ajudem, já tem muito tempo que tou tentando não consigo de jeito nenhum. DistanciaDoChatLocal = 200 -- Metros MensagemFalandoRapidoDemaisLocal = '#ffffff[ #CE98EBAnti Flood #ffffff] - #ffffffVocê Esta Digitando Muito Rapido, Aguarde 2 Segundos' -- ComandoDoChatGlobal = "f" -- Ex /g Mensagem ComandoDoChatGlobal2 = "u" ValorDoChatGlobal = 0 -- Dinheiro --MensagemFalandoRapidoDemaisGlobal = '#ffffff[ #FF0000Anti Flood #ffffff] - #ffffffVocê Esta Digitando Muito Rapido, Aguarde 5 Segundos' MensagemVoceEstaMutadoGlobal2 = '#ffffff[ #FF0000Aviso #ffffff] - #FF0000Você Esta Mutado, e Não Podera Utilizar os Chat do Servidor' MensagemVoceEstaMutadoGlobal = '#ffffff[ #FF0000Aviso #ffffff] - #FF0000Você Esta Mutado, e Não Podera Utilizar os Chat do Servidor' -------------------------------------------------------------------------------------------- -- Config do Chat Local addEventHandler("onPlayerChat", root, function(tresc, msgtype) if (msgtype == 0) then cancelEvent() local x,y,z = getElementPosition(source) for key, gracze in ipairs(getElementsByType("player")) do local x2,y2,z2 = getElementPosition(gracze) -- if getElementData (source, "ChatLocal:Delay", true) then -- outputChatBox ( MensagemFalandoRapidoDemaisLocal, source, 255, 255, 255, true ) return end if ( getDistanceBetweenPoints3D ( x, y, z, x2, y2, z2 ) < DistanciaDoChatLocal ) then local int = getElementInterior ( source ) local dim = getElementDimension ( source ) local int2 = getElementInterior ( gracze ) local dim2 = getElementDimension ( gracze ) if ( int == int2 and dim == dim2 ) then conta = getAccountName ( getPlayerAccount ( source ) ) if isObjectInACLGroup ("user."..conta, aclGetGroup ( "Console" ) ) then outputChatBox("*#FFEE00ʙᴄʙ ʟᴏᴄᴀʟ #FFEE00- #FF6A6APresidente #FFEE00- #ffffff"..getPlayerName(source).. " ("..getElementData(source, "ID")..")#FFEE00 - #ffffff#FF6A6A "..tresc, gracze, 255, 255, 255, true) elseif isObjectInACLGroup ("user."..conta, aclGetGroup ( "Admin" ) ) then outputChatBox("*#FFEE00ʙᴄʙ ʟᴏᴄᴀʟ #FFEE00- #FF6A6AVice Presidente #FFEE00- #ffffff"..getPlayerName(source).." ("..getElementData(source, "ID")..")#FFEE00 - #ffffff#FF6A6A "..tresc, gracze, 255, 255, 255, true) DistanciaDoChatLocal = 200 -- Metros MensagemFalandoRapidoDemaisLocal = '#ffffff[ #CE98EBAnti Flood #ffffff] - #ffffffVocê Esta Digitando Muito Rapido, Aguarde 2 Segundos' -- ComandoDoChatGlobal = "f" -- Ex /g Mensagem ComandoDoChatGlobal2 = "u" ValorDoChatGlobal = 0 -- Dinheiro --MensagemFalandoRapidoDemaisGlobal = '#ffffff[ #FF0000Anti Flood #ffffff] - #ffffffVocê Esta Digitando Muito Rapido, Aguarde 5 Segundos' MensagemVoceEstaMutadoGlobal2 = '#ffffff[ #FF0000Aviso #ffffff] - #FF0000Você Esta Mutado, e Não Podera Utilizar os Chat do Servidor' MensagemVoceEstaMutadoGlobal = '#ffffff[ #FF0000Aviso #ffffff] - #FF0000Você Esta Mutado, e Não Podera Utilizar os Chat do Servidor' -------------------------------------------------------------------------------------------- -- Config do Chat Local addEventHandler("onPlayerChat", root, function(tresc, msgtype) if (msgtype == 0) then cancelEvent() local x,y,z = getElementPosition(source) for key, gracze in ipairs(getElementsByType("player")) do local x2,y2,z2 = getElementPosition(gracze) -- if getElementData (source, "ChatLocal:Delay", true) then -- outputChatBox ( MensagemFalandoRapidoDemaisLocal, source, 255, 255, 255, true ) return end if ( getDistanceBetweenPoints3D ( x, y, z, x2, y2, z2 ) < DistanciaDoChatLocal ) then local int = getElementInterior ( source ) local dim = getElementDimension ( source ) local int2 = getElementInterior ( gracze ) local dim2 = getElementDimension ( gracze ) if ( int == int2 and dim == dim2 ) then conta = getAccountName ( getPlayerAccount ( source ) ) if isObjectInACLGroup ("user."..conta, aclGetGroup ( "Console" ) ) then outputChatBox("*#FFEE00ʙᴄʙ ʟᴏᴄᴀʟ #FFEE00- #FF6A6APresidente #FFEE00- #ffffff"..getPlayerName(source).. " ("..getElementData(source, "ID")..")#FFEE00 - #ffffff#FF6A6A "..tresc, gracze, 255, 255, 255, true) elseif isObjectInACLGroup ("user."..conta, aclGetGroup ( "Admin" ) ) then outputChatBox("*#FFEE00ʙᴄʙ ʟᴏᴄᴀʟ #FFEE00- #FF6A6AVice Presidente #FFEE00- #ffffff"..getPlayerName(source).." ("..getElementData(source, "ID")..")#FFEE00 - #ffffff#FF6A6A "..tresc, gracze, 255, 255, 255, true) 1 hour ago, Lord Henry said: Utilize o botão <> do fórum para postar códigos. Não cole direto no texto. Me desculpe eu não sabia, é minha primeira vez aqui no fórum, você poderia me ajudar pfvr? Link to comment
beast99 Posted December 16, 2019 Share Posted December 16, 2019 Já foi respondido no discord pelo iDannz [Breno]#2456 Vou postar o que ele enviou: function removeHex(s) return string.gsub(s,"#%x%x%x%x%x%x", "") end 1 Link to comment
DNL291 Posted December 16, 2019 Share Posted December 16, 2019 Usando o código acima ainda tem como burlar com os códigos hex, então para remover de uma forma definitiva use isto: 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 1 Link to comment
OrrutoSCR Posted December 17, 2019 Author Share Posted December 17, 2019 6 hours ago, DNL291 said: Usando o código acima ainda tem como burlar com os códigos hex, então para remover de uma forma definitiva use isto: 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 Oi, pramin não funcionou não sei se fiz algo de errado, vou mandar como que eu coloquei a função no script do chat. -------------------------------------------------------------------------------------------- DistanciaDoChatLocal = 200 -- Metros MensagemFalandoRapidoDemaisLocal = '#ffffff[ #CE98EBAnti Flood #ffffff] - #ffffffVocê Esta Digitando Muito Rapido, Aguarde 2 Segundos' -- ComandoDoChatGlobal = "f" -- Ex /g Mensagem ComandoDoChatGlobal2 = "u" ValorDoChatGlobal = 0 -- Dinheiro --MensagemFalandoRapidoDemaisGlobal = '#ffffff[ #FF0000Anti Flood #ffffff] - #ffffffVocê Esta Digitando Muito Rapido, Aguarde 5 Segundos' MensagemVoceEstaMutadoGlobal2 = '#ffffff[ #FF0000Aviso #ffffff] - #FF0000Você Esta Mutado, e Não Podera Utilizar os Chat do Servidor' MensagemVoceEstaMutadoGlobal = '#ffffff[ #FF0000Aviso #ffffff] - #FF0000Você Esta Mutado, e Não Podera Utilizar os Chat do Servidor' -------------------------------------------------------------------------------------------- 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 --------------------------------------------------------------------------------------------- -- Config do Chat Local addEventHandler("onPlayerChat", root, function(tresc, msgtype) if (msgtype == 0) then cancelEvent() local x,y,z = getElementPosition(source) for key, gracze in ipairs(getElementsByType("player")) do local x2,y2,z2 = getElementPosition(gracze) -- if getElementData (source, "ChatLocal:Delay", true) then -- outputChatBox ( MensagemFalandoRapidoDemaisLocal, source, 255, 255, 255, true ) return end if ( getDistanceBetweenPoints3D ( x, y, z, x2, y2, z2 ) < DistanciaDoChatLocal ) then local int = getElementInterior ( source ) local dim = getElementDimension ( source ) local int2 = getElementInterior ( gracze ) local dim2 = getElementDimension ( gracze ) if ( int == int2 and dim == dim2 ) then conta = getAccountName ( getPlayerAccount ( source ) ) if isObjectInACLGroup ("user."..conta, aclGetGroup ( "Console" ) ) then outputChatBox("*#FFEE00ʙᴄʙ ʟᴏᴄᴀʟ #FFEE00- #FF6A6APresidente #FFEE00- #ffffff"..getPlayerName(source).. " ("..getElementData(source, "ID")..")#FFEE00 - #ffffff#FF6A6A "..tresc, gracze, 255, 255, 255, true) Link to comment
DNL291 Posted December 17, 2019 Share Posted December 17, 2019 Você só copiou a função no seu código e como espera que vá funcionar? Seu próximo passo é chamá-la no getPlayerName. 1 Link to comment
OrrutoSCR Posted December 17, 2019 Author Share Posted December 17, 2019 (edited) 40 minutes ago, DNL291 said: Você só copiou a função no seu código e como espera que vá funcionar? Seu próximo passo é chamá-la no getPlayerName. Eu não sei fazer isso, se você poder me ajuda dando um exemplo eu agradeceria, sou iniciante em script Lua DNL. Edited December 17, 2019 by OrrutoSCR Link to comment
KronoS Lettify Posted December 17, 2019 Share Posted December 17, 2019 (edited) Como iniciante em script Lua, você se assemelha à uma formiga carregando um navio. Antes de entender o que você quer solução, você precisa estudar no que está disponível na rede para ser estudado. DNL já deu o exemplo no histórico do tópico agora só basta você entender o que o código que ele publicou quer dizer, e assim 'conectá-lo' ao seu código. Para iniciar bem em scripting Lua(especificamente para MTA), leia as documentações disponíveis, como: Introdução ao Scripting do MTA e o Manual Lua para ter uma boa lógica de iniciação .-. edit1: Para cada função que você ver e não entender, procure pela página daquela função na wikipédia do MTA. Edited December 17, 2019 by KronoS Lettify +1 observação; Alteração de comparação Link to comment
OrrutoSCR Posted December 17, 2019 Author Share Posted December 17, 2019 6 minutes ago, KronoS Lettify said: Como iniciante em script Lua, você está parecendo um bebê querendo casar-se com um mulherão. Antes de entender o que você quer solução, você precisa estudar no que está disponível na rede para ser estudado. DNL já deu o exemplo no histórico do tópico agora só basta você entender o que o código que ele publicou quer dizer, e assim 'conectá-lo' ao seu código. Para iniciar bem em scripting Lua(especificamente para MTA), leia as documentações disponíveis, como: Introdução ao Scripting do MTA e o Manual Lua para ter uma boa lógica de iniciação .-. Não gostei do seu argumento, Mais valeu vou estudar mais sobre isso aí 1 Link to comment
KronoS Lettify Posted December 17, 2019 Share Posted December 17, 2019 22 minutes ago, OrrutoSCR said: Não gostei do seu argumento, Mais valeu vou estudar mais sobre isso aí Me desculpe, interpretei mal a comparação. E já corrigi o erro . Isso se tiver sido isso mesmo o seu desconforto, e qualquer dúvida a mais sobre mais assuntos relacionados ao MTA, só criar os tópicos e tentarei ajudar no que for possível. Link to comment
Jonas^ Posted December 17, 2019 Share Posted December 17, 2019 Dificuldade em... if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (source)), aclGetGroup ("Console")) then outputChatBox ("*#FFEE00ʙᴄʙ ʟᴏᴄᴀʟ #FFEE00- #FF6A6APresidente #FFEE00- #ffffff"..removeHex(getPlayerName(source)).." ("..getElementData(source, "ID")..")#FFEE00 - #ffffff#FF6A6A "..tresc, gracze, 255, 255, 255, true) end 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
OrrutoSCR Posted December 18, 2019 Author Share Posted December 18, 2019 17 hours ago, Jonas^ said: Dificuldade em... if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (source)), aclGetGroup ("Console")) then outputChatBox ("*#FFEE00ʙᴄʙ ʟᴏᴄᴀʟ #FFEE00- #FF6A6APresidente #FFEE00- #ffffff"..removeHex(getPlayerName(source)).." ("..getElementData(source, "ID")..")#FFEE00 - #ffffff#FF6A6A "..tresc, gracze, 255, 255, 255, true) end 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 Já consegui ^^, mais obrigado todos vocês por me ajudar 1 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