Lua接口/生活技能:修订间差异
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
||
| (未显示同一用户的1个中间版本) | |||
| 第154行: | 第154行: | ||
* [[Lua接口/珍兽查询|珍兽查询]] | * [[Lua接口/珍兽查询|珍兽查询]] | ||
* [[Lua接口/珍兽操作|珍兽操作]] | * [[Lua接口/珍兽操作|珍兽操作]] | ||
* [[Lua接口/场景查询|场景查询]] | |||
* [[Lua接口/坐标与传送|坐标与传送]] | |||
* [[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;无返回值。
|
SetAbilityOperaRobotTime 与 SetAbilityOperaTime 都无返回值。
材料与随机
| 接口 | 参数与返回 |
|---|---|
| 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。
相关主题
- 角色信息
- 属性读取与修改
- 等级与经验
- 货币相关
- 物品查询
- 物品发放与扣除
- 背包空间
- 装备操作
- 任务状态
- 任务变量
- NPC 对话
- 对话选项
- 技能相关
- 心法相关
- 状态效果
- 生活技能
- 珍兽查询
- 珍兽操作
- 场景查询
- 坐标与传送
- 副本相关
- 活动相关
- 时间与计时
- 怪物相关
- 队伍相关
- 帮会相关
- 消息与提示
- 聊天与公告
函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID