突然想玩优质挖砍包了,但是国内找不到,就自己组了一个,然后被各种问题干爆,查Wiki啥都没有,干脆开个教程慢慢摸索,有新发现可以发在评论区。

首先要知道数据包和资源包制作的方法,建议自己百度教程实际上懒得写了

然后就是经常性加载数据包和资源包,以及mod数据读取,推荐KubeJS+ProbeJS配合VSC获取数据写代码,用kubejs自带的数据加载功能实测不太好用或者openloaderPaxi来快速加载数据包。

接下来就正式开始了,获取挖矿与砍杀以及需要兼容的mod的数据,最简单的方法就是右键解压mod,然后创个文件夹把data文件夹(数据包用)和assets文件夹(资源包用)放进去,注意区分好mod。

1.20.1挖矿与砍杀数据包及资源包制作(新武器类型、自制技能等)-第1张图片

关于data文件夹的构成可以参考【挖矿与砍杀Mine and Slash】--1.20.1版本--配置文件 --属性及装备配置

1、兼容新种类武器,如:枪械

挖矿与砍杀移除物品伤害作用机制:直接在有伤害的物品加上{damage=0}的nbt,因为期血量机制实际是添加假血条然后根据假血条的损耗映射到真血条上,所以推荐用5.5.4更新日志上的方法来适配模组武器。

首先创建基础武器类型标签,新建文件夹改名mmorpg并在里面新建如下文件夹

1.20.1挖矿与砍杀数据包及资源包制作(新武器类型、自制技能等)-第2张图片

这些是适配新种类武器必须用到的文件夹,可以用解压出来的data里的对应文件夹里的*bow*.json照猫画虎。

//mmorpg_weapon_type\gun.json             这是装备标签文件夹
{
    "can_dual_wield": true,                      //能否双持(副手武器有数值衰减,修改在存档里的severcofing文件夹里)
    "damage_validity_check": {              //伤害数据(这个武器类型造成伤害的检查,tac等
                                                                 // mod不能造成伤害往往就是这里的配置没调好)
      "contains_in_dmg_id": [                  //武器伤害标签(适配技能/词条用)
        "ammo",                                       //消耗弹药
        "bullet",                                        //子弹
        "dart",                                          //弹射物
        "missile",                                      //可闪避的
        "gun"                                           //枪械
      ],
      "source_check": "RANGED_PROJECTILE",      //****伤害资源检查,如果无法触发伤害请改为"ANY"以适配伤害
      "tag_and_id_check": "MATCH_ANY",              //****伤害标签和id检查,如果无法触发伤害请改为"MATCH_ANY"以适配伤害
      "valid_proj_dmg_id": []                                   //****在这里添加兼容伤害id,可以在对应mod解压后
    },                                                                         // 的damage_type或者tag/damage_type之类的文件夹里找到
    "id": "gun",
    "isProjectile": true,                                            //是否为投射物伤害
    "range": "RANGED",                                          //远程/近战
    "style": "DEX"                                                     //该种类装备主属性
  }
  ============================================================
  //mmorpg_base_gear_types\gun.json      一种武器基础数据
  {
  "base_stats": [                                                //基础属性数据
    {
      "type": "FLAT",                                            //武器数据种类(固定数值,还能改成百分比数值)
      "max": 6.0,                                                    //不知道干啥的
      "min": 2.0,
      "stat": "weapon_damage"                          //伤武器提供属性类型(装备伤害)
    }
  ],
  "gear_slot": "gun",                                          //武器灵魂种类
  "guid": "gun",                                                  //武器种类id
  "possible_items": [
    {
      "item_id": "tacz:modern_kinetic_gun",        //示例掉落物品(你打怪或者开箱能开出的成装)
      "min_rar": "common",                                   //掉落最低品质
      "weight": 1000                                                //权重
    }
  ],
  "req": {                                                         //装备武器所需属性
    "base_req": {},                                            //装备武器所需基础属性(1级装备所需属性)
    "scaling_req": {                                          //装备等级每增加一级所需属性(向下取整)
      "dexterity": 0.5                                          //每等级武器需要0.5敏捷来装备(向下取整,如一级武器需求0敏捷,2级3级需求2敏捷)
    }
  },
  "style": "DEX",                                                //该种类武器属于哪种主属性武器(适配技能和词条)
  "tags": {
    "tags": [                                                //武器种类的标签,作用于技能、buff等
      "dexterity",                                          //敏捷
      "ranged_weapon",                            //随机属性装备
      "weapon_family",                             //可制作灵魂装备
      "gun"                                                //枪械
    ]
  },
  "weapon_type": "gun",                            //武器种类
  "weight": 1000                                        //权重不知道干啥的,疑似该种类武器掉落概率有关
}

