#Dv^ Posted July 12, 2016 Share Posted July 12, 2016 Hola! Disculpen, ¿Dónde se puede editar para que el player cuando ingrese al server no pueda chatear hasta que se loguee? Es más para evitar esos spammers que entran spamean y se van Se los agradecería, Gracias. Link to comment
Enargy, Posted July 12, 2016 Share Posted July 12, 2016 En la función que postea el mensaje en la primera linea añade una sentencia if checando si el player posee una cuenta de invitado usando isGuestAccount luego retornas la función a fin. Link to comment
Bc# Posted July 13, 2016 Share Posted July 13, 2016 addEventHandler ( "onPlayerJoin", root, function() showChat ( source, false ) end ) addEventHandler("onPlayerLogin", root, function() showChat ( source, true ) end) Link to comment
Guest Posted July 13, 2016 Share Posted July 13, 2016 addEventHandler ( "onPlayerJoin", root, function() showChat ( source, false ) end ) addEventHandler("onPlayerLogin", root, function() showChat ( source, true ) end) >>>F8 > say OLA Como ya lo han dicho antes, con el evento onPlayerChat y isGuestAccount Link to comment
#Dv^ Posted July 14, 2016 Author Share Posted July 14, 2016 Esta sería la función, no? Lo hice así addEventHandler('onPlayerChat', g_Root, function(msg, type) if isGuestAccount ( sourceAccount ) then if type == 0 then cancelEvent() if chatTime[source] and chatTime[source] + tonumber(get("*chat/mainChatDelay")) > getTickCount() then return else chatTime[source] = getTickCount() end if get("*chat/blockRepeatMessages") == "true" and lastChatMessage[source] and lastChatMessage[source] == msg then return else lastChatMessage[source] = msg end local r, g, b = getPlayerNametagColor(source) outputServerLog( "CHAT: " .. getPlayerName(source) .. ": " .. msg ) end end ) Link to comment
Tomas Posted July 14, 2016 Share Posted July 14, 2016 Esta sería la función, no?Lo hice así addEventHandler('onPlayerChat', g_Root, function(msg, type) if isGuestAccount ( sourceAccount ) then if type == 0 then cancelEvent() if chatTime[source] and chatTime[source] + tonumber(get("*chat/mainChatDelay")) > getTickCount() then return else chatTime[source] = getTickCount() end if get("*chat/blockRepeatMessages") == "true" and lastChatMessage[source] and lastChatMessage[source] == msg then return else lastChatMessage[source] = msg end local r, g, b = getPlayerNametagColor(source) outputServerLog( "CHAT: " .. getPlayerName(source) .. ": " .. msg ) end end ) if isGuestAccount ( getPlayerAccount(source) ) then return false end Link to comment
#Dv^ Posted July 15, 2016 Author Share Posted July 15, 2016 Lo he hecho pero aún así los players cuando ingresan pueden chatear aunque no estén logueados PD: Gracias por tu ayuda Link to comment
Tomas Posted July 15, 2016 Share Posted July 15, 2016 Lo he hecho pero aún así los players cuando ingresan pueden chatear aunque no estén logueadosPD: Gracias por tu ayuda Lo agregaste en la primera línea? Intenta cambiar la sentencia "return false end" por "return end". Link to comment
#Dv^ Posted July 15, 2016 Author Share Posted July 15, 2016 Sí lo puse así addEventHandler('onPlayerChat', g_Root, function(msg, type) if isGuestAccount ( getPlayerAccount(source) ) then return false end if type == 0 then cancelEvent() if chatTime[source] and chatTime[source] + tonumber(get("*chat/mainChatDelay")) > getTickCount() then return else chatTime[source] = getTickCount() end if get("*chat/blockRepeatMessages") == "true" and lastChatMessage[source] and lastChatMessage[source] == msg then return else lastChatMessage[source] = msg end local r, g, b = getPlayerNametagColor(source) outputServerLog( "CHAT: " .. getPlayerName(source) .. ": " .. msg ) end end ) Pero lo cambiaré así entonces addEventHandler('onPlayerChat', g_Root, function(msg, type) if isGuestAccount ( getPlayerAccount(source) ) then return end if type == 0 then cancelEvent() if chatTime[source] and chatTime[source] + tonumber(get("*chat/mainChatDelay")) > getTickCount() then return else chatTime[source] = getTickCount() end if get("*chat/blockRepeatMessages") == "true" and lastChatMessage[source] and lastChatMessage[source] == msg then return else lastChatMessage[source] = msg end local r, g, b = getPlayerNametagColor(source) outputServerLog( "CHAT: " .. getPlayerName(source) .. ": " .. msg ) end end ) Link to comment
#Dv^ Posted July 15, 2016 Author Share Posted July 15, 2016 No, aún puedo hablar aunque no me haya logueado PD: Agradezco tu ayuda Link to comment
Tomas Posted July 15, 2016 Share Posted July 15, 2016 if isGuestAccount ( getPlayerAccount(source) ) then cancelEvent() return end Link to comment
#Dv^ Posted July 16, 2016 Author Share Posted July 16, 2016 Mmm no, aún así puedo hablar aúnque no me haya logueado D: Link to comment
aka Blue Posted July 16, 2016 Share Posted July 16, 2016 En ese caso improvisa un sistema, el cual le asigne un elementData tipo 'chatPermitido' cuando se logeen y compruebalo en el onPlayerChat. Te dejo un ejemplo: -- Cuando no está logueado local chat_no = getElementData ( source, "chatPermitido" ) == 0 if chat_no then cancelEvent ( ) end Link to comment
Enargy, Posted July 16, 2016 Share Posted July 16, 2016 En ese caso improvisa un sistema, el cual le asigne un elementData tipo 'chatPermitido' cuando se logeen y compruebalo en el onPlayerChat.Te dejo un ejemplo: -- Cuando no está logueado local chat_no = getElementData ( source, "chatPermitido" ) == 0 if chat_no then cancelEvent ( ) end Es mucho mejor usar una variable para eso, setElementData para que sincronice con todo los clientes consume una cantidad de CPU. Link to comment
Recommended Posts