Plague 插件开发文档

为 Plague 辅助程序编写扩展插件 · 定制 UI 与透视参数

📖 概述

Plague 辅助程序提供了一套灵活的 扩展插件系统,允许开发者通过简单的文本配置或获取码机制, 定制悬浮窗的 UI 样式绘制参数(方框、骨骼、血量、颜色等)以及 布局行为。插件以 .ptr 文件形式存放在 /storage/emulated/0/扩展插件ptr/ 目录下,程序启动时自动加载当前激活的插件。

本文档将引导您从零开始创建自己的插件,涵盖 UISettings 所有可配置项、 绘制参数 的调优方法,以及如何通过 获取码 实现云端分享。

📌 适用版本: Plague v1.0+  ·  插件目录: /storage/emulated/0/扩展插件ptr/  ·  扩展名: .ptr

🧩 系统架构

插件系统的核心位于 扩展.h 头文件中,主要包含以下组件:

插件文件支持两种模式:

💡 设计理念: 插件系统专注于 UI 外观绘制参数 的定制, 不涉及游戏逻辑修改,保证了安全性与稳定性。

⚡ 快速开始

创建一个最简单的插件只需要三步:

  1. /storage/emulated/0/扩展插件ptr/ 目录下新建一个 .ptr 文件,例如 my_plugin.ptr
  2. 在文件中写入你想要的配置(参考下方参数表)。
  3. 在程序悬浮窗的「扩展插件」页面中,点击该插件名称即可加载。

一个最简的插件文件示例:

# my_plugin.ptr
                window_width=960
                window_height=680
                window_rounding=24
                accent=#eb5050
                text_primary=#f0f0f5
                card_bg=#2d2d3d
                particle_enabled=1
            

保存后,在悬浮窗中切换到「扩展插件」页面,点击 my_plugin.ptr 即可应用。

📐 UISettings 完整参数表

UISettings 结构体控制着悬浮窗的 外观与交互。 所有参数均可在插件文件中通过 键=值 的形式设置。

键名 类型 默认值 说明
window_widthfloat920.0悬浮窗宽度
window_heightfloat640.0悬浮窗高度
window_roundingfloat20.0窗口圆角半径
window_bg_alphafloat0.92背景透明度 (0~1)
window_bg_colorRGBA#202028背景颜色 (十六进制或R,G,B,A)
nav_width_ratiofloat0.28左侧导航栏宽度比例
nav_item_heightfloat60.0导航项高度
nav_item_roundingfloat20.0导航项圆角
card_bghex#2d2d37卡片背景色
card_hoverhex#3c3c48卡片悬停色
card_heightfloat180.0卡片高度
text_primaryhex#f0f0f5主文字颜色
text_secondaryhex#aaaab4次要文字颜色
accenthex#eb5050强调色(按钮、滑块等)
track_inactivehex#464652滑块轨道未激活色
slider_activehex#eb5050滑块激活色
slider_inactivehex#8c8c96滑块未激活色
slider_fillhex#eb5050b4滑块填充色
slider_heightfloat8.0滑块轨道高度
slider_grab_radiusfloat12.0滑块手柄半径
segment_bghex#3a3a46分段控制器背景
segment_text_unselectedhex#aaaab9分段未选中文字色
segment_text_selectedhex#f0f0f5分段选中文字色
dropdown_bghex#32323e下拉菜单背景
button_bghex#373743按钮背景
button_hoverhex#464655按钮悬停色
button_activehex#2d2d38按钮按下色
button_roundingfloat8.0按钮圆角
button_heightfloat44.0按钮高度
separatorhex#3c3c48分割线颜色
switch_widthfloat50.0开关宽度
switch_heightfloat28.0开关高度
switch_roundingfloat14.0开关圆角
particle_enabledfloat1.0粒子效果开关 (0/1)
📌 颜色格式: 支持十六进制 #rrggbb#rrggbbaa, 也支持 R,G,B,A 格式(0~255)。示例:accent=#eb5050accent=235,80,80,255

🎨 绘制参数

除了 UI 样式,插件还可以控制 透视绘制 的各项参数, 包括颜色、粗细、偏移、样式等。这些参数在 扩展.h反序列化UISettings() 中被解析。

📏 粗细 & 样式

