Lua接口/背包空间:修订间差异
来自天龙知识库
跳到导航跳到搜索
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
||
| (未显示同一用户的1个中间版本) | |||
| 第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接口/服务端/LuaFnGetPropertyBagSpace|LuaFnGetPropertyBagSpace]] | |||
| <code>sceneId, selfId</code> → 普通道具栏剩余空格;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetTaskItemBagSpace|LuaFnGetTaskItemBagSpace]] | |||
| <code>sceneId, selfId</code> → 任务物品栏剩余空格;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetMaterialBagSpace|LuaFnGetMaterialBagSpace]] | |||
| <code>sceneId, selfId</code> → 材料栏剩余空格;失败 -1。 | |||
|} | |} | ||
三个接口签名相同,区别只在查询的背包类型。发放物品前应先检查对应栏是否有空格,否则 [[Lua接口/服务端/EndAddItem|EndAddItem]] 可能返回 0。 | 三个接口签名相同,区别只在查询的背包类型。发放物品前应先检查对应栏是否有空格,否则 [[Lua接口/服务端/EndAddItem|EndAddItem]] 可能返回 0。 | ||
== 格子区间 == | == 格子区间 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetBasicBagStartPos|GetBasicBagStartPos]] | |||
| <code>sceneId, selfId</code> → 基础栏 0-29、材料栏 30-59;失败 0 或 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/GetBasicBagStartPos|GetBasicBagStartPos]] 返回基础栏的起始位置(0),用区间约定区分基础栏与材料栏。 | [[Lua接口/服务端/GetBasicBagStartPos|GetBasicBagStartPos]] 返回基础栏的起始位置(0),用区间约定区分基础栏与材料栏。 | ||
== 批量密码锁 == | == 批量密码锁 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/SetAllItemPWLock|SetAllItemPWLock]] | |||
| <code>sceneId, selfId, bLock</code> → 按规则批量设置物品密码锁。 | |||
|- | |- | ||
| [[Lua接口/服务端/SetAllPetPWLock|SetAllPetPWLock]] | |||
| <code>sceneId, selfId, bLock</code> → 按规则批量设置宠物密码锁。 | |||
|} | |} | ||
两个接口批量加锁或解锁,返回值含义按本服约定。bLock 为 1 加锁、0 解锁。 | 两个接口批量加锁或解锁,返回值含义按本服约定。bLock 为 1 加锁、0 解锁。 | ||
== 检查空格后发放 == | == 检查空格后发放 == | ||
<pre | <pre>local space = LuaFnGetPropertyBagSpace(sceneId, selfId) | ||
if type(space) == "number" and space > 0 then | if type(space) == "number" and space > 0 then | ||
BeginAddItem(sceneId) | BeginAddItem(sceneId) | ||
| 第89行: | 第89行: | ||
[[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的最新版本
查询三类背包的剩余空格、格子区间与批量密码锁。
空格查询
| 接口 | 参数与返回 |
|---|---|
| LuaFnGetPropertyBagSpace | sceneId, selfId → 普通道具栏剩余空格;失败 -1。
|
| LuaFnGetTaskItemBagSpace | sceneId, selfId → 任务物品栏剩余空格;失败 -1。
|
| LuaFnGetMaterialBagSpace | sceneId, selfId → 材料栏剩余空格;失败 -1。
|
三个接口签名相同,区别只在查询的背包类型。发放物品前应先检查对应栏是否有空格,否则 EndAddItem 可能返回 0。
格子区间
| 接口 | 参数与返回 |
|---|---|
| GetBasicBagStartPos | sceneId, selfId → 基础栏 0-29、材料栏 30-59;失败 0 或 -1。
|
GetBasicBagStartPos 返回基础栏的起始位置(0),用区间约定区分基础栏与材料栏。
批量密码锁
| 接口 | 参数与返回 |
|---|---|
| SetAllItemPWLock | sceneId, selfId, bLock → 按规则批量设置物品密码锁。
|
| SetAllPetPWLock | sceneId, selfId, bLock → 按规则批量设置宠物密码锁。
|
两个接口批量加锁或解锁,返回值含义按本服约定。bLock 为 1 加锁、0 解锁。
检查空格后发放
local space = LuaFnGetPropertyBagSpace(sceneId, selfId)
if type(space) == "number" and space > 0 then
BeginAddItem(sceneId)
AddItem(sceneId, itemTypeSn, 1)
local ok = EndAddItem(sceneId, selfId)
if ok == 1 then
AddItemListToHuman(sceneId, selfId)
end
end
先检查空格再构造待发列表,避免 EndAddItem 因背包满返回 0。
相关主题
- 角色信息
- 属性读取与修改
- 等级与经验
- 货币相关
- 物品查询
- 物品发放与扣除
- 背包空间
- 装备操作
- 任务状态
- 任务变量
- NPC 对话
- 对话选项
- 技能相关
- 心法相关
- 状态效果
- 生活技能
- 珍兽查询
- 珍兽操作
- 场景查询
- 坐标与传送
- 副本相关
- 活动相关
- 时间与计时
- 怪物相关
- 队伍相关
- 帮会相关
- 消息与提示
- 聊天与公告
函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID