我有两个脚本正在运行,我无法将两个脚本合并为一个脚本。必须有两个跑步。
脚本A几乎完全是本地的,但它确实调用了几次全局函数。这些是在脚本B中定义的。我想知道函数是否有可能以某种方式在脚本A中使用局部变量。
就像这样:
--Script A
local lastUpdateID = 308
local var1,var2=6,7
_G.writeDefinition(var1,var2)
--Script B
function _G.writeDefinition(var1,var2)
-- Right here, is it possible that we can alter the
-- variable lastUpdateID? < (This is my question)
end
我尝试过调查getfenv
和setfenv
,但他们没有显示本地变量存在。这一点的全部意义在于,当脚本A调用writeDefinition
时,lastUpdateID
会增加1。但是,lastUpdateID
必须保留为局部变量。
现在是这样的:
local f_count=1
local function sell_lox()
local sellID=5
_G.writeDefinition(sellID,sellID.." PX_lvs")
end
它与原始问题类似。据我所知,我唯一可以得到的是调用writeDefinition时的SellID。有没有办法在调用writeDefinition时从此增加f_count?
答案 0 :(得分:1)
考虑到您的情况,这只能通过debug
库来实现。
function writeDefinition(var1, var2)
local i, k, v = 0
repeat -- Iterate through the calling function's local variables.
i = i + 1
k, v = debug.getlocal(2, i)
until k == 'lastUpdateID'
debug.setlocal(2, i, v + 1) -- Increment lastUpdateID.
end