From 86ffc4a2070680bddfbbf8e61d5b1e6922b81507 Mon Sep 17 00:00:00 2001 From: Gompyn Date: Wed, 29 Jul 2020 16:04:35 +0800 Subject: [PATCH 1/3] add CC on android (and Linux btw) --- modes/techmino49_easy.lua | 2 +- modes/techmino49_hard.lua | 2 +- modes/techmino49_ultimate.lua | 2 +- modes/techmino99_easy.lua | 2 +- modes/techmino99_hard.lua | 2 +- modes/techmino99_ultimate.lua | 2 +- parts/ai.lua | 18 ++++++++++++++++-- 7 files changed, 22 insertions(+), 8 deletions(-) diff --git a/modes/techmino49_easy.lua b/modes/techmino49_easy.lua index 7e4a7a6a..e4883ffd 100644 --- a/modes/techmino49_easy.lua +++ b/modes/techmino49_easy.lua @@ -33,7 +33,7 @@ return{ } PLY.newPlayer(1,340,15) local L={}for i=1,49 do L[i]=true end - local t=system~="Windows"and 0 or 2 + local t=CCloader_filename[system] and 0 or 2 while t>0 do local r=rnd(2,49) if L[r]then L[r],t=false,t-1 end diff --git a/modes/techmino49_hard.lua b/modes/techmino49_hard.lua index 2cd0660f..2258672a 100644 --- a/modes/techmino49_hard.lua +++ b/modes/techmino49_hard.lua @@ -33,7 +33,7 @@ return{ } PLY.newPlayer(1,340,15) local L={}for i=1,49 do L[i]=true end - local t=system~="Windows"and 0 or 4 + local t=CCloader_filename[system] and 0 or 4 while t>0 do local r=rnd(2,49) if L[r]then L[r],t=false,t-1 end diff --git a/modes/techmino49_ultimate.lua b/modes/techmino49_ultimate.lua index 5b548aef..264488cb 100644 --- a/modes/techmino49_ultimate.lua +++ b/modes/techmino49_ultimate.lua @@ -33,7 +33,7 @@ return{ } PLY.newPlayer(1,340,15) local L={}for i=1,49 do L[i]=true end - local t=system~="Windows"and 0 or 6 + local t=CCloader_filename[system] and 0 or 6 while t>0 do local r=rnd(2,49) if L[r]then L[r],t=false,t-1 end diff --git a/modes/techmino99_easy.lua b/modes/techmino99_easy.lua index b32ceb0a..acbac900 100644 --- a/modes/techmino99_easy.lua +++ b/modes/techmino99_easy.lua @@ -33,7 +33,7 @@ return{ } PLY.newPlayer(1,340,15) local L={}for i=1,100 do L[i]=true end - local t=system~="Windows"and 0 or 4 + local t=CCloader_filename[system] and 0 or 4 while t>0 do local r=rnd(2,99) if L[r]then L[r],t=false,t-1 end diff --git a/modes/techmino99_hard.lua b/modes/techmino99_hard.lua index 941d3fff..56f78cd7 100644 --- a/modes/techmino99_hard.lua +++ b/modes/techmino99_hard.lua @@ -33,7 +33,7 @@ return{ } PLY.newPlayer(1,340,15) local L={}for i=1,100 do L[i]=true end - local t=system~="Windows"and 0 or 4 + local t=CCloader_filename[system] and 0 or 4 while t>0 do local r=rnd(2,99) if L[r]then L[r],t=false,t-1 end diff --git a/modes/techmino99_ultimate.lua b/modes/techmino99_ultimate.lua index 5812298c..bb02e14e 100644 --- a/modes/techmino99_ultimate.lua +++ b/modes/techmino99_ultimate.lua @@ -33,7 +33,7 @@ return{ } PLY.newPlayer(1,340,15) local L={}for i=1,100 do L[i]=true end - local t=system~="Windows"and 0 or 4 + local t=CCloader_filename[system] and 0 or 4 while t>0 do local r=rnd(2,99) if L[r]then L[r],t=false,t-1 end diff --git a/parts/ai.lua b/parts/ai.lua index 49e673aa..4b96e2dc 100644 --- a/parts/ai.lua +++ b/parts/ai.lua @@ -19,8 +19,22 @@ local blockPos={4,4,4,4,4,5,4} 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} -if system=="Windows"then - require("CCloader") +CCloader_filename = {} +CCloader_filename.Windows = 'CCloader.dll' +CCloader_filename.Android = 'CCloader.so' +CCloader_filename.Linux = 'CCloader.so' +if CCloader_filename[system] then + if system == 'Windows' then + local prefixed_CCloader_filename = '\\'..CCloader_filename[system] + elseif system == 'Android' or system == 'Linux' then + local prefixed_CCloader_filename = '/'..CCloader_filename[system] + 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 --setConf= cc.set_options ,--(options,hold,20g,bag7) From 6641d402c0a027f191a74cc1f1133bd7b78d4c87 Mon Sep 17 00:00:00 2001 From: Gompyn Date: Thu, 30 Jul 2020 14:30:17 +0800 Subject: [PATCH 2/3] Fix variable scope --- parts/ai.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/parts/ai.lua b/parts/ai.lua index 4b96e2dc..253925df 100644 --- a/parts/ai.lua +++ b/parts/ai.lua @@ -24,10 +24,11 @@ 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 - local prefixed_CCloader_filename = '\\'..CCloader_filename[system] + prefixed_CCloader_filename = '\\'..CCloader_filename[system] elseif system == 'Android' or system == 'Linux' then - local prefixed_CCloader_filename = '/'..CCloader_filename[system] + prefixed_CCloader_filename = '/'..CCloader_filename[system] end local CCloader_f, size = love.filesystem.read('data', CCloader_filename[system]) assert(CCloader_f, size) From c72dedf7cf395986f32e82d1dd637f7e3813bd12 Mon Sep 17 00:00:00 2001 From: Gompyn Date: Sat, 15 Aug 2020 02:37:16 +0800 Subject: [PATCH 3/3] 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={