Lua接口/服务端调用示例
来自天龙知识库
以下代码放入已有服务端回调中。sceneId、selfId 来自回调;NPC 对话还需要有效 targetId。物品、任务和脚本编号由本服配置提供。
读取角色信息
local name = GetName(sceneId, selfId) local level = GetLevel(sceneId, selfId) local hp = GetHp(sceneId, selfId) local x, z = GetWorldPos(sceneId, selfId)
NPC对话
BeginEvent(sceneId) AddText(sceneId, "当前等级:" .. GetLevel(sceneId, selfId)) EndEvent(sceneId) DispatchEventList(sceneId, selfId, targetId)
BeginEvent 开始并清空对话,AddText 添加内容,DispatchEventList 将内容发送给玩家。EndEvent 不会自动显示对话。
查询物品数量
-- itemTypeSn 为当前业务使用的物品配置编号
local count = GetItemCount(sceneId, selfId, itemTypeSn)
if count >= 5 then
-- 满足数量要求后的处理
end
这里统计已装备与背包物品之和,未验证锁定状态,不能直接等同于可扣除数量。
发放物品
-- itemTypeSn 为已确认有效的物品配置编号
BeginAddItem(sceneId)
AddItem(sceneId, itemTypeSn, 1)
if EndAddItem(sceneId, selfId) == 1 then
AddItemListToHuman(sceneId, selfId)
end
AddItem 加入待发列表,EndAddItem 只检查能否接收,AddItemListToHuman 执行发放。最后一步无返回值,本示例不提供事务或重复领取保护。
函数名称
local level1 = GetLevel(sceneId, selfId) local level2 = LuaFnGetLevel(sceneId, selfId)
这两个名称都在注册表中,指向同一接口。其他函数不能据此自行增删 LuaFn 前缀。
以上示例已对照当前接口实现,尚未在游戏内执行。