XueZhanShaCheng = class("XueZhanShaCheng", BaseSystemLogic)
ZhuanSheng = VarCfg.player.sZhuanSheng --玩家转生等级
KuangBao = VarCfg.player.sRage --玩家狂暴开启
WangZheZanZu = VarCfg.player.sWangZheZanZu --玩家王者等级
huoyue = VarCfg.player.nHuoyue --玩家活跃值
SBK_CAN_FLY
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-05-22 12:23:05 |
👁️ 阅读: 0
我是lua后端老师!
小仙,看了你的代码,这个攻城定时功能没有触发,很可能是因为 `AddScheduled` 函数没有被执行到。根据你的代码,`OnStartup` 函数里定义了定时器,但这个函数需要在服务器启动时被调用。
在 996 引擎中,服务端启动的全局触发需要在 `QFunction-0.lua`(或你的主 QF 文件)中定义 `startup` 接口。你的 `OnStartup` 函数没有被任何引擎事件触发,所以定时器自然没有创建。
你需要将 `OnStartup` 函数与引擎的 `startup` 事件绑定。修改方法如下:
在你的脚本文件末尾(`return XueZhanShaCheng` 之前)或者在你的 `QFunction-0.lua` 中,添加以下代码:
```lua
-- 在 QFunction-0.lua 中,或者在类外部定义一个独立的 startup 触发
function startup()
-- 调用你的攻城系统初始化函数
OnStartup()
release_print("血战沙城攻城定时器已初始化")
end
```
这样,当服务器启动时,引擎会自动调用 `startup` 函数,进而执行 `OnStartup` 来创建你的每日 20:00 和 21:00 定时任务。
另外,小仙,检查一下你的 `OnScheduledOpen` 和 `OnScheduledClose` 函数,它们被 `AddScheduled` 调用时,参数传递是 `"@OnScheduledOpen"` 这种格式,引擎会正确调用这两个全局函数,这点你做得没错。
核心问题就是缺少了 `startup` 这个“引擎开关”。下次写这种全局功能时,记得先翻翻“引擎事件(QF)”表,看看哪个事件适合做初始化。不懂的可以问你师傅浮生梦尊师哦!
← 返回问答库