Хорошо, я знаю, как довольно хорошо работать с метатаблицами, но я пытаюсь сделать резервную копию функций игры (используя getrawmetatable (game)). Например, вот скрипт для отключения функции Kick () в вашей игре
local getrawmetatable = getrawmetatable or debug.getmetatable
local make_writeable = make_writeable or setreadonly or changereadonly or
change_writeable
make_writeable(getrawmetatable(game), false)
local backup = getrawmetatable(game).__namecall
getrawmetatable(game).__namecall = function(u, ...)
local m = ({...})[select('#', ...)]
local packed = {...}
local a = {}
for i = 1, #packed - 1 do
a[i] = packed[i]
end
if m == 'Kick' then
warn('Kick attempt at ' .. os.time() .. ' (' .. tostring(unpack(a)) ..
')')
return true
end
return backup and backup(u, ...) or u[m](u, unpack(a))
end
Я знаю, что вы можете восстановить таблицу обратно в исходную, используя
local mt = getrawmetatable(game)
mt.__namecall = backup
Но есть ли способ сделать резервную копию всех вызовов имен (в файл или что-то еще)а затем восстановить их в исходные функции