Quote: "Can you add darkai to old character scripts and have them use darkai and their scripted commands, like Bond1's zombies?"
Not exactly. It more or less requires writing new scripts but they can be adapted to work with DAI. It was one of the things I tried during alpha.
Here are two scripts (male and female) I made for the mob zombies. I'm not sure they will still work right in current release but they run the custom anims and when fighting someone they call to other nearby team mates to join the fight. You're welcome to give them a try and modify to suit...
Dark_AI_appear_zombie_team6.fpi
;Artificial Intelligence Script
;Header
desc = zombie enemy for DAI hates everyone
;Triggers
:state=0:setalphafade=100,addaiteam=6,state=1
:state=1:aiaddenemy=6 1|2|3|4|5|7,state=2
:state=2:runfpidefault=1
;End of Script
Dark_AI_mobzombie_female.fpi
desc = Random Melee Attack for use with v117 Dark AI. (female)
;Triggers
:plrhealthless=0:setaiactive=1,state=10,animate=94
;UPRIGHT ANIMS
:ducking=0,strafingleft=1:animationnormal,animate=92
:ducking=0,strafingright=1:animationnormal,animate=92
:ducking=0,movingforwards=1:animationnormal,animate=92
:ducking=0,movingbackwards=1:animationreverse,animate=92
:ducking=0,idle=1:animate=94
;CROUCH ANIMS
:ducking=1,movingforwards=1:animate=32
:ducking=1,movingbackwards=1:animationreverse
:ducking=1,strafingleft=1:animate=32
:ducking=1,movingbackwards=1:animate=32
:ducking=1,idle=1:animate=31
;DETECT TARGET AND IDLE
:state=10,aicalled=1000:airespondtocall
:state=10,aiheardsound=500:aimovetosound
:state=10,aiheardsound=1000:airotatetosound
:state=10,aicanshoot=1:aisettarget
:state=10,aitargetdistfurther=300,random=20:aimoverandom
:state=10,aitargetdistwithin=300:state=5,airotatetotarget
;CHOOSE MELEE ATTACK & RUN OR WALK
::airotatetotarget
:state=5,aicanshoot=1:aisettarget,airotatetotarget
:state=5,aitargetdistfurther=700:state=10
;RAGE ANIMATION 1
;//:state=5,random=6:state=12,aisettarget
:state=12,aitargetdistfurther=70:airotatetotarget,aimovetotarget
:state=12,aitargetdistwithin=70,aicanshoot=1:aistop,airotatetotarget,setaiactive=0,setframe=102,state=78,sound=audiobank\zombie_apocalypse\femalescream2.wav
:state=12,aitargetdistfurther=500:aistop,state=10
:state=78:incframe=102
:state=78,framebeyond=102 40,aitargetdistwithin=200:state=89,aicallteam=800
:state=78,frameatend=102:state=5,setaiactive=1,etimerstart,animate=94
:state=89,frameatend=102:state=5,setaiactive=1,etimerstart,animate=94
;MELEE ATTACK 1 (DOUBLE ARM SLASH)
:state=5,random=5:state=1,aisettarget
:state=1,aitargetdistfurther=70:aimovetotarget
:state=1,aitargetdistwithin=70,aicanshoot=1:aistop,airotatetotarget,setaiactive=0,setframe=98,state=7,sound=audiobank\zombie_apocalypse\femalescream3.wav
:state=1,aitargetdistfurther=500:aistop,state=10
:state=7:incframe=98
:state=7,framebeyond=98 40,aitargetdistwithin=80:aisetmeleedamage=5,aiusemelee=1,state=8
:state=7,frameatend=98:state=5,setaiactive=1,etimerstart,animate=94
:state=8,framebeyond=98 60,aitargetdistwithin=80:aisetmeleedamage=2,aiusemelee=1,sound=audiobank\misc\melee.wav,state=9
:state=8,frameatend=98:state=5,setaiactive=1,etimerstart,animate=94
:state=9,frameatend=98:state=5,setaiactive=1,etimerstart,animate=94
;MELEE ATTACK 2 (OVERHEAD SLASH RIGHT)
:state=5,random=4:state=6,aisettarget
:state=6,aitargetdistfurther=70:airotatetotarget,aimovetotarget
:state=6,aitargetdistwithin=70,aicanshoot=1:aistop,airotatetotarget,setaiactive=0,setframe=101,state=2,sound=audiobank\zombie_apocalypse\femalescream3.wav
:state=6,aitargetdistfurther=500:aistop,state=10
:state=2:incframe=101
:state=2,framebeyond=101 60,aitargetdistwithin=80:aisetmeleedamage=5,aiusemelee=1,state=3
:state=2,frameatend=101:state=5,setaiactive=1,etimerstart,animate=94
:state=3,frameatend=101:state=5,setaiactive=1,etimerstart,animate=94
;MELEE ATTACK 3 (SINGLE ARM SLASH)
:state=5,random=3:state=66,aisettarget
:state=66,aitargetdistfurther=70:airotatetotarget,aimovetotarget
:state=66,aitargetdistwithin=70,aicanshoot=1:aistop,airotatetotarget,setaiactive=0,setframe=99,state=22,sound=audiobank\misc\melee.wav
:state=66,aitargetdistfurther=500:aistop,state=10
:state=22:incframe=99
:state=22,framebeyond=99 50,aitargetdistwithin=80:aisetmeleedamage=5,aiusemelee=1,state=33
:state=22,frameatend=99:state=5,setaiactive=1,etimerstart,animate=94
:state=33,frameatend=99:state=5,setaiactive=1,etimerstart,animate=94
;MELEE ATTACK 4 (OVERHEAD SLASH LEFT)
:state=5,random=2:state=11,aisettarget
:state=11,aitargetdistfurther=70:airotatetotarget,aimovetotarget
:state=11,aitargetdistwithin=70,aicanshoot=1:aistop,airotatetotarget,setaiactive=0,setframe=100,state=77,sound=audiobank\misc\melee.wav
:state=11,aitargetdistfurther=500:aistop,state=10
:state=77:incframe=100
:state=77,framebeyond=100 60,aitargetdistwithin=80:aisetmeleedamage=5,aiusemelee=1,state=88
:state=77,frameatend=100:state=5,setaiactive=1,etimerstart,animate=94
:state=88,frameatend=100:state=5,setaiactive=1,etimerstart,animate=94
;RAGE ANIMATION 2
;//:state=5:state=13,aisettarget
:state=13,aitargetdistfurther=70:airotatetotarget,aimovetotarget
:state=13,aitargetdistwithin=70:airotatetotarget,setaiactive=0,setframe=103,state=79,sound=audiobank\zombie_apocalypse\femalescream1.wav
:state=13,aitargetdistfurther=500:aistop,state=10
:state=79:incframe=103
:state=79,framebeyond=103 40,aitargetdistwithin=200:state=90,aicallteam=800
:state=79,frameatend=103:state=5,setaiactive=1,etimerstart,animate=94
:state=90,frameatend=103:state=5,setaiactive=1,etimerstart,animate=94
;//start flinch snippet--------------------------------------------------------------------------------------------------------------
::localvar=1
:state=0:setvar=0
:varequal=0,shotdamage=1:aisettarget,aistop,setvar=1,state=555,bloodsplash=50
:state=555,random=6:setaiactive=0,setframe=102,state=578,sound=audiobank\zombie_apocalypse\femalescream2.wav
:state=512,aitargetdistfurther=500:aistop,state=10
:state=578:incframe=102
:state=578,frameatend=102:setaiactive=1,etimerstart,animate=94,setvar=0,state=10
:state=555:setaiactive=0,setframe=103,state=579,sound=audiobank\zombie_apocalypse\femalescream1.wav
:state=513,aitargetdistfurther=500:aistop,state=10
:state=579:incframe=103
:state=579,frameatend=103:setaiactive=1,etimerstart,animate=94,setvar=0,state=10
;//end flinch snippet--------------------------------------------------------------------------------------------------------------
;//start
:state=0:floorlogic,setaiactive=1,alwaysactive=1,reloadweapon,state=10
;//End
Dark_AI_mobzombie_male.fpi
desc = Random Melee Attack for use with v117 Dark AI. (male)
;Triggers
:plrhealthless=0:setaiactive=1,setvar=0,state=10,animate=94
;UPRIGHT ANIMS
:ducking=0,strafingleft=1:animationnormal,animate=92
:ducking=0,strafingright=1:animationnormal,animate=92
:ducking=0,movingforwards=1:animationnormal,animate=92
:ducking=0,movingbackwards=1:animationreverse,animate=92
:ducking=0,idle=1:animate=94
;CROUCH ANIMS
:ducking=1,movingforwards=1:animate=32
:ducking=1,movingbackwards=1:animationreverse
:ducking=1,strafingleft=1:animate=32
:ducking=1,movingbackwards=1:animate=32
:ducking=1,idle=1:animate=31
;DETECT TARGET AND IDLE
;//:state=10:fpgcrawtextsize=18,fpgcrawtextfont=arial,fpgcrawtextr=200,fpgcrawtextg=200,fpgcrawtextb=200,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=state10
:state=10,aicanshoot=1:state=5
:state=10,aiheardsound=800:airotatetotarget
;CHOOSE MELEE ATTACK
;//:state=5:fpgcrawtextsize=18,fpgcrawtextfont=arial,fpgcrawtextr=200,fpgcrawtextg=200,fpgcrawtextb=200,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=state5
:state=5,aitargetdistfurther=700:state=10
;MELEE ATTACK 2 (OVERHEAD SLASH RIGHT)
;//:state=205,random=10:state=206,aisettarget
:state=206,aitargetdistfurther=70:airotatetotarget,aimovetotarget,aisettarget
:state=206,aicanshoot=0:airotatetotarget
:state=206,aitargetdistwithin=70,aicanshoot=1,rateoffire:airotatetotarget,setaiactive=0,setframe=101,state=202,sound=audiobank\zombie_apocalypse\malemoan3.wav
:state=202:incframe=101,airotatetotarget
:state=202,framebeyond=101 60,aitargetdistwithin=80:aisetmeleedamage=5,aiusemelee=1,state=203
:state=202,frameatend=101:setframe=94,state=10,setaiactive=1,etimerstart
:state=203,frameatend=101:setframe=94,state=10,setaiactive=1,etimerstart
;MELEE ATTACK 3 (SINGLE ARM SLASH)
;//:state=5,random=5:state=366,aisettarget
:state=366,aitargetdistfurther=70:airotatetotarget,aimovetotarget,aisettarget
:state=366,aicanshoot=0:airotatetotarget
:state=366,aitargetdistwithin=70,aicanshoot=1,rateoffire:airotatetotarget,setaiactive=0,setframe=99,state=322,sound=audiobank\zombie_apocalypse\zombie3growl.wav
:state=322:incframe=99,airotatetotarget
:state=322,framebeyond=99 50,aitargetdistwithin=80:aisetmeleedamage=5,aiusemelee=1
:state=322,frameatend=99:setframe=94,state=10,setaiactive=1,etimerstart
:state=333,frameatend=99:setframe=94,state=10,setaiactive=1,etimerstart
;MELEE ATTACK 1 (DOUBLE ARM SLASH)
;//:state=5,random=20:state=101,aisettarget
:state=101,aitargetdistfurther=70:aimovetotarget,aisettarget
:state=101,aicanshoot=0:airotatetotarget
:state=101,aitargetdistwithin=70,aicanshoot=1,rateoffire:airotatetotarget,setaiactive=0,setframe=98,state=107,sound=audiobank\zombie_apocalypse\zombie3growl.wav
:state=107:incframe=98,airotatetotarget
:state=107,framebeyond=98 40,aitargetdistwithin=80:aisetmeleedamage=5,aiusemelee=1,state=108
:state=107,frameatend=98:setframe=94,state=10,setaiactive=1,etimerstart
:state=108,framebeyond=98 60,aitargetdistwithin=80:aisetmeleedamage=2,aiusemelee=1,state=109,sound=audiobank\zombie_apocalypse\zombie1intro.wav
:state=108,frameatend=98:setframe=94,state=10,setaiactive=1,etimerstart
:state=109,frameatend=98:setframe=94,state=10,setaiactive=1,etimerstart
;MELEE ATTACK 4 (OVERHEAD SLASH LEFT)
:state=5:state=411,airotatetotarget
:state=411,aitargetdistfurther=70:airotatetotarget,aimovetotarget
:state=411,aicanshoot=0:airotatetotarget
:state=411,aitargetdistwithin=70,aicanshoot=1,rateoffire:airotatetotarget,setaiactive=0,setframe=100,state=477,sound=audiobank\zombie_apocalypse\malemoan3.wav
:state=477:incframe=100,airotatetotarget
:state=477,framebeyond=100 60,aitargetdistwithin=80:aisetmeleedamage=5,aiusemelee=1
:state=477,frameatend=100:setframe=94,state=5,setaiactive=1,etimerstart
:state=488,frameatend=100:setframe=94,state=5,setaiactive=1,etimerstart
;//start flinch snippet--------------------------------------------------------------------------------------------------------------
;//:state=555:fpgcrawtextsize=18,fpgcrawtextfont=arial,fpgcrawtextr=200,fpgcrawtextg=200,fpgcrawtextb=200,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=state555
;//:state=578:fpgcrawtextsize=18,fpgcrawtextfont=arial,fpgcrawtextr=200,fpgcrawtextg=200,fpgcrawtextb=200,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=state578
;//:state=579:fpgcrawtextsize=18,fpgcrawtextfont=arial,fpgcrawtextr=200,fpgcrawtextg=200,fpgcrawtextb=200,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=state579
::localvar=1
:state=0:setvar=0
:varequal=0,shotdamage=1:aisettarget,airotatetotarget,freeze,setvar=1,state=555,bloodsplash=50
:state=555,random=6:freeze,setaiactive=0,setframe=102,state=578,sound=audiobank\zombie_apocalypse\malemoan2.wav
:state=578:freeze,incframe=102
:state=578,frameatend=102:setframe=94,state=5,setaiactive=1,setvar=0,etimerstart,aisettarget,airotatetotarget
:state=555:freeze,setaiactive=0,setframe=103,state=579,sound=audiobank\zombie_apocalypse\malemoan1.wav
:state=579:freeze,incframe=103
:state=579,frameatend=103:setframe=94,state=5,setaiactive=1,setvar=0,etimerstart,aisettarget,airotatetotarget
;//end flinch snippet--------------------------------------------------------------------------------------------------------------
;//start
:state=0:floorlogic,setaiactive=1,alwaysactive=1,activate=0,state=10
;//End
The males only attack when provoked (attacked) but the females will attack on sight. Otherwise the scripts are almost identical other than calling different sounds when moaning and stuff.
There's some debug text in there which I might have not gotten all commented out.
Quote: "To be honest bond1's zombies really don't need DAI, they already work really well. After all zombies are mindless freaks and are not meant to be intelligent"
But without DAI they can only attack the player. Its cool to see them attack your allies (and enemies too if you like)
EDIT: For these scripts I set the hitpoints higher than default (around 500) and increased their speed quite a bit(250-300)as well via editor.