It is possible and in fact quite simple, at least if you know the scripting language.
This is my Intellimatter script:
.::Scripted by Antimattergames::.
:state=0,plrcanbeseen:state=1
:state=0,noiseheard=500:rotatetoplr,state=1
:state=0,shotdamage=1:rotatetoplr,state=1
:state=1,ifweapon=1,plrcanbeseen:rotatetoplr,settarget,useweapon,rundecal=6
:state=1,ifweapon=0:state=2,setframe=6
:state=1,shotdamage=1:state=3,setframe=3
:state=1,plrdistfurther=400:rotatetoplr,state=4,setframe=2
:state=1,plrcannotbeseen:state=5
:state=1,healthless=30:state=4,setframe=2
:state=1,healthless=30,plrdistwithin=100:state=6
:state=1,plrdistfurther=400,plrcannotbeseen:state=0
:state=1,plrdistwithin=100:state=6
:state=2:incframe=6
:state=2,frameatend=6:state=1,reloadweapon,sound=audiobankgunsreload.wav
:state=3:incframe=3
:state=3,random=1:rotatetoplr,strafe=90,rotatetoplr
:state=3,random=1:rotatetoplr,strafe=-90,rotatetoplr
:state=3,frameatend=3:animate=1,state=1
:state=4:incframe=2
:state=4:movefore=8
:state=4,frameatend=2:animate=1,state=1
:state=5,plrdistwithin=150:rotatetoplr,state=1
:state=5,noiseheard=500:rotatetoplr,state=1
:state=5,shotdamage=1:rotatetoplr,state=1
:state=5:rotatey=8
:state=6,random=1,rateoffire:plraddhealth=-12
:state=6,random=2,rateoffire:plraddhealth=-14
:state=6,random=3,rateoffire:plraddhealth=-16
:state=6:state=5
.::Scripted by Antimattergames::.
If you add these lines of code to the script:
:state=1,healthless=50,plrdistfurther=400:rotatetoplr,state=4,setframe=yourlimpanimationnumber
:state=4,healthless=50:incframe=yourlimpanimationnumber
:state=4,healthless=50,frameatend=yourlimpanimationnumber:animate=1,state=1
so it looks like this:
.::Scripted by Antimattergames::.
:state=0,plrcanbeseen:state=1
:state=0,noiseheard=500:rotatetoplr,state=1
:state=0,shotdamage=1:rotatetoplr,state=1
:state=1,ifweapon=1,plrcanbeseen:rotatetoplr,settarget,useweapon,rundecal=6
:state=1,ifweapon=0:state=2,setframe=6
:state=1,shotdamage=1:state=3,setframe=3
:state=1,plrdistfurther=400:rotatetoplr,state=4,setframe=2
:state=1,healthless=30,plrdistfurther=400:rotatetoplr,state=4,setframe=yourlimpanimationnumber
:state=1,plrcannotbeseen:state=5
:state=1,healthless=30:state=4,setframe=2
:state=1,healthless=30,plrdistwithin=100:state=6
:state=1,plrdistfurther=400,plrcannotbeseen:state=0
:state=1,plrdistwithin=100:state=6
:state=2:incframe=6
:state=2,frameatend=6:state=1,reloadweapon,sound=audiobankgunsreload.wav
:state=3:incframe=3
:state=3,random=1:rotatetoplr,strafe=90,rotatetoplr
:state=3,random=1:rotatetoplr,strafe=-90,rotatetoplr
:state=3,frameatend=3:animate=1,state=1
:state=4:incframe=2
:state=4:movefore=8
:state=4,frameatend=2:animate=1,state=1
:state=4,healthless=30:incframe=yourlimpanimationnumber
:state=4,healthless=30,frameatend=yourlimpanimationnumber:animate=1,state=1
:state=5,plrdistwithin=150:rotatetoplr,state=1
:state=5,noiseheard=500:rotatetoplr,state=1
:state=5,shotdamage=1:rotatetoplr,state=1
:state=5:rotatey=8
:state=6,random=1,rateoffire:plraddhealth=-12
:state=6,random=2,rateoffire:plraddhealth=-14
:state=6,random=3,rateoffire:plraddhealth=-16
:state=6:state=5
.::Scripted by Antimattergames::.
then it will limp. The healthless condition registers if the characters health is less than 50 so when the condition is true it will play the limp animation when the players distance is further than 400 starting frame instead of the default.
I cant be bothered with testing it so you have to do it yourself, just erase "yourlimpanimationnumber" and replace it with another animationnnumber.