我怎样才能让这个脚本不那么滞后? lua

how would I make this script less laggy? lua

所以我正在研究一个混淆器,但是当我添加字符串解码算法时,由于这个脚本,它真的很慢:

local addEnc = ""
local shouldAdd = true
newScript:gsub(".", function(c)
    if c == ")" then
        if shouldAdd == true then
            addEnc = addEnc .. ")" .. MyAlgorithm
            shouldAdd = false
        else
            addEnc = addEnc .. c
        end
    else
        addEnc = addEnc .. c
    end
end)

它适用于较小的脚本,但当你混淆非常大的脚本时,它需要很长时间。 所以基本上那个脚本在第一个之后添加了解码算法)有什么办法可以做到这一点但又不会那么慢?

您正在遍历整个字符串,只是为了在第一次出现 ) 之后连接一些内容。您可以使用 newScript:find('%)') 找到第一个 ) 的位置,然后简单地连接这些部分:

local index = newScript:find('%)')
return newScript:sub(1, index) .. MyAlgorithm .. newScript:sub(index + 1)

%)中的%是因为Lua字符串模式中的特殊字符。或者,您可以使用 :find(')', 1, true) 禁用模式匹配并使用严格查找。

您将 gsub 用于其标准用途,但使用方式非常不标准。

而不是您可以简单地执行的功能:

newScript:gsub('%)', ')' .. MyAlgorithm, 1)

这里的1阻止gsub继续用")" .. MyAlgorithm

替换)

例子

newScript = "((hello)!)"
MyAlgorithm = "world"

print(newScript:gsub('%)', ')' .. MyAlgorithm, 1))

输出

((hello)world!)