Advertisement
Guest User

Code for the inventory system. Includes drawing process.

a guest
May 11th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. obj_inventory: create:
  2.  
  3. globalvar showInv, invMax, inv, invScroll, ia, invFocused, invScrollAmmount, selectPos,
  4. selectSlot, selectItem, selectNum, selectItem2, selectNum2, mouseItem, mouseNum;
  5. showInv = true;
  6. invMax = 92;
  7. invScroll = 0;
  8. invRowMax = 46;
  9. ia = -0.5;
  10. invFocused = 0;
  11. invScrollAmmount = 12;
  12. selectPos = 0;
  13. selectItem = 0;
  14. selectNum = 0;
  15. mouseItem = selectItem;
  16. mouseNum = selectNum;
  17. selectItem2 = 0;
  18. selectNum2 = 0;
  19.  
  20. for (i = 0; i < invMax; i += 1 ){
  21.     inv[i,0] = 0;
  22.     inv[i,1] = 0;
  23. }
  24.  
  25. ----------------------------------------------
  26.  
  27. ///scr_drawInventory
  28.  
  29. //Scrolling
  30. if invFocused == 1{
  31.     if mouse_wheel_up(){
  32.         invScroll += invScrollAmmount;
  33.     }
  34.     if mouse_wheel_down(){
  35.         invScroll -= invScrollAmmount;
  36.     }
  37. }
  38.  
  39. //Focus on the inventory or not
  40. if invFocused == 1{
  41.     ia += 0.2;
  42.     if ia >= 0 ia = 0;
  43. }else{
  44.     ia -= 0.2;
  45.     if ia <= -0.5 ia = -0.5;
  46. }
  47.  
  48. var mouseY = mouse_y;
  49.  
  50. for(i = 0; i < invMax; i++){
  51.  
  52.     var iY = view_yview[0]+(i*40)+invScroll;
  53.     var iAlpha = 1;
  54.     if iY-view_yview[0] >= 300 iAlpha = 0.8;
  55.     if iY-view_yview[0] >= 350 iAlpha = 0.6;
  56.     if iY-view_yview[0] >= 400 iAlpha = 0.4;
  57.     if iY-view_yview[0] >= 450 iAlpha = 0.2;
  58.     if iY-view_yview[0] >= 490 iAlpha = 0;
  59.     if iY-view_yview[0] <= 80 iAlpha = 0.8;
  60.     if iY-view_yview[0] <= 50 iAlpha = 0.6;
  61.     if iY-view_yview[0] <= 20 iAlpha = 0.4;
  62.     if iY-view_yview[0] <= 10 iAlpha = 0.2;
  63.     if iY-view_yview[0] <= 5 iAlpha = 0.1;
  64.     if iY-mouseY <= 8 and iY-mouseY >= 0 selectPos = iY;
  65.     if iY-mouseY >= -8 and iY-mouseY <= 0 selectPos = iY;
  66.    
  67.     if inv[i,1] <= 0{
  68.         inv[i,0] = 0;
  69.     }
  70.    
  71.     if iY == selectPos{
  72.         draw_sprite_ext(spr_invSlot,1,view_xview[0]+32,iY,1.1,1.1,0,c_white,iAlpha+ia);
  73.         selectSlot = i;
  74.         selectItem = inv[i,0];
  75.         selectNum = inv[i,1];
  76.     }else{
  77.         draw_sprite_ext(spr_invSlot,0,view_xview[0]+32,iY,1,1,0,c_white,iAlpha+ia);
  78.     }
  79.     if inv[i,0] > 0{
  80.         draw_sprite_ext(spr_items,inv[i,0],view_xview[0]+32,iY,1,1,0,c_white,iAlpha+ia);
  81.         draw_set_alpha(iAlpha+ia)
  82.         draw_text(view_xview[0]+32,iY,string(inv[i,1]));
  83.         draw_set_alpha(1);
  84.     }
  85. }
  86. draw_sprite_ext(spr_inventorySelect,0,view_xview[0]+16,selectPos,1,1,0,c_white,0.7+ia);
  87.  
  88. //Draw the selected item on mouse
  89. if mouse_check_button_pressed(mb_left){
  90.     if mouseItem == 0{
  91.         if selectItem != 0{
  92.             mouseItem = selectItem;
  93.             mouseNum = 1;
  94.             inv[selectSlot,1] -= 1;
  95.         }
  96.     }else{
  97.         if invFocused == 1{
  98.             if selectItem == mouseItem{
  99.                 inv[selectSlot,1] += mouseNum;
  100.                 mouseItem = 0;
  101.                 mouseNum = 0;
  102.             }else{
  103.                 inv[selectSlot,0] = mouseItem;
  104.                 inv[selectSlot,1] = mouseNum;
  105.                 mouseItem = 0;
  106.                 mouseNum = 0;
  107.             }
  108.         }else{
  109.             //Drop mouse item as obj_item (droppa 1 item)
  110.             var item = instance_create(mouse_x,mouse_y,obj_item);
  111.             obj_item.image_index = mouseItem;
  112.             mouseNum -= 1;
  113.         }
  114.     }
  115. }
  116. if mouseNum <= 0 mouseItem = 0;
  117.  
  118. draw_sprite(spr_items,mouseItem,mouse_x,mouse_y);
  119.  
  120. draw_text(view_xview[0],view_yview[0],string(selectSlot));
  121. draw_text(view_xview[0]+64,view_yview[0],string(selectItem));
  122. draw_text(view_xview[0]+128,view_yview[0],string(mouseItem));
  123. draw_text(view_xview[0]+128,view_yview[0],string(mouseNum));
  124.  
  125. ----------------------------------------------
  126.  
  127. ///scr_itemPickup(item,ammount)
  128.  
  129. var found = -1;
  130.  
  131. for( i = 0; i <invMax; i += 1){
  132.     if inv[i,0] == argument0{
  133.         found = i;
  134.         break;
  135.     }
  136. }
  137.  
  138. if found == -1{
  139.     for(i = 0; i < invMax; i += 1){
  140.         if inv[i,0] == 0{
  141.             found = 0;
  142.             break;
  143.         }
  144.     }
  145. }
  146.  
  147. inv[found,0] = argument0;
  148. inv[found,1] += argument1;
  149.  
  150. ----------------------------------------------
  151.  
  152. ///scr_itemDrop(item,ammount)
  153. var found = -1;
  154.  
  155. for(i = 0; i < invMax; i++){
  156.     if inv[i,0] = argument0{
  157.         found = i;
  158.         break;
  159.     }
  160. }
  161.  
  162. if found != -1{
  163.     inv[found,1] -= argument1;
  164.     if inv[found,1] <= 0{
  165.         inv[found,0] = -1;
  166.         inv[found,1] = 0;
  167.     }
  168. }
  169.  
  170. ----------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement