Lua接口/生活技能:修订间差异
来自天龙知识库
跳到导航跳到搜索
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
||
| (未显示同一用户的2个中间版本) | |||
| 第1行: | 第1行: | ||
__NOTOC__ | __NOTOC__ | ||
<div class="lua-reference | <div class="lua-reference"> | ||
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] | [[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] | ||
| 第6行: | 第6行: | ||
== 学习与等级 == | == 学习与等级 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/QueryHumanAbility|QueryHumanAbility]] | |||
| <code>sceneId, selfId, abilityId</code> → 已学 1、未学 0、失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/QueryHumanAbilityLevel|QueryHumanAbilityLevel]] | |||
| <code>sceneId, selfId, AbilityID</code> → 生活技能等级;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetHumanAbilityLevel|SetHumanAbilityLevel]] | |||
| <code>sceneId, selfId, abilityId, abilityLvl</code>;无返回值。 | |||
|} | |} | ||
[[Lua接口/服务端/QueryHumanAbility|QueryHumanAbility]] 返回 1 表示已学、0 表示未学、-1 表示失败, | [[Lua接口/服务端/QueryHumanAbility|QueryHumanAbility]] 返回 1 表示已学、0 表示未学、-1 表示失败,'''0 与 -1 含义不同''',不能用简单真值判断。[[Lua接口/服务端/SetHumanAbilityLevel|SetHumanAbilityLevel]] 无返回值。 | ||
== 技能经验 == | == 技能经验 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetAbilityExp|GetAbilityExp]] | |||
| <code>sceneId, selfId, abilityId</code> → 当前经验;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetAbilityExp|SetAbilityExp]] | |||
| <code>sceneId, selfId, abilityId, abilityExp</code>;无返回值。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetAbilityExpPlus|GetAbilityExpPlus]] | |||
| <code>sceneId, selfId, itemTypeSn</code> → 物品对应的经验加成;失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/SetAbilityExp|SetAbilityExp]] 无返回值。[[Lua接口/服务端/GetAbilityExpPlus|GetAbilityExpPlus]] 传的是物品配置编号,读取该物品提供的生活技能经验加成。 | [[Lua接口/服务端/SetAbilityExp|SetAbilityExp]] 无返回值。[[Lua接口/服务端/GetAbilityExpPlus|GetAbilityExpPlus]] 传的是物品配置编号,读取该物品提供的生活技能经验加成。 | ||
== 配方 == | == 配方 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/SetPrescription|SetPrescription]] | |||
| <code>sceneId, selfId, PrescrID, LearnOrAbandon</code> → 学会结果;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/IsPrescrLearned|IsPrescrLearned]] | |||
| <code>sceneId, selfId, PrescrID</code> → 是否已学;失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/SetPrescription|SetPrescription]] 只能操作「学会」某一配方,不能放弃具体某项配方——放弃走另外的流程。[[Lua接口/服务端/IsPrescrLearned|IsPrescrLearned]] 判断是否已学。 | [[Lua接口/服务端/SetPrescription|SetPrescription]] 只能操作「学会」某一配方,不能放弃具体某项配方——放弃走另外的流程。[[Lua接口/服务端/IsPrescrLearned|IsPrescrLearned]] 判断是否已学。 | ||
== 升级配置 == | == 升级配置 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetAbilityMaxLevel|LuaFnGetAbilityMaxLevel]] | |||
| <code>abilityId</code> → 1、最大等级(2 项);配置不存在返回 0,异常 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetAbilityLevelUpConfig|LuaFnGetAbilityLevelUpConfig]] | |||
| <code>abilityId, nLevel</code> → 7 项(1、金钱、经验、技能经验限制等);配置不存在 0,异常 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetAbilityLevelUpConfig2|LuaFnGetAbilityLevelUpConfig2]] | |||
| <code>abilityId, nLevel</code> → 9 项,在上一接口基础上追加附加金钱、附加经验。 | |||
|} | |} | ||
这三个接口成功时 | 这三个接口成功时'''第一个返回值是 1'''(不是金额),后续才是配置数据;配置不存在返回 0,异常路径返回 -1。用多个变量按顺序接收,不要只接一项。 | ||
== 操作与挂机时间 == | == 操作与挂机时间 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetAbilityOperaRobotTime|GetAbilityOperaRobotTime]] | |||
| <code>sceneId, selfId</code> → 挂机器时间;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetAbilityOperaRobotTime|SetAbilityOperaRobotTime]] | |||
| <code>sceneId, selfId, RobotTime</code>;无返回值。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetAbilityOperaTime|SetAbilityOperaTime]] | |||
| <code>sceneId, selfId, OperaTime</code>;无返回值。 | |||
|} | |} | ||
[[Lua接口/服务端/SetAbilityOperaRobotTime|SetAbilityOperaRobotTime]] 与 [[Lua接口/服务端/SetAbilityOperaTime|SetAbilityOperaTime]] 都无返回值。 | [[Lua接口/服务端/SetAbilityOperaRobotTime|SetAbilityOperaRobotTime]] 与 [[Lua接口/服务端/SetAbilityOperaTime|SetAbilityOperaTime]] 都无返回值。 | ||
== 材料与随机 == | == 材料与随机 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetAbilityObjIndex|GetAbilityObjIndex]] | |||
| <code>sceneId, selfId, Index</code> → 材料条目对应的背包位置;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnCompoundRandom|LuaFnCompoundRandom]] | |||
| <code>randomIndex</code> → 合成随机结果;失败 -1。表索引范围 0-127。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGemEmbedRandom|LuaFnGemEmbedRandom]] | |||
| <code>()</code> → 宝石镶嵌随机结果;失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/GetAbilityObjIndex|GetAbilityObjIndex]] 读取当前生活技能操作中指定材料条目的背包位置。[[Lua接口/服务端/LuaFnCompoundRandom|LuaFnCompoundRandom]] 的表索引范围是 0 到 127。 | [[Lua接口/服务端/GetAbilityObjIndex|GetAbilityObjIndex]] 读取当前生活技能操作中指定材料条目的背包位置。[[Lua接口/服务端/LuaFnCompoundRandom|LuaFnCompoundRandom]] 的表索引范围是 0 到 127。 | ||
== 结果消息 == | == 结果消息 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/LuaFnSendAbilitySuccessMsg|LuaFnSendAbilitySuccessMsg]] | |||
| <code>sceneId, selfId, AbilityId, RecipeId, ItemSerialNum</code>;无返回值。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnSendAbilityFailureMsg|LuaFnSendAbilityFailureMsg]] | |||
| <code>sceneId, selfId, abilityId, recipeId, itemSerial</code>;无返回值。 | |||
|} | |} | ||
这组向客户端发送制造成功 / 失败消息,都无返回值。 | 这组向客户端发送制造成功 / 失败消息,都无返回值。 | ||
== 检查并设置等级 == | == 检查并设置等级 == | ||
<pre | <pre>local learned = QueryHumanAbility(sceneId, selfId, abilityId) | ||
if type(learned) == "number" and learned == 1 then | if type(learned) == "number" and learned == 1 then | ||
local level = QueryHumanAbilityLevel(sceneId, selfId, abilityId) | local level = QueryHumanAbilityLevel(sceneId, selfId, abilityId) | ||
| 第119行: | 第119行: | ||
end | end | ||
end</pre> | end</pre> | ||
[[Lua接口/服务端/QueryHumanAbility|QueryHumanAbility]] 已学返回 1、未学返回 0、失败返回 -1,所以用 <code | [[Lua接口/服务端/QueryHumanAbility|QueryHumanAbility]] 已学返回 1、未学返回 0、失败返回 -1,所以用 <code>learned == 1</code> 判断已学。 | ||
== 学习配方 == | == 学习配方 == | ||
<pre | <pre>local learned = IsPrescrLearned(sceneId, selfId, prescrId) | ||
if type(learned) == "number" and learned ~= 1 then | if type(learned) == "number" and learned ~= 1 then | ||
SetPrescription(sceneId, selfId, prescrId, 1) | SetPrescription(sceneId, selfId, prescrId, 1) | ||
| 第129行: | 第129行: | ||
== 读取升级配置 == | == 读取升级配置 == | ||
<pre | <pre>local ok, money, exp = LuaFnGetAbilityLevelUpConfig(abilityId, nLevel) | ||
if type(ok) == "number" and ok == 1 then | if type(ok) == "number" and ok == 1 then | ||
-- money、exp 为所需金钱与经验 | -- money、exp 为所需金钱与经验 | ||
| 第168行: | 第168行: | ||
[[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | [[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | ||
</div> | </div> | ||
2026年10月26日 (一) 17:29的最新版本
查询、学习与升级生活技能(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