Lua接口/生活技能:修订间差异

来自天龙知识库
跳到导航跳到搜索
雪舞留言 | 贡献
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
雪舞留言 | 贡献
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
 
第160行: 第160行:
* [[Lua接口/时间与计时|时间与计时]]
* [[Lua接口/时间与计时|时间与计时]]
* [[Lua接口/怪物相关|怪物相关]]
* [[Lua接口/怪物相关|怪物相关]]
* [[Lua接口/队伍相关|队伍相关]]
* [[Lua接口/帮会相关|帮会相关]]
* [[Lua接口/消息与提示|消息与提示]]
* [[Lua接口/聊天与公告|聊天与公告]]


[[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]]
[[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]]

2026年9月12日 (六) 13:54的最新版本

首页 · 服务端接口 · 调用约定

查询、学习与升级生活技能(Ability),读写技能经验、管理配方与操作时间。生活技能编号(abilityId)来自生活技能配置表。

学习与等级

接口 参数与返回
QueryHumanAbility sceneId, selfId, abilityId → 已学 1、未学 0、失败 -1。
QueryHumanAbilityLevel sceneId, selfId, AbilityID → 生活技能等级;失败 -1。
SetHumanAbilityLevel sceneId, selfId, abilityId, abilityLvl;无返回值。

QueryHumanAbility 返回 1 表示已学、0 表示未学、-1 表示失败,**0 与 -1 含义不同**,不能用简单真值判断。SetHumanAbilityLevel 无返回值。

技能经验

接口 参数与返回
GetAbilityExp sceneId, selfId, abilityId → 当前经验;失败 -1。
SetAbilityExp sceneId, selfId, abilityId, abilityExp;无返回值。
GetAbilityExpPlus sceneId, selfId, itemTypeSn → 物品对应的经验加成;失败 -1。

SetAbilityExp 无返回值。GetAbilityExpPlus 传的是物品配置编号,读取该物品提供的生活技能经验加成。

配方

接口 参数与返回
SetPrescription sceneId, selfId, PrescrID, LearnOrAbandon → 学会结果;失败 -1。
IsPrescrLearned sceneId, selfId, PrescrID → 是否已学;失败 -1。

SetPrescription 只能操作「学会」某一配方,不能放弃具体某项配方——放弃走另外的流程。IsPrescrLearned 判断是否已学。

升级配置

接口 参数与返回
LuaFnGetAbilityMaxLevel abilityId → 1、最大等级(2 项);配置不存在返回 0,异常 -1。
LuaFnGetAbilityLevelUpConfig abilityId, nLevel → 7 项(1、金钱、经验、技能经验限制等);配置不存在 0,异常 -1。
LuaFnGetAbilityLevelUpConfig2 abilityId, nLevel → 9 项,在上一接口基础上追加附加金钱、附加经验。

这三个接口成功时**第一个返回值是 1**(不是金额),后续才是配置数据;配置不存在返回 0,异常路径返回 -1。用多个变量按顺序接收,不要只接一项。

操作与挂机时间

接口 参数与返回
GetAbilityOperaRobotTime sceneId, selfId → 挂机器时间;失败 -1。
SetAbilityOperaRobotTime sceneId, selfId, RobotTime;无返回值。
SetAbilityOperaTime sceneId, selfId, OperaTime;无返回值。

SetAbilityOperaRobotTimeSetAbilityOperaTime 都无返回值。

材料与随机

接口 参数与返回
GetAbilityObjIndex sceneId, selfId, Index → 材料条目对应的背包位置;失败 -1。
LuaFnCompoundRandom randomIndex → 合成随机结果;失败 -1。表索引范围 0-127。
LuaFnGemEmbedRandom () → 宝石镶嵌随机结果;失败 -1。

GetAbilityObjIndex 读取当前生活技能操作中指定材料条目的背包位置。LuaFnCompoundRandom 的表索引范围是 0 到 127。

结果消息

接口 参数与返回
LuaFnSendAbilitySuccessMsg sceneId, selfId, AbilityId, RecipeId, ItemSerialNum;无返回值。
LuaFnSendAbilityFailureMsg sceneId, selfId, abilityId, recipeId, itemSerial;无返回值。

这组向客户端发送制造成功 / 失败消息,都无返回值。

检查并设置等级

local learned = QueryHumanAbility(sceneId, selfId, abilityId)
if type(learned) == "number" and learned == 1 then
    local level = QueryHumanAbilityLevel(sceneId, selfId, abilityId)
    if type(level) == "number" and level ~= -1 then
        -- 已学,取得等级
    end
end

QueryHumanAbility 已学返回 1、未学返回 0、失败返回 -1,所以用 learned == 1 判断已学。

学习配方

local learned = IsPrescrLearned(sceneId, selfId, prescrId)
if type(learned) == "number" and learned ~= 1 then
    SetPrescription(sceneId, selfId, prescrId, 1)
end

SetPrescription 第 4 个参数表示学会操作;本接口不能放弃具体某项配方。

读取升级配置

local ok, money, exp = LuaFnGetAbilityLevelUpConfig(abilityId, nLevel)
if type(ok) == "number" and ok == 1 then
    -- money、exp 为所需金钱与经验
end

LuaFnGetAbilityLevelUpConfig 成功时第一项是 1、后续才是数据;配置不存在返回 0,异常返回 -1。

相关主题

服务端调用约定 · 服务端调用示例 · 服务端函数索引

函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID

本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。