Buff 引擎管理 Game Macro 系统的增益效果、减益效果和状态效果的检测与跟踪。
| English Version | 中文版本 |
Buff 引擎提供:
引擎设计用于与旋转和规则系统协同工作:
主增益效果检测和管理系统。
通过像素识别管理增益效果和减益效果的检测。
Buff := {
Id: 1,
Name: "力量提升",
Type: "buff",
X: 100,
Y: 200,
Width: 30,
Height: 30,
Color: "0xFF0000",
Tolerance: 10,
DurationMs: 15000,
Priority: 1,
Stackable: false,
MaxStacks: 1,
Required: false
}
跟踪活动增益效果及其剩余持续时间。
BuffState := {
BuffId: 1,
Name: "力量提升",
IsActive: true,
StartTime: 0,
EndTime: 15000,
RemainingMs: 12000,
Stacks: 1,
IsExpired: false
}
处理增益效果优先级以进行旋转决策。
BuffPriority := {
High: ["力量提升", "致命一击"],
Medium: ["急速", "攻击力"],
Low: ["次要增益", "防御冷却"]
}
初始化增益引擎。
参数:无
返回:布尔值指示成功
对所有配置的增益效果执行增益检测。
参数:无
返回:检测到的增益状态数组
检查特定增益效果是否活动。
参数:
buffId(整数):增益效果标识符返回:布尔值指示增益活动状态
获取增益效果的剩余持续时间。
参数:
buffId(整数):增益效果标识符返回:整数持续时间(毫秒)
向检测系统添加新增益效果。
参数:
buffConfig(Map):增益效果配置返回:增益效果 ID
更新现有增益效果配置。
参数:
buffId(整数):增益效果标识符buffConfig(Map):更新的增益效果配置返回:布尔值指示成功
从检测系统移除增益效果。
参数:
buffId(整数):增益效果标识符返回:布尔值指示成功
获取所有当前活动的增益效果。
参数:无
返回:活动增益状态数组
获取特定增益效果的完整状态。
参数:
buffId(整数):增益效果标识符返回:增益状态映射
重置特定增益效果的跟踪。
参数:
buffId(整数):增益效果标识符返回:布尔值指示成功
; 配置简单增益效果
powerBoost := {
Id: 1,
Name: "力量提升",
Type: "buff",
X: 100,
Y: 200,
Width: 30,
Height: 30,
Color: "0xFF0000",
Tolerance: 10,
DurationMs: 15000,
Priority: 1,
Stackable: false,
MaxStacks: 1,
Required: false
}
BuffEngine_AddBuff(powerBoost)
; 配置减益效果
slowDebuff := {
Id: 2,
Name: "减速",
Type: "debuff",
X: 150,
Y: 200,
Width: 30,
Height: 30,
Color: "0x0000FF",
Tolerance: 5,
DurationMs: 10000,
Priority: 2,
Stackable: true,
MaxStacks: 3,
Required: false
}
BuffEngine_AddBuff(slowDebuff)
; 检查增益状态以进行旋转决策
if (BuffEngine_IsBuffActive(powerBoostId)) {
; 增益效果活动,执行高优先级技能
RotationEngine_ExecuteHighPriority()
} else {
; 增益效果不活动,执行正常旋转
RotationEngine_ExecuteNormal()
}
; 基于增益状态创建规则
rule := {
Condition: {
Type: "buff",
BuffId: powerBoostId,
Operator: "active",
Duration: 5000
},
Action: {
Type: "skill",
SkillId: highDamageSkillId
}
}
RuleEngine_AddRule(rule)
; 连续增益效果监控
while (App["IsRunning"]) {
activeBuffs := BuffEngine_DetectBuffs()
; 处理增益状态
for buffState in activeBuffs {
if (buffState["IsActive"]) {
remaining := buffState["RemainingMs"]
Logger_Info("BuffEngine", "增益效果活动", Map(
"buffId", buffState["BuffId"],
"remaining", remaining
))
}
}
Sleep(100) ; 每 100ms 检查一次
}
增益效果存储在配置文件数据中,随配置文件加载:
profile := App["ProfileData"]
profile["Buffs"] := [buff1, buff2, buff3]
每个配置文件可以配置增益效果优先级:
profile["BuffPriority"] := {
High: ["力量提升", "致命一击"],
Medium: ["急速", "攻击力"],
Low: ["次要增益", "防御冷却"]
}
增益引擎包含全面的错误处理:
引擎提供实时监控的调试接口:
; 启用增益效果调试
BuffEngine_EnableDebug()
; 获取调试信息
debugInfo := BuffEngine_GetDebugInfo()
所有增益引擎活动都记录日志以便故障排除: