I got a little side-tracked by real life, but will go try out one of your zombies in X10 now.
As for what Lee said - from what I can tell, that's all DarkAI tries to do. The rest is handled in the script. Different attacks based on distance should still be possible as plrdistwithin and plrdistfurther still work. As for choosing run or walk - I don't know. If you can get Lee to add some sort of setdarkairun=X command it would be possible - otherwise not so much. And for any of your scripts that use shotdamage=X to play a hurt animation (like the egyptian ones), that should still be possible aswell.
Right now the main obstacle for your newer characters is the lack of a plrfreeze command in X10.
EDIT: Okay, this should work with your zombies (or zombie 2 anyways):
;Artificial Intelligence Script
;Header
desc = Dark AI Behaviour Script
;Triggers
:nearactivatable=0:settarget,activatetarget=2
:state=0,activated=1:dodarkai=2
:state=0,isdarkaihurt:dodarkai=3
:state=0,ifweapon=0,isdarkaifiring:state=8,animate=6,setframe=6,dodarkai=4
:state=0,ifweapon=1,isdarkaifiring:state=2
;Modify this line to change state=11 to state=101 and get rid of animate/setframe
:state=0,ifweapon=2,isdarkaifiring:state=101,dodarkai=4
:state=0,ifweapon=3,isdarkaifiring:state=21,reloadweapon,animate=6,setframe=6,dodarkai=4
:state=0,ifweapon=4,isdarkaifiring:state=31,animate=6,setframe=6,dodarkai=4
:state=0,ifweapon=1,isdarkaiseeing:dodarkai=1
:state=0:dodarkaianim
:state=5:useweapon,rundecal=7,state=0,dodarkaianim
:state=4:state=5,dodarkaianim
:state=3:state=4,dodarkaianim
:state=2:state=3,dodarkaianim
:state=8:incframe=6
:state=8,frameatend=6:state=0,reloadweapon,dodarkai=5,sound=audiobankgunsreload.wav
;Select a random animation...
:state=101,random=5:setframe=94,state=12
:state=101,random=5:setframe=95,state=13
:state=101:setframe=93,state=11
;Playing said animations!
:state=11:incframe=93
:state=11,framebeyond=93 50,ifweapon=2:useweapon
:state=11,frameatend=93:state=0,animate=1,dodarkai=5
:state=12:incframe=94
:state=12,framebeyond=94 55,ifweapon=2:useweapon
:state=12,frameatend=94:state=0,animate=1,dodarkai=5
:state=13:incframe=95
:state=14:incframe=95
:state=15:incframe=95
:state=13,framebeyond=95 44,ifweapon=2:useweapon,state=14
:state=14,framebeyond=95 66,ifweapon=2:useweapon,state=15
:state=15,framebeyond=95 90,ifweapon=2:useweapon
:state=13,frameatend=95:state=0,animate=1,dodarkai=5
:state=14,frameatend=95:state=0,animate=1,dodarkai=5
:state=15,frameatend=95:state=0,animate=1,dodarkai=5
:state=21:incframe=6
:state=21,framebeyond=6 65,ifweapon=3:useweapon
:state=21,frameatend=6:state=0,dodarkai=5
:state=31:incframe=6
:state=31,frameatend=6,ifweapon=4:reloadweapon,useweapon,state=0,dodarkai=5
;End of Script
It doesn't freeze the player in place, but it's a start. How do you get an enemy to run up and attack the player though? Cyblob does it fine - but I can't get these guys to do it