我怎样才能让这个脚本不那么滞后? 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!)
所以我正在研究一个混淆器,但是当我添加字符串解码算法时,由于这个脚本,它真的很慢:
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!)