Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///sz_AIFinanzaBase()
- //min_dist = distanza minima di attacco
- //jump_action = true se il nemico può saltare per schivare
- //get_weapon = true se può raccogliere armi da terra
- var wm, hm, id_mom, ammo_mom, place_pistol, place_shotgun; //variabili d'appoggio
- wm = sprite_get_width(mask_index);
- hm = sprite_get_height(mask_index);
- place_pistol = collision_rectangle(x, y, x +wm, y +hm, obj_Pistol, false, false);
- place_shotgun = collision_rectangle(x, y, x +wm, y +hm, obj_Shotgun, false, false);
- if(!is_Died)
- {
- //-----------per raccogliere armi da terra-----------
- if(get_weapon)
- {
- if(place_pistol != noone or place_shotgun != noone)
- {
- //se a terra c'è una pistola
- if(place_pistol != noone)
- {
- if(place_pistol.ammo > 0)
- {
- //ii = instance_create(x, y, obj_FinanzaWeapon);
- ii = sz_secInstanceChange(obj_FinanzaWeapon);
- ii.weaponid = place_pistol.id;
- ii.is_Wielding = 'pistol';
- ii.mdir = mdir;
- //PARAMETRI IA
- ii.health_m = health_m;
- ii.walk_vel= walk_vel;
- ii.jumpspd= jumpspd;
- ii.damage = damage;
- ii.perc_damage = perc_damage;
- ii.action_delay = action_delay +30; //aggiungo un secondo di ritardo tra un'azione e l'altra
- //ii.min_dist = min_dist; //non lo passo perchè è utilizzato in un altro modo
- ii.jump_action = jump_action;
- instance_destroy(); //mi autodistruggo yeeeeee
- exit;
- }
- }
- //se a terra c'è un fucile
- if(place_shotgun != noone)
- {
- if(place_shotgun.ammo > 0)
- {
- //ii = instance_create(x, y, obj_FinanzaWeapon);
- ii = sz_secInstanceChange(obj_FinanzaWeapon);
- ii.weaponid = place_shotgun.id;
- ii.is_Wielding = 'shotgun';
- ii.mdir = mdir;
- //PARAMETRI IA
- ii.health_m = health_m;
- ii.walk_vel = walk_vel;
- ii.jumpspd = jumpspd;
- ii.damage = damage;
- ii.perc_damage = perc_damage;
- ii.action_delay = action_delay +30; //aggiungo un secondo di ritardo tra un'azione e l'altra
- //ii.min_dist = min_dist; //non lo passo perchè è utilizzato in un altro modo
- ii.jump_action = jump_action;
- instance_destroy(); //mi autodistruggo yeeeeee
- exit;
- }
- }
- }
- }
- //-------fine codice raccolta armi da terra----------
- if(distance_to_object(obj_Zeb) >= 128 or abs(obj_Zeb.y-y) > 64 or obj_Zeb.is_Died or obj_Zeb.freeze) //aggiunto obj_Zeb.freeze per evitare che la finanza colpisca zeb quando è freezato //abs(obj_Zeb.y-y) > 16 in precedenza
- {
- if(!is_Jumping)
- {
- is_Walking = true;
- //cambio direzione altrimenti cade (prima versione commentata)
- //if(!place_meeting(x+(sprite_width/2 +4)*mdir, y+(sprite_height/2)*vdir +8, obj_Block) and !place_meeting(x+(sprite_width/2 +4)*mdir, y+(sprite_height/2)*vdir +4, obj_Block2))
- if(!place_meeting(x+((wm/2 +4)*mdir), y+sprite_height/2+8, obj_Block))
- {
- mdir = -mdir; //cambio direzione
- alarm[0] = irandom_range(20, 40); //un tempo casuale tra 20 e 40 step
- change_direction = false;
- }
- if(change_direction)
- {
- mdir = -mdir; //cambio direzione
- alarm[0] = irandom_range(20, 40); //un tempo casuale tra 20 e 40 step
- change_direction = false;
- }
- }
- }
- else
- {
- if(distance_to_object(obj_Zeb) > min_dist)
- {
- if(!is_Jumping)
- {
- //--------------aggiunto successivamente per far saltare la finanza-----------------------
- if(!place_meeting(x+((wm/2 +4)*mdir), y+sprite_height/2+8, obj_Block) /* && !place_meeting(x+((wm/2 +4)*mdir), y+sprite_height/2+8, par_stair)*/) //dovrebbe essere così doom, vedi un po' te
- {
- hdir = sz_RealDirection();
- vel=walk_vel;
- hmove=hdir*vel;
- vmove =- jumpspd;
- }
- else
- {
- //----------------------------------------------------------------------------------------
- is_Fighting = false;
- is_Standing = false;
- is_Walking = true;
- mdir = sz_RealDirection();
- }
- }
- }
- else
- {
- if(!is_Jumping)
- {
- is_Walking = false; //si ferma in qualsiasi situazione
- mdir = sz_RealDirection();
- if(what_todo == -1 && can_do)
- {
- //is_Walking = false;
- is_Fighting = false;
- can_do = false;
- what_todo = irandom_range(0, 49); //scelgo casualmente un'azione da fare
- if(what_todo >= 0 && what_todo < 20) {
- is_Fighting = true;
- punch = 1;
- }
- if(what_todo >= 20 && what_todo < 40) {
- is_Fighting = true;
- punch = 2;
- }
- if(jump_action)
- {
- if(what_todo >= 40 && what_todo < 49) {
- hdir = -sz_RealDirection();
- vel=walk_vel;
- hmove=hdir*vel;
- vmove =- jumpspd;
- //is_OnStair = false;
- }
- }
- }
- else
- {
- is_Standing = true;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement