Cast 引擎处理 Game Macro 系统的技能执行、施法机制和技能状态管理。
| English Version | 中文版本 |
Cast 引擎提供:
引擎设计用于与旋转和规则系统协同工作:
主技能执行和管理系统。
管理技能热键的实际发送和执行监控。
Skill := {
Id: 1,
Name: "火球术",
Key: "1",
X: 100,
Y: 200,
Color: "0xFF0000",
Tolerance: 10,
CooldownMs: 2000,
CastTimeMs: 1500,
CheckReady: true,
ThreadId: 1
}
监控施法条以确定技能执行状态。
CastBar := {
Enabled: true,
X: 500,
Y: 600,
Width: 200,
Height: 20,
ActiveColor: "0x00FF00",
InactiveColor: "0x000000",
Tolerance: 5
}
跟踪所有技能的当前状态。
SkillState := {
IsCasting: false,
CastStartTime: 0,
CastEndTime: 0,
LastUsed: 0,
CooldownEnd: 0,
IsReady: true
}
初始化施法引擎。
参数:无
返回:布尔值指示成功
执行特定技能。
参数:
skillId(整数):技能标识符threadId(整数):执行线程 ID返回:布尔值指示执行成功
检查技能是否准备使用。
参数:
skillId(整数):技能标识符返回:布尔值指示技能准备状态
获取技能的剩余冷却时间。
参数:
skillId(整数):技能标识符返回:整数冷却时间(毫秒)
向引擎添加新技能。
参数:
skillConfig(Map):技能配置返回:技能 ID
更新现有技能配置。
参数:
skillId(整数):技能标识符skillConfig(Map):更新的技能配置返回:布尔值指示成功
从引擎移除技能。
参数:
skillId(整数):技能标识符返回:布尔值指示成功
为技能启用施法条检测。
参数:
skillId(整数):技能标识符config(Map):施法条配置返回:布尔值指示成功
为技能禁用施法条检测。
参数:
skillId(整数):技能标识符返回:布尔值指示成功
; 配置简单技能
fireballSkill := {
Id: 1,
Name: "火球术",
Key: "1",
X: 100,
Y: 200,
Color: "0xFF0000",
Tolerance: 10,
CooldownMs: 2000,
CheckReady: true,
ThreadId: 1
}
CastEngine_AddSkill(fireballSkill)
; 带施法条检测的技能
healSkill := {
Id: 2,
Name: "治疗术",
Key: "2",
X: 150,
Y: 200,
Color: "0x00FF00",
Tolerance: 5,
CooldownMs: 3000,
CastTimeMs: 2500,
CheckReady: true,
ThreadId: 1
}
; 添加施法条配置
castBarConfig := {
Enabled: true,
X: 500,
Y: 600,
Width: 200,
Height: 20,
ActiveColor: "0x00FF00",
InactiveColor: "0x000000",
Tolerance: 5
}
CastEngine_AddSkill(healSkill)
CastEngine_EnableCastBar(2, castBarConfig)
; 作为旋转一部分执行技能
if (CastEngine_IsSkillReady(skillId)) {
success := CastEngine_ExecuteSkill(skillId, threadId)
if (success) {
; 技能执行成功
Logger_Info("CastEngine", "技能已执行", Map("skillId", skillId))
}
}
; 检查技能状态以进行规则条件
if (!CastEngine_IsSkillReady(skillId)) {
cooldown := CastEngine_GetSkillCooldown(skillId)
Logger_Info("CastEngine", "技能冷却中", Map("skillId", skillId, "cooldown", cooldown))
}
技能存储在配置文件数据中,随配置文件加载:
profile := App["ProfileData"]
profile["Skills"] := [skill1, skill2, skill3]
技能可以分配给不同的执行线程以进行并行处理。
施法引擎包含全面的错误处理:
引擎提供实时监控的调试接口:
; 启用施法调试
CastEngine_EnableDebug()
; 获取调试信息
debugInfo := CastEngine_GetDebugInfo()
所有施法引擎活动都记录日志以便故障排除: