ID:147219
 
obj
bang
icon = 'Snowball.dmi'
density = 1
hitable = 0
Bump(mob/M)
if(M.hitable == 1)
M.health -= 10
M << "You have been shot"
if(M.health<=0)
death(M)
M << "die"
if(M.hitable == 2)
M.health -= 10
M << "You have been shot"
del(src)
if(M.health<=0)
death(M)

obj
big_bang
icon = 'Snowball.dmi'
icon_state = "death"
density = 1
hitable = 0
Bump(mob/M)
if(M.hitable == 1)
M.health -= 100
M << "You have been shot"
del(src)
if(M.health <= 0)
death(M)
M << "die"
if(M.hitable == 2)
M.health -= 100
M << "You have been shot"
if(M.health <= 0)
death(M)

proc/death(mob/M)
if(M.hitable == 1)
world << "[M] has died"
M.kills = 0
M.health = 50
M.credits = 0
M.flag = 0
flick("dead",M)
respawn(M)
if(M.hitable == 2)
del M
proc/respawn(mob/M)
if(M.team == 1)
M.loc=locate(50,75,1)
if(M.team == 2)
M.loc=locate(50,25,1)
fixed. It isnt tested, but I think it should work.
obj
bang
icon = 'Snowball.dmi'
density = 1
hitable = 0
Bump(mob/M)
if(M.hitable == 1)
M.health -= 10
M << "You have been shot"
if(M.health<=0)
M.death()
M << "die"
if(M.hitable == 2)
M.health -= 10
M << "You have been shot"
del(src)
if(M.health<=0)
M.death()

obj
big_bang
icon = 'Snowball.dmi'
icon_state = "death"
density = 1
hitable = 0
Bump(mob/M)
if(M.hitable == 1)
M.health -= 100
M << "You have been shot"
del(src)
if(M.health <= 0)
M.death()
M << "die"
if(M.hitable == 2)
M.health -= 100
M << "You have been shot"
if(M.health <= 0)
M.death()

mob/proc/death()
if(src.hitable == 1)
world << "[src] has died"
src.kills = 0
src.health = 50
src.credits = 0
src.flag = 0
flick("dead",src)
src.respawn()
if(src.hitable == 2)
del src
mob/proc/respawn()
if(src.team == 1)
src.loc=locate(50,75,1)
if(src.team == 2)
src.loc=locate(50,25,1)

In response to Troglodyte
it worked thanks alot =)
In response to Troglodyte
You're still deleting src before M.death() can be called.
In response to Garthor
i know but i discovered this glitch before you posted but thxs