Advertisement
Wolfrost

SZ Pickup logic

Nov 13th, 2016
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///LOGICA DI PICKUP - NEW VERSION FIEROH
  2.  
  3. var wm, hm, cur_id, cur_ammo, place_weapon; //variabili d'appoggio
  4. wm = sprite_get_width(mask_index);
  5. hm = sprite_get_height(mask_index);
  6. place_weapon = collision_rectangle(x -wm/2, y, x +wm, y +hm, obj_Weapon, false, false);
  7.  
  8. var weaponQ = 3, weaponInfoQ = 4; //quantità delle armi e quantità delle informazioni per ogni arma. Info: nome(0), oggetto_arma(1), oggetto_braccio(2), può_ruotare_il_braccio?(3).
  9. grid_weapon = ds_grid_create(weaponQ,weaponInfoQ);
  10. sz_GridSetRow(grid_weapon,0,'',noone,noone,false);
  11. sz_GridSetRow(grid_weapon,1,'pistol',obj_Pistol,obj_BraccioZebPistol,true);
  12. sz_GridSetRow(grid_weapon,2,'shotgun',obj_Shotgun,obj_BraccioZebShotgun,false);
  13. sz_GridSetRow(grid_weapon,3,'tommygun',obj_TommyGun,obj_BraccioZebTommyGun,false);
  14.  
  15. if (can_pickup && pickupkey)
  16. {
  17.     if(place_weapon != noone && place_weapon.ammo > 0)
  18.     {
  19.         cur_id = place_weapon.id;
  20.         cur_ammo = cur_id.ammo;
  21.         old_wielding = is_Wielding;
  22.         with(grid_weapon[# 2,sz_GridFindColumn(grid_weapon,0,is_Wielding)]) instance_destroy(); //distruggo il braccio di zeb con la vecchia arma
  23.         is_Wielding = grid_weapon[# 0,sz_GridFindColumn(grid_weapon,1,cur_id.object_index)];
  24.         wielding_dh = !grid_weapon[# sz_GridFindColumn(grid_weapon,0,is_Wielding),3]
  25.         with(cur_id) instance_destroy();
  26.         instance_create(x, y, grid_weapon[# 2,sz_GridFindColumn(grid_weapon,0,is_Wielding)]); //creo il nuovo braccio con l'arma raccolta da terra
  27.         if(old_wielding != '')
  28.         {
  29.             ii = instance_create(x, y, grid_weapon[# 1,sz_GridFindColumn(grid_weapon,0,old_wielding)]); //droppo a terra l'arma che avevo in mano e salvo l'id
  30.             ii.ammo = ammo; //assegno le munizioni che avevo in mano all'arma ora a terra
  31.         }
  32.         ammo = cur_ammo;    //assegno a zeb le munizioni salvate in precedenza
  33.     }
  34.     else //se non sono vicino a qualche arma
  35.     {
  36.         with(grid_weapon[# 2,sz_GridFindColumn(grid_weapon,0,is_Wielding)]) instance_destroy();
  37.         if(is_Wielding != '')
  38.         {
  39.             ii = instance_create(x, y, grid_weapon[# 1,sz_GridFindColumn(grid_weapon,0,is_Wielding)]);
  40.             ii.ammo = ammo;
  41.             is_Wielding = '';
  42.         }
  43.         ammo = 0;
  44.     }
  45. }
  46.  
  47. ds_grid_destroy(grid_weapon);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement