<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.waylee.net/index.php?action=history&amp;feed=atom&amp;title=Lua%E6%8E%A5%E5%8F%A3%2F%E6%9C%8D%E5%8A%A1%E7%AB%AF%2FLuaFnGemStackTransform</id>
	<title>Lua接口/服务端/LuaFnGemStackTransform - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.waylee.net/index.php?action=history&amp;feed=atom&amp;title=Lua%E6%8E%A5%E5%8F%A3%2F%E6%9C%8D%E5%8A%A1%E7%AB%AF%2FLuaFnGemStackTransform"/>
	<link rel="alternate" type="text/html" href="https://www.waylee.net/index.php?title=Lua%E6%8E%A5%E5%8F%A3/%E6%9C%8D%E5%8A%A1%E7%AB%AF/LuaFnGemStackTransform&amp;action=history"/>
	<updated>2026-10-24T12:23:03Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://www.waylee.net/index.php?title=Lua%E6%8E%A5%E5%8F%A3/%E6%9C%8D%E5%8A%A1%E7%AB%AF/LuaFnGemStackTransform&amp;diff=12705&amp;oldid=prev</id>
		<title>Waylee：​维护服务端 Lua 接口：核对参数、返回值、边界条件与调用示例</title>
		<link rel="alternate" type="text/html" href="https://www.waylee.net/index.php?title=Lua%E6%8E%A5%E5%8F%A3/%E6%9C%8D%E5%8A%A1%E7%AB%AF/LuaFnGemStackTransform&amp;diff=12705&amp;oldid=prev"/>
		<updated>2026-10-24T04:24:30Z</updated>

		<summary type="html">&lt;p&gt;维护服务端 Lua 接口：核对参数、返回值、边界条件与调用示例&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;lua-reference&amp;quot;&amp;gt;&lt;br /&gt;
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端函数索引/生活技能与装备|生活技能与装备]] · [[Lua接口/服务端调用约定|调用约定]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;lua-lead lua-rule&amp;quot;&amp;gt;宝石堆的原子加工：跨堆取料并产出，可同时提交装备绑定。&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lua 调用 ==&lt;br /&gt;
&amp;lt;pre&amp;gt;LuaFnGemStackTransform(sceneId, selfId, gemId, gemPos, count, material1, material2, productId, moneyCost, forceBind, equipPos)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
服务端脚本中共出现 5 处调用，实参个数出现过：10 个（3 处）、11 个（2 处）。&lt;br /&gt;
&lt;br /&gt;
实现位于 &amp;lt;code&amp;gt;LuaFnTbl_Ability.h&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
== 参数 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; class=&amp;quot;lua-w11&amp;quot; | 序号&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; class=&amp;quot;lua-w36&amp;quot; | 参数 / 类型&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 说明&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;code&amp;gt;sceneId&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 当前调用所在的场景 ID。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;sceneId&amp;lt;/code&amp;gt;（5 处）&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;code&amp;gt;selfId&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 当前场景内的对象 ID；必须是本场景线程中的有效玩家，不是角色 GUID。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;selfId&amp;lt;/code&amp;gt;（5 处）&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &amp;lt;code&amp;gt;gemId&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 宝石表编号，必须大于 0。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;gemIdx&amp;lt;/code&amp;gt;（2 处）、&amp;lt;code&amp;gt;gemId&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;GemItemID&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;code&amp;gt;gemPos&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 宝石所在格号；−1 表示跨堆取。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;（2 处）、&amp;lt;code&amp;gt;GemBagIndex&amp;lt;/code&amp;gt;（2 处）、&amp;lt;code&amp;gt;GemItemPos&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 消耗颗数，必须大于 0。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;（3 处）、&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| &amp;lt;code&amp;gt;material1&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 第一种材料所在格号，不用时传 −1。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;MatBagIndex1&amp;lt;/code&amp;gt;（2 处）、&amp;lt;code&amp;gt;NeedItemPos&amp;lt;/code&amp;gt;（2 处）、&amp;lt;code&amp;gt;materialPos&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| &amp;lt;code&amp;gt;material2&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 第二种材料所在格号，不用时传 −1。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;（3 处）、&amp;lt;code&amp;gt;MatBagIndex2&amp;lt;/code&amp;gt;（2 处）&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| &amp;lt;code&amp;gt;productId&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 产物编号，0 表示无产物。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;product&amp;lt;/code&amp;gt;（3 处）、&amp;lt;code&amp;gt;ProductID&amp;lt;/code&amp;gt;（2 处）&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| &amp;lt;code&amp;gt;moneyCost&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 费用，必须不小于 0。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;cost&amp;lt;/code&amp;gt;（2 处）、&amp;lt;code&amp;gt;NeedMoney&amp;lt;/code&amp;gt;（2 处）、&amp;lt;code&amp;gt;rule.MoneyCost&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| &amp;lt;code&amp;gt;forceBind&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 强制绑定标志，取值 0 或 1。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;（4 处）、&amp;lt;code&amp;gt;ProductNeedBind&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| &amp;lt;code&amp;gt;equipPos&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
| 可选的装备位置：传入时把被消耗材料的绑定状态合并到该装备后一并提交。&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;lua-muted&amp;quot;&amp;gt;脚本中的实参：&amp;lt;code&amp;gt;EquipBagIndex&amp;lt;/code&amp;gt;（2 处）&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 返回值 ==&lt;br /&gt;
返回 1 个 number：成功时是产物所在格号；产物在背包外生成时返回背包格数，作为成功哨兵；失败返回 −1。&lt;br /&gt;
&lt;br /&gt;
== 脚本中的调用 ==&lt;br /&gt;
以下是服务端脚本里的真实调用点，按实参形态去重后列出 4 条。这些调用取自随包发布的脚本，可用于确认参数顺序与实际传入的值；它们不代表该写法在当前版本仍然有效。&lt;br /&gt;
&amp;lt;pre&amp;gt;-- event/liveabilityevent/gem_compound.lua&lt;br /&gt;
LuaFnGemStackTransform(sceneId, selfId, gemId, -1, count, materialPos, -1, product, rule.MoneyCost, 0)&lt;br /&gt;
&lt;br /&gt;
-- event/liveabilityevent/gem_embed.lua&lt;br /&gt;
LuaFnGemStackTransform(sceneId, selfId, gemIdx, GemBagIndex, 1, MatBagIndex1, MatBagIndex2, product, cost, 0, EquipBagIndex)&lt;br /&gt;
&lt;br /&gt;
-- event/misc/GemCarve.lua&lt;br /&gt;
LuaFnGemStackTransform(sceneId, selfId, GemItemID, GemItemPos, 1, NeedItemPos, -1, ProductID, NeedMoney, ProductNeedBind)&lt;br /&gt;
&lt;br /&gt;
-- event/misc/GemMelting.lua&lt;br /&gt;
LuaFnGemStackTransform(sceneId, selfId, GemItemID1, -1, 3, NeedItemPos, -1, ProductID, NeedMoney, 0)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 注意事项 ==&lt;br /&gt;
* 可以只传前 10 个实参；省略第 11 个时按 −1 处理。&lt;br /&gt;
* 正常概率失败但没有产物时也视为已提交，返回背包格数这个成功哨兵，不要把它当作物品位置。&lt;br /&gt;
* 脚本中有只传 10 个实参的调用，少于实现体读取的 11 个位置；缺省位置按引擎对缺失值的转换处理（通常为 0），不能直接当作有效数据。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Waylee</name></author>
	</entry>
</feed>