DyberPet可扩展性:插件架构与API版本管理
插件系统核心架构
DyberPet采用模块化插件架构,允许开发者通过JSON配置文件扩展宠物角色、物品和迷你宠物功能。核心扩展点包括:
- 角色动画系统:通过
pet_conf.json定义动作参数,支持自定义锚点位置和交互逻辑 - 物品Buff系统:基于
items_config.json配置增益效果,实现状态修改和定时触发 - 迷你宠物管理:通过
SubPet_Manager类实现跟随逻辑和位置计算
角色动画扩展示例
角色动画配置文件pet_conf.json支持自定义动作序列和触发条件:
{
"random_act": [
{"name":"左右行走", "act_list":["left_walk", "right_walk","default"],
"act_prob": 0.1, "act_type": [3,1]}
],
"accessory_act": [
{"name":"E技能", "act_list":["e_skill1","e_skill2"],
"acc_list":["photo_frame_1","photo_frame_2"], "follow_mouse": true}
]
}
开发者文档:素材开发指南
动画模块源码:modules.py
物品系统与Buff机制
物品系统通过JSON配置实现功能扩展,支持四种类型:消耗品、收藏品、对话物品和迷你宠物。以汉堡为例:
{
"汉堡": {
"effect_HP": 10,
"buff":{
"effect": "HP_stop",
"expiration": 300,
"description":"使用后5分钟内饱食度不会下降"
}
}
}
Buff系统通过buffModule.py实现两种作用类型:
- 状态累积型:定期修改HP/FV/金币数值
- 状态变更型:临时停止属性变化(如HP_stop效果)
核心实现:buffModule.py
默认物品配置:items_config.json
API版本控制策略
DyberPet通过配置文件版本化和兼容性处理确保API稳定性:
-
版本声明:在
settings.py中维护版本常量VERSION = "v0.6.7" LVL_BAR = [20] + [120]*200 # 版本兼容的等级配置 -
数据迁移:提供配置文件转换工具
def convert_fv_versions(fv, fv_lvl, from_fv_bar, to_fv_bar): # 处理好感度系统版本升级 -
兼容性标记:配置文件中使用版本字段
{ "coin_config": { "version": "1.1", // 版本标记确保向下兼容 "name": {"zh_CN":"摩拉", "en_US":"Mora"} } }
版本管理源码:settings.py
数据转换工具:utils.py
开发实践指南
快速开始
-
创建角色目录结构:
res/role/新角色/ ├── action/ # 存放PNG动画帧 ├── act_conf.json # 动作参数配置 └── pet_conf.json # 角色属性配置 -
配置物品模组:
{ "新物品": { "type": "subpet", "description": "召唤迷你宠物", "pet_limit": ["特定角色"] } } -
注册Buff效果:
# 在buffModule.py中添加新效果类型 class BuffAdd(QObject): takeEffect = Signal(str, int) # 扩展信号类型
兼容性最佳实践
- 配置文件:始终包含版本字段
- API调用:使用
settings.py中的常量而非硬编码值 - 测试策略:通过
utils.py中的兼容性测试工具验证
# 兼容性检查示例
def check_dict_datatype(raw_dict:dict, dtype, default_value):
return {k: (v if isinstance(v, dtype) else default_value) for k, v in raw_dict.items()}
测试工具:utils.py
UI兼容性:DyberControlPanel.py
未来扩展方向
- 插件市场:基于现有模组系统实现一键安装
- API网关:开发REST接口支持远程控制
- 事件系统:扩展
Interaction_worker支持自定义事件
# 事件系统扩展示例
class EventSystem(QObject):
custom_event = Signal(dict) # 自定义事件总线
def register_handler(self, event_type, callback):
# 注册事件处理器
交互模块源码:modules.py
事件总线设计:Accessory.py
通过这套可扩展架构,DyberPet实现了"核心稳定、插件灵活"的设计目标,既保证了基础功能的可靠性,又为创意扩展提供了充足空间。开发者可参考收藏集文档获取更多模组示例。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




