From c72dedf7cf395986f32e82d1dd637f7e3813bd12 Mon Sep 17 00:00:00 2001 From: Gompyn Date: Sat, 15 Aug 2020 02:37:16 +0800 Subject: [PATCH] try load CCloaders one by one it will try all available CCloaders in game.love and go back to 9S if all CCloaders are not available --- parts/ai.lua | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/parts/ai.lua b/parts/ai.lua index 253925df..d1036a01 100644 --- a/parts/ai.lua +++ b/parts/ai.lua @@ -20,21 +20,35 @@ local scs={{1,2},{1,2},{1,2},{1,2},{1,2},{1.5,1.5},{0.5,2.5}} -------------------------------------------------Cold clear local CCblockID={6,5,4,3,2,1,0} CCloader_filename = {} -CCloader_filename.Windows = 'CCloader.dll' -CCloader_filename.Android = 'CCloader.so' -CCloader_filename.Linux = 'CCloader.so' -if CCloader_filename[system] then - local prefixed_CCloader_filename - if system == 'Windows' then - prefixed_CCloader_filename = '\\'..CCloader_filename[system] - elseif system == 'Android' or system == 'Linux' then - prefixed_CCloader_filename = '/'..CCloader_filename[system] +CCloader_filename.Windows = {'CCloader.dll', '\\', {'x86_64'}} +CCloader_filename.Android = {'libCCloader.so', '/', {'arm64-v8a', 'armeabi-v7a'}} +CCloader_filename.Linux = {'libCCloader.so', '/', {'x86_64'}} +local function loadCC() + if not CCloader_filename[system] then return end + local concatter = CCloader_filename[system][2] + local function path_concat(paths) + local res = paths[1] + for i=2,#paths do + res = res .. concatter .. paths[i] + end + return res + end + local f + for i=1,#CCloader_filename[system][3] do + local function simulate_continue() + local CCloader_f, size = love.filesystem.read('data', path_concat({'lib', system, CCloader_filename[system][3][i], CCloader_filename[system][1]})) + if not CCloader_f then return end + local success, message = love.filesystem.write(CCloader_filename[system][1], CCloader_f, size) + if not success then return end + return package.loadlib(path_concat({love.filesystem.getSaveDirectory(), CCloader_filename[system][1]}), "luaopen_CCloader") + end + f = simulate_continue() + if f then break end + end + if not f then + CCloader_filename[system] = nil + return end - local CCloader_f, size = love.filesystem.read('data', CCloader_filename[system]) - assert(CCloader_f, size) - local success, message = love.filesystem.write(CCloader_filename[system], CCloader_f, size) - assert(success, message) - local f = assert(package.loadlib(love.filesystem.getSaveDirectory()..prefixed_CCloader_filename, "luaopen_CCloader")) f() BOT={ getConf= cc.get_default_config ,--()options,weights @@ -95,6 +109,7 @@ if CCloader_filename[system] then collectgarbage() end end +loadCC() -------------------------------------------------9 Stack setup local dirCount={1,1,3,3,3,0,1} local spinOffset={