ID:157235
 
I was wondering if see_invisible could be set to a string text. Here's what I'm trying to do:
I have this power who projects people fears in front of them. For that I'm already using the see_invisible set to 2. However, I'm trying to make a "cloak" skill to make people invisible to certain kind of players but not to everyone. The problem is that if I set the invisible var to 5, for example, in my fear projection skill, and I cloak players with an invisibility of 2, then players who are having their fears projected will be able to see them. Any ideas on how to fix this?
Depending on how your fear projection skill works, you might be able to handle it using overlays displayed when necessary. Then invisibility is free for the cloak skill.
Your projection should use images, rather than invisibility.
In response to Skyspark
My fear projection... well, projects the fear only to the person who's being attacked, so no one else can see what he\she is affraid of.
In response to Gaboswsttj
Gaboswsttj wrote:
My fear projection... well, projects the fear only to the person who's being attacked, so no one else can see what he\she is affraid of.

You'll probably want to use client.images, then:

http://www.byond.com/members/?command=reference&path=client/ var/images
In response to Skyspark
Can you display mobs and objs with this client.images? Here's my fear projection code:
//.
//.
//.
src.see_invisible = 2
src.movable = 1
switch(src.fear)
if("None")
M << "<b>[src] was born with no fears and your powers can't affect \him!</b>"
src.movable = 0
src.see_invisible = 0
ChekMova(src)
return
if("Fire")
for(var/i=0;i<8;i++)
var/obj/Miscellaneous/FirePB/O = new()
O.density = 0
O.invisibility = 1
switch(i)
if(0)
O.loc = locate(src.x,src.y-1,src.z)
if(1)
O.loc = locate(src.x+1,src.y-1,src.z)
if(2)
O.loc = locate(src.x+1,src.y,src.z)
if(3)
O.loc = locate(src.x+1,src.y+1,src.z)
if(4)
O.loc = locate(src.x,src.y+1,src.z)
if(5)
O.loc = locate(src.x-1,src.y+1,src.z)
if(6)
O.loc = locate(src.x-1,src.y,src.z)
if(7)
O.loc = locate(src.x-1,src.y-1,src.z)
spawn(100)
del O
Check_Emot(src,"*hurt*")
src.Says("What the--! Help! Everything's on fire!",view())
sleep(100)
if("Thieves")
var/mob/O = new()
O.invisibility = 1
O.loc = src.loc
O.density = 0
step(O,src.dir)
step(O,src.dir)
O.dir = get_dir(O,src)
O.icon = 'MChara6.dmi'
O.Says("Give me all of your money or I'll kill you right here!",src)
sleep(30)
Check_Emot(src,"*hurt*")
src.Says("No! Please! Don't hurt me!",view())
sleep(15)
step(O,O.dir)
sleep(10)
src << "The thief takes all of your money, your objects and even your powers with him!"
src.Says("No! My stuff!!",view())
Check_Emot(src,"*hurt*")
step(O,src.dir)
sleep(3)
step(O,src.dir)
sleep(3)
step(O,src.dir)
sleep(3)
del O
src.Says("Please! Somebody stop him!!",view())
sleep(36)
if("Spiders")
var/obj/O = new()
O.icon = 'atks.dmi'
O.icon_state = "spiders"
O.invisibility = 1
O.loc = src.loc
O.layer = MOB_LAYER+1
flick("spidersst",O)
sleep(10)
Check_Emot(src,"*hurt*")
src.Says("What the--! Help! There are spiders all over me!",view())
sleep(87)
flick("spidersend",O)
sleep(3)
del O
if("Darkness")
src.sight = 1
Check_Emot(src,"*hurt*")
src.Says("What the--! Help! I can't see a thing!",view())
sleep(100)
src.sight = 0
if("Lossing a beloved person")
var/mob/O = new()
var/obj/talk/D = null
if(src.blvd[1])
D = src.blvd[1]
if(D == null)
M << "<b>[src] has no beloved persons yet so your powers can't affect \him!</b>"
src.movable = 0
src.see_invisible = 0
ChekMova(src)
return
O.invisibility = 1
O.loc = src.loc
O.density = 0
step(O,src.dir)
step(O,src.dir)
O.dir = get_dir(O,src)
O.name = D.name
O.gender = D.gen
O.icon = D.icon
O.Says("[src]? What's happening?",src)
sleep(20)
Check_Emot(src,"*hurt*")
src.Says("No! [O]! Don't hurt \him!",view())
sleep(10)
O.icon_state = "hurt"
var/obj/Miscellaneous/FirePB/A = new()
A.loc = O.loc
A.density = 0
A.invisibility = 1
src << "[D] gets covered by flames all of the sudden!"
src.Says("No! [D]!!",view())
Check_Emot(src,"*hurt*")
sleep(80)
del A
del D
del O
if("Death")
Check_Emot(src,"*hurt*")
src.Says("No! Please! Don't hurt me!",view())
sleep(10)
var/obj/Miscellaneous/FirePB/A = new()
A.invisibility = 1
A.density = 0
A.loc = src.loc
src << "You get covered by flames all of the sudden!"
src.Says("No! Help!!",view())
src.icon_state = "hurt"
Check_Emot(src,"*hurt*")
sleep(90)
del A
if("Water")
var/obj/O = new()
O.icon = 'Hydrok.dmi'
O.invisibility = 1
O.loc = src.loc
O.layer = MOB_LAYER+1
flick("st",O)
sleep(10)
Check_Emot(src,"*hurt*")
src.Says("What the--!",view())
sleep(87)
flick("end",O)
sleep(2)
del O
if("Car Crash")
src << sound('MusicStop.wav',0,0,1,100)
Check_Emot(src,":(")
src.Says("No...",view())
sleep(10)
src << sound('explode.wav',0,0,1,100)
src << "Flashbacks of the reason why you fear car crashes start hitting your mind."
Check_Emot(src,":'(")
sleep(50)
Check_Emot(src,":'(")
sleep(50)
src.see_invisible = 0
src.hp -= round(M.mag/1.5)
src.hp_bar()
src.DeathCheck(M)
if(src.death!=1)
src.icon_state = "stand"
sleep(10)
src.icon_state = ""
src.movable = 0
ChekMova(src)
.
.
.

How do you do that with images? (It's not sarcasm, I actually want yo know if you can)