Lua接口/物品发放与扣除:修订间差异

来自天龙知识库
跳到导航跳到搜索
雪舞留言 | 贡献
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
雪舞留言 | 贡献
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
第88行: 第88行:
* [[Lua接口/NPC对话|NPC 对话]]
* [[Lua接口/NPC对话|NPC 对话]]
* [[Lua接口/对话选项|对话选项]]
* [[Lua接口/对话选项|对话选项]]
* [[Lua接口/技能相关|技能相关]]
* [[Lua接口/心法相关|心法相关]]
* [[Lua接口/状态效果|状态效果]]
* [[Lua接口/生活技能|生活技能]]
* [[Lua接口/珍兽查询|珍兽查询]]
* [[Lua接口/珍兽操作|珍兽操作]]


[[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]]
[[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]]

2026年9月12日 (六) 13:28的版本

首页 · 服务端接口 · 调用约定

发放物品需要三步:构造待发列表 → 检查可接收 → 实际发放。扣除物品按编号或格子位置删除。

发放流程

接口 参数与返回
BeginAddItem sceneId → 无返回值。清空待发列表,开始构造一批。
AddItem sceneId, itemTypeSn, count → 无返回值。加入待发列表。
AddItemWithQuality sceneId, itemSerial, count, reason → 无返回值。带生成原因。
AddItemBonus sceneId, itemTypeSn, count → 无返回值。追加奖励物品。
EndAddItem sceneId, selfId → 1 可接收、0 不可、-1 失败。
AddItemListToHuman sceneId, selfId → 无返回值。实际发放。

BeginAddItemAddItemAddItemWithQualityAddItemBonus 都无返回值,赋值接收得到 nil。EndAddItem 检查能否接收但**不发放**;AddItemListToHuman 实际发放但**无返回值**,不能据此判断全部到账。

扣除

接口 参数与返回
DelItem sceneId, selfId, itemIndex, delCount → 1 成功、0 失败、-1 异常。
EraseItem sceneId, selfId, bagIndex → 1 已删除、0 失败、-1 异常。
LuaFnDelAvailableItem sceneId, selfId, itemTypeSn, delCount → 1 成功、0 失败、-1 异常。

DelItem 返回 0 时可能已部分扣除,不能据此认定背包未变化。LuaFnDelAvailableItem 只扣未加锁的物品,delCount 不大于 0 时直接返回 1 不扣除。EraseItem 删除整格物品(全部堆叠数量)。

物品箱

接口 参数与返回
AddItemToBox sceneId, ItemBoxID, iQualityType, iBoxItemCount → 所有路径返回 -1。

AddItemToBox 所有结束路径都返回 -1,包括已添加物品的路径,不能据此判断是否执行了添加。

发放物品

BeginAddItem(sceneId)
AddItem(sceneId, itemTypeSn, 1)
local ok = EndAddItem(sceneId, selfId)
if ok == 1 then
    AddItemListToHuman(sceneId, selfId)
    -- 无返回值;要确认到账应改读 GetItemCount 回比
end

EndAddItem 返回 1 表示可接收,但实际发放在 AddItemListToHuman,后者无返回值。要确认物品到账,应在发放后用 GetItemCount 读回比较。

扣除物品

local ok = DelItem(sceneId, selfId, itemIndex, 1)
if ok == 1 then
    -- 扣除流程报告成功
elseif ok == 0 then
    -- 可能已部分扣除;不能认定背包未变化
end

DelItem 返回 0 时可能已部分扣除。LuaFnDelAvailableItem 同理。要确认实际数量应改读 GetItemCountLuaFnGetAvailableItemCount 回比。

相关主题

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

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

本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。