查看“︁Lua接口/技能相关”︁的源代码
来自天龙知识库
←
Lua接口/技能相关
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
__NOTOC__ <div class="lua-reference" style="max-width:1200px;margin:0 auto;line-height:1.8;color:#29343a;font-family:Arial,'Microsoft YaHei',sans-serif;letter-spacing:0;overflow-wrap:anywhere;"> [[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] 查询、学习、删除与使用技能,以及技能流程中的目标读取。技能编号(skillId)来自技能表,不是物品或心法编号。 == 学习与查询 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddSkill|AddSkill]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, skillId</code> → 返回值;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/DelSkill|DelSkill]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, skillId</code> → 返回值;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/HaveSkill|HaveSkill]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, skillId</code> → 已拥有 1、未拥有或失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetSkillName|GetSkillName]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">skillID</code> → 技能名称字符串;模板不存在返回空串。 |} [[Lua接口/服务端/HaveSkill|HaveSkill]] 返回的是**是否拥有(1/-1)**,不是技能等级;查等级用 [[Lua接口/心法相关|心法]] 的 [[Lua接口/服务端/GetXinFaLevel|GetXinFaLevel]] 或技能对应的等级接口。[[Lua接口/服务端/GetSkillName|GetSkillName]] 只传技能编号,不传 sceneId / selfId。 == 技能使用 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/UseSkill|UseSkill]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, arg3</code> → 返回值;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnCanUnitUseSkill|LuaFnCanUnitUseSkill]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, nSkillID</code> → 是否满足技能、冷却、AI 状态三项条件;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnUnitUseSkill|LuaFnUnitUseSkill]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nSelfID, nSkillID, nTargetID, fPos_X, fPos_Z, fDir, bPassSkillCheck</code> → 8 个参数;失败 -1。 |} [[Lua接口/服务端/LuaFnUnitUseSkill|LuaFnUnitUseSkill]] 需要 8 个参数(目标对象、目标坐标、朝向、是否跳过技能校验),不能省略;用它可以让非玩家单位(NPC、怪物)也释放技能。[[Lua接口/服务端/LuaFnCanUnitUseSkill|LuaFnCanUnitUseSkill]] 只判断条件,不实际释放。 == 技能流程中的目标读取 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetTargetObjID|LuaFnGetTargetObjID]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nSelfID</code> → 目标对象 ID;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetPositionOfTargetObj|LuaFnGetPositionOfTargetObj]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 目标对象 X、Z 坐标。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetTargetPosition|LuaFnGetTargetPosition]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 目标位置 X、Z 坐标。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetTargetPosition_X|LuaFnGetTargetPosition_X]] / [[Lua接口/服务端/LuaFnGetTargetPosition_Z|LuaFnGetTargetPosition_Z]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nSelfID</code> → 目标 X / Z;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetItemIndexOfUsedItem|LuaFnGetItemIndexOfUsedItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 消耗物品的物品表索引;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetBagIndexOfUsedItem|LuaFnGetBagIndexOfUsedItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 消耗物品的背包格子;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetTargetBagSlot|LuaFnGetTargetBagSlot]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nSelfID</code> → 目标背包格子;失败 -1。 |} 这一组读取「当前技能或物品使用流程」记录的临时目标,只在该流程的回调内有效。[[Lua接口/服务端/LuaFnGetPositionOfTargetObj|LuaFnGetPositionOfTargetObj]] 返回两个值,需要用 x、z 两个变量接收。 == 消耗与校验流程道具 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnVerifyUsedItem|LuaFnVerifyUsedItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nSelfID</code> → 校验结果;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnDepletingUsedItem|LuaFnDepletingUsedItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nSelfID</code> → 消耗结果;失败 -1。 |} [[Lua接口/服务端/LuaFnVerifyUsedItem|LuaFnVerifyUsedItem]] 校验玩家本次使用流程记录的道具是否满足条件,[[Lua接口/服务端/LuaFnDepletingUsedItem|LuaFnDepletingUsedItem]] 实际消耗。两者配合使用:先校验通过再消耗。 == 单位关系判断 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnUnitIsFriend|LuaFnUnitIsFriend]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetId</code> → 是否友方;部分分支无返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnUnitIsEnemy|LuaFnUnitIsEnemy]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetId</code> → 是否敌对;部分分支无返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnUnitIsPartner|LuaFnUnitIsPartner]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetId</code> → 是否协作;部分分支无返回值。 |} 三个接口部分分支不返回值,接收可能得到 nil,先判类型再判数值。 == 检查并学习技能 == <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local owned = HaveSkill(sceneId, selfId, skillId) if type(owned) == "number" and owned ~= 1 then AddSkill(sceneId, selfId, skillId) end</pre> [[Lua接口/服务端/HaveSkill|HaveSkill]] 已拥有返回 1、未拥有返回 -1,所以条件是 <code style="white-space:normal;overflow-wrap:anywhere;">owned ~= 1</code>(见 [[Lua接口/返回值判断|返回值判断]])。 == 使用技能 == <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local can = LuaFnCanUnitUseSkill(sceneId, selfId, skillId) if type(can) == "number" and can ~= -1 then LuaFnUnitUseSkill(sceneId, selfId, skillId, targetId, posX, posZ, dir, 0) end</pre> [[Lua接口/服务端/LuaFnUnitUseSkill|LuaFnUnitUseSkill]] 需要 8 个参数,第 8 个 <code style="white-space:normal;overflow-wrap:anywhere;">bPassSkillCheck</code> 传 0 表示仍走技能校验。 == 相关主题 == * [[Lua接口/角色信息|角色信息]] * [[Lua接口/属性读取与修改|属性读取与修改]] * [[Lua接口/等级与经验|等级与经验]] * [[Lua接口/货币相关|货币相关]] * [[Lua接口/物品查询|物品查询]] * [[Lua接口/物品发放与扣除|物品发放与扣除]] * [[Lua接口/背包空间|背包空间]] * [[Lua接口/装备操作|装备操作]] * [[Lua接口/任务状态|任务状态]] * [[Lua接口/任务变量|任务变量]] * [[Lua接口/NPC对话|NPC 对话]] * [[Lua接口/对话选项|对话选项]] * [[Lua接口/技能相关|技能相关]] * [[Lua接口/心法相关|心法相关]] * [[Lua接口/状态效果|状态效果]] * [[Lua接口/生活技能|生活技能]] * [[Lua接口/珍兽查询|珍兽查询]] * [[Lua接口/珍兽操作|珍兽操作]] * [[Lua接口/场景查询|场景查询]] * [[Lua接口/坐标与传送|坐标与传送]] * [[Lua接口/副本相关|副本相关]] * [[Lua接口/活动相关|活动相关]] * [[Lua接口/时间与计时|时间与计时]] * [[Lua接口/怪物相关|怪物相关]] * [[Lua接口/队伍相关|队伍相关]] * [[Lua接口/帮会相关|帮会相关]] * [[Lua接口/消息与提示|消息与提示]] * [[Lua接口/聊天与公告|聊天与公告]] [[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]] [[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] <div style="margin-top:20px;padding-top:10px;border-top:1px solid #dbe3e6;color:#657078;font-size:12px;">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div> </div>
返回
Lua接口/技能相关
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
搜索
工具
链入页面
相关更改
页面信息