Lua接口/等级与经验
来自天龙知识库
跳到导航跳到搜索
读写角色等级、当前经验、加经验、升级判定、经验上限与衰减系数。
等级
| 接口 | 参数与返回 |
|---|---|
| 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 当假、其他值当真的判断出错(见 返回值判断)。实际升级流程仍由服务端在经验结算时触发,脚本只读取判定结果。
相关主题
函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID
本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。