事件起因
❝女朋友平時酷愛王者榮耀,所以她沒事的時候也喜歡拉拉我打兩把,這不前段時間還買了一個王者榮耀的李白聯名口紅向我炫耀,心里不免有點吃醋,一個3D人物能有真人賞心悅目嗎?於是我暗下決心,決定苦練農葯技巧,在她面前秀上一把。其實對於王者榮耀,我的技術也不算太差,和她一起玩的時候總能拿到MVP,就是贏不了,究其原因,我覺得是我女朋友的問題,因為游戲過程中經常出現我一個人單挑三人,就差她殘血補刀,奈何她總是喜歡喵在草叢或者撒腿就跑,整局下來還嫌棄我菜,說我手速不行,在我被群毆的時候,總希是望自己擁有不死之身,於是就有了秒換復活甲的想法。。。
❞
准備工作
-
這次開發依舊使用的AutoJs來進行腳本的開發。 -
測試工具是本人的OnePlus 8T。
程序邏輯
-
在開發過程中,由於AutoJs抓取不了游戲界面的布局控件,所以只能采取模擬人手點擊的方式來進行制作。
運行測試
-
測試截圖:
-
體驗地址:https://wwa.lanzous.com/imPQKigp0fe
其他
-
用戶使用前需要打開懸浮窗權限,並且需要在橫屏下圖標才能顯示出來,可以長按移動進行移動,注意不要點擊到圖標。
-
缺點:其他手機在使用的過程中,相應的參數可能需要重新進行調整,否則會出現點擊錯位的情況。
代碼
var window = floaty.window(
<frame id="logo" w="60" h="50" alpha="0.8" >
<button id="move" text=" 移動 " w="9" h="40" bg="#77ffffff" textSize="10sp" marginLeft="40" padding="0 -5 0 0" visbility="invisible" alpha="0.5"/>
<img id="img_logo" w="40" h="40" circle="true" src="https://s1.ax1x.com/2020/10/14/0IsInx.png" />
</frame>
)
window.setPosition(1913,239);
setInterval(() => {
}, 1000);
let wx, wy, downTime, windowX, windowY;
window.move.setOnTouchListener(function (view, event) {
switch (event.getAction()) {
case event.ACTION_DOWN:
wx = event.getRawX();
wy = event.getRawY();
windowX = window.getX();
windowY = window.getY();
downTime = new Date().getTime();
return true;
case event.ACTION_MOVE:
// 如果按下的時間超過 xx 秒判斷為長按,調整懸浮窗位置
if (new Date().getTime() - downTime > 300) {
window.setPosition(windowX + (event.getRawX() - wx), windowY + (event.getRawY() - wy));
}
return true;
case event.ACTION_UP:
// 手指彈起時如果偏移很小則判斷為點擊
if (Math.abs(event.getRawY() - wy) < 30 && Math.abs(event.getRawX() - wx) < 30) {
toastLog(" 長按調整位置 ")
}
return true;
}
return true;
});
window.img_logo.click(() => {
threads.start(function(){
click(173,489);//點擊金幣
sleep(5);
click(319,629);//點擊防御
sleep(5);
click(1659,650);//點擊復活甲
sleep(15);
click(1933,862);//點預購
sleep(15);
click(771,927);//點擊第一個
sleep(15);
click(1963,874);//出售
sleep(20);
click(1990,110);//點擊x
sleep(20);
click(276,436);//點擊購買裝備
});
});