Advertisement
Mr-A

Untitled

Aug 25th, 2014
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //SS3 Goku (Buu)
  2.  
  3. void switchToNearestTarget()
  4. {
  5.     int nearestDistance=2000;
  6.     int nearestIndex=0;
  7.         int distance=abs(self.x-target.x);
  8.     for (int i = 0; i < 400; ++i){
  9.         if ( (loadTarget(i) == 0) && target.team != self.team){
  10.                         distance=abs(self.x-target.x);
  11.             if (distance < nearestDistance)
  12.             {
  13.                 nearestDistance=distance;
  14.                 nearestIndex=i;
  15.             }
  16.         }
  17.     }
  18.         print(nearestDistance+"\n");
  19.     loadTarget(nearestIndex);
  20. }
  21. bool facingTarget()
  22. {
  23.     return ((!self.facing && self.x < target.x) || (self.facing && self.x > target.x));
  24. }
  25.  
  26. bool xDistanceBetween(int min, int max)
  27. {
  28.     return abs(self.x-target.x)>=min && abs(self.x-target.x)<=max;
  29. }
  30.  
  31. bool yDistanceBetween(int min, int max)
  32. {
  33.     return abs(self.y-target.y)>=min && abs(self.y-target.y)<=max;
  34. }
  35.  
  36. bool zDistanceBetween(int min, int max)
  37. {
  38.     return abs(self.z-target.z)>=min && abs(self.z-target.z)<=max;
  39. }
  40.  
  41. bool targetAttacking()
  42. {
  43.     int itrcount=game.objects[target.num].data.frames[game.objects[target.num].data.frames[game.objects[target.num].frame1].next].itr_count;
  44.     for (int itrindx=0; itrindx < itrcount; itrindx++)
  45.     {
  46.         return target.data.frames[target.data.frames[target.frame].next].itrs[itrindx].kind==0;
  47.         //return target.data.frames[target.frame].itrs[itrindx].kind==0;
  48.     }
  49.     return false;
  50. }
  51.  
  52. void changeDirection()
  53. {
  54.     if (self.facing) right(1,0);
  55.     else left(1,0);
  56. }
  57.  
  58. bool targetInvulnerable()
  59. {
  60.     return (target.state)==14;
  61. }
  62.  
  63. void clearKeyClicks()
  64. {
  65.         up(0,0); down(0,0); left(0,0); right(0,0); A(0,0); D(0,0); J(0,0);
  66. }
  67.  
  68. void DfJ()
  69. {
  70.     if (facingTarget() && self.facing)
  71.     {
  72.         DlJ(); 
  73.     }
  74.     else
  75.     {
  76.         DrJ(); 
  77.     }
  78. }
  79.  
  80. void DfA()
  81. {
  82.     if (facingTarget() && self.facing)
  83.     {
  84.         DlA(); 
  85.     }
  86.     else
  87.     {
  88.         DrA(); 
  89.     }
  90. }
  91.  
  92.  
  93. void id()
  94. {
  95.     int abs_x_distance=abs(self.x-target.x);
  96.     int abs_y_distance=abs(self.y-target.y);
  97.     int abs_z_distance=abs(self.z-target.z);
  98.  
  99.     //----------------------Start writing your AI here----------------
  100.     clearKeyClicks();
  101.     switchToNearestTarget();
  102.    
  103.     //face the target
  104.     if (!facingTarget())
  105.         changeDirection();
  106.  
  107.     //defend if attacked
  108.     if (targetAttacking() && self.state==0)
  109.         D(1,0);
  110.  
  111.  
  112.    
  113.     /*
  114.    
  115.     //Kamehameha
  116.     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)
  117.     {
  118.         if (self.x-target.x > 0)
  119.         {
  120.             DlJ();
  121.         }
  122.         else if (self.x-target.x < 0)
  123.         {
  124.             DrJ();
  125.         }
  126.     }
  127.  
  128.     //KiBlasts
  129.     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)
  130.     {
  131.         if (self.x-target.x > 0)
  132.         {
  133.             DlA();
  134.             A(1,0);
  135.             up(1,0);
  136.             A(1,0);
  137.             down(1,0);
  138.         }
  139.         else if (self.x-target.x < 0)
  140.         {
  141.             DrA();
  142.             A(1,0);
  143.             up(1,0);
  144.             A(1,0);
  145.             down(1,0);
  146.         }
  147.     }
  148. */
  149.     /*
  150.         //Instant Kamehameha
  151.     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) {
  152.       if (self.x-target.x > 0){
  153.         DrA();
  154.       }
  155.     else if (self.x-target.x < 0){
  156.       DlA();
  157.       }
  158.     }
  159.     */
  160.  
  161. /*
  162.     if ((abs(self.x-target.x) > 500) && self.mp < 500 )
  163.     {
  164.         DJA();
  165.         A(1,0);
  166.     }
  167.  
  168.  
  169.     //IT Counter Attack
  170.     if (self.frame==111)
  171.     {
  172.         A(1,0);
  173.     }
  174.  
  175.     //combo
  176.     if (self.frame == 73)
  177.     {
  178.         J(1,0);
  179.     }
  180.  
  181.  
  182.     //Explosive Wave
  183.     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)
  184.     {
  185.         DuJ();
  186.     }
  187.  
  188.     //Kiai Blast Combo
  189.     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)
  190.     {
  191.         if (self.x-target.x > 0)
  192.         {
  193.             left(1,0);
  194.             DuA();
  195.             A(1,0);
  196.         }
  197.         if (self.x-target.x < 0)
  198.         {
  199.             right(1,0);
  200.             DuA();
  201.             A(1,0);
  202.         }
  203.     }
  204.  
  205.     //Kamehameha Finish on Combo end
  206.     if (self.frame==169 && target.state==12)
  207.     {
  208.         J(1,0);
  209.     }
  210.  
  211.     if (target.state==3 && abs(self.x-target.x) > 200 && self.mp > 475 && self.hp < 250)
  212.     {
  213.         if (self.x-target.x > 0)
  214.         {
  215.             left(1,0) ;
  216.             DdJ();
  217.             A(1,0);
  218.         }
  219.         else if (self.x-target.x < 0)
  220.         {
  221.             right(1,0) ;
  222.             DdJ();
  223.             A(1,0);
  224.         }
  225.  
  226.     }
  227.  
  228.     //crazy
  229.     if (difficulty == -1)
  230.     {
  231.  
  232.         //combo
  233.         if (self.frame == 70 && self.mp > 400)
  234.         {
  235.             J(1,0);
  236.         }
  237.  
  238.         //combo
  239.         if (self.frame == 28 || self.frame == 29)
  240.         {
  241.             J(1,0);
  242.         }
  243.  
  244.     }
  245.  
  246. */
  247.  
  248.  
  249.  
  250. //    return 0;
  251. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement