Anzo Posted October 3, 2016 Posted October 3, 2016 (edited) ¿Cómo podría hacer un anti-flood? quiero hacer algo como, si el jugador escribe 4 lineas o más, escriba un mensaje diferente o no, lo mutee por 2 minutos. Me refiero a algo así: Aquí NO le daría mute al jugador que escribe JECE: HOLA JECE:HOLA JECE:HOLA Aquí SI le daría mute al jugador que escribe JECE:HOLA JECE:HOLA JECE:HOLA JECE:HOLA Pues eso, que puedo usar para saber si el jugador mando más de 3 mensajes Edited October 3, 2016 by Anzo IGN: Cordex
Tomas Posted October 4, 2016 Posted October 4, 2016 local rep = { message = {}, count = {} } local mutes = { } addEventHandler("onPlayerChat", root, function (message, type) if not rep.message[source] then -- first time rep.message[source] = message rep.count[source] = 1 else if ( rep.message[source] == message ) then rep.count[source] = rep.count[source] + 1 else rep.message[source] = message rep.count[source] = 1 end end if rep.count[source] == 4 then outputChatBox("Don't repeat yourself!", source, 255, 0, 0) setPlayerMuted(source, true) mutes[source] = getTickCount() + 120000 end end ) setTimer( function () for player, time in pairs (mutes) do if ( isElement(player) ) then if ( getTickCount() > time ) then setPlayerMuted(source, false) mutes[player] = nil end else mutes[player] = nil if ( rep.count[player] ) then rep.count[player] = nil rep.message[player] = nil end end end, 5000, 0 ) Esto debería funcionar, no lo he probado. Currently developing for International Gaming Community - Join us!
Anzo Posted October 5, 2016 Author Posted October 5, 2016 Si funciona, muchas gracias. Pero una pregunta más, eso da mute solo si escribes 4 lineas con el mismo texto si escribo 4 veces "hola" me da mute, pero si escribo "hola" y despues "como estas", luego "bien" y despues "chao" no me da mute. ¿Cómo puedo hacer que de mute si el jugador escribe 4 lineas seguidas? IGN: Cordex
Tomas Posted October 5, 2016 Posted October 5, 2016 1 hour ago, Anzo said: Si funciona, muchas gracias. Pero una pregunta más, eso da mute solo si escribes 4 lineas con el mismo texto si escribo 4 veces "hola" me da mute, pero si escribo "hola" y despues "como estas", luego "bien" y despues "chao" no me da mute. ¿Cómo puedo hacer que de mute si el jugador escribe 4 lineas seguidas? Pensé que querías que mutease solo si repetía el mismo mensaje cuatro veces ._. Si quitas lo de rep.message debería funcionar. Currently developing for International Gaming Community - Join us!
Recommended Posts