键名类型默认说明
draw_方框粗细float1.0方框边框粗细
draw_射线粗细float1.0射线粗细
draw_骨骼粗细float1.0骨骼线条粗细
draw_血条样式int00=默认, 1=文字, 2=圆圈
draw_手持绘图样式int00=文字, 1=图片
draw_骨骼距离限制float300.0骨骼绘制最大距离

📍 位置偏移

键名类型默认说明
draw_名字偏移Xfloat0.0名字 X 偏移
draw_名字偏移Yfloat0.0名字 Y 偏移
draw_距离偏移Xfloat0.0距离 X 偏移
draw_距离偏移Yfloat0.0距离 Y 偏移
draw_血量偏移Xfloat0.0血量 X 偏移
draw_血量偏移Yfloat0.0血量 Y 偏移
draw_手持偏移Xfloat0.0手持 X 偏移
draw_手持偏移Yfloat0.0手持 Y 偏移
draw_射线偏移Yfloat0.0射线 Y 偏移
draw_队伍标识偏移Xfloat0.0队伍标识 X 偏移
draw_队伍标识偏移Yfloat0.0队伍标识 Y 偏移

🎯 颜色配置

颜色值格式为 R,G,B,A(0~255),例如 255,80,80,255

键名说明
draw_方框颜色_人机人机方框颜色
draw_射线颜色_人机人机射线颜色
draw_骨骼颜色_人机人机骨骼颜色
draw_血量颜色_人机人机血量颜色
draw_距离颜色_人机人机距离颜色
draw_名称颜色_人机人机名称颜色
draw_方框颜色_真人真人方框颜色
draw_射线颜色_真人真人射线颜色
draw_骨骼颜色_真人真人骨骼颜色
draw_血量颜色_真人真人血量颜色
draw_距离颜色_真人真人距离颜色
draw_名称颜色_真人真人名称颜色
draw_手持颜色手持文字/图标颜色

📄 插件文件格式

普通模式

文件内容为纯文本,每行一个 键=值 对,支持 # 开头的注释。

# 我的插件配置
                window_width=1000
                window_height=700
                accent=#d06060
                draw_方框粗细=1.5
                draw_方框颜色_真人=255,80,80,255
                draw_骨骼颜色_真人=80,200,255,255
            

获取码模式

文件内容为 设备码|获取码,程序会验证设备码后从云端拉取实际配置。

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6|ABCDEF123456
🔐 设备码绑定: 获取码与首次生成时的设备码绑定,换设备后需重新生成。 这保证了插件分享的安全性。

在悬浮窗的「扩展插件」页面中,您可以直接输入获取码来加载云端插件,无需手动编辑文件。

🧪 教程:悬浮窗插件制作

本教程将指导您从零开始创建一个完整的悬浮窗样式插件,涵盖 颜色主题尺寸调整高级样式

第一步:创建插件文件

/storage/emulated/0/扩展插件ptr/ 目录下新建 dark_theme.ptr

第二步:编写基础配置

# dark_theme.ptr — 暗色主题
                window_width=920
                window_height=640
                window_rounding=24
                window_bg_alpha=0.94
                window_bg_color=#181822

                nav_width_ratio=0.26
                nav_item_height=58
                nav_item_rounding=18

                card_bg=#28283a
                card_hover=#3a3a50
                card_height=170

                text_primary=#eaeaf2
                text_secondary=#9a9ab0
                accent=#e06060

                track_inactive=#3a3a4a
                slider_active=#e06060
                slider_inactive=#808096
                slider_fill=#e06060b4

                segment_bg=#2e2e40
                segment_text_unselected=#9a9ab0
                segment_text_selected=#f0f0f8

                button_bg=#2e2e40
                button_hover=#404058
                button_active=#222236
                button_rounding=8
                button_height=44

                switch_width=48
                switch_height=26
                switch_rounding=13

                particle_enabled=1
            

第三步:添加绘制参数

