Lua语言,一段某游戏mod的代码,DoAction
在playercontroller
中有定义和实现,只有buffaction
一个参数。
本人有扎实的C/C++
基础,并且大概了解了Lua
中的松散语法和函数,但下面这段看不懂。这段代码是改写原来的DoAction
函数吗?为什么pc.DoAction = (function() end)()
这里加了最外边的括号并且跟上了一对括号?谢谢。
local pc = player.components.playercontroller
if pc then
pc.DoAction = (function()
local DoAction = pc.DoAction
return function(self, bufaction, ...)
if bufaction then
self.inst:PushEvent("playercontroller_move")
end
return DoAction(self, bufaction, ...)
end
end)()
end