setMaxDamage

Версия Minecraft
1.7.10
54
0
Как реализовать чтобы значение у this.setMaxDamage(num_1); менялось от количество предмета (патронов в инвентаре)?
Например у нас 40 патронов в инвентаре а максимально this.setMaxDamage(num_1) был 8, если
4 патрона в инвентаре то  this.setMaxDamage(num_1) был 4.
 
54
0
Не хочет работать
public class VGItemBulletSG extends VGItemAmmo {

public int BSG;

public VGItemBulletSG() {

super((ItemStack)null);
this.setMaxDamage(BSG);
this.setMaxStackSize(20);
this.setCreativeTab(VGEngine.instance().weapons_tab);



}

public void shet(EntityPlayerMP player){
int num1 = 0;
for (int i = 0; i < player.inventory.mainInventory.length; i++) {
if (player.inventory.mainInventory != null) {

if (player.inventory.getStackInSlot(i).getItem() == VGItems.bullet_30_30) {
num1 += player.inventory.getStackInSlot(i).stackSize;

if (num1 >= 8) {

BSG = 8;

}


} else if (num1 >= 7) {


BSG = 7;

} else if (num1 >= 6) {


BSG = 6;

} else if (num1 >= 5) {


BSG = 5;

} else if (num1 >= 4) {

BSG = 4;

} else if (num1 >= 3) {

BSG = 3;

} else if (num1 >= 2) {

BSG = 2;


} else if (num1 >= 1) {


BSG = 1;



}
break;
}

}

}
}
 
svetliy написал(а):
Не хочет работать
public class VGItemBulletSG extends VGItemAmmo {

     public int BSG;

public VGItemBulletSG()  {

     super((ItemStack)null);
     this.setMaxDamage(BSG);
     this.setMaxStackSize(20);
     this.setCreativeTab(VGEngine.instance().weapons_tab);


   
}

     public void shet(EntityPlayerMP player){
     int num1 = 0;
     for (int i = 0; i < player.inventory.mainInventory.length; i++) {
     if (player.inventory.mainInventory != null) {

     if (player.inventory.getStackInSlot(i).getItem() == VGItems.bullet_30_30) {
     num1 += player.inventory.getStackInSlot(i).stackSize;

     if (num1 >= 8) {  
     
      BSG = 8;  
           
     }
     
     
      } else if (num1 >= 7) {
         
   
       BSG = 7;  
       
      }  else if (num1 >= 6) {
         

       BSG = 6;  
       
      }  else if (num1 >= 5) {
     

       BSG = 5;  
     
      }  else if (num1 >= 4) {
     
      BSG = 4;  
     
      } else if (num1 >= 3) {
     
      BSG = 3;  
   
      } else if (num1 >= 2) {
     
      BSG = 2;  
     
     
      } else if (num1 >= 1) {
     
     
      BSG = 1;  
       
     
 
        }
     break;
     }
     
     }
     
     }
}

Конструктор вызывается один раз, когда игру запускаешь(но это не точно) :cry:
 
7,099
324
1,510
Сделай свою шкалу дамага предмета
 
1,007
36
206
svetliy написал(а):
Не хочет работать
public class VGItemBulletSG extends VGItemAmmo {

     public int BSG;

public VGItemBulletSG()  {

     super((ItemStack)null);
     this.setMaxDamage(BSG);
     this.setMaxStackSize(20);
     this.setCreativeTab(VGEngine.instance().weapons_tab);


   
}

     public void shet(EntityPlayerMP player){
     int num1 = 0;
     for (int i = 0; i < player.inventory.mainInventory.length; i++) {
     if (player.inventory.mainInventory != null) {

     if (player.inventory.getStackInSlot(i).getItem() == VGItems.bullet_30_30) {
     num1 += player.inventory.getStackInSlot(i).stackSize;

     if (num1 >= 8) {  
     
      BSG = 8;  
           
     }
     
     
      } else if (num1 >= 7) {
         
   
       BSG = 7;  
       
      }  else if (num1 >= 6) {
         

       BSG = 6;  
       
      }  else if (num1 >= 5) {
     

       BSG = 5;  
     
      }  else if (num1 >= 4) {
     
      BSG = 4;  
     
      } else if (num1 >= 3) {
     
      BSG = 3;  
   
      } else if (num1 >= 2) {
     
      BSG = 2;  
     
     
      } else if (num1 >= 1) {
     
     
      BSG = 1;  
       
     
 
        }
     break;
     }
     
     }
     
     }
}


Боже что это? зачем столько условий? тебе нужно только проверять if (player.inventory.mainInventory != null) и если тру то предмет на юзабелен должен быть(если нет сам понимаешь). и в цикле получи кол-во предметов а не условия лепи и потом только приравнивай
 
5,021
47
784
ifelseifelseifelseifelseifelseifelseifelseifelseifelseifelseifelseifelseifelseifelse
Код готов.Сам так пишу, а чё ? :)
 
7,099
324
1,510
Сверху