# 继续追加绘制参数
                draw_方框粗细=1.2
                draw_射线粗细=1.0
                draw_骨骼粗细=1.0
                draw_血条样式=0
                draw_手持绘图样式=1
                draw_骨骼距离限制=350

                draw_名字偏移X=0
                draw_名字偏移Y=0
                draw_距离偏移X=0
                draw_距离偏移Y=6
                draw_血量偏移X=0
                draw_血量偏移Y=0
                draw_手持偏移X=0
                draw_手持偏移Y=4
                draw_射线偏移Y=0
                draw_队伍标识偏移X=0
                draw_队伍标识偏移Y=0

                draw_方框颜色_人机=80,200,80,200
                draw_射线颜色_人机=80,200,80,150
                draw_骨骼颜色_人机=80,200,80,180
                draw_血量颜色_人机=0,255,0,255
                draw_距离颜色_人机=200,200,200,255
                draw_名称颜色_人机=200,200,200,255

                draw_方框颜色_真人=255,80,80,220
                draw_射线颜色_真人=255,80,80,150
                draw_骨骼颜色_真人=80,200,255,200
                draw_血量颜色_真人=0,255,0,255
                draw_距离颜色_真人=255,255,255,255
                draw_名称颜色_真人=255,255,255,255

                draw_手持颜色=255,255,255,255
            

第四步:加载插件

  1. 启动 Plague 辅助程序,打开悬浮窗。
  2. 切换到「扩展插件」页面。
  3. 在插件列表中找到 dark_theme.ptr,点击即可加载。
  4. 悬浮窗样式和绘制参数将立即生效。
💡 实时调试: 您可以在「扩展插件」页面底部的「实时调节UI参数」面板中调整参数, 满意后点击「保存」即可更新插件文件。

👁️ 教程:透视插件配置

透视(ESP)功能是 Plague 的核心能力之一。通过插件,您可以精细控制 方框、骨骼、血量、射线 等元素的显示样式。本教程将帮助您调出清晰、美观的透视效果。

基础透视配置

在插件文件中添加以下参数,开启基础透视:

# 基础透视配置
                draw_方框粗细=1.2
                draw_射线粗细=1.0
                draw_骨骼粗细=1.2
                draw_血条样式=0         # 0=默认条, 1=文字, 2=圆圈
                draw_手持绘图样式=1      # 1=图片, 0=文字
                draw_骨骼距离限制=350

                # 人机颜色(绿色系)
                draw_方框颜色_人机=80,220,80,200
                draw_骨骼颜色_人机=80,220,80,180
                draw_血量颜色_人机=0,255,0,255

                # 真人颜色(红色系)
                draw_方框颜色_真人=255,80,80,220
                draw_骨骼颜色_真人=80,200,255,200
                draw_血量颜色_真人=0,255,0,255
            

进阶视觉优化

🎯 不同风格的配色方案

方案一:赛博朋克风格

draw_方框颜色_真人=0,255,255,220   # 青蓝
                        draw_骨骼颜色_真人=255,0,255,200   # 品红
                        draw_方框颜色_人机=0,200,100,200   # 翠绿
                        draw_骨骼颜色_人机=0,200,100,180
                    

方案二:极简黑白

draw_方框颜色_真人=255,255,255,200
                        draw_骨骼颜色_真人=200,200,200,180
                        draw_方框颜色_人机=180,180,180,180
                        draw_骨骼颜色_人机=150,150,150,150
                        draw_血量颜色_真人=255,255,255,255
                    

方案三:高对比度(竞技向)

draw_方框颜色_真人=255,50,50,255
                        draw_骨骼颜色_真人=255,200,50,255
                        draw_方框颜色_人机=50,200,50,200
                        draw_骨骼颜色_人机=50,200,50,180
                        draw_射线颜色_真人=255,50,50,120
                        draw_射线颜色_人机=50,200,50,100
                    
📐 位置偏移调优

微调各元素的屏幕位置,使其在您的设备上显示更协调:

# 偏移调整(单位:像素)
                        draw_名字偏移X=0
                        draw_名字偏移Y=-6     # 名字上移
                        draw_距离偏移X=0
                        draw_距离偏移Y=6      # 距离下移
                        draw_血量偏移X=0
                        draw_血量偏移Y=0
                        draw_手持偏移X=0
                        draw_手持偏移Y=6      # 手持下移
                        draw_射线偏移Y=0
                        draw_队伍标识偏移X=0
                        draw_队伍标识偏移Y=0
                    
📌 建议: 不同分辨率的设备可能需要不同的偏移值, 请在「程序设置」页面中调整帧率后观察效果。

🚀 高级技巧

1. 通过获取码分享插件

