Haha Thanks Dcer... But this is not advanced... Is only basic things :{
YinYin and Silva are the real masters :p
I don't know how to create complex functions like them :}
I think that main thing of AI is the "Load target" part... I'm not good with this...
And a little change on Henry AI... Now it can help you on stage mode:
YinYin and Silva are the real masters :p
I don't know how to create complex functions like them :}
I think that main thing of AI is the "Load target" part... I'm not good with this...
And a little change on Henry AI... Now it can help you on stage mode:
AI-Code:
void id(){ // reset all inputs left(0,0); right(0,0); J(0,0); up(0,0); down(0,0); A(0,0); D(0,0); int stzd = abs(self.z-target.z); int xdst = self.x-target.x; int ydst = self.y-target.y; int zdst = self.z-target.z; int zbgu = self.z-bg_zwidth1; int xabs = abs(xdst); int yabs = abs(ydst); int zabs = abs(zdst); int distance = abs(target.x - self.x); int k = 0; int dst = 99999; for (int i = 0; i < 400; i++) {if (loadTarget(i) == 0 && target.hp > 0 && target.num != self.num && target.team != self.team && target.state != 14 && abs(self.x-target.x)+abs(self.z-target.z) < dst){ dst = abs(self.x-target.x)+abs(self.z-target.z); k = i; }} loadTarget(k); int zdistance = abs(target.z - self.z); bool jump = false; if(target.type != 0 && mode == 1){clr();print("No enemy");right(1,1);} if(target.team == self.team && mode == 1 && target.type == 0){clr();print("No enemy");right(1,1);} if (distance < 350 && target.type == 0 && target.team != self.team){clr();print("Danger: "); if (zabs <= 40 && distance > (10 + rand(30))){print ("Run Run Z"); if(self.z < (bg_zwidth1 + rand(30))) {down();} else if(self.z > (bg_zwidth2 - rand(30))) {up();} else if(zdst < 0){up();} else if(zdst > 0){down();}} if (zabs > 60){if (zdst < 0){down();} else if(zdst > 0){up();}} if((distance < 350 || self.state == 2 || (target.state == 2 && distance < 350)) && zabs < 60) {; if (bg_width - self.x < (150 + rand(80)) || stage_bound - self.x < (150 + rand(80))){left();} else if (self.x < (150 + rand(80))){right();} else if (target.x > self.x){left();} else{right();} if(self.state == 2 && jump){J();}} else{if (target.x > self.x && self.facing){right(1,1);} else if (target.x < self.x && !self.facing){left(1,1);}} if (self.state == 2 && self.x_velocity == 0){left();} if(self.state == 2 && distance < (50+rand(150)) && rand(1) == 1){J();}} if(self.state == 2 && distance < (50+rand(150)) && rand(1) == 0){print("Ole");D();} if((self.frame == 213 || self.frame == 214 || self.frame == 216 || self.frame == 217) && distance < 60 && zdst < 20){A();} if (distance > 350 && target.type == 0 && target.team != self.team){clr();print("Come at me Bro: ");{ if (self.mp > 200 && rand(15) == 15 && target.blink == 0){print("Magic Arrow"); if (target.x > self.x){DrJ();} else if (target.x < self.x){DlJ();}} if (self.mp > 100 && rand(15) == 14 && target.blink == 0 && zabs < 20){print("Wind"); if (target.x > self.x){DrA();} else if (target.x < self.x){DlA();}} if (target.x > self.x && self.facing){right(1,1);} if (target.x < self.x && !self.facing){left(1,1);} if (target.blink == 0 && target.state != 6 && target.state != 12 && target.state != 14){ if (target.z > self.z && zdistance > 10){down();} else if(target.z < self.z){up();} if (distance < 473 && distance > 350 && self.state != 2) {if (zdistance < 10){A();} else if (zdistance > 15 && zdistance < 40){if (target.z > self.z){down(1,0);} else{up();}A();}}} if (distance > 450){if (target.x > self.x){right(1,1);} else if (target.x < self.x){left(1,1);} if ((target.state == 3 || target.state == 15) && self.state != 2 ){print(" Defend");{A();}} }}}} |