lLinux Posted April 27, 2014 Posted April 27, 2014 Como puedo crear un anti-insult, con tablas o como sea? Skype: HackerlLinux ¿Quieres aprender scripting para MTA? - http://www.scriptingmtasa.wordpress.com "La disciplina es la clave del exito"
Castillo Posted April 27, 2014 Posted April 27, 2014 Podes poner en una tabla todos los insultos que quieras censurar, y usar el evento onPlayerChat para luego fijarte si alguno de esos insultos esta en el mensaje que envio. San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
lLinux Posted April 27, 2014 Author Posted April 27, 2014 Podes poner en una tabla todos los insultos que quieras censurar, y usar el evento onPlayerChat para luego fijarte si alguno de esos insultos esta en el mensaje que envio. Eso es lo que no se por ejemplo seria asi: insultos = { "put*", "zorr*", "hp", } pero como hago que para cuando chateen busque si esta alguna de esa palabra y ponga **** Skype: HackerlLinux ¿Quieres aprender scripting para MTA? - http://www.scriptingmtasa.wordpress.com "La disciplina es la clave del exito"
#Silvery' Posted April 27, 2014 Posted April 27, 2014 ['insultos'] = { ['hola'] = '*', ['cambia'] = '*', ['esto'] = '*', ['como'] = '*', ['te'] = '*', ['guste'] = '*', ['ati'] = '*', ['lLinux'] = '*', ['chauchis'] = '*' } My ingame nick is: #SilverY' / Seku. **Entren al servidor**!! me encanto el servidor se los recomiendo ^^ , no es mio es de @TomasitoCaram
Alexs Posted April 27, 2014 Posted April 27, 2014 Podes poner en una tabla todos los insultos que quieras censurar, y usar el evento onPlayerChat para luego fijarte si alguno de esos insultos esta en el mensaje que envio. Eso es lo que no se por ejemplo seria asi: insultos = { "put*", "zorr*", "hp", } pero como hago que para cuando chateen busque si esta alguna de esa palabra y ponga **** Utiliza 'string.find' o 'string.gsub'. Developer @ MYVAL
lLinux Posted April 28, 2014 Author Posted April 28, 2014 ['insultos'] = { ['hola'] = '*', ['cambia'] = '*', ['esto'] = '*', ['como'] = '*', ['te'] = '*', ['guste'] = '*', ['ati'] = '*', ['lLinux'] = '*', ['chauchis'] = '*' } y despues que tengo que pner? Skype: HackerlLinux ¿Quieres aprender scripting para MTA? - http://www.scriptingmtasa.wordpress.com "La disciplina es la clave del exito"
#Silvery' Posted April 28, 2014 Posted April 28, 2014 pues como te dijo Alexs , te doy un ejemplito de lo que el dijo del string.gsub function nosequeponer(message) local text = message:gsub("%a", string.upper, 1) for i, v in pairs ['insultos'] do while text:lower():find(i:lower(),1,true) do local start, end_ = text:lower():find(i:lower(),1,true) local found = text:sub(start,end_) text = text:gsub(found,v) end end end addEventHandler("onPlayerChat", getRootElement(), nosequeponer) si esta mal es porque soy nuevo en esto como vengo diciendo hace mucho e.e My ingame nick is: #SilverY' / Seku. **Entren al servidor**!! me encanto el servidor se los recomiendo ^^ , no es mio es de @TomasitoCaram
Sasu Posted April 28, 2014 Posted April 28, 2014 Tenia este script que hace justo lo que vos queres. Insults = { "ejemplo", "estupido" } -- Aqui pones las palabras no deseadas addEventHandler("onPlayerChat", root, function(msg, msgType) if msgType == 0 then for k,v in ipairs (Insults) do if string.find( string.lower ( msg ), v) then msg = string.gsub ( string.lower( msg ), v, string.rep("*", wordToAsteric(v) ) ) end end local playerAcc = getPlayerAccount(source) if isGuestAccount(playerAcc) then cancelEvent() else outputChatBox(getPlayerName(source)..": #FFFFFF"..msg, root, 255, 255, 255, true) outputServerLog("CHAT: "..getPlayerName(source):gsub("#%x%x%x%x%x%x","")..": "..msg) cancelEvent() end end end ) function wordToAsteric(theWord) if type(theWord) == 'string' then return string.len(theWord) end end State: Inactive
Recommended Posts