1. 系统概述
本文档详细描述了游戏 GM 指令系统的设计演进过程,重点关注如何通过持续优化提升使用体验。该系统主要用于管理游戏中的道具和货币添加操作,展现了从最初的复杂设计到最终的智能化处理的完整优化历程。
2. 系统演进阶段
2.1 初始版本(add_category)
- 指令格式:
add_category <类型枚举> <配置表ID> <数量>
- 存在问题:
- 参数过多,使用复杂
- 枚举值容易拼写错误
- 用户需要记忆物品类型
- 使用示例:
add_category ITEM 10001 1
2.2 第一次优化(指令拆分)
- 新增指令:
add_cur
:专门用于添加货币add_item
:专门用于添加道具
- 改进点:
- 减少参数数量(仅需ID和数量)
- 明确指令用途
- 存在问题:
- 用户仍会混淆物品类型
- 经常出现货币指令误输入道具ID的情况
2.3 第二次优化(指令合并)
- 统一指令:
add_cat <ID> <数量>
- 改进点:
- 自动识别ID类型(货币/道具)
- 简化用户操作流程
- 前提条件:
- 货币和道具ID不能存在冲突
- 配置表需要严格管理ID分配
2.4 第三次优化(名称支持)
- 功能扩展:支持通过物品名称添加
- 改进点:
- 建立ID与名称的映射关系
- 解决长ID难记忆的问题
- 使用示例:
add_cat "升级石" 10
2.5 最终优化(智能匹配与批量处理)
- 功能特性:
- 支持中文全名
- 支持拼音模糊匹配
- 统一分隔符处理
- 支持批量添加功能
- 智能处理:
- 自动处理中英文标点符号
- 模糊匹配唯一结果自动添加
- 多个匹配结果提示错误
- 批量添加格式:
- 基础格式:
add_cat <ID1,数量1,ID2,数量2,...>
- 支持多种分隔符自动转换
- 支持名称和ID混用
- 基础格式:
- 批量添加示例:
- 使用ID:
add_cat 10001,5,10002,10
- 使用名称:
add_cat 升级石,5,体力药水,10
- 混合使用:
add_cat 10001,5,体力药水,10
- 使用拼音:
add_cat shengjishi,5,tiliyaoshui,10
- 使用ID:
3. 技术实现要点
3.1 ID与名称映射
{
"10001": {
"name": "升级石",
"pinyin": "shengjishi",
"type": "ITEM"
}
}
3.2 模糊匹配逻辑
- 支持部分拼音匹配
- 建立拼音索引表
- 处理多音字情况
3.3 标点符号处理
input_text = input_text.replace(',', ',')
input_text = input_text.replace('、', ',')
3.4 批量处理逻辑
def process_batch_command(input_str):
# 标准化分隔符
input_str = normalize_separators(input_str)
# 分割参数
params = input_str.split(',')
# 确保参数数量正确(必须是偶数)
if len(params) % 2 != 0:
raise ValueError("参数数量不正确")
# 处理每对参数
for i in range(0, len(params), 2):
item_id_or_name = params[i].strip()
count = int(params[i + 1])
# 解析物品ID或名称
real_id = resolve_item_identifier(item_id_or_name)
# 执行添加操作
add_item_to_inventory(real_id, count)
4. 最佳实践
4.1 配置规范
- 货币ID与道具ID使用不同数值区间
- 物品名称避免完全重复
- 确保拼音索引的唯一性
4.2 使用建议
- 优先使用物品名称而非ID
- 使用拼音时注意准确性
- 遇到多个匹配时使用更完整的名称
- 批量添加时注意检查逗号分隔的完整性
4.3 批量添加建议
- 每次批量添加建议不超过10个物品
- 使用前先通过单个添加测试物品标识符
- 养成使用统一的标识符习惯(全部用名称或全部用ID)
- 重要操作建议先使用预览功能
5. 总结
本系统通过多次优化,实现了从复杂到简单、从严格到灵活的演进过程。最终版本不仅大大提升了使用效率,也显著降低了使用门槛,为游戏运营提供了更好的支持。批量处理功能的添加进一步提高了操作效率,使得大规模物品发放变得更加便捷。
6. 未来展望
- 添加物品预览功能
- 集成物品搜索界面
- 支持常用物品收藏
- 支持批量操作配置模板
- 添加操作日志和回滚功能
- 集成物品组合快捷操作