ID:162757
 
How can i make a mob cant see another player if their not a specfic race or level??
Look up 'invisibility' in the reference.
try looking for see_invisible and visibility
The invisibility var is an option, but it's likely to be too limited for this. Here's something I wrote up a while ago, you just have to apply it in reverse:

var/list/transients = list()

mob
icon = 'mob.dmi'
icon_state = "player"
transient
var/transfats //what our unique tag should be
var/image/ghost //image to display to clients
New()
var/mob/transient/T = locate(transfats)
if(T)
world << "IDENTITY CRISIS: We've already got a [transfats]"
del(src)
else
tag = transfats
ghost = image(icon=src.icon,icon_state=src.icon_state,loc=src)
icon = null
transients += src
..()
hobo
icon_state = "goblin"
transfats = "hobo"
verb
talk()
set src in oview(1)
usr << "GOODBYE"
usr.cantsee += tag
usr.updateTransients()

hobo2
icon_state = "goblin"
transfats = "hobo2"
verb
talk()
set src in oview(1)
usr << "GOODBYE"
usr.cantsee += tag
usr.updateTransients()

var/list/cantsee
proc
updateTransients()
for(var/mob/transient/T in transients) //for each transient mob we might not be able to see
if(!(T.tag in cantsee)) //if we can't NOT see them
src << T.ghost //show us our ghost
else //if we CAN not see them
client.images -= T.ghost //then make our ghost disappear

Login()
cantsee = list()
updateTransients()
..()
In response to Keeth
Thanks