Kilfwan Posted October 6, 2015 Share Posted October 6, 2015 (edited) 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 October 9, 2015 by Guest Link to comment
DBY Posted October 6, 2015 Share Posted October 6, 2015 (edited) 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 October 6, 2015 by Guest Link to comment
UserToDelete Posted October 6, 2015 Share Posted October 6, 2015 (edited) 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 October 6, 2015 by Guest Link to comment
alex17 Posted October 6, 2015 Share Posted October 6, 2015 por que algún usuario ira a querer hablar por comando ?? seria mas útil si utilizas el evento onPlayerChat Link to comment
Kilfwan Posted October 6, 2015 Author Share Posted October 6, 2015 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. Link to comment
aka Blue Posted October 6, 2015 Share Posted October 6, 2015 Root = Root. Fuck logic xdxd. Link to comment
Kilfwan Posted October 6, 2015 Author Share Posted October 6, 2015 Codigo correigo ( borre lo de los maximos intentos ) Link to comment
Tomas Posted October 6, 2015 Share Posted October 6, 2015 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. Link to comment
Kilfwan Posted October 7, 2015 Author Share Posted October 7, 2015 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
DBY Posted October 7, 2015 Share Posted October 7, 2015 Codigo correigo ( borre lo de los maximos intentos ) Corregirlo no es quitar lo que no sabes arreglar. Además, esa era la única idea buena del script Link to comment
alex17 Posted October 7, 2015 Share Posted October 7, 2015 (edited) 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 October 7, 2015 by Guest Link to comment
Kilfwan Posted October 7, 2015 Author Share Posted October 7, 2015 Reeditado el script. Muy bien alex17, no no importa de igual ese servira para detectar dicha palabra asi sea que la diga por say. PD: No he testeado el script con otra persona. Link to comment
Tomas Posted October 7, 2015 Share Posted October 7, 2015 Para qué tanto código.. con unas 15 líneas lo haces mucho más simple. Link to comment
Kilfwan Posted October 7, 2015 Author Share Posted October 7, 2015 (edited) : ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ : ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ ͌͌͌͋͋͋͊͊͊͌͌͋͋͊͊͊̏̏̏̏̏̏̏̏̏̏̏̏̏͌̏̏̏̏̏̏̏͏͌͌ 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 October 7, 2015 by Guest Link to comment
aka Blue Posted October 7, 2015 Share Posted October 7, 2015 No hace falta comprobarlo con otra persona. La línea intentos [ source ] que te puso alex hace que se guarde el valor en la tabla a nombre del source y no de todos los players. Link to comment
UserToDelete Posted October 8, 2015 Share Posted October 8, 2015 Da error logico. Estas comparando NIL con un numero. Link to comment
UserToDelete Posted October 8, 2015 Share Posted October 8, 2015 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
Kilfwan Posted October 8, 2015 Author Share Posted October 8, 2015 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
DeathMta Posted October 9, 2015 Share Posted October 9, 2015 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
Tomas Posted October 9, 2015 Share Posted October 9, 2015 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
aka Blue Posted October 9, 2015 Share Posted October 9, 2015 Madre mia, que utilidad más sumamente grande por dios. Link to comment
Kilfwan Posted October 9, 2015 Author Share Posted October 9, 2015 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
Recommended Posts