i've written a special AI for clide with silvas programmable AI scripting
might improve it later on but this AI does very well against the originals
edit: clide will need id: 3 and this file will need to be inside an AI\ folder in the lf2 directory
but you can also rename this file to use a different id
edit: updated for 0.4 - added a few mean combos and he even adjusts his position for a critical hit
just try to let him take you into the dance of pain while hes got more than 50% mp
edit: Sooo - over a year later I'm zipping Clide up including AI and mirror sprites (also my preferred installation location inside the sprite folder to not clog up the main folder ...).
If you haven't enjoyed him with AI before maybe click that image now.
might improve it later on but this AI does very well against the originals
edit: clide will need id: 3 and this file will need to be inside an AI\ folder in the lf2 directory
but you can also rename this file to use a different id
edit: updated for 0.4 - added a few mean combos and he even adjusts his position for a critical hit
just try to let him take you into the dance of pain while hes got more than 50% mp
|
C-Code:
int ego(){ //close range: if (target.y == 0 && abs(target.z-self.z) < 9 && (self.x-target.x)*((self.facing?1:0)*2-1) < 0 && (self.x-target.x)*((self.facing?1:0)*2-1) < 100 && target.state == 16 && self.mp >= 250){ if (abs(self.x-target.x) > 0 && (self.state == 2 || self.state == 0)){ if (self.x-target.x > 0){left();} //turn back else {right();} } else if (self.x-target.x < 0){left();} //adjust x for D^A else {right();} return 1; }//basic move conditions: else if (target.y == 0 && abs(target.z-self.z) < 9 && (self.x-target.x)*((self.facing?1:0)*2-1) > 0 && (self.x-target.x)*((self.facing?1:0)*2-1) < 100){ if (target.state == 16 && self.mp >= 250 && abs(self.x-target.x) > 50){DuA();} //D^A against DoP else if (target.state == 16 && self.mp >= 250){ //adjust x for D^A if (self.x-target.x < 0){left();} else {right();} return 1; } else if (target.state == 8 || target.state == 16){DdA();} //DvA against DoP and broken defense else if (target.state == 3 && self.mp >= 75){D();} //D against attacks with enough mp if (self.state == 7 && self.bdefend >= 20){DdA();} //DvA from critical defense } //long/mid range: else if (self.x-target.x != 0){ if (target.state != 12 && abs(100*(self.z-target.z)/((self.x-target.x)*((self.facing?1:0)*2-1))) <= 15 && abs(self.x-target.x) < 200 && abs(self.x-target.x) > 80){ if (self.x-target.x > 0){DlJ();} //D<J else if (self.x-target.x < 0){DrJ();} //D>J } else if (abs(100*(self.z-target.z)/((self.x-target.x)*((self.facing?1:0)*2-1))) <= 15 && abs(self.x-target.x) < 400 && abs(self.x-target.x) > 200){ if (self.x-target.x > 0){DlA();} //D<A else if (self.x-target.x < 0){DrA();} //D>A } } //instant attacks if (self.state == 5){A();} //dash attack if ((self.frame == 75 || self.frame == 275) && target.state == 12){J();}//leap if (self.frame == 319){A();} //leap attack if (self.frame == 94 && target.state == 12){A();} //slide kick if (self.frame == 215 && target.state == 12){J();} //dash combo return 0; } |
edit: Sooo - over a year later I'm zipping Clide up including AI and mirror sprites (also my preferred installation location inside the sprite folder to not clog up the main folder ...).
If you haven't enjoyed him with AI before maybe click that image now.

Chat

![[Image: clide.png]](http://y2f.heliohost.org/signature/clide.png)