Advertisement
Wolfrost

SZ AI Finanza Weapon

Jun 24th, 2016
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///sz_AIFinanzaWeapon()
  2.  
  3. //min_dist = distanza minima di attacco
  4. //jump_action = true se il nemico può saltare per schivare
  5. //get_weapon = true se può raccogliere armi da terra
  6.  
  7. var wm, hm; //variabili d'appoggio
  8. wm = sprite_get_width(mask_index);
  9. hm = sprite_get_height(mask_index);
  10.  
  11.  
  12. if(!is_Died)
  13. {
  14.     if(is_Wielding == 'pistol')
  15.     {
  16.         if(distance_to_object(obj_Zeb) >= 128 or obj_Zeb.is_Died or obj_Zeb.freeze) //aggiunto obj_Zeb.freeze per evitare che la finanza colpisca zeb quando è freezato (anche sotto)
  17.         {
  18.             if(!is_Jumping)
  19.             {
  20.                 is_Walking = true;
  21.                 //cambio direzione altrimenti cade (prima versione commentata)
  22.                 //if(!place_meeting(x+(sprite_width/2 +4)*mdir, y+(sprite_height/2)*vdir +8, obj_Block))
  23.                 if(!place_meeting(x+((wm/2 +4)*mdir), y+sprite_height/2+8, obj_Block))
  24.                 {
  25.                     mdir = -mdir; //cambio direzione
  26.                     alarm[0] = irandom_range(20, 40); //un tempo casuale tra 20 e 40 step
  27.                     change_direction = false;
  28.                 }
  29.                 if(change_direction)
  30.                 {
  31.                     mdir = -mdir; //cambio direzione
  32.                     hdir = mdir;
  33.                     alarm[0] = irandom_range(20, 40); //un tempo casuale tra 20 e 40 step
  34.                     change_direction = false;
  35.                 }
  36.             }
  37.         }
  38.         else
  39.         {
  40.             if(distance_to_object(obj_Zeb) > min_dist)
  41.             {
  42.                 if(!is_Jumping)
  43.                 {
  44.                     is_Fighting = false;
  45.                     is_Walking = false;
  46.                     is_Standing = true;
  47.                     mdir = sz_RealDirection();
  48.                     if(what_todo == -1 && can_do)
  49.                     {
  50.                         //is_Walking = false;
  51.                         what_todo = irandom_range(0, 49); //scelgo casualmente un'azione da fare
  52.                        
  53.                         if(what_todo >= 0 && what_todo < 50) {
  54.                             if(collision_line(x, y, obj_Zeb.x, obj_Zeb.y, obj_Block, true, true) == noone)// and obj_Zeb.is_Rolling = false) //eliminato per far sparare sempre e comunque
  55.                             {
  56.                                 is_Shooting = true;
  57.                                 could_shoot = true;
  58.                                 can_do = false;
  59.                             }
  60.                         }
  61.                         //if(what_todo >= 20 && what_todo < 40) {
  62.                         //    is_Fighting = true;
  63.                         //    punch = 2;
  64.                         //}
  65.                     }
  66.                     else
  67.                     {
  68.                         is_Standing = true;
  69.                     }
  70.                 }
  71.             }
  72.             else
  73.             {
  74.                 if(!is_Jumping)
  75.                 {
  76.                     is_Fighting = false;
  77.                     is_Standing = false;
  78.                     is_Walking = true;
  79.                     mdir = sz_RealDirection();
  80.                     hdir = -mdir
  81.                     //cambio direzione altrimenti cade
  82.                     /*if(!place_meeting(x+(sprite_width/2 +4)*hdir, y+(sprite_height/2)*vdir +8, obj_Block))
  83.                     {
  84.                         is_Fighting = false;
  85.                         is_Walking = false;
  86.                         is_Standing = true;
  87.                     }*/
  88.    
  89.                     if(what_todo == -1 && can_do)
  90.                     {
  91.                         //is_Walking = false;
  92.                         what_todo = irandom_range(0, 49); //scelgo casualmente un'azione da fare
  93.                        
  94.                         if(what_todo >= 0 && what_todo < 50) {
  95.                             if(collision_line(x, y, obj_Zeb.x, obj_Zeb.y, obj_Block, true, true) == noone)// and obj_Zeb.is_Rolling = false) //eliminato per far sparare sempre e comunque
  96.                             {
  97.                                 is_Shooting = true;
  98.                                 could_shoot = true;
  99.                                 can_do = false;
  100.                             }
  101.                         }
  102.                         //if(what_todo >= 20 && what_todo < 40) {
  103.                         //    is_Fighting = true;
  104.                         //    punch = 2;
  105.                         //}
  106.                     }
  107.                 }
  108.             }
  109.         }
  110.     }
  111.     else
  112.     {
  113.         if(distance_to_object(obj_Zeb) >= 128 or abs(obj_Zeb.y-y) > 16 or obj_Zeb.is_Died or obj_Zeb.freeze)
  114.         {
  115.             if(!is_Jumping)
  116.             {
  117.                 is_Walking = true;
  118.                 //cambio direzione altrimenti cade
  119.                 if(!place_meeting(x+(sprite_width/2 +4)*mdir, y+(sprite_height/2)*vdir +8, obj_Block))
  120.                 {
  121.                     mdir = -mdir; //cambio direzione
  122.                     alarm[0] = irandom_range(20, 40); //un tempo casuale tra 20 e 40 step
  123.                     change_direction = false;
  124.                 }
  125.                 if(change_direction)
  126.                 {
  127.                     mdir = -mdir; //cambio direzione
  128.                     hdir = mdir;
  129.                     alarm[0] = irandom_range(20, 40); //un tempo casuale tra 20 e 40 step
  130.                     change_direction = false;
  131.                 }
  132.             }
  133.         }
  134.         else
  135.         {
  136.             if(distance_to_object(obj_Zeb) > min_dist)
  137.             {
  138.                 if(!is_Jumping)
  139.                 {
  140.                     is_Fighting = false;
  141.                     is_Walking = false;
  142.                     is_Standing = true;
  143.                     mdir = sz_RealDirection();
  144.                     if(what_todo == -1 && can_do)
  145.                     {
  146.                         //is_Walking = false;
  147.                         what_todo = irandom_range(0, 49); //scelgo casualmente un'azione da fare
  148.                        
  149.                         if(what_todo >= 0 && what_todo < 50) {
  150.                             if(collision_line(x, y, obj_Zeb.x, obj_Zeb.y, obj_Block, true, true) == noone)// and obj_Zeb.is_Rolling = false) //eliminato per far sparare sempre e comunque
  151.                             {
  152.                                 is_Shooting = true;
  153.                                 could_shoot = true;
  154.                                 can_do = false;
  155.                             }
  156.                         }
  157.                         //if(what_todo >= 20 && what_todo < 40) {
  158.                         //    is_Fighting = true;
  159.                         //    punch = 2;
  160.                         //}
  161.                     }
  162.                     else
  163.                     {
  164.                         is_Standing = true;
  165.                     }
  166.                 }
  167.             }
  168.             else
  169.             {
  170.                 if(!is_Jumping)
  171.                 {
  172.                     is_Fighting = false;
  173.                     is_Standing = false;
  174.                     is_Walking = true;
  175.                     mdir = sz_RealDirection();
  176.                     hdir = -mdir
  177.                     //cambio direzione altrimenti cade
  178.                     /*if(!place_meeting(x+(sprite_width/2 +4)*hdir, y+(sprite_height/2)*vdir +8, obj_Block))
  179.                     {
  180.                         is_Fighting = false;
  181.                         is_Walking = false;
  182.                         is_Standing = true;
  183.                     }*/
  184.    
  185.                     if(what_todo == -1 && can_do)
  186.                     {
  187.                         //is_Walking = false;
  188.                         what_todo = irandom_range(0, 49); //scelgo casualmente un'azione da fare
  189.                        
  190.                         if(what_todo >= 0 && what_todo < 50) {
  191.                             if(collision_line(x, y, obj_Zeb.x, obj_Zeb.y, obj_Block, true, true) == noone)// and obj_Zeb.is_Rolling = false) //eliminato per far sparare sempre e comunque
  192.                             {
  193.                                 is_Shooting = true;
  194.                                 could_shoot = true;
  195.                                 can_do = false;
  196.                             }
  197.                         }
  198.                         //if(what_todo >= 20 && what_todo < 40) {
  199.                         //    is_Fighting = true;
  200.                         //    punch = 2;
  201.                         //}
  202.                     }
  203.                 }
  204.             }
  205.         }
  206.     }
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement