馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
本帖最後由 dick52014 於 2017-8-10 10:20 編輯
觸摸精靈基礎腳本編寫
我是服務業,所以用一些上班下班空閒時間自己研究,會的不多,但是還可以寫出一些基本腳本,給要試著寫簡單腳本掛機的玩家參考,覺得好幫忙評個分喲!
首先說錄製,錄製來掛網的腳本最容易出錯,也最容易寫,相信大家都試過了,三不五時就停住,亂點,如果沒基礎寫腳本又要錄製來掛,就在會因為網路延遲的地方多等幾秒,一定要多幾秒,因為你掛網就是用你不能玩,或是想休息讓他自己玩的時間,所以跑多少算多少,不要為了多跑幾次而卡住,到頭來只有開螢幕浪費電而已。
有些人手機連錄製也會亂點
記得到設定裡面
螢幕測試點一次
下面圖像引擎優化
裡面兼容性打勾
這樣就可以了
要有效率掛網至少來學個基本腳本怎麼寫
第一最多用的就判別座標出現顏色就點,
比如說螢幕中間(如200,300)座標出現,灰色((確定)框框邊緣顏色之類的),就去點擊他。
首先你先用錄製腳本去找你要找顏色的點
然後再放到取色腳本
DESCRIPTION="颜色获取";
--实用屏幕参数
SCREEN_RESOLUTION="480X800";
SCREEN_COLOR_BITS=32;
x1= 108 ; --座標1
y1= 199 ;
x2= 101 ; --坐标2
y2= 132 ;
x3= 293 ; --坐标3
y3= 824 ;
x4= 170 ; --坐标4
y4= 812 ;
function log(txt)
date = os.date("%m/%d/%Y-%H:%M:%S");
file = io.open("/mnt/sdcard/Touchelper/cooler.txt","a");
file:write(date.."
"..txt.."
");
file:write("
");
file:close();
end
function main()
m1= getColor(x1, y1);
m2= getColor(x2, y2);
m3= getColor(x3, y3);
m4= getColor(x4, y4);
log("坐标1:("..x1..","..y1..")HEX:"..string.format("0x%06x", m1).."
".."坐标2:("..x2..","..y2..")HEX:"..string.format("0x%06x",m2).."
".. "坐标3:("..x3..","..y3..")HEX:"..string.format("0x%06x", m3).."
".."坐标4:("..x4..","..y4..")HEX:"..string.format("0x%06x",m4) );
for i=1,3 do
notifyMessage("坐标1:("..x1..","..y1..")HEX:"..string.format("0x%06x", m1).."
".."坐标2:("..x2..","..y2..")HEX:"..string.format("0x%06x",m2).."
".. "坐标3:("..x3..","..y3..")HEX:"..string.format("0x%06x", m3).."
".."坐标4:("..x4..","..y4..")HEX:"..string.format("0x%06x",m4));
end
mSleep(3000);
end
你要找的顏色座標輸入到座標1~4都可以
這個腳本可以一次抓四個座標顏色
然後儲存
在到你要抓顏色的畫面播放
就會顯示出顏色代碼
如果來不及記下了可以到
mnt/sdcard/Touchelper/cooler.txt
這裡看
有了座標跟顏色代碼
就可以用
A等於(200,300)
如果A等於(剛剛抓的顏色代碼)
就點擊(你要點的地方)
A = getColor(200, 300)
if A == 剛剛抓的顏色代碼
then
mSleep(500);
touchDown(你要點的地方);
mSleep(100);
touchUp(0);
mSleep(15000);
end
大概這樣
也有進階一點就是
如果A出現剛剛抓的顏色
就點擊你要的地方1
如果沒有出現剛剛顏色
就點擊你要的地方2
腳本則變成
A = getColor(你要找顏色的座標)
--轉珠
if A == 你要的顏色
then
mSleep(500);
touchDown(你要點的地方座標1);
mSleep(100);
touchUp(0);
mSleep(15000);
else
mSleep(500);
touchDown(你要點的地方座標2);
mSleep(100);
touchUp(0);
mSleep(15000);
end
注意如果腳本中多一個if
則結尾要多一個end
範例腳本
gg = getColor(357, 182)
if gg == 0x9c4d08
then
mSleep(500);
touchDown(0,101,132);
mSleep(100);
touchUp(0);
mSleep(15000);
end
再來就是找圖語法
找圖的話觸摸精靈基本上都要用.bmp的格式
才能抓的到
而且最好手機抓大圖的時候就直接用腳本抓bmp
附上腳本
DESCRIPTION="。";
-- 适用屏幕参数
SCREEN_RESOLUTION="720x1280";
SCREEN_COLOR_BITS=32;
-- 主入口
function main()
mSleep(3000);
snapshotScreen(string.format("/mnt/sdcard/%s.bmp", os.time()));
end
執行後抓當前螢幕圖片bmp格式存至內建sdcard空間
然後再切割你要的地方下來
中間不要轉換過格式,比較不會出錯
然後腳本的部分
,,,
以下是區域模糊找圖
在區域左上(36、509)到區域右下(409、1778)中找圖片精準度80
x, y = findImageInRegionFuzzy("/mnt/sdcard/圖片名稱.bmp", 80, 36, 509, 409, 1778); -- 將找到的圖片的左上角坐標保存在x和y中,如果没找到,x和y的值為-1
if x ~= -1 and y ~= -1 --如果x.y 不等於負一(就是有找到的意思,因為有找到就會有座標了)
then
mSleep(700);
touchDown(0, x+5, y+10); -- 則點擊找到的x加5,y加10的地方(因為找到圖片是左上角,有時剛好是要點的邊緣,點了沒反應所以加往右下一點的地方)
mSleep(100);
touchUp(0);
mSleep(500);
end
x, y = findImage("/mnt/sdcard/你要的圖片.bmp");全螢幕找圖
x, y = findImageFuzzy("/mnt/sdcard/你要的圖片.bmp", 80);全螢幕模糊找圖精準度80
x, y = findImageInRegion("/mnt/sdcard/你要的圖片.bmp", 左上x, 左上y, 右下x, 右下y);區域找圖
以上觸摸精靈裡面也有用法跟第一個範例差不多
施放buff方法
RPG類遊戲常常有需要施放buff
function addBuffer1() -- 循環檢測和補充buffer1
while true do -- 主循環
if getColor(100, 100) ~= 0x000000 then -- 如果没有buffer1
touchDown(0, 100, 100); -- 施放buffer1
touchUp(0);
end
mSleep(500);
coroutine.yield(); -- 回原本循環
end
end
function addBuffer2() -- 循環檢測和施放buffer2
while true do -- 主循環
if getColor(200, 200) ~= 0x000000 then -- 如果没有buffer2
touchDown(0, 200, 200); -- 施放buffer2
touchUp(0);
end
mSleep(500);
coroutine.yield(); -- 回原本循環
end
end
function main()
co1 = coroutine.create(addBuffer1);
co2 = coroutine.create(addBuffer2);
while true do
coroutine.resume(co1);
coroutine.resume(co2);
end
end
裡面座標色碼,在找色找圖腳本都有
套用上去而已
開啟或關閉app指令
appRun("要開啟的app");
appKill("要關閉的app");
括號中是要輸入app名稱
但不是中文名稱喔
我是用es檔案瀏覽器
然後到sdcard/android/data
然後找你要開啟app的那個資料夾
複製他的名稱
輸入到空格就可以了
不懂可以先提問
日後會陸續補充上來
補充內容 (2016-7-5 14:24):
有個區域抓圖示範影片
https://youtu.be/YC1JQ6XOYjk
補充內容 (2016-7-5 14:28):
找圖路徑
一般建議直接放內建SDCARD
路徑設 mnt/sdcard/檔案名稱.bmp
任何手機都通用 |
評分
-
查看全部評分
|