哇nn 发表于 2024-8-24 22:41:50

求指导

我有好几百个在同一文件夹内的战利品表,我想要对这些战利品表中有附魔物品的附魔等级,统一修改为1000,我使用MT管理器,是手机用户。有没有办法让我快速的搞定这一个操作?
战利品表示例:
{
"pools": [
{
   "rolls": 1,
   "entries": [
    {
   "type": "item",
   "name": "minecraft:shield",
   "weight": 1,
   "functions": [
      {
       "function": "set_count",
       "count": {
      "min": 1,
      "max": 1
       }
      },
      {
       "function": "enchant_with_levels",
       "treasure": true,
       "levels": {
      "min": -10,
      "max": 80
       }
      }
   ]
    }
   ]
}
]
}

youke1687 发表于 2024-8-24 23:05:06

手机大概搞不了
建议把行为包文件发出来让懂python(或者别的)的大佬做

Sakarwei 发表于 2024-8-25 00:27:32

基岩版附魔等级有限制,改了也用不了,游戏不认。建议考虑结构生成掉落物,这个可能需要ScriptAPI。

副球迷 发表于 2024-8-25 07:51:59

你先试试1000能用不,能用的话你再问吧

无机观察者 发表于 2024-8-25 15:42:04

你可以使用Python脚本来实现这个操作。首先,你需要安装Python并在手机上配置环境。然后,按照以下步骤操作:

将文件夹内的所有战利品表文件复制到一个单独的文件夹中。
编写一个Python脚本,读取文件夹中的所有文件,修改"max"值为1000,然后将修改后的内容写回到文件中。
以下是一个简单的Python脚本示例:
import json
import os
def modify_loot_tables(folder_path):
    for file_name in os.listdir(folder_path):
      file_path = os.path.join(folder_path, file_name)
      with open(file_path, 'r', encoding='utf-8') as file:
            data = json.load(file)
      for pool in data['pools']:
            for entry in pool['entries']:
                for function in entry['functions']:
                  if function['function'] == 'enchant_with_levels' and 'levels' in function:
                        function['levels']['max'] = 1000
      with open(file_path, 'w', encoding='utf-8') as file:
            json.dump(data, file, ensure_ascii=False, indent=4)

folder_path = 'path/to/your/loot_tables_folder'
modify_loot_tables(folder_path)
   
[*]将上述代码保存为一个.py文件,例如modify_loot_tables.py。
[*]在手机的终端模拟器中,导航到脚本所在的文件夹,然后运行脚本:
[*]等待脚本执行完成,你的战利品表文件中的"max"值应该已经被修改为1000。注意:在运行脚本之前,请确保已经备份了原始文件。



页: [1]
查看完整版本: 求指导