ID:1627096
 
Keywords: dot, effect, help, poison, skill
(See the best response by Ter13.)
I'm trying to make it whereas when a mob is hit with Poison Ball it applys a poison DoT. Here's the proc:
mob
var
Poison = 0
Poison_On = 0

mob/proc/Poison_Proc(var/P, mob/Poisoner)
if(Poison_On) return
Poison += P
if(Poison > 20) Poison = 20
if(client) usr<<output("You have been poisoned for [Poison] seconds!", "output1")
overlays += 'PoisonDoT.dmi'
Poison_On= 1
while(Poison)
if(Poison==0)
Poison = 0
Poison_On = 0
overlays -= 'PoisonDoT.dmi'
break
if(Poison > 0)
if(client)
if(Poison > 1) usr<<output("You have been poisoned for [Poison] seconds!", "output1")
else usr<<output("You have been poisoned for [Poison] seconds!", "output1")
src.HP-=2+rand(0.25,0.5)
DeathCheck()
//new/obj/
sleep(5)
Poison--
But when I call it in the skill Poison Ball:
Poison_Ball
LearnedBy="Cleric"
LearnedOn=4
MPCost=6
verb/Poison_Ball()
set category="Skills"
if(usr.BasicSkillUse(src))
var/damage=round(usr.MaxMP/1.5)
damage+=rand(2,4)
usr.Projectile("[src.name]",damage)
Poison_Proc(4,src)//Poison_Proc(time,src)
It says undefined proc. Why?

Error that occurs: Code\Skills.dm:125:error: Poison_Proc: undefined proc

Thanks for any help!
Best response
It's undefined because you aren't calling Poison_Proc on the correct object.
In response to Ter13
Oh? Still learning, explain further please.
Poison_Proc(4,src)//Poison_Proc(time,src)

Poison_Proc is defined under /mob, but you are calling it as though it were a global proc.