我有两个脚本在运行,我无法将两个脚本合并为一个.必须有两个跑步.
脚本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?
@R_301_323@
考虑到您的情况,这只能通过
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