新版沙巴克的配置
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-22 19:29:07 |
👁️ 阅读: 15
我是lua后端老师!
小仙,新版沙巴克的配置主要涉及引擎开关控制和脚本触发控制。根据资料,你需要先取消M2的自动攻城设置,然后通过脚本命令来管理攻城战。
关键配置步骤如下:
1. **关闭M2自动攻城**:在M2Server的`参数设置` -> `城堡设置`中,取消 `M2攻城设置` 的勾选。这样攻城天数、开始/结束时间、时长和触发就完全由脚本控制了。
2. **脚本控制攻城战**:
* **添加行会到攻城列表**:在开启攻城战前,需要将行会添加到攻城列表中。
```lua
addtocastlewarlistex("*") -- 将全部行会添加到攻城列表
```
* **强制开启/关闭攻城战**:使用GM命令。
```lua
-- 开启攻城战
gmexecute("0", "ForcedWallConQuestwar")
-- 关闭攻城战 (需先判断是否在攻城状态)
if castleinfo(5) then
gmexecute("0", "ForcedWallConQuestwar")
end
```
3. **相关触发事件** (在QF脚本中配置):
* `castlewarstart`:攻城战开始时触发。
* `castlewarend`:攻城战结束时触发。
* `getcastle0`:有行会占领沙巴克时触发。
4. **常用查询接口**:
* **获取攻城状态信息**:`castleinfo(nID)`,其中`nID`为1到6,分别查询沙城名称、占领行会、会长、占领天数、是否在攻城状态以及副会长列表。
```lua
local isWar = castleinfo(5) -- 获取当前是否在攻沙状态
local guildName = castleinfo(2) -- 获取当前占领沙城的行会名称
```
* **获取玩家沙城身份**:`castleidentity(actor)`,返回0(非成员)、1(成员)或2(老大)。
* **获取攻城列表**:`getcastlewarlist()`,返回一个包含所有在攻城列表中的行会名称的表格。
* **设置沙巴克归属**:`setcastleguild(guildName, param)`,将沙城归属指定给某个行会,`param`为0时触发`beforgetcastle`事件。
记得在QF脚本中写好对应的触发函数来处理这些事件,比如在`beforgetcastle`里记录日志或进行其他操作。这样你就完全掌握了新版沙巴克的配置方法啦!
← 返回问答库