Jump to content

[APORTE] Globalchat + antispam


Recommended Posts

Hola, estaba algo aburrido y decidi crearme un globalchat con un antispam de palabras, pero bueh es editable, pero es algo util por si algun X Player viola las reglas o insulta jugadores

Server side:

  
  
insultos = {"puta","zorra","culo","zerver de mierda","ctm","puto","marica","mk","verga","hijo de puta","zeber de mierda","mtasa://","entren a mi servidor","eres un asco","quieres ip ?","sx","cit","ffs","top-gta","latino","prochile","pro-chile","roleplay"} 
tiempo_ = 60000 
function speak(thePlayer,cmd, ...) 
    local msg = table.concat ( {...} , " " ) 
    name = getPlayerName( thePlayer ) 
    for _,text in pairs(insultos) do 
        if string.find( msg, text) then 
            if ( not isPlayerMuted( thePlayer ) ) then 
                setPlayerMuted( thePlayer, true ) 
                outputChatBox("#FF2CECCharlotte<3 #FFFFFF Muteo a "..name.." #FFFFFFpor insultar/spamear el chat.", root,200,200,0,true) 
                    setTimer( 
                        function ()  
                            setPlayerMuted( thePlayer, false )  
                            outputChatBox(name.." Fue dessilenciado ", root,200,0,0,true) end 
                        , tiempo_,1) 
                    triggerClientEvent( thePlayer, "aumentaIntentos", thePlayer) 
                return 
            end 
        end 
        if isPlayerMuted ( thePlayer ) then 
            outputChatBox("#FF2CECCharlotte<3: #FFFFFF"..name.." Estas muteado no puedes hablar", thePlayer, 255, 255, 255, true) 
            return 
        end 
        break 
    end 
    outputChatBox("[GLOBAL]"..name..":#FFFFFF ".. msg,root,200,0,0,true) 
    outputServerLog( "[GLOBAL] "..name.." ".. msg ) 
end 
addCommandHandler( "global", speak) 
  
function kickPlayersito( nombre ) 
    name = getPlayerFromName( nombre ) 
    if name then 
        kickPlayer ( name," By: Charlotte<3 Razon: Fuistes expulsado por insultar/spamear en el chat") 
        outputChatBox("#FF2CECCharlotte<3 #FFFFFF Kickeo a "..nombre.." #FFFFFFpor sobrepasar las advertencias.", root,200,200,0,true) 
        outputServerLog( "[GLOBAL] #FF2CECCharlotte<3 #FFFFFF Kickeo a "..nombre.." " ) 
    end 
end 
addEvent( "kickearjugador", true ) 
addEventHandler( "kickearjugador", root, kickPlayersito ) 
  
--outputChatBox("Advertencia "..intentos.."/5" ) 
  
function mandarAdvertencias( nombre, intentos) 
    nombre = getPlayerFromName( nombre ) 
    outputChatBox("Advertencia "..intentos.."/5", nombre, 200,200,200,true ) 
end 
addEvent( "mandarAdvertencia", true ) 
addEventHandler( "mandarAdvertencia", root, mandarAdvertencias ) 

Clientside:

  
  
intentos = 0 
function aumentarintentos() 
    nombre = getPlayerName( getLocalPlayer(  ) ) 
    intentos = intentos + 1 
    triggerServerEvent( "mandarAdvertencia", getLocalPlayer(  ),nombre,intentos) 
    if intentos == 3 then 
        triggerServerEvent( "kickearjugador", getLocalPlayer(  ),nombre) 
        intentos = 0 
    end 
end 
addEvent( "aumentaIntentos", true ) 
addEventHandler( "aumentaIntentos", localPlayer, aumentarintentos ) 

: ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌

: ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌

EDIT: Reeditado, no esta testeado aun con otro jugador.

Edited by Guest
Link to comment

Si un jugador acumula intentos para los demás también se acumularán los mismos. Así que si uno toca los cojones y viene el otro una sola vez a defenderse le va a mutear/kickear al último. Sería un buen método para ponerlo en práctica contigo, ni te enterarías y es tu propio script. ( En caso de que el script funcionara, que por lo que se ve, no lo hace. )

Edited by Guest
Link to comment

En su dia ofrecí 40 limeas de Antispam, esto no sirve para nada.

root = getRootElement() --predefinido. 

Por cierto, esto es un poco inutil, ya que spamearia literalmente la consola de errores

outputDebugString( " "..name.." ".. msg ) 

y deberia ser sustituido por

outputServerLog( " "..name.." ".. msg ) 

Edited by Guest
Link to comment
Dudo que tu lo hayas hecho.. anyway, reconectar mientras estás muteado quitaría el mute y causaría muchos debugs, por cierto, ese getPlayerFromName es totalmente inútil, ya que el jugador ya está definido por el evento.

