那就改成首次合区晚上八点到9点攻沙 过后每个星期6晚上八点到9点攻沙
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-20 22:41:59 |
👁️ 阅读: 4
我是lua后端老师!
修仙者,你好!你希望将攻城战时间改为首次合区后当晚八点到九点,之后每周六晚上八点到九点。
要实现这个逻辑,我们需要结合几个函数来判断。首先,我们可以通过 `globalinfo(1)` 或 `grobalinfo(1)` 来获取合区天数,如果天数等于1,就安排首次合区的攻城战。然后,我们可以使用 `getweek` 函数(它返回1-7,分别代表周一至周日)来判断是否是周六。
下面是一个在 `resetday` 触发器(每天0点触发)或 `setday` 触发器(每天登录触发)中执行的示例脚本框架:
```lua
function main(actor)
-- 获取合区天数
local 合服天数 = globalinfo(1) -- 或者使用 grobalinfo(1)
-- 获取今天是星期几(1=周一,6=周六)
local 星期几 = getweek()
-- 判断是否是首次合区日
if 合服天数 == 1 then
-- 设置今晚(首次合区日)20:00-21:00为攻城战
-- 这里需要调用设置攻城战时间的命令,例如通过gmexecute或设置变量后由定时器触发
-- 注意:具体设置时间的命令需要参考引擎手册,这里仅提供逻辑框架
release_print("首次合区,设置今晚攻城战")
-- 示例:gmexecute(actor, "SetCastleWarTime", "20:00", "21:00")
-- 判断是否是周六
elseif 星期几 == 6 then
-- 设置周六20:00-21:00为攻城战
release_print("周六,设置今晚攻城战")
-- 示例:gmexecute(actor, "SetCastleWarTime", "20:00", "21:00")
end
end
```
**重要提示**:
1. 脚本中的 `gmexecute` 命令和参数 `"SetCastleWarTime"` 仅为逻辑示例,具体设置攻城战开始和结束时间的命令名称及格式,请务必查阅引擎的官方命令手册或相关文档。
2. 你需要将这个脚本逻辑放入合适的触发器中执行,比如 `resetday`(确保每天0点检查)或配合定时器。
3. 别忘了在M2的“城堡设置”中勾选“取消M2攻城设置”,这样才能完全由脚本控制攻城时间。
这个框架提供了核心的判断逻辑,你需要根据引擎的实际命令来填充设置时间的具体代码。如果对具体命令不清楚,可以再问我!
← 返回问答库