Code
##tickloc:runsub ticked; ##ticked: $cnt = $actor's counter; $fromhit = $actor's slot1; $tohit = $actor's slot2; $weapon = $actor's slot3; case $cnt do doinit,dodamage,dodamage,dodamage,dodamage,alldone; ##doinit: $adverb = (cleanly,effectively,perfectly,thoroughly,totally,utterly); $verb = (chops,cleaves,clips,hacks,hews,lops,severs,whacks); $part = (finger,hand,arm,foot,leg,ear,nose); say 'msg',"[$weapon] inflicts [$actor] which $adverb $verb the $part off of [$tohit]!"; clear $actor,all; update $actor = "counter=1,host='$tohit',hosthow='on'"; relook $loc; $gross = (bloody,mangled,severed,disembodied); $newclass = "$gross $part"; $jd = 52819; copy $jd; set $new_id's loc to $loc; set $new_id's class to $newclass; set $new_id's name to ''; set $new_id's colour to 'crimson'; set $new_id's pose to 'dead'; set $new_id's health to 0; set $new_id's owner to $fromhit; relook $loc; ##dodamage: $hlth = $tohit's health; take 3 from $hlth; if $hlth < 0 then zeroit; set $tohit's health to $hlth; $t = $target; $target = $tohit; say 'bleed',"[$actor] on [$tohit] is bleeding profusely!"; $target = $t; add 1 to $cnt; set $actor's counter to $cnt; if $hlth < 1 then saydead; ##zeroit: $hlth = 0; ##saydead: say 'msg',"[$tohit] dies from loss of blood"; set $actor's counter to 5; ##alldone: say 'msg',"[$actor] on [$tohit] stops bleeding."; set $actor's loc to $weapon; unhost $actor; clear $actor,all; update $actor = "host=0,hosthow='',counter=0"; relook $loc; switch $actor off;