Урон от предмета игроку

Версия Minecraft
1.7.10
Надо сделать чтобы предмет делал урон (Например +10000).
Java:
public class ANNA_SWORD extends Item {
    public ANNA_SWORD (String name, String texture, int maxStackSize) {
         setUnlocalizedName(name);
         setCreativeTab(XMain.SwiftyTAB);
         this.maxStackSize = 1;
         setTextureName("Money:diamond_sword");
         GameRegistry.registerItem(this, name);
        }
}
 

GoogleTan

Картошка :3
1,354
43
310
Если не проверять на руку, то будет даваться такой урон всегда когда предмет есть в инвенторе. Код с 1.12.2. Правда, не факт что на 1.7.10 прокатит)
Java:
    @Override
    public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot)
    {
        if (equipmentSlot == EntityEquipmentSlot.MAINHAND)
        {
            Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(EntityEquipmentSlot.MAINHAND);
            multimap.removeAll(SharedMonsterAttributes.ATTACK_DAMAGE.getName());
            multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", 96D, 0));
            return multimap;
        }
        else
        {
            return super.getItemAttributeModifiers(equipmentSlot);
        }
    }
 
Последнее редактирование:
199
1
17
Надо сделать чтобы предмет делал урон
Надо!
в класс предмета впиши эту строчку
Java:
super(ГлавныйКласс.НазваниеТвоегоМатериала);
В главный класс пишем эту строчку
Java:
public static final ToolMaterial НазваниеТвоегоМатериала = EnumHelper.addToolMaterial("НазваниеТвоегоМатериала", 2, 564, 5.0F, 4.0F, 50);
Урон можно повысить изменив 5-й аргумент
Java:
4.0F
на тот, который тебе нужен.
 
167
10
69
Код с 1.12.2. Правда, не факт что на 1.7.10
для 1.7.10
Java:
@Override
public Multimap getAttributeModifiers(ItemStack stack) {
    Multimap map = super.getAttributeModifiers(stack);
    map.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Weapon modifier", 10000D, 0));       
    return map;
}
 

jopi

Попрошайка
1,421
30
260
Если не проверять на руку, то будет даваться такой урон всегда когда предмет есть в инвенторе. Код с 1.12.2. Правда, не факт что на 1.7.10 прокатит)
Java:
    @Override
    public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot)
    {
        if (equipmentSlot == EntityEquipmentSlot.MAINHAND)
        {
            Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(EntityEquipmentSlot.MAINHAND);
            multimap.removeAll(SharedMonsterAttributes.ATTACK_DAMAGE.getName());
            multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", 96D, 0));
            return multimap;
        }
        else
        {
            return super.getItemAttributeModifiers(equipmentSlot);
        }
    }
Конечно не сработает, 1.7.10 не настолько конченая

берешь, оверрайдишь onLeftClickEntity(itemstack, entityplayer, entity) (аргументы могут быть не точными, перепроверь в Item.class)
и внутри просто
Java:
if (entity.attackEntityFrom(DamageSource.causePlayerDamage(entityPlayer), 10000)) {
    return true;
}

самый непримичательный код даже для обычного предмета, но меч может быть обосранным слегка, поэтому можно еще в конструкторе сделать this.setFull3D(); и он будет выглядеть как меч, а насчет ломания его эт уже не ко мне, там материал делать нужно вродь
 
Сверху