我正在尝试修改Lua游戏(CtGW)。有一个函数engine:GetSavegames
,它返回一个字符串数组,我无法访问。我需要修改返回的结果。我尝试了以下方法,但收到了一个预期在' engine'""错误。
getsaves = engine:GetSavegames
engine:GetSavegames = function()
return getsaves()
end
答案 0 :(得分:3)
engine:GetSavegames
仅是方法调用的有效语法,而不是分配的有效语法。正如@ChrisBeck在the comment中所写,您需要使用engine.GetSavegame
,但您还需要传递任何可以获得的参数,因为这些参数将包含实际对象。
这样的事情可能有用:
local getsaves = engine.GetSavegames
engine.GetSavegames = function(...)
return getsaves(...)
end
此操作通常称为monkeypatching。