Function 在lua中使用全局函数更改局部变量
我有两个脚本正在运行,无法将两个脚本合并为一个。必须有两个在运行 脚本A几乎完全是本地的,但它确实调用了一个全局函数几次。这些是在脚本B中定义的。我想知道函数是否可能以某种方式在脚本A中使用局部变量 是这样的:Function 在lua中使用全局函数更改局部变量,function,variables,lua,global,local,Function,Variables,Lua,Global,Local,我有两个脚本正在运行,无法将两个脚本合并为一个。必须有两个在运行 脚本A几乎完全是本地的,但它确实调用了一个全局函数几次。这些是在脚本B中定义的。我想知道函数是否可能以某种方式在脚本A中使用局部变量 是这样的: --Script A local lastUpdateID = 308 local var1,var2=6,7 _G.writeDefinition(var1,var2) local f_count=1 local function sell_lox() local sellI
--Script A
local lastUpdateID = 308
local var1,var2=6,7
_G.writeDefinition(var1,var2)
local f_count=1
local function sell_lox()
local sellID=5
_G.writeDefinition(sellID,sellID.." PX_lvs")
end
这与原来的问题类似。据我所知,调用writeDefinition时,我唯一能得到的是SellID。当调用writeDefinition时,有没有办法从中增加f_计数?考虑到您的情况,这只能通过库实现
为什么不能合并脚本?你想解决什么问题?我无法编辑脚本A,因为我正在为游戏编写一个mod。我只能编辑脚本B。如果我可以编辑脚本A,我可以简单地使其全局化,或者通过函数传递变量。我真的不鼓励这种方法。该变量之所以是该模块的局部变量,是因为它是一个实现细节。现在或以后(例如升级时),摆弄它可能会造成意外的影响。如果你想用另一种方法来达到你想要的结果,那你最好是找到一种方法。如果您需要帮助,请以单独问题的形式发布,不要编辑,因为这可能需要一个完全不同的问题。
local f_count=1
local function sell_lox()
local sellID=5
_G.writeDefinition(sellID,sellID.." PX_lvs")
end
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