Skip to content

整体架构 ​

text
┌─────────────────────────────────────────────────────────────┐
│  C++ 客户端 (application/)                                   │
│   ├─ 登录链 (LoginAuth / LoginSession / ConnectInstance)     │
│   ├─ 数据包 (PacketBase + 各 packet 类, 网易协议)             │
│   ├─ 回调分发 (CallbackManger: 包 → 触发 Python 事件)         │
│   ├─ 终端界面 (VectorConsole / VectorUI: 表头 + 日志区)       │
│   └─ Python 运行时 (PythonRuntime: 内嵌 CPython 3.12)        │
├─────────────────────────────────────────────────────────────┤
│  Python 3.12 运行时(随包提供)                               │
│   ├─ 解释器 python312.dll / python3.dll (exe 同目录)          │
│   ├─ 标准库 python312/Lib/                                   │
│   ├─ 扩展模块 python312/DLLs/ (_ssl.pyd, _socket.pyd, …)      │
│   ├─ 框架 source/init.py 或 vanilla.mcp/ (加载插件、RPC 校验) │
│   ├─ 插件 <插件目录>/<name>/__init__.py  (默认 ./scripts)     │
│   └─ 第三方包 python312/Lib/site-packages/                    │
└─────────────────────────────────────────────────────────────┘

解释器是动态嵌入的

python312.dll 与 Program.exe 放在同一目录,python312/ 提供标准库与扩展模块。 这样官方平台 wheel(numpy / Pillow 等)可以直接使用 —— 详见 Python 运行时与扩展。

分层职责 ​

层负责不负责
C++ 客户端网络连接、登录鉴权、协议编解码、游戏状态维护、事件分发、终端界面业务逻辑
Python 框架(source/ 或 vanilla.mcp/)加载插件、事件路由、RPC 反作弊校验、数据包解析(proton.py)协议实现
插件(插件目录,默认 scripts/)你的业务逻辑连接与协议细节

分界点是一套事件系统:C++ 侧收到数据包 → 分发给 Python → 插件注册的回调被调用。 插件要主动做事(发指令、移动、打开容器)时,调用 engine 等原生模块。

C++ 侧主要组成 ​

组件位置说明
登录链application/Core/LoginAuth / LoginSession / ConnectInstance
数据包application/Packets/PacketBase + 各协议包类
回调分发application/Core/CallbackManager.cpp协议包 → Python 事件
Python 运行时application/Python/PythonRuntime.cpp解释器初始化、19 个模块注册、sys.path 装配
终端界面application/Core/VectorConsole.cpp / VectorUI.cpp固定表头、日志区、状态动画
原生 APIapplication/PythonAPI/pybind11 绑定(nbt / packets / game_state)
网络后端application/Network/RakNet / WebSocket / WebRTC / NetherNet
加密application/Crypto/AES / ChaCha20 / Rotor / ECC

本节目录 ​

第三方库请参阅各自目录下的许可证文件