基于配置好的开发环境,详情参考上几篇文章。
下面制作一个有特殊能力的剑,如击中目标凋零效果、生命恢复效果,概率暴击等。
- item.cool_sword.name=Cool Sword
- item.cool_sword.desc=Lifesteal
- item.cool_sword.name=倚天剑
- item.cool_sword.desc=攻击时吸血,附加凋零效果,并有概率暴击
一键生成json文件,找到GenBlockJson.lua文件

添加代码:
GenItem("weapon", "cool_sword");
运行bat

下面完成贴图
可在MC百科找到原版贴图,将贴图改名存进textures文件内,找到对应的分类;
图片材质尽量为16×16或32×32

在item对应文件下新建java类

添加代码
将DIY的剑继承剑
- package com.ZhangXiuyu.first.item.weapon;
-
- import com.ZhangXiuyu.first.item.ItemSwordBase;
-
- public class ItemCoolSword extends ItemSwordBase {
-
- public ItemCoolSword(String name, ToolMaterial material) {
- super(name, material);
- }
- }
item文件下找到ModItems类
添加代码
public static final Item COOL_SWORD = new ItemCoolSword("cool_sword",Item.ToolMaterial.DIAMOND);

至此,完成了生成一个继承于剑类的特殊剑,效果跟普通钻石剑一样。
构造方法内增加
CommonFunctions.addToEventBus(this);
新建onAttack方法
后面将剑造成的效果写到方法的if里面
- @SubscribeEvent
- public void onAttack(LivingHurtEvent event){
- World world = event.getEntity().world;
- if(!world.isRemote){
- EntityLivingBase hurtOne = event.getEntityLiving();
- EntityLivingBase attacker = (EntityLivingBase) event.getSource().getTrueSource();
- if(attacker!=null&&attacker.getHeldItemMainhand().getItem()==this){
-
- }
- }
- }
治疗:attacker.heal(数量) 1 = 半颗心
onAttack方法内if添加
attacker.heal(1);
EntityUtil.ApplyBuff(hurtOne,效果,等级-1,秒数);
例:攻击对敌方增加凋零,对自己增加生命恢复buff。
其他更多buff可Ctrl+鼠标左键点击MobEffects类,查看效果列表。
- EntityUtil.ApplyBuff(hurtOne, MobEffects.WITHER,0,10f);
- EntityUtil.ApplyBuff(attacker,MobEffects.REGENERATION,0,10f);

攻击小白后成功有了生命回复和凋零效果。
if(attacker.getRNG.nextFloat()<概率)
event.getAmount()
- event.setAmount(新伤害值)
- 翻倍:event.setAmount(event.getAmount()*2);
例:攻击有二分之十概率伤害翻倍
- if(attacker.getRNG().nextFloat()<0.5f){
- event.setAmount(event.getAmount()*2f);
- }