修改Lua函数

时间:2015-11-12 04:08:13

标签: lua

我正在尝试修改Lua游戏(CtGW)。有一个函数engine:GetSavegames,它返回一个字符串数组,我无法访问。我需要修改返回的结果。我尝试了以下方法,但收到了一个预期在' engine'""错误。

getsaves = engine:GetSavegames
engine:GetSavegames = function()
 return getsaves()
end

1 个答案:

答案 0 :(得分:3)

engine:GetSavegames仅是方法调用的有效语法,而不是分配的有效语法。正如@ChrisBeck在the comment中所写,您需要使用engine.GetSavegame,但您还需要传递任何可以获得的参数,因为这些参数将包含实际对象。

这样的事情可能有用:

local getsaves = engine.GetSavegames
engine.GetSavegames = function(...)
  return getsaves(...)
end

此操作通常称为monkeypatching