Lua接口/背包空间:修订间差异

来自天龙知识库
跳到导航跳到搜索
雪舞​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
Waylee​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
__NOTOC__
__NOTOC__
<div class="lua-reference" style="max-width:1200px;margin:0 auto;line-height:1.8;color:#29343a;font-family:Arial,'Microsoft YaHei',sans-serif;letter-spacing:0;overflow-wrap:anywhere;">
<div class="lua-reference">
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]]
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]]


第6行: 第6行:


== 空格查询 ==
== 空格查询 ==
{| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;"
{| class="wikitable"
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口
! scope="col" | 接口
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回
! scope="col" | 参数与返回
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetPropertyBagSpace|LuaFnGetPropertyBagSpace]]
| [[Lua接口/服务端/LuaFnGetPropertyBagSpace|LuaFnGetPropertyBagSpace]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 普通道具栏剩余空格;失败 -1。
| <code>sceneId, selfId</code> → 普通道具栏剩余空格;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetTaskItemBagSpace|LuaFnGetTaskItemBagSpace]]
| [[Lua接口/服务端/LuaFnGetTaskItemBagSpace|LuaFnGetTaskItemBagSpace]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 任务物品栏剩余空格;失败 -1。
| <code>sceneId, selfId</code> → 任务物品栏剩余空格;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetMaterialBagSpace|LuaFnGetMaterialBagSpace]]
| [[Lua接口/服务端/LuaFnGetMaterialBagSpace|LuaFnGetMaterialBagSpace]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 材料栏剩余空格;失败 -1。
| <code>sceneId, selfId</code> → 材料栏剩余空格;失败 -1。
|}
|}
三个接口签名相同,区别只在查询的背包类型。发放物品前应先检查对应栏是否有空格,否则 [[Lua接口/服务端/EndAddItem|EndAddItem]] 可能返回 0。
三个接口签名相同,区别只在查询的背包类型。发放物品前应先检查对应栏是否有空格,否则 [[Lua接口/服务端/EndAddItem|EndAddItem]] 可能返回 0。


== 格子区间 ==
== 格子区间 ==
{| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;"
{| class="wikitable"
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口
! scope="col" | 接口
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回
! scope="col" | 参数与返回
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetBasicBagStartPos|GetBasicBagStartPos]]
| [[Lua接口/服务端/GetBasicBagStartPos|GetBasicBagStartPos]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 基础栏 0-29、材料栏 30-59;失败 0 或 -1。
| <code>sceneId, selfId</code> → 基础栏 0-29、材料栏 30-59;失败 0 或 -1。
|}
|}
[[Lua接口/服务端/GetBasicBagStartPos|GetBasicBagStartPos]] 返回基础栏的起始位置(0),用区间约定区分基础栏与材料栏。
[[Lua接口/服务端/GetBasicBagStartPos|GetBasicBagStartPos]] 返回基础栏的起始位置(0),用区间约定区分基础栏与材料栏。


== 批量密码锁 ==
== 批量密码锁 ==
{| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;"
{| class="wikitable"
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口
! scope="col" | 接口
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回
! scope="col" | 参数与返回
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetAllItemPWLock|SetAllItemPWLock]]
| [[Lua接口/服务端/SetAllItemPWLock|SetAllItemPWLock]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, bLock</code> → 按规则批量设置物品密码锁。
| <code>sceneId, selfId, bLock</code> → 按规则批量设置物品密码锁。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetAllPetPWLock|SetAllPetPWLock]]
| [[Lua接口/服务端/SetAllPetPWLock|SetAllPetPWLock]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, bLock</code> → 按规则批量设置宠物密码锁。
| <code>sceneId, selfId, bLock</code> → 按规则批量设置宠物密码锁。
|}
|}
两个接口批量加锁或解锁,返回值含义按本服约定。bLock 为 1 加锁、0 解锁。
两个接口批量加锁或解锁,返回值含义按本服约定。bLock 为 1 加锁、0 解锁。


== 检查空格后发放 ==
== 检查空格后发放 ==
<pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local space = LuaFnGetPropertyBagSpace(sceneId, selfId)
<pre>local space = LuaFnGetPropertyBagSpace(sceneId, selfId)
if type(space) == "number" and space &gt; 0 then
if type(space) == "number" and space &gt; 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 style="margin-top:20px;padding-top:10px;border-top:1px solid #dbe3e6;color:#657078;font-size:12px;">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div>


</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。

相关主题

服务端调用约定 · 服务端调用示例 · 服务端函数索引

函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID