COD Pattern

COD Pattern

一个TaCZ附属模组,为Minecraft枪战玩法带来使命召唤风格的背包系统、武器定制以及团队死斗玩法扩展。

游戏机制

COD Pattern

  • **发布状态:Beta。生产部署前请先在测试环境中验证,并提前备份世界数据/配置。 *

概述

COD Pattern 基于 TaCZ + 内嵌的 FPSM 兼容核心 构建,提供类似 COD 的工作流,涵盖:

  • 配装预设与重生装备发放
  • 对局内武器改装与配件预设
  • Frontline / TeamDeathMatch 房间、地图与对局流程
  • 本地化 UI 与系统消息(zh_cn / zh_tw / en_us / ja_jp)

本项目采用服务端权威设计,配合客户端同步,以确保多人游戏状态一致。

主要功能

1) 配装管理与装备发放

  • 支持配装的创建/克隆/重命名/删除/选择操作,每位玩家最多 10 套。
  • 每套配装包含四个槽位:primary / secondary / tactical / lethal。
  • 配装相关 UI 在不同 GUI Scale 设置下使用固定的文本缩放基准,以保持更一致的可读性。
  • 默认配装名称、克隆后缀以及装备通知现在根据客户端语言本地化。
  • 重生时自动发放所选配装(正常流程适用于已加入房间/对局的玩家)。
  • 玩家配装/过滤数据持久化于服务端,并在登录时同步。
  • 管理员命令可为所有在线玩家或指定目标强制立即发放。

2) 对局内武器改装与配件预设

  • 支持从配装 UI 对主武器、副武器和投掷物槽位进行槽位级编辑。
  • 使用 TaCZ 武器能力,带服务端验证与持久化。
  • 配件预设现在按配装 ID 和槽位直接存储在配装配置中。
  • 支持结果反馈与回滚处理,以减少客户端/服务端状态漂移。

3) 房间、地图与对局流程(内嵌 FPSM 兼容层)

  • 在暂停菜单中新增统一房间入口,用于房间列表、加入/离开和队伍选择。
  • 在同一房间系统、地图数据模型和持久化流程下,同时支持 frontline 和 teamdeathmatch。
  • 地图现在支持区域创建、重生点设置、对局结束传送点设置和持久化。
  • TDM 房间界面在不同 GUI Scale 设置下使用相同的固定文本缩放基准,使列表/面板/按钮可读性更一致。
  • 支持带平衡约束(maxTeamDiff)的自动队伍分配。
  • 支持准备状态、开始投票和结束投票,带阈值与超时逻辑。
  • 完整阶段流水线:WAITING -> COUNTDOWN -> WARMUP -> PLAYING -> ENDED。
  • teamdeathmatch 包含动态重生候选点与重生安全验证。
  • 包含击杀提示、得分跟踪、重生延迟、无敌帧、战斗回血、死亡镜头、HUD 阶段反馈、友方/敌方高亮以及敌方生命条。
  • 对局结束时自动导出 JSON 对局记录。

4) 过滤、兼容性与本地化

  • 通过 primaryWeaponTabs 和 secondaryWeaponTabs 实现主武器/副武器类别过滤。
  • 通过 blockedItemNamespaces / blockedWeaponIds 支持枪包命名空间屏蔽和精确武器黑名单。
  • 通过 blockedAttachmentNamespaces / blockedAttachmentIds 支持配件命名空间屏蔽和精确配件黑名单。
  • 通过 throwablesEnabled 和 ammunitionPerMagazineMultiple 控制投掷物与弹药倍率。
  • 可选集成 LR Tactical 和 Physics Mod,缺失时优雅降级。
  • 包含对 tacz-addon 1.1.6 在背包改装流程中的兼容处理,以防止卸载按钮卡死。
  • TaCZ 原生改装 UI 已全局禁用,并重定向到 COD Pattern 背包改装流程。
  • 内置 zh_cn / zh_tw / en_us / ja_jp 语言资源,涵盖核心 UI、通知和错误消息。

命令与入口

/cdp 命令

  • /cdp screen
    • 打开背包/配装 UI(调试入口)。
  • /cdp update
    • 同步武器过滤与配装配置到所有在线玩家(需要 OP)。
  • /cdp distribute [target]
    • 为所有在线玩家或选定玩家强制发放装备(需要 OP)。

