Lua接口/服务端/AutoBattleNotify

来自天龙知识库
跳到导航跳到搜索

首页 · 服务端接口 · 自动战斗 · 调用约定

上报自动战斗的阶段、技能或停止通知。

Lua 调用

AutoBattleNotify(sceneId, selfId, kind, message, branch, arg6, arg7)

服务端脚本中共出现 8 处调用,实参个数出现过:5 个(6 处)、7 个(2 处)。

实现位于 LuaFnTbl_AutoBattle.h。

参数

序号 参数 / 类型 说明
1 sceneId
number
当前调用所在的场景 ID。
脚本中的实参:sceneId(8 处)
2 selfId
number
当前场景内的对象 ID;必须是本场景线程中的有效玩家,不是角色 GUID。
脚本中的实参:selfId(7 处)、player
3 kind
number
通知类型,只能是阶段、技能或停止三种之一。
脚本中的实参:4(4 处)、3(3 处)、kind
4 message
string
通知文本(字符串),长度须小于实现的字符串上限。
脚本中的实参:key..stage(3 处)、"副本身份或场景已改变,自动战斗停止"、"引魔珠引导坐标缺失,请检查服务端脚本"
5 branch
number
分支编号,必须与当前会话的分支一致。
脚本中的实参:branch(8 处)
6 arg6
number
可选的第 6 个整数,只在传满 7 个实参时下发。
脚本中的实参:floor(guideX)、floor(x)
7 arg7
number
可选的第 7 个整数,只在传满 7 个实参时下发。
脚本中的实参:floor(guideZ)、floor(z)

返回值

无返回值。

脚本中的调用

以下是服务端脚本里的真实调用点,按实参形态去重后列出 8 条。这些调用取自随包发布的脚本,可用于确认参数顺序与实际传入的值;它们不代表该写法在当前版本仍然有效。

-- event/autobattle.lua
AutoBattleNotify(sceneId, selfId, 3, "副本身份或场景已改变,自动战斗停止", branch)

-- event/autobattle.lua
AutoBattleNotify(sceneId, selfId, 3, stage == -2 and "副本已完成" or "副本状态不可用或任务失败,自动战斗停止", branch)

-- event/autobattle.lua
AutoBattleNotify(sceneId, selfId, 3, "引魔珠引导坐标缺失,请检查服务端脚本", branch)

-- event/autobattle.lua
AutoBattleNotify(sceneId, selfId, 4, key..stage, branch, floor(guideX), floor(guideZ))

-- event/autobattle.lua
AutoBattleNotify(sceneId, selfId, 4, key.."("..floor(x)..","..floor(z)..")", branch)

-- event/autobattle.lua
AutoBattleNotify(sceneId, selfId, 4, key..stage, branch, floor(x), floor(z))

-- event/autobattle.lua
AutoBattleNotify(sceneId, selfId, 4, key..stage, branch)

-- event/autobattle.lua
AutoBattleNotify(sceneId, player, kind, text, branch)

注意事项

  • 调用对象必须是当前场景中的有效玩家。
  • 实参可以是 5 到 7 个:只有恰好 7 个时才把第 6、7 个整数一起下发。
  • 停止通知会把会话标记为非活动;燕子坞分支的真实通关通知会记下完成标记。
  • 接口会根据实参数量处理部分分支;省略参数前需确认对应调用场景。
  • 脚本中有只传 5 个实参的调用,少于实现体读取的 7 个位置;缺省位置按引擎对缺失值的转换处理(通常为 0),不能直接当作有效数据。