查看“︁Lua接口/物品发放与扣除”︁的源代码
来自天龙知识库
←
Lua接口/物品发放与扣除
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
__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;"> [[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] 发放物品需要三步:构造待发列表 → 检查可接收 → 实际发放。扣除物品按编号或格子位置删除。 == 发放流程 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/BeginAddItem|BeginAddItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId</code> → 无返回值。清空待发列表,开始构造一批。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddItem|AddItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, itemTypeSn, count</code> → 无返回值。加入待发列表。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddItemWithQuality|AddItemWithQuality]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, itemSerial, count, reason</code> → 无返回值。带生成原因。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddItemBonus|AddItemBonus]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, itemTypeSn, count</code> → 无返回值。追加奖励物品。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/EndAddItem|EndAddItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 1 可接收、0 不可、-1 失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddItemListToHuman|AddItemListToHuman]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 无返回值。实际发放。 |} [[Lua接口/服务端/BeginAddItem|BeginAddItem]]、[[Lua接口/服务端/AddItem|AddItem]]、[[Lua接口/服务端/AddItemWithQuality|AddItemWithQuality]]、[[Lua接口/服务端/AddItemBonus|AddItemBonus]] 都无返回值,赋值接收得到 nil。[[Lua接口/服务端/EndAddItem|EndAddItem]] 检查能否接收但**不发放**;[[Lua接口/服务端/AddItemListToHuman|AddItemListToHuman]] 实际发放但**无返回值**,不能据此判断全部到账。 == 扣除 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/DelItem|DelItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, itemIndex, delCount</code> → 1 成功、0 失败、-1 异常。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/EraseItem|EraseItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, bagIndex</code> → 1 已删除、0 失败、-1 异常。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnDelAvailableItem|LuaFnDelAvailableItem]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, itemTypeSn, delCount</code> → 1 成功、0 失败、-1 异常。 |} [[Lua接口/服务端/DelItem|DelItem]] 返回 0 时可能已部分扣除,不能据此认定背包未变化。[[Lua接口/服务端/LuaFnDelAvailableItem|LuaFnDelAvailableItem]] 只扣未加锁的物品,delCount 不大于 0 时直接返回 1 不扣除。[[Lua接口/服务端/EraseItem|EraseItem]] 删除整格物品(全部堆叠数量)。 == 物品箱 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddItemToBox|AddItemToBox]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, ItemBoxID, iQualityType, iBoxItemCount</code> → 所有路径返回 -1。 |} [[Lua接口/服务端/AddItemToBox|AddItemToBox]] 所有结束路径都返回 -1,包括已添加物品的路径,不能据此判断是否执行了添加。 == 发放物品 == <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">BeginAddItem(sceneId) AddItem(sceneId, itemTypeSn, 1) local ok = EndAddItem(sceneId, selfId) if ok == 1 then AddItemListToHuman(sceneId, selfId) -- 无返回值;要确认到账应改读 GetItemCount 回比 end</pre> [[Lua接口/服务端/EndAddItem|EndAddItem]] 返回 1 表示可接收,但实际发放在 [[Lua接口/服务端/AddItemListToHuman|AddItemListToHuman]],后者无返回值。要确认物品到账,应在发放后用 [[Lua接口/服务端/GetItemCount|GetItemCount]] 读回比较。 == 扣除物品 == <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 ok = DelItem(sceneId, selfId, itemIndex, 1) if ok == 1 then -- 扣除流程报告成功 elseif ok == 0 then -- 可能已部分扣除;不能认定背包未变化 end</pre> [[Lua接口/服务端/DelItem|DelItem]] 返回 0 时可能已部分扣除。[[Lua接口/服务端/LuaFnDelAvailableItem|LuaFnDelAvailableItem]] 同理。要确认实际数量应改读 [[Lua接口/服务端/GetItemCount|GetItemCount]] 或 [[Lua接口/服务端/LuaFnGetAvailableItemCount|LuaFnGetAvailableItemCount]] 回比。 == 相关主题 == * [[Lua接口/角色信息|角色信息]] * [[Lua接口/属性读取与修改|属性读取与修改]] * [[Lua接口/等级与经验|等级与经验]] * [[Lua接口/货币相关|货币相关]] * [[Lua接口/物品查询|物品查询]] * [[Lua接口/物品发放与扣除|物品发放与扣除]] * [[Lua接口/背包空间|背包空间]] * [[Lua接口/装备操作|装备操作]] * [[Lua接口/任务状态|任务状态]] * [[Lua接口/任务变量|任务变量]] * [[Lua接口/NPC对话|NPC 对话]] * [[Lua接口/对话选项|对话选项]] * [[Lua接口/技能相关|技能相关]] * [[Lua接口/心法相关|心法相关]] * [[Lua接口/状态效果|状态效果]] * [[Lua接口/生活技能|生活技能]] * [[Lua接口/珍兽查询|珍兽查询]] * [[Lua接口/珍兽操作|珍兽操作]] * [[Lua接口/场景查询|场景查询]] * [[Lua接口/坐标与传送|坐标与传送]] * [[Lua接口/副本相关|副本相关]] * [[Lua接口/活动相关|活动相关]] * [[Lua接口/时间与计时|时间与计时]] * [[Lua接口/怪物相关|怪物相关]] [[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]] [[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>
返回
Lua接口/物品发放与扣除
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
搜索
工具
链入页面
相关更改
页面信息