/cdp map 命令链

  • /cdp map list [type]
    • 列出已注册的游戏类型或给定类型下的地图。
  • /cdp map create <frontline|teamdeathmatch> <name> <from> <to>
    • 创建地图区域并立即持久化。
  • /cdp map delete <type> <name>
    • 移除地图及其持久化数据。
  • /cdp map spawn <list|add|remove|clear> ...
    • 管理队伍重生点与动态重生候选点。
  • /cdp map endtp <show|set|clear> <map> [pos]
    • 管理对局结束传送点。

配置

服务端配置存储于世界存档路径:serverconfig/codpattern/

  • backpack_rules/backpack_config.json
    • 玩家配装数据(JSON)。
    • 配件预设现在通过 attachmentPreset 字段嵌入到每个配装槽位中。
  • backpack_rules/weapon_filter.json
    • 武器过滤配置(JSON)。
    • 关键字段:
      • primaryWeaponTabs / secondaryWeaponTabs
      • blockedItemNamespaces
      • blockedWeaponIds(格式:namespace:gunid)
      • blockedAttachmentNamespaces
      • blockedAttachmentIds(格式:namespace:attachmentid)
      • throwablesEnabled
      • ammunitionPerMagazineMultiple
  • tdm_rules/config.json
    • TDM 运行时参数(时间、得分、重生、投票、加入策略、平衡策略)。
    • 对局内敌方/友方显示现在固定为高亮加敌方生命条;旧的标记点样式开关已移除。
  • tdm_match_records/
    • 每场对局后导出的对局记录(.json)。
  • 旧路径 backpackconfig / filterconfig / attachment_preset/ / tdmconfig/
    • 已弃用,此版本不再读取;现有世界需要手动迁移。

tdm_rules/config.json 中的默认参数

字段 默认值 描述
timeLimitSeconds 420 对局时长(秒)
scoreLimit 75 获胜所需击杀得分
invincibilityTicks 30 重生后无敌 tick 数
respawnDelayTicks 40 重生延迟 tick 数
warmupTimeTicks 400 热身时长 tick 数
preGameCountdownTicks 200 开局前倒计时 tick 数
blackoutStartTicks 60 倒计时黑屏 tick 数
deathCamTicks 30 死亡镜头持续 tick 数
minPlayersToStart 1 开始所需最少玩家数
votePercentageToStart 60 开始投票通过阈值(%)
votePercentageToEnd 75 结束投票通过阈值(%)
combatRegenDelayTicks 120 受伤后开始回血前的延迟(tick)
combatRegenHalfHeartsPerSecond 5.0 回血期间每秒恢复的半心数
allowJoinDuringPlaying true 允许在对局进行中加入
joinAsSpectatorWhenPlaying true 对局进行中加入时以旁观者身份加入
maxTeamDiff 1 允许的最大队伍人数差
markerFocusHalfAngleDegrees 30.0 敌方生命条聚焦锥半角(度)
markerFocusRequiredTicks 20 敌方生命条出现前需要在聚焦锥内的 tick 数
markerBarMaxDistance 96.0 敌方生命条检测的最大距离(方块)
markerVisibleGraceTicks 3 敌方生命条保持可见时的防闪烁宽限 tick 数

兼容性与依赖

  • Minecraft: 1.20.1
  • Forge: 47.4.0+
  • Java: 17
  • 必需依赖:
    • TaCZ 1.1.6+
  • 内嵌组件:
    • FPSM 兼容核心(无需外部 fpsmatch.jar)
  • 可选集成:
    • LR Tactical(投掷物/近战内容路径)
    • Physics Mod(布娃娃/保留死亡实体呈现)
    • tacz-addon 1.1.6(包含背包改装卸载流程兼容性)

部署说明

  • 非强制发放仅适用于通过房间/对局流程加入的玩家。
  • 如果未配置对局结束传送点,结束阶段会发出警告,但不会自动传送返回。
  • 如果启用了 tacz-addon 且改装 UI 中配件卸载行为异常,请确保 /gamerule liberateAttachment false。
  • 生产发布前,请验证:
    • tdm_rules/config.json 的数值符合你的服务器节奏
    • backpack_rules/weapon_filter.json 符合你的枪包过滤策略
    • 地图包含队伍重生点和对局结束传送点

问题反馈

反馈问题时,请包含:

  • 复现步骤
  • 相关日志摘录
  • 完整模组列表及版本

更新日志

当前版本:v0.6.5b
详细历史请参见 CHANGES.md。

许可证

采用 GPL-3.0-only 许可。详情请参见 LICENSE.txt。

作者

  • 作者: popura404
  • 联系方式: gzyoung2330351551@163.com