Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 在lua中使用全局函数更改局部变量_Function_Variables_Lua_Global_Local - Fatal编程技术网

Function 在lua中使用全局函数更改局部变量

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

我有两个脚本正在运行,无法将两个脚本合并为一个。必须有两个在运行

脚本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 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