Lua接口/等级与经验:修订间差异
来自天龙知识库
跳到导航跳到搜索
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
||
| 第102行: | 第102行: | ||
* [[Lua接口/时间与计时|时间与计时]] | * [[Lua接口/时间与计时|时间与计时]] | ||
* [[Lua接口/怪物相关|怪物相关]] | * [[Lua接口/怪物相关|怪物相关]] | ||
* [[Lua接口/队伍相关|队伍相关]] | |||
* [[Lua接口/帮会相关|帮会相关]] | |||
* [[Lua接口/消息与提示|消息与提示]] | |||
* [[Lua接口/聊天与公告|聊天与公告]] | |||
[[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]] | [[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]] | ||
2026年9月12日 (六) 13:54的最新版本
读写角色等级、当前经验、加经验、升级判定、经验上限与衰减系数。
等级
| 接口 | 参数与返回 |
|---|---|
| GetLevel | sceneId, selfId → 角色等级;失败返回 -1。
|
| SetLevel | sceneId, selfId, level → 设置角色等级。
|
| GetCharacterLevel | sceneId, characterId → 指定角色单位的等级。
|
| GetHumanMaxLevelLimit | () → 玩家等级表允许的脚本等级上界(无参)。
|
GetLevel 失败返回 -1,不能直接 >= 0 之外的判断;GetHumanMaxLevelLimit 不接受参数,写成 GetHumanMaxLevelLimit(sceneId, selfId) 会传入多余实参。SetLevel 改完后相关心法、属性、经验上限需要另行处理,脚本不自动同步。
经验
| 接口 | 参数与返回 |
|---|---|
| GetExp | sceneId, selfId → 当前战斗经验值。
|
| AddExp | sceneId, selfId, exp;无返回值。
|
| AddExpMore | sceneId, selfId, exp;按任务经验来源追加,不接受负数。
|
| GetFullExp | sceneId, selfId → 当前等级允许保存的经验上限(升级经验的四倍)。
|
AddExp、AddExpMore **无返回值**,赋值接收得到 nil,不等于失败也不能用 if AddExp(...) then 判断成功。AddExpMore 不接受负数,传入负数不会扣除经验。GetFullExp 是当前等级允许保存的经验上限,超出部分的处理由服务端经验保存逻辑决定。
升级与衰减
| 接口 | 参数与返回 |
|---|---|
| LuaFnCanLevelUp | sceneId, selfId → 是否可以升级。
|
| GetExpAttenuationInfo | sceneId, selfId, levelDelta → 指定等级差对应的人物经验衰减系数。
|
GetExpAttenuationInfo 第三参是等级差,不是目标等级;衰减系数按本服衰减表读取。
读取等级与经验
local level = GetLevel(sceneId, selfId)
local exp = GetExp(sceneId, selfId)
if type(level) == "number" and level >= 0
and type(exp) == "number" then
-- 取得等级与当前经验
end
GetLevel 失败返回 -1,GetExp 返回数值。先判类型再判范围,避免把 -1 当有效等级。
加经验
AddExp(sceneId, selfId, 1000) -- 无返回值;不能用 if AddExp(...) then 判断 -- 想确认应改读 GetExp 回比
AddExp 无返回值。AddExpMore 同样无返回值且不接受负数,需要按任务经验来源的接口使用。这两个接口都不提供成功标志,要确认生效应改用 GetExp 读回比较,而不是接收返回值。
升级判定
if LuaFnCanLevelUp(sceneId, selfId) == 1 then
-- 当前可以升级
end
LuaFnCanLevelUp 返回数值;用 == 1 比较而非 if LuaFnCanLevelUp(...) then,避免把 0 当假、其他值当真的判断出错(见 返回值判断)。实际升级流程仍由服务端在经验结算时触发,脚本只读取判定结果。
相关主题
- 角色信息
- 属性读取与修改
- 等级与经验
- 货币相关
- 物品查询
- 物品发放与扣除
- 背包空间
- 装备操作
- 任务状态
- 任务变量
- NPC 对话
- 对话选项
- 技能相关
- 心法相关
- 状态效果
- 生活技能
- 珍兽查询
- 珍兽操作
- 场景查询
- 坐标与传送
- 副本相关
- 活动相关
- 时间与计时
- 怪物相关
- 队伍相关
- 帮会相关
- 消息与提示
- 聊天与公告
函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID
本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。