Lua接口/服务端/TryRecieveItem:修订间差异

来自天龙知识库
跳到导航跳到搜索
Waylee​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
Waylee​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
 
(未显示同一用户的1个中间版本)
第8行: 第8行:


== Lua 调用 ==
== Lua 调用 ==
<pre>TryRecieveItem(sceneId, selfId, iItemId, iReason)</pre>
<pre>TryRecieveItem(sceneId, selfId, iItemId, iReason, bind)</pre>


服务端脚本中共出现 288 处调用,实参个数出现过:4 个(288 处)。
服务端脚本中共出现 262 处调用,实参个数出现过:4 个(256 处)、5 个(6 处)。


实现位于 <code>LuaFnTbl_Ability.h</code> 第 2965 行,注册表第 624、848 行。
实现位于 <code>LuaFnTbl_Ability.h</code>。


== 参数 ==
== 参数 ==
第22行: 第22行:
| 1
| 1
| <code>sceneId</code><br /><span class="lua-muted"><code>number</code></span>
| <code>sceneId</code><br /><span class="lua-muted"><code>number</code></span>
| 当前调用所在的场景 ID。<br /><span class="lua-muted">脚本中的实参:<code>sceneId</code>(288 处)</span>
| 当前调用所在的场景 ID。<br /><span class="lua-muted">脚本中的实参:<code>sceneId</code>(262 处)</span>
|-
|-
| 2
| 2
| <code>selfId</code><br /><span class="lua-muted"><code>number</code></span>
| <code>selfId</code><br /><span class="lua-muted"><code>number</code></span>
| 当前场景内的对象 ID。玩家接口需传入有效玩家对象;不是角色 GUID。<br /><span class="lua-muted">脚本中的实参:<code>selfId</code>(282 处)、<code>targetId</code>(2 处)、<code>activatorId</code></span>
| 当前场景内的对象 ID。玩家接口需传入有效玩家对象;不是角色 GUID。<br /><span class="lua-muted">脚本中的实参:<code>selfId</code>(256 处)、<code>targetId</code>(2 处)、<code>activatorId</code></span>
|-
|-
| 3
| 3
| <code>iItemId</code><br /><span class="lua-muted"><code>number</code></span>
| <code>iItemId</code><br /><span class="lua-muted"><code>number</code></span>
| 物品编号;与背包格子位置不同。<br /><span class="lua-muted">脚本中的实参:<code>item.ID</code>(53 处)、<code>x001230_g_nCailiaoJiangli&#91;temp&#93;.id</code>(12 处)、<code>30501001</code>(10 处)</span>
| 物品编号;与背包格子位置不同。<br /><span class="lua-muted">脚本中的实参:<code>item.ID</code>(53 处)、<code>30501001</code>(11 处)、<code>itemId</code>(10 处)</span>
|-
|-
| 4
| 4
| <code>iReason</code><br /><span class="lua-muted"><code>number</code></span>
| <code>iReason</code><br /><span class="lua-muted"><code>number</code></span>
| 操作原因或生成原因编号。<br /><span class="lua-muted">脚本中的实参:<code>QUALITY_MUST_BE_CHANGE</code>(215 处)、<code>1</code>(54 处)、<code>9</code>(12 处)</span>
| 操作原因或生成原因编号。<br /><span class="lua-muted">脚本中的实参:<code>QUALITY_MUST_BE_CHANGE</code>(195 处)、<code>1</code>(48 处)、<code>9</code>(12 处)</span>
|-
| 5
| <code>bind</code><br /><span class="lua-muted"><code>number</code></span>
| 是否强制绑定:0 按物品默认,1 强制绑定。<br /><span class="lua-muted">脚本中的实参:<code>1</code>(5 处)、<code>forceBind</code></span>
|}
|}


第68行: 第72行:
== 注意事项 ==
== 注意事项 ==
* 调用对象必须是当前场景中的有效玩家。
* 调用对象必须是当前场景中的有效玩家。
* 脚本中有只传 4 个实参的调用,少于实现体读取的 5 个位置;缺省位置按引擎对缺失值的转换处理(通常为 0),不能直接当作有效数据。


</div>
</div>

2026年10月24日 (六) 12:27的最新版本

首页 · 服务端接口 · 生活技能与装备 · 调用约定

尝试接受物品

同一接口的其他调用名称:LuaFnTryRecieveItem。

Lua 调用

TryRecieveItem(sceneId, selfId, iItemId, iReason, bind)

服务端脚本中共出现 262 处调用,实参个数出现过:4 个(256 处)、5 个(6 处)。

实现位于 LuaFnTbl_Ability.h。

参数

序号 参数 / 类型 说明
1 sceneId
number
当前调用所在的场景 ID。
脚本中的实参:sceneId(262 处)
2 selfId
number
当前场景内的对象 ID。玩家接口需传入有效玩家对象;不是角色 GUID。
脚本中的实参:selfId(256 处)、targetId(2 处)、activatorId
3 iItemId
number
物品编号;与背包格子位置不同。
脚本中的实参:item.ID(53 处)、30501001(11 处)、itemId(10 处)
4 iReason
number
操作原因或生成原因编号。
脚本中的实参:QUALITY_MUST_BE_CHANGE(195 处)、1(48 处)、9(12 处)
5 bind
number
是否强制绑定:0 按物品默认,1 强制绑定。
脚本中的实参:1(5 处)、forceBind

返回值

返回 1 个值。返回类型包括 number。明确的固定返回组合包括 -1。

脚本中的调用

以下是服务端脚本里的真实调用点,按实参形态去重后列出 8 条。这些调用取自随包发布的脚本,可用于确认参数顺序与实际传入的值;它们不代表该写法在当前版本仍然有效。

-- city0_building12.lua
TryRecieveItem(sceneId, selfId, 30900058, QUALITY_MUST_BE_CHANGE)

-- event/caoyun/ecaoyun.lua
TryRecieveItem(sceneId, selfId, x311010_g_CashItem_id, QUALITY_MUST_BE_CHANGE)

-- event/caoyun/ecaoyun.lua
TryRecieveItem(sceneId, selfId, reward_item, QUALITY_MUST_BE_CHANGE)

-- event/city/ecity_0103deliverweapon.lua
LuaFnTryRecieveItem(sceneId, selfId, nitemId, QUALITY_MUST_BE_CHANGE)

-- event/city/ecity_0501contacthero.lua
LuaFnTryRecieveItem(sceneId, selfId, x600024_g_MissionItem, QUALITY_MUST_BE_CHANGE)

-- event/city/ecity_0701findbuildtools.lua
LuaFnTryRecieveItem(sceneId, selfId, itemId, QUALITY_MUST_BE_CHANGE)

-- event/city/ecity_0802findcompound.lua
LuaFnTryRecieveItem(sceneId, selfId, x600042_g_itmDirect, QUALITY_MUST_BE_CHANGE)

-- event/city/ecity_mission.lua
TryRecieveItem(sceneId, selfId, itemSN, QUALITY_MUST_BE_CHANGE)

注意事项

  • 调用对象必须是当前场景中的有效玩家。
  • 脚本中有只传 4 个实参的调用,少于实现体读取的 5 个位置;缺省位置按引擎对缺失值的转换处理(通常为 0),不能直接当作有效数据。