Lua接口/属性读取与修改:修订间差异
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
||
| 第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接口/服务端/GetHp|GetHp]] / [[Lua接口/服务端/GetMp|GetMp]] | |||
| <code>sceneId, selfId</code> → 当前生命 / 气。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetMaxHp|GetMaxHp]] / [[Lua接口/服务端/GetMaxMp|GetMaxMp]] | |||
| <code>sceneId, selfId</code> → 生命 / 气上限。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetHp|SetHp]] | |||
| <code>sceneId, selfId, hp</code>;部分分支无返回值。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetMp|SetMp]] | |||
| <code>sceneId, selfId, mp</code>;部分分支无返回值。 | |||
|} | |} | ||
[[Lua接口/服务端/SetHp|SetHp]]、[[Lua接口/服务端/SetMp|SetMp]] 在对象无效等分支不返回值,赋值接收得到 nil,不能用 <code | [[Lua接口/服务端/SetHp|SetHp]]、[[Lua接口/服务端/SetMp|SetMp]] 在对象无效等分支不返回值,赋值接收得到 nil,不能用 <code>if result then</code> 判断是否设置成功。生命 / 气上限由等级与基础属性决定,先改等级或属性,上限随之更新。 | ||
== 怒气 == | == 怒气 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetRage|GetRage]] | |||
| <code>sceneId, selfId</code> → 当前怒气;非角色单位返回 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetMaxRage|GetMaxRage]] | |||
| <code>sceneId, selfId</code> → 怒气上限;非角色单位返回 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetRage|SetRage]] | |||
| <code>sceneId, selfId, rage</code>;无返回值。 | |||
|} | |} | ||
[[Lua接口/服务端/GetRage|GetRage]]、[[Lua接口/服务端/GetMaxRage|GetMaxRage]] 对非角色单位(如物品箱、传送点)返回 -1,不能只靠 <code | [[Lua接口/服务端/GetRage|GetRage]]、[[Lua接口/服务端/GetMaxRage|GetMaxRage]] 对非角色单位(如物品箱、传送点)返回 -1,不能只靠 <code>>= 0</code> 判断,应先确认对象是角色。 | ||
== 基础属性 == | == 基础属性 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetHumanAttr|GetHumanAttr]] | |||
| <code>sceneId, selfId, attrType</code> → 按官方编号返回六类攻击属性。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetBaseAttackPhysics|LuaFnGetBaseAttackPhysics]] | |||
| <code>sceneId, selfId</code> → 基础外功攻击。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetCharacterAttrRefix|SetCharacterAttrRefix]] | |||
| <code>sceneId, selfId, attrType, refix</code> → 设置冰、火、玄、毒攻击修正值。 | |||
|} | |} | ||
[[Lua接口/服务端/GetHumanAttr|GetHumanAttr]] 按 attrType 取六类攻击属性之一,attrType 是配置约定的编号,不在这里枚举。[[Lua接口/服务端/SetCharacterAttrRefix|SetCharacterAttrRefix]] 只改冰、火、玄、毒四系攻击修正值,不直接改最终面板;修改后最终数值仍要由属性刷新流程汇总。各系攻击 / 防御的基础读取接口名带 Base 前缀([[Lua接口/服务端/LuaFnGetBaseAttackPhysics|LuaFnGetBaseAttackPhysics]] 等),均为只读。 | [[Lua接口/服务端/GetHumanAttr|GetHumanAttr]] 按 attrType 取六类攻击属性之一,attrType 是配置约定的编号,不在这里枚举。[[Lua接口/服务端/SetCharacterAttrRefix|SetCharacterAttrRefix]] 只改冰、火、玄、毒四系攻击修正值,不直接改最终面板;修改后最终数值仍要由属性刷新流程汇总。各系攻击 / 防御的基础读取接口名带 Base 前缀([[Lua接口/服务端/LuaFnGetBaseAttackPhysics|LuaFnGetBaseAttackPhysics]] 等),均为只读。 | ||
== 限时属性修正(怪物专用)== | == 限时属性修正(怪物专用)== | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetLifeTimeAttrRefix_MaxHP|LuaFnGetLifeTimeAttrRefix_MaxHP]] | |||
| <code>sceneId, monsterId</code> → 怪物本次存活期间的生命上限修正。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnSetLifeTimeAttrRefix_MaxHP|LuaFnSetLifeTimeAttrRefix_MaxHP]] | |||
| <code>sceneId, monsterId, value</code>;设置本次存活期间修正。 | |||
|} | |} | ||
这一组 LifeTimeAttrRefix 接口**针对怪物的 monsterId,不是玩家 selfId**。修正只在该怪物本次存活期间生效,怪物重生后会重置。同组还有外功 / 内功 / 各系攻防、命中 / 闪避、暴击等子项,按 <code | 这一组 LifeTimeAttrRefix 接口**针对怪物的 monsterId,不是玩家 selfId**。修正只在该怪物本次存活期间生效,怪物重生后会重置。同组还有外功 / 内功 / 各系攻防、命中 / 闪避、暴击等子项,按 <code>LuaFnGetLifeTimeAttrRefix_<属性></code> / <code>LuaFnSetLifeTimeAttrRefix_<属性></code> 命名。 | ||
== 活力与精力 == | == 活力与精力 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetHumanVigor|GetHumanVigor]] / [[Lua接口/服务端/GetHumanMaxVigor|GetHumanMaxVigor]] | |||
| <code>sceneId, selfId</code> → 当前 / 上限活力。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetHumanVigor|SetHumanVigor]] | |||
| <code>sceneId, selfId, value</code>;无返回值。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetHumanEnergy|GetHumanEnergy]] / [[Lua接口/服务端/GetHumanMaxEnergy|GetHumanMaxEnergy]] | |||
| <code>sceneId, selfId</code> → 当前 / 上限精力。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetHumanEnergy|SetHumanEnergy]] | |||
| <code>sceneId, selfId, value</code>;无返回值。 | |||
|} | |} | ||
== 潜能点 == | == 潜能点 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetPlayerRemainPoints|GetPlayerRemainPoints]] | |||
| <code>sceneId, selfId</code> → 尚未分配的一级属性点。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetPlayerRemainPoints|SetPlayerRemainPoints]] | |||
| <code>sceneId, selfId, remainPoints</code> → 设置后返回设置值。 | |||
|} | |} | ||
[[Lua接口/服务端/GetPlayerRemainPoints|GetPlayerRemainPoints]]、[[Lua接口/服务端/SetPlayerRemainPoints|SetPlayerRemainPoints]] 在部分分支无返回值,赋值接收得到 nil,不等于失败。实际分配一级属性点由客户端加点流程或对应接口完成,这里只读写尚未分配的余量。 | [[Lua接口/服务端/GetPlayerRemainPoints|GetPlayerRemainPoints]]、[[Lua接口/服务端/SetPlayerRemainPoints|SetPlayerRemainPoints]] 在部分分支无返回值,赋值接收得到 nil,不等于失败。实际分配一级属性点由客户端加点流程或对应接口完成,这里只读写尚未分配的余量。 | ||
== 读取生命与上限 == | == 读取生命与上限 == | ||
<pre | <pre>local hp = GetHp(sceneId, selfId) | ||
local maxHp = GetMaxHp(sceneId, selfId) | local maxHp = GetMaxHp(sceneId, selfId) | ||
if type(hp) == "number" and type(maxHp) == "number" | if type(hp) == "number" and type(maxHp) == "number" | ||
| 第110行: | 第110行: | ||
== 设置当前生命 == | == 设置当前生命 == | ||
<pre | <pre>SetHp(sceneId, selfId, 1) | ||
-- 部分分支无返回值;不能写 if SetHp(...) then 判断成功 | -- 部分分支无返回值;不能写 if SetHp(...) then 判断成功 | ||
-- 想确认生效应改读 GetHp 回比</pre> | -- 想确认生效应改读 GetHp 回比</pre> | ||
| 第149行: | 第149行: | ||
[[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | [[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | ||
<div | <div class="lua-note">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div> | ||
</div> | </div> | ||
2026年9月19日 (六) 16:59的版本
读写角色的生命、气、怒气、基础属性、限时修正、活力精力与潜能点。先查接口作用对象:多数针对玩家 selfId,少数限时修正针对怪物。
生命与气
| 接口 | 参数与返回 |
|---|---|
| GetHp / GetMp | sceneId, selfId → 当前生命 / 气。
|
| GetMaxHp / GetMaxMp | sceneId, selfId → 生命 / 气上限。
|
| SetHp | sceneId, selfId, hp;部分分支无返回值。
|
| SetMp | sceneId, selfId, mp;部分分支无返回值。
|
SetHp、SetMp 在对象无效等分支不返回值,赋值接收得到 nil,不能用 if result then 判断是否设置成功。生命 / 气上限由等级与基础属性决定,先改等级或属性,上限随之更新。
怒气
| 接口 | 参数与返回 |
|---|---|
| GetRage | sceneId, selfId → 当前怒气;非角色单位返回 -1。
|
| GetMaxRage | sceneId, selfId → 怒气上限;非角色单位返回 -1。
|
| SetRage | sceneId, selfId, rage;无返回值。
|
GetRage、GetMaxRage 对非角色单位(如物品箱、传送点)返回 -1,不能只靠 >= 0 判断,应先确认对象是角色。
基础属性
| 接口 | 参数与返回 |
|---|---|
| GetHumanAttr | sceneId, selfId, attrType → 按官方编号返回六类攻击属性。
|
| LuaFnGetBaseAttackPhysics | sceneId, selfId → 基础外功攻击。
|
| SetCharacterAttrRefix | sceneId, selfId, attrType, refix → 设置冰、火、玄、毒攻击修正值。
|
GetHumanAttr 按 attrType 取六类攻击属性之一,attrType 是配置约定的编号,不在这里枚举。SetCharacterAttrRefix 只改冰、火、玄、毒四系攻击修正值,不直接改最终面板;修改后最终数值仍要由属性刷新流程汇总。各系攻击 / 防御的基础读取接口名带 Base 前缀(LuaFnGetBaseAttackPhysics 等),均为只读。
限时属性修正(怪物专用)
| 接口 | 参数与返回 |
|---|---|
| LuaFnGetLifeTimeAttrRefix_MaxHP | sceneId, monsterId → 怪物本次存活期间的生命上限修正。
|
| LuaFnSetLifeTimeAttrRefix_MaxHP | sceneId, monsterId, value;设置本次存活期间修正。
|
这一组 LifeTimeAttrRefix 接口**针对怪物的 monsterId,不是玩家 selfId**。修正只在该怪物本次存活期间生效,怪物重生后会重置。同组还有外功 / 内功 / 各系攻防、命中 / 闪避、暴击等子项,按 LuaFnGetLifeTimeAttrRefix_<属性> / LuaFnSetLifeTimeAttrRefix_<属性> 命名。
活力与精力
| 接口 | 参数与返回 |
|---|---|
| GetHumanVigor / GetHumanMaxVigor | sceneId, selfId → 当前 / 上限活力。
|
| SetHumanVigor | sceneId, selfId, value;无返回值。
|
| GetHumanEnergy / GetHumanMaxEnergy | sceneId, selfId → 当前 / 上限精力。
|
| SetHumanEnergy | sceneId, selfId, value;无返回值。
|
潜能点
| 接口 | 参数与返回 |
|---|---|
| GetPlayerRemainPoints | sceneId, selfId → 尚未分配的一级属性点。
|
| SetPlayerRemainPoints | sceneId, selfId, remainPoints → 设置后返回设置值。
|
GetPlayerRemainPoints、SetPlayerRemainPoints 在部分分支无返回值,赋值接收得到 nil,不等于失败。实际分配一级属性点由客户端加点流程或对应接口完成,这里只读写尚未分配的余量。
读取生命与上限
local hp = GetHp(sceneId, selfId)
local maxHp = GetMaxHp(sceneId, selfId)
if type(hp) == "number" and type(maxHp) == "number"
and hp >= 0 and maxHp > 0 then
-- 有效生命与上限
end
GetHp 失败路径返回的值需要按具体接口核对;先用 type 判断再判数值范围,避免把异常值当有效。
设置当前生命
SetHp(sceneId, selfId, 1) -- 部分分支无返回值;不能写 if SetHp(...) then 判断成功 -- 想确认生效应改读 GetHp 回比
SetHp 不保证返回成功标志。需要确认生效,应在设置后用 GetHp 读回比较,而不是接收返回值。
相关主题
- 角色信息
- 属性读取与修改
- 等级与经验
- 货币相关
- 物品查询
- 物品发放与扣除
- 背包空间
- 装备操作
- 任务状态
- 任务变量
- NPC 对话
- 对话选项
- 技能相关
- 心法相关
- 状态效果
- 生活技能
- 珍兽查询
- 珍兽操作
- 场景查询
- 坐标与传送
- 副本相关
- 活动相关
- 时间与计时
- 怪物相关
- 队伍相关
- 帮会相关
- 消息与提示
- 聊天与公告
函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID