伤害与破坏配置教程 · 1.5.1

此目录属于当前游戏实例;独立服务器使用服务器实例里的同名目录。单人多个存档共用这一目录,默认选用哪份预设仍可按世界配置。客户端文件不能覆盖联机服务器规则。

一、直接修改,不用数据包

默认生成四份JSON。default.json是完整基准;另外三份包含完整gameplay字段,其余效果继承内置基准。

文件名只用小写英文字母、数字、下划线、短横线或点。直接放在本目录,不读子目录。JSON使用UTF-8,不能添加注释或尾逗号。复制任意示例并改名即可创建新预设。

二、重载和调用

/thaumicstrike reload
/thaumicstrike validate
/thaumicstrike presets
/thaumicstrike preset thaumicstrike_custom:default
/thaumicstrike preset thaumicstrike_custom:damage_only
/thaumicstrike preset thaumicstrike_custom:terrain_only
/thaumicstrike preset thaumicstrike_custom:damage_and_terrain 0 64 0
/thaumicstrike stop

命令需要OP 2级。修改后重载,下一场生效;当前演出保持启动时的配置。任何文件报错则整批不应用,保留上一份有效配置;初次加载失败保留内置预设。修复错误后再次重载。普通 /reload 也会读取本目录。

/thaumicstrike play 仍读取世界服务器配置的 defaultPreset,初始值为 thaumicstrike:default。若要使用自己的默认文件,在当前世界 serverconfig/thaumicstrike-server.toml 中设置 defaultPreset = "thaumicstrike_custom:default",保存后以 status 和下一次启动确认;必要时退出重进世界。服务器不允许普通玩家通过本地文件更改伤害。

三、修改实例

例如将 damage_only.json 的 mainDamage 改为20、satelliteDamage改为6、blastDamage改为100,再重载并调用该预设。改 interval 只调整结算频率,不应手动按频率乘伤害数值。

地形示例中 mainRadius/mainDepth 控制主坑,blastRadius/finalDepth 控制最终坑,satellitePitRadius/satelliteDepth 控制副坑。shape填 bowl 或 cylinder,drops默认false。将terrain改为false即可关闭挖坑。damage与terrain可独立开关。

四、范围与保护的实际含义

当前Java版伤害按光束接地点附近的球形范围判断,并非整根光柱碰撞;不宣称实体墙能阻止伤害。原版抗性、无敌及可取消事件仍生效。实体过滤使用ID;方块破坏排除使用标签。内置检查跳过不可破坏方块、默认跳过方块实体,并检查出生点保护、世界边界和已加载区块;第三方领地兼容取决于接入的保护检查器。

坑洞通过有界队列逐步处理,受预算、场景和演出剩余时长限制,可能未完成最大坑形;停止或结束会取消剩余任务。首次地表高度限制重复下挖。

五、地面印记与恢复

默认视觉印记与挖坑是独立功能。使用 /thaumicstrike aftermath list 获取UUID,再用 /thaumicstrike aftermath clear <UUID> 清除印记。undo只处理模组记录且符合条件的表层替换,不会自动回填gameplay挖出的坑。请在测试存档使用破坏示例。

六、从旧版迁移

1.5.1不再从世界数据包读取演出JSON。将旧 data/命名空间/thaumicstrike/名称.json 的内容复制为本目录的 名称.json,命令ID改成 thaumicstrike_custom:名称,并同步修改脚本及defaultPreset引用。PNG纹样等客户端资源包仍正常使用;其他Minecraft数据包功能不受影响。Java注册预设接口保留。

启动生成不会覆盖同名文件;之后删除示例文件不会在重载或重启时复活。补齐缺失文件可删除本目录 .bundled-1.5.1 标记后重启,已有文件保持。

完整gameplay字段表

字段默认类型/单位范围含义
damagefalse布尔true / false总伤害开关。false时不结算主束、副束和最终爆发伤害。
terrainfalse布尔true / false挖坑开关;不等于地面视觉残痕开关。
type"minecraft:magic"资源ID见说明伤害类型,默认minecraft:magic;不存在时当前实现回退魔法伤害。
mainRadius12格0–128主触地点伤害半径,同时控制主束烧蚀最大半径。
mainDamage8生命值/秒0–1000000主束持续伤害;2点生命值=1颗心。
satelliteRadius1.5格0.01–32副束触地点伤害半径。
satelliteDamage2生命值/秒0–1000000副束持续伤害。
interval20tick,整数1–1200结算间隔,20 tick约1秒。每次伤害=每秒数值×interval/20。也影响持续段坑洞任务生成频率。
blastRadius24格0–128爆发伤害与最终坑最大半径。
blastDamage40生命值0–1000000最终爆发中心伤害,按距离线性衰减,一场单独结算一次。
includePlayerstrue布尔true / false是否包含可受伤玩家,仍遵守原版伤害流程。
includeTypes[]实体ID数组见说明空数组表示不额外限制实体类型;非空只包含列出的类型。使用minecraft:zombie这样的ID,不接受#标签。
excludeTypes[]实体ID数组见说明排除指定类型,优先于includeTypes。
mainDepth12格0–128主束烧蚀最大深度。
finalDepth16格0–128最终爆发坑最大深度。
satellitePitRadius3格0–128副束扫过位置的小坑半径。
satelliteDepth4格0–128副坑最大深度,重复扫过基于首次地表高度,不无限下挖。
shape"bowl"枚举bowl / cylinderbowl为碗形;cylinder为圆柱形。
dropsfalse布尔true / false是否产生正常方块掉落;大量掉落可能影响性能。
budget256候选位置/tick,整数1–4096每场破坏队列每tick处理上限;不是保证每tick破坏这么多方块。同维度只有一场。
excludeTags["thaumicstrike:protected"]方块标签ID数组见说明命中任意标签则排除破坏,标签名不带#;例如thaumicstrike:protected。
skipBlockEntitiestrue布尔true / false跳过箱子、机器等方块实体,默认true。