您可以将插件上传至云端,生成一个 获取码,其他用户通过输入获取码即可加载您的插件配置。

  1. 在悬浮窗「扩展插件」页面中,点击「新建插件」创建一个新插件。
  2. 调整好所有参数后,点击「保存」。
  3. 在程序主界面选择「工坊内容获取」,输入您从云端获得的获取码。
  4. 程序会自动下载并保存为插件文件,设备码会自动绑定。
🔐 安全提示: 获取码与设备码绑定,每个获取码只能在同一设备上使用, 有效防止了配置被滥用。

2. 动态切换插件

在「扩展插件」页面中,您可以通过点击不同插件卡片快速切换样式。 程序会立即应用新插件的所有设置,无需重启。

3. 插件与参数配置的协同

插件主要控制 UI 样式绘制外观, 而 参数ptr 目录下的 .cfg 文件则控制 功能开关自瞄参数。两者可以独立管理,互不干扰。

您可以为不同的使用场景(如不同游戏模式)准备多套插件和参数组合。

4. 自定义粒子效果

通过 particle_enabled=1 开启悬浮窗背景粒子动画,提升视觉体验。

# 开启粒子效果
                particle_enabled=1

                # 关闭粒子效果
                particle_enabled=0
            

📚 API 参考

核心函数(扩展.h)

函数说明
std::string 序列化UISettings() g_uiSettings 转换为纯文本字符串。
void 反序列化UISettings(const std::string& data) 从文本字符串恢复 g_uiSettings 和绘制参数。
void 保存当前插件() 将当前设置保存到 g_当前插件文件名 指定的文件。
void 加载指定插件(const std::string& fullpath) 从指定路径加载插件,支持获取码模式。
std::vector<std::string> 列出插件文件() 返回插件目录下所有 .ptr 文件名。
std::string 获取插件完整路径() 返回当前插件的完整路径。
std::string DownloadContentByCode(const std::string& code) 通过获取码从云端下载配置内容。

全局变量

在 C++ 代码中使用插件 API

如果您需要在自己的代码中操作插件系统,只需包含 扩展.h

#include "扩展.h"

                // 修改 UI 设置
                g_uiSettings.accent = IM_COL32(255, 100, 100, 255);
                g_uiSettings.window_width = 1000;

                // 保存当前插件
                保存当前插件();

                // 加载指定插件
                加载指定插件("/storage/emulated/0/扩展插件ptr/my_style.ptr");
            

❓ 常见问题

Q: 插件加载后没有生效?

请检查以下几点:

  • 确保插件文件位于正确的目录:/storage/emulated/0/扩展插件ptr/
  • 文件扩展名必须为 .ptr(注意大小写)。
  • 检查文件内容格式是否正确(键=值,每行一个)。
  • 在「扩展插件」页面中点击插件卡片,确保已选中(高亮显示)。
  • 如果使用获取码模式,确认设备码匹配且网络畅通。
Q: 如何恢复默认插件?

程序内置了一个默认插件 default.ptr,您可以在「扩展插件」页面中点击它来恢复默认样式。

如果 default.ptr 不存在,程序会自动创建一个包含默认设置的插件文件。

Q: 插件和参数配置有什么区别?

插件 (.ptr) 控制 UI 外观和绘制样式(颜色、粗细、偏移、主题等), 属于 视觉层 配置。

参数 (.cfg) 控制功能开关和数值(自瞄范围、压枪力度、绘制开关、帧率等), 属于 功能层 配置。

两者独立管理,互不影响,可以自由组合使用。

Q: 获取码模式如何工作?

获取码模式的工作流程:

  1. 用户在云端上传插件配置,系统生成一个唯一获取码。
  2. 用户在程序中输入获取码,程序请求云端获取配置内容。
  3. 程序将 设备码|获取码 写入 .ptr 文件。
  4. 下次加载时,程序验证设备码,若匹配则从云端拉取最新配置。
🔐 设备码绑定: 每个获取码与首次使用时的设备码绑定, 换设备后需要重新生成获取码。
Q: 可以同时加载多个插件吗?

不可以。一次只能加载一个插件,新插件会覆盖之前的设置。

但您可以通过「参数保存」功能保存多套参数配置,与插件配合使用。


Plague 插件开发文档 · 由繁华奚落开源 · 仅供学术研究