Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //SS3 Goku (Buu)
- void switchToNearestTarget()
- {
- int nearestDistance=2000;
- int nearestIndex=0;
- int distance=abs(self.x-target.x);
- for (int i = 0; i < 400; ++i){
- if ( (loadTarget(i) == 0) && target.team != self.team){
- distance=abs(self.x-target.x);
- if (distance < nearestDistance)
- {
- nearestDistance=distance;
- nearestIndex=i;
- }
- }
- }
- print(nearestDistance+"\n");
- loadTarget(nearestIndex);
- }
- bool facingTarget()
- {
- return ((!self.facing && self.x < target.x) || (self.facing && self.x > target.x));
- }
- bool xDistanceBetween(int min, int max)
- {
- return abs(self.x-target.x)>=min && abs(self.x-target.x)<=max;
- }
- bool yDistanceBetween(int min, int max)
- {
- return abs(self.y-target.y)>=min && abs(self.y-target.y)<=max;
- }
- bool zDistanceBetween(int min, int max)
- {
- return abs(self.z-target.z)>=min && abs(self.z-target.z)<=max;
- }
- bool targetAttacking()
- {
- int itrcount=game.objects[target.num].data.frames[game.objects[target.num].data.frames[game.objects[target.num].frame1].next].itr_count;
- for (int itrindx=0; itrindx < itrcount; itrindx++)
- {
- return target.data.frames[target.data.frames[target.frame].next].itrs[itrindx].kind==0;
- //return target.data.frames[target.frame].itrs[itrindx].kind==0;
- }
- return false;
- }
- void changeDirection()
- {
- if (self.facing) right(1,0);
- else left(1,0);
- }
- bool targetInvulnerable()
- {
- return (target.state)==14;
- }
- void clearKeyClicks()
- {
- up(0,0); down(0,0); left(0,0); right(0,0); A(0,0); D(0,0); J(0,0);
- }
- void DfJ()
- {
- if (facingTarget() && self.facing)
- {
- DlJ();
- }
- else
- {
- DrJ();
- }
- }
- void DfA()
- {
- if (facingTarget() && self.facing)
- {
- DlA();
- }
- else
- {
- DrA();
- }
- }
- void id()
- {
- int abs_x_distance=abs(self.x-target.x);
- int abs_y_distance=abs(self.y-target.y);
- int abs_z_distance=abs(self.z-target.z);
- //----------------------Start writing your AI here----------------
- clearKeyClicks();
- switchToNearestTarget();
- //face the target
- if (!facingTarget())
- changeDirection();
- //defend if attacked
- if (targetAttacking() && self.state==0)
- D(1,0);
- /*
- //Kamehameha
- if (abs(100*(self.z-target.z)/((self.x-target.x)*((self.facing?1:0)*2-1))) <= 4 && abs(self.x-target.x) < 500 && abs(self.x-target.x) > 300 && self.mp > 225)
- {
- if (self.x-target.x > 0)
- {
- DlJ();
- }
- else if (self.x-target.x < 0)
- {
- DrJ();
- }
- }
- //KiBlasts
- if (abs(100*(self.z-target.z)/((self.x-target.x)*((self.facing?1:0)*2-1))) <= 15 && abs(self.x-target.x) < 600 && abs(self.x-target.x) > 450 && self.mp > 125)
- {
- if (self.x-target.x > 0)
- {
- DlA();
- A(1,0);
- up(1,0);
- A(1,0);
- down(1,0);
- }
- else if (self.x-target.x < 0)
- {
- DrA();
- A(1,0);
- up(1,0);
- A(1,0);
- down(1,0);
- }
- }
- */
- /*
- //Instant Kamehameha
- if (self.frame==266 || self.frame == 295 && abs(100*(self.z-target.z)/((self.x-target.x)*((self.facing?1:0)*2-1))) >= 6 || abs(self.x-target.x) > 500) {
- if (self.x-target.x > 0){
- DrA();
- }
- else if (self.x-target.x < 0){
- DlA();
- }
- }
- */
- /*
- if ((abs(self.x-target.x) > 500) && self.mp < 500 )
- {
- DJA();
- A(1,0);
- }
- //IT Counter Attack
- if (self.frame==111)
- {
- A(1,0);
- }
- //combo
- if (self.frame == 73)
- {
- J(1,0);
- }
- //Explosive Wave
- if (abs(100*(self.z-target.z)/((self.x-target.x)*((self.facing?1:0)*2-1))) <= 30 && abs(self.x-target.x) < 200 && abs(self.x-target.x) > 50 && self.mp > 450 && self.hp < 250)
- {
- DuJ();
- }
- //Kiai Blast Combo
- if (abs(100*(self.z-target.z)/((self.x-target.x)*((self.facing?1:0)*2-1))) <= 1 && abs(self.x-target.x) < 225 && abs(self.x-target.x) > 100 && self.mp > 300)
- {
- if (self.x-target.x > 0)
- {
- left(1,0);
- DuA();
- A(1,0);
- }
- if (self.x-target.x < 0)
- {
- right(1,0);
- DuA();
- A(1,0);
- }
- }
- //Kamehameha Finish on Combo end
- if (self.frame==169 && target.state==12)
- {
- J(1,0);
- }
- if (target.state==3 && abs(self.x-target.x) > 200 && self.mp > 475 && self.hp < 250)
- {
- if (self.x-target.x > 0)
- {
- left(1,0) ;
- DdJ();
- A(1,0);
- }
- else if (self.x-target.x < 0)
- {
- right(1,0) ;
- DdJ();
- A(1,0);
- }
- }
- //crazy
- if (difficulty == -1)
- {
- //combo
- if (self.frame == 70 && self.mp > 400)
- {
- J(1,0);
- }
- //combo
- if (self.frame == 28 || self.frame == 29)
- {
- J(1,0);
- }
- }
- */
- // return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement