通过 'jass.code' 提供接口给Jass层,然后在Jass层调用该接口,并在接口内使用 DzSetUnitID(unit, uid) 这类可能涉及到Jass虚拟机进行较长时间操作的函数时,可能会由于Jass虚拟机的返回值不及时,导致此次Lua接口返回的handle为空值。
这种现象通常在大规模调用(比如瞬时从Lua侧实现的单位池内取出单位句柄,并在Lua侧修改单位类型)时会明显表现出来。
已经确认有问题的函数:
- DzSetUnitID
类似的思路下,可能有问题的函数:
- CreateUnit
- AddSpecialEffectLoc