我有两个脚本在运行,我无法将两个脚本合并为一个.必须有两个跑步. 脚本A几乎完全是本地的,但它确实调用了几次全局函数.这些是在脚本B中定义的.我想知道函数是否有可能以某种方式
脚本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必须保留为局部变量.
编辑:Ryan Stein的解决方案有效,但我后来在脚本中遇到了另一个问题.
现在它是这样的:
local f_count=1 local function sell_lox() local sellID=5 _G.writeDefinition(sellID,sellID.." PX_lvs") end
它与原始问题类似.据我所知,我唯一可以得到的是调用writeDefinition时的SellID.有没有办法在调用writeDefinition时从此增加f_count?
考虑到您的情况,这只能通过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