ID:155577
 
    Move()
for(var/mob/NPC/M in oview(7))
for(var/obj/Quests/Q in M.QuestList)
var/image/I
if(usr.Quest[Q.NUMBER]=="DONE")
I=image('QuestMarkers.dmi',M, "QuestComplete")
usr.client.images-=image('QuestMarkers.dmi',M)
usr.client.images+=I
break
if(usr.Quest[Q.NUMBER]==null)
if(usr.Level>=Q.QLEVEL)
I=image('QuestMarkers.dmi',M, "HaveQuest")
usr.client.images-=image('QuestMarkers.dmi',M)
usr.client.images+=I
break
if(usr.Level<Q.QLEVEL)
I=image('QuestMarkers.dmi',M, "HaveQuestNotHighEnough")
usr.client.images-=image('QuestMarkers.dmi',M)
usr.client.images+=I
if(usr.Quest[Q.NUMBER]=="DOING")
I=image('QuestMarkers.dmi',M, "QuestNotComplete")
usr.client.images-=image('QuestMarkers.dmi',M)
usr.client.images+=I
else
usr.client.images-=image('QuestMarkers.dmi',M)
..()

The icons appear over the NPCs head when they have a quest to give to that person and noone else can see them but that person. Only problem now is deleting them cause they overlap each other. I tried del it just exits the whole proc I tried removing from client.images as you see above I am at a loss...Just an example I walk up to quest giver sje has yellow ! saying she has quest...i accept quest now I have a silver ? above the yellow ! (which should be being deleted) I searched all the references i could find on /image someone point me in the right direction I don't like to be stuck on small little problems like this.
when calling image() you are making a new instance of image. You need to refer to the instance you created before to remove them from the image list.

When I was doing this before, I gave each npc a var for each of their images, and then added and removed from people's image list as needed using the var.