ID:865822
 
mob
var
ignoring = list()//A list variable is best for this
mob
verb
Ignore(mob/M in world)
if(M in usr.ignoring)// For the forgiving type.
usr.ignoring -= M
else
usr.ignoring += M
usr << "<i>You are now ignoring [M]"

mob/verb/OOC(msg as text)
for(var/mob/M in world) //For ever user in the world that has the potential to see the message
if(usr in M.ignoring)//If one user has me on the ignore list..
M << " "//I see nothing
else
M << "[usr]: [msg]"//but if not, I see the message.


//You need this so the ignoring list won't get stuck if you have a saving system.
mob/Logout()
usr.ignoring = null



This code is for beginners.
Just to let you know, you are outputting text to every mob in the world, regardless of if they have a client or not. Maybe try something like this?

client
var
list/ignoring = list()

mob
proc/say(t)
for(var/client/c)
if(!(src.client in c.ignoring))
c << "[src]: [t]"
proc/ignore(client/c)
if(c) ignoring.Add(c)
verb
Ignore()
var/list/clients = list()
for(var/client/c)
clients.Add(c)
var/client/c = input(usr, "Who would you like to ignore?") in clients
if(c) usr.ignore(c)

Say()
var/t = input(usr, "What would you like to say?") as text|null
if(t) usr.say(t)
would the lag from such a system be substantial?, many people are under the assumption that such a system would create lag in OOC.
In response to Rapmaster (#2)
Rapmaster wrote:
would the lag from such a system be substantial?, many people are under the assumption that such a system would create lag in OOC.

Who is "many people"?
In response to Albro1 (#3)
many people being people who post such comments:

Sending a message to everyone requires less processing power than determining who has what ignores. Not worth it, or the effort.
Well sure it uses less processing power. The difference, though, is extremely minuscule. Putting something as simple as this off (It doesn't require much effort at all anyways) isn't because it isn't worth it, it's because you are lazy.