Lo hice yo mismo, acaso no puedo aprender yo solo?

Link to comment

me pareció un buen aporte así que lo edite un poquito para que haya numero de intentos por jugador espero no te importe :)

insultos = {"puta","zorra","culo","zerver de mierda","ctm","puto","marica","mk","verga","hijo de puta","zerber de mierda","mtasa://","entren a mi servidor","eres un asco","Elber galarga","Charlotte puta"} 
intentos    = {} 
N_intentos  = 3 -- cantidad de intentos 
minutos     = 5  -- tiempo de muteo en minutos 
tiempo      = 60000 * minutos 
addEventHandler( "onPlayerChat", getRootElement( ), 
    function( message ) 
      local msg    = table.concat ( {message} , " " ) 
      local player = source 
      local name   = getPlayerName(source) 
      for _,text in pairs(insultos) do 
            if string.find( msg, text) then 
                   if ( not isPlayerMuted( source ) ) then 
                      if intentos[source] then intentos[source] = intentos[source] + 1 else intentos[source] = 1 end 
                      if intentos[source] < N_intentos then 
                         outputChatBox(name.."No hagas Spam intentos ["..intentos[source].."/"..N_intentos.."]", source,200,0,0,true) 
                      else 
                      intentos[source] = 0 
                      setPlayerMuted( source, true ) 
                      outputChatBox(name.." #C80000 Fue silenciado por #FF2CECCharlotte<3 #C80000 tiempo: "..minutos.." Min.", root,200,0,0,true) 
                        setTimer(function ()  
                           if isPlayerMuted( player ) then 
                              setPlayerMuted(player, false )  
                              outputChatBox(name.." Fue dessilenciado ", root,200,0,0,true)  
                           end 
                        end, tiempo,1 ) 
                      end 
                   return 
                  end 
            end 
            if isPlayerMuted ( source ) then 
               outputChatBox("#FF2CECCharlotte<3: #FFFFFF"..getPlayerName(source).." Estas muteado no puedes hablar", source, 255, 255, 255, true) 
               return 
            end 
      end 
 end 
 ) 

Edited by Guest
Link to comment

: ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ : ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌

Para qué tanto código.. con unas 15 líneas lo haces mucho más simple.

Según tu como lo haría en 15 lineas, Conforme voy aprendiendo hare las cosas un poco mas complejas y asi :) .

͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌

Edited by Guest
Link to comment
Todo el script sirve, y si por lo de los intentos despues lo hago en client, el mute igualmente sirve lo unico son los maximos intentos, y por sierto si pongo root = getRootElement() es mi forma de scriptear, cada uno tiene su forma.

la variable root está predefinida de FABRICA

destroyElement(root) 
destroyElement(getRootElement() 

Link to comment
Todo el script sirve, y si por lo de los intentos despues lo hago en client, el mute igualmente sirve lo unico son los maximos intentos, y por sierto si pongo root = getRootElement() es mi forma de scriptear, cada uno tiene su forma.

la variable root está predefinida de FABRICA

destroyElement(root) 
destroyElement(getRootElement() 

Ok, Esta bien ya lo entendí anteriormente.

Link to comment

        if string.find ( msg, "charlotte" ) then

            outputChatBox("#FF2CECCharlotte<3: #FFFFFF No moleste joven.", root, 255, 255, 255, true)

            return

        end

   

no entiendo esa linea , para que sirve? , un jugador deberia saber si tecleas charlotte te sale ese output? , como lo sabra?

ah y para el antispam mejor usa algo con antispam= true luego de un tiempo le pones un false ,creo que me entiendes DXd

Link to comment

        if string.find ( msg, "charlotte" ) then

            outputChatBox("#FF2CECCharlotte<3: #FFFFFF No moleste joven.", root, 255, 255, 255, true)

            return

        end

   

no entiendo esa linea , para que sirve? , un jugador deberia saber si tecleas charlotte te sale ese output? , como lo sabra?

ah y para el antispam mejor usa algo con antispam= true luego de un tiempo le pones un false ,creo que me entiendes DXd

Busca la palabra 'charlotte' en tu mensaje, en caso de que se encuentre, Charlotte te dice 'No moleste joven' y tu mensaje no es enviado.

Link to comment

        if string.find ( msg, "charlotte" ) then

            outputChatBox("#FF2CECCharlotte<3: #FFFFFF No moleste joven.", root, 255, 255, 255, true)

            return

        end

   

no entiendo esa linea , para que sirve? , un jugador deberia saber si tecleas charlotte te sale ese output? , como lo sabra?

ah y para el antispam mejor usa algo con antispam= true luego de un tiempo le pones un false ,creo que me entiendes DXd

Lol la use para hablar con ella ( forever alone ), Olvide borrarla.

Pues si quieres hacer el Antispam con eso editalo a tu gusto.

PD: Algun moderador cierre el post.

Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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