ID:161813
 
I was wondering if there is away to make it so that things will appear on a players screen but not others. For example:
A person with a quest. I want it to show and ! above there head. How do I make it so the ! only shows on the player that hasn't done the quests head.
Yes, you can. Look up and into screen objects and images.
Of course
turf/Quest_Enter
Enter()// called when u walk into the turf
new/obj/hud/Sign(usr.client)//Creates the object on the users screen
return 1 //lets you walk through the turf
obj/hud/Sign
icon='obj.dmi'
icon_state="sign"
New() //This makes it so when the object is created it deletes after small period of time
spawn(10)
del(src)
As Kaioken says, you can also look up HUDs on the forum/resources.
In response to Lt. Pain
No, that code is very wrong, and apart from that it is a partial implementation. It won't work.
In response to Kaioken
works for me
In response to Lt. Pain
Get another player to try out, let that person go through (or shoot a projectile) than you walk through and see what happens.
In response to Lt. Pain
There's just no way it can work like that, your code must be different, or otherwise you might've not included it all in the post. Either way that approach isn't how it should be done and what I've said in my previous post still counts. Besides, the example the OP asked about should use images, not screen objects (what you're apparently attempting to do).
mob/proc/Quest()
var/obj/A=new/obj
A.icon='Exclamation.dmi'
A.screen_loc="[client.view+1],[client.view+2]"
client.screen.Add(A)

That will most definitely put the exclamation mark on the client's screen somewhere. But Im not sure my calculations on screen_loc were correct for above their head. But its damn close.