Jump to content

Anti-Insult ?


lLinux

Recommended Posts

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

Link to comment
['insultos'] = { 
        ['hola'] = '*', 
        ['cambia'] = '*', 
        ['esto'] = '*', 
        ['como'] = '*', 
        ['te'] = '*', 
        ['guste'] = '*', 
        ['ati'] = '*', 
        ['lLinux'] = '*', 
        ['chauchis'] = '*' 
} 

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

Link to comment
['insultos'] = { 
        ['hola'] = '*', 
        ['cambia'] = '*', 
        ['esto'] = '*', 
        ['como'] = '*', 
        ['te'] = '*', 
        ['guste'] = '*', 
        ['ati'] = '*', 
        ['lLinux'] = '*', 
        ['chauchis'] = '*' 
} 

y despues que tengo que pner?

Link to comment

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

Link to comment

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 

Link to comment
  • Recently Browsing   0 members

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