//mmorpg_gear_slot\gun.json          //装备属性微调
{
    "fam": "Weapon",                            //物品种类
    "id": "gun",                                        //id
    "model_num": 14,                            //物品在assets\mmorpg\models\item\stat_soul.json中的编号
    "weapon_data": {                                //物品属性
      "damage_multiplier": 1.5,                            //伤害乘数
      "energy_cost_per_mob_attacked": 6.0,        //怪物使用时数据乘数
      "energy_cost_per_swing": 0.0                        //不知道干啥的别乱动
    },
    "weight": 1000                                                //权重,不知道干啥的
  }
  ==================================================================================
  //mmorpg_prophecy_modifier\gun.json      武器属性微调文件
  {
    "cost_multi": 2.0,                                            //不知道干啥的
    "data": "gun",                                                //数据标签
    "id": "gun",                                                    //数据id
    "lvl_req": 0,                                                     //最低需求等级
    "modifier_type": "GEAR_TYPE",                    //类型标签(GEAR_TYPE代表着这个是装备)
    "tier_req": 0,                                                  //最低对应主属性需求
    "weight": 1000                                              //不知道干啥的权重
  }

这四个文件创建好之后数据包暂告一段落,但是还不能用,之后要准备资源包创建游戏内物品的图标

把准备好的标放入mmorpg\textures\item\stat_soul文件夹,然后去mmorpg\models\item文件夹下面

//item\stat_soul.json       提供图标文件的定位文件的定位,在overrides里加上就行,其他的不要乱动
{
"parent": "item/generated",
"textures": {
"layer0": "mmorpg:item/stat_soul/stat_soul"                                   //武器灵魂图标上级目录
},
"overrides": [
{ "predicate": {  "custom_model_data": 1 }, "model": "mmorpg:item/stat_soul/sword"},
{ "predicate": {  "custom_model_data": 2 }, "model": "mmorpg:item/stat_soul/scepter"},
{ "predicate": {  "custom_model_data": 3 }, "model": "mmorpg:item/stat_soul/staff"},
{ "predicate": {  "custom_model_data": 4 }, "model": "mmorpg:item/stat_soul/axe"},
{ "predicate": {  "custom_model_data": 5 }, "model": "mmorpg:item/stat_soul/bow"},
{ "predicate": {  "custom_model_data": 6 }, "model": "mmorpg:item/stat_soul/crossbow"},
{ "predicate": {  "custom_model_data": 7 }, "model": "mmorpg:item/stat_soul/boots"},
{ "predicate": {  "custom_model_data": 8 }, "model": "mmorpg:item/stat_soul/pants"},
{ "predicate": {  "custom_model_data": 9 }, "model": "mmorpg:item/stat_soul/chest"},
{ "predicate": {  "custom_model_data": 10 }, "model": "mmorpg:item/stat_soul/helmet"},
{ "predicate": {  "custom_model_data": 11 }, "model": "mmorpg:item/stat_soul/shield"},
{ "predicate": {  "custom_model_data": 12 }, "model": "mmorpg:item/stat_soul/ring"},
{ "predicate": {  "custom_model_data": 13 }, "model": "mmorpg:item/stat_soul/necklace"},
{ "predicate": {  "custom_model_data": 14 }, "model": "mmorpg:item/stat_soul/gun"}     
]
}
//item\stat_soul\gun.json    定位图标位置
{
    "parent": "item/generated",
    "textures": {
        "layer0": "mmorpg:item/stat_soul/gun",
        "layer1": "mmorpg:item/stat_soul/question"
    }
}

然后就能在游戏里见到新添加的灵魂了,但是目前图标还是?,你需要往assets\mmorpg\textures\item\stat_soul文件夹里放入物品图标文件来提供物品灵魂图形资源。