Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Henry AI...
#1
I made some changes on Silva's Henry AI....

Well.. i've tried to defeat it with Davis and it was veeery annoying!




    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 (distance < 350 && target.type == 0){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){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 (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();}}    
}}}}
Reply
Thanks given by: Rhino.Freak
#2
Vauu, cool!!!
Reply
Thanks given by:
#3
Very nice, its cool!!! I am a bit jealous of you because I don't know advanced AI scripting I only know basics. Good, keep it up!!
(08-24-2012, 08:23 AM)Bender_EX Wrote:  Vauu, cool!!!
vauu? bad english.

Life is like a bicycle; to keep your balance, you must keep moving.
Reply
Thanks given by:
#4
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:
    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();}}    
}}}}

Reply
Thanks given by:




Users browsing this thread: 1 Guest(s)