綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[其他] 【觸摸精靈】簡單腳本編寫+基礎教學文(新帖)

   關閉 [複製連結] 查看: 52064|回覆: 82|好評: 11
11
silverwings | 收聽TA | 只看該作者
發表於 2014-2-27 15:28
有本書 發表於 2014-2-26 20:17
不太懂你的意思?
直接記憶使用者操作的精靈?
不管是腳本精靈 觸摸精靈或PC的按鍵精靈都有個叫"錄製"的 ...

您覺得哪一個比較好抓色點?
比如說抓血量條..
或是您知道哪個程式是腳本碼電腦與手機共通的?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

12
 樓主| 有本書 | 收聽TA | 只看該作者
發表於 2014-2-28 23:22
silverwings 發表於 2014-2-27 15:28
您覺得哪一個比較好抓色點?
比如說抓血量條..
或是您知道哪個程式是腳本碼電腦與手機共通的? ...

腳本的好用程度通常都是看手機的性能和寫的腳本的功能...
抓色的速度通常都一樣~我用了兩款程式效果都差不多!
只是腳本精靈吃的效能比較高 觸摸精靈吃的效能較低
腳本精靈功能較完善 但個人用起來覺得很麻煩 唯一好處是沒有時間限制
觸摸精靈功能比較沒那麼完善 但開發空間很大 只是有時間限制就是了...

我兩款都有再用 也有再用PC的按鍵精靈~如果你手機性能比較好然後又不想有時間限制的話
就用腳本精靈吧~

至於有哪款程式的腳本碼與電腦及手機的腳本碼是共通的~這我不知道!!!
觸摸 腳本 按鍵 三款的語言都差不多 只是腳本碼都各有差異...
比方說
觸摸的延遲是 mSleep 腳本的延遲則是 sleep
還有什麼問題需要回答的可以留言:P
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 1 反對 2

使用道具 舉報

13
silverwings | 收聽TA | 只看該作者
發表於 2014-3-6 12:02
有本書 發表於 2014-2-28 23:22
腳本的好用程度通常都是看手機的性能和寫的腳本的功能...
抓色的速度通常都一樣~我用了兩款程式效果都差 ...

八門跟腳本我都沒法開,note3似乎很硬
連來電警衛的黑名單都被無效化~哎呀呀~
暫時玩ppsspp用不太到
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

14
ChangMichael | 收聽TA | 只看該作者
發表於 2014-4-15 22:03
整理得很詳細,讚一個。

基本上這裡的概念與語法都搞懂的話,不管是按鍵精靈還是腳本精靈在撰寫上都不會有太大的問題,因為基本的概念已經有了的話,唯一有差別的只是不同語言使用的指令不一樣罷了。
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

15
ghoul880 | 收聽TA | 只看該作者
發表於 2014-4-22 08:38
由 手機網頁 發佈
thanks for sharing
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

16
charxp | 收聽TA | 只看該作者
發表於 2014-5-12 16:45
各位大大問一下
1.
SCREEN_RESOLUTION="720x1280";
SCREEN_COLOR_BITS=32;
此參數為別人的腳本我可以直接修改720x1280成我的適用參數嗎?
2.
count=1;
round=0
defPrevRound=0;
bloodRound=65
hardRound=100
function main()  
   
        while count<6000 do
                fightEvil();
                mSleep(300);
        end
        end
這一串可以幫我解釋嗎?
3. function clickRound(x,y,dx,dy)
       
        if x ~= -1 and y ~= -1 then
              round=round+1;
              touchDown(0, (x+dx), (y+dy)) ;
              touchUp(0);
    end

end
function clickDef(x,y,dx,dy)
        diffRound=round-defPrevRound;
        if defPrevRound == 0  then  
                click(x,y,dx,dy);
                defPrevRound=round;
        elseif diffRound >18  then  
                click(x,y,dx,dy);
                defPrevRound=round;
        else
                click30Percent();
        end
end
function click30Percent()
        x, y =findColorInRegion(0x939393,346,751,346,751);  
        if x ~= -1 and y ~= -1 then  
                click(350,385,0,0)
        else
                click(347,751,0,0);
        end

       

end
function click(x,y,dx,dy)
    if x ~= -1 and y ~= -1 then                        
        touchDown(0, (x+dx), (y+dy))   ;                     
        touchUp(0);               
        --mSleep(500);

       --notifyMessage(x);                    
       --notifyMessage(y);                             
    else                                                              
      -- notifyMessage("no");                        
    end  

end
還有這一串  謝謝

點評

您這腳本是否未完全張貼?因為有些東西貌似要先定義好才能運行...如果腳本真只有這樣,那可能要花點時間去翻譯了!  發表於 2014-5-12 20:03
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

17
 樓主| 有本書 | 收聽TA | 只看該作者
發表於 2014-5-12 19:43
本帖最後由 有本書 於 2014-5-12 21:55 編輯
charxp 發表於 2014-5-12 16:45
各位大大問一下
1.
SCREEN_RESOLUTION="720x1280";


好吧...有些東西我無解,畢竟我只是淺學...

1.

SCREEN_RESOLUTION="720x1280";
SCREEN_COLOR_BITS=32;
此參數為別人的腳本我可以直接修改720x1280成我的適用參數嗎?

答:那兩段好看用的~純告訴你設備的一些基本訊息,所以改了也沒用~

2.
count=1;
round=0
defPrevRound=0;
bloodRound=65
hardRound=100
function main()  
   
        while count<6000 do
                fightEvil();
                mSleep(300);
        end
        end
這一串可以幫我解釋嗎?

答:
count=1; --定義變量 (定義一個叫count的變量為1)
round=0 --同上
defPrevRound=0; --同上
bloodRound=65 --同上
hardRound=100 --同上
function main()   --腳本主入口 (所有腳本運行後由此開始)
   
while count<6000 do --這樣的編寫我不是很常見,大概就是循環判斷count小於6000就...
fightEvil(); --這個我就不懂了,他可能是個副程式或甚麼的?
mSleep(300); --基本延遲,BJ4
end --對應while
end --對應main()

基本上除了"fightEvil();"這段我基本上我是不太了解,不過初步判斷應該是個封裝子程序的調用!

封裝子程序:
function fightEvil() --封裝一個子程序,子程序名稱為fightEvil(這個名稱可以隨意取)
mSleep(300) --延遲300毫秒
end --子程序end

function main() --腳本主入口(所有腳本有此開始運行)
fightEvil() --調用名為fightEvil的子程序
end --主入口end

3. 這個我直接幫你翻

function clickRound(x,y,dx,dy) --這段大致上也是封裝子程序(括弧內的變量不明)
--上面那段代碼括弧內的變量用意應該是一種座標,只是它所代表的是甚麼我就不懂了!
--如果有更懂得大大,還勞煩幫忙解釋與解答~
        if x ~= -1 and y ~= -1 then  --判斷xy是否不等於-1 (是的話往下運行,不是的話直接end)
              round=round+1; --定義變量round = round+1
              touchDown(0, (x+dx), (y+dy)) ; --點擊座標(x+dx)(y+dy)
--(x+dx)(y+dy) 這個應該是去運用到(x,y,dx,dy)裡的變量,或者他之前有事先設定x,y,dx,dy的變量!
              touchUp(0); --基本函數bj4
    end --對應if

end --對應clickRound
function clickDef(x,y,dx,dy) --這段大致上也是封裝子程序(括弧內的變量不明)
        diffRound=round-defPrevRound; --定義變量diffRound=round-defPrevRound
        if defPrevRound == 0  then  --如果變量diffRound等於0就往下運行
                click(x,y,dx,dy); --調用名為click的子程序(通常這個是用來封裝點擊子程序的)
--比方說:
--function click(x,y,dx,dy)
--touchDown(0,128,11)
--touchUp(0)
--end
--function main()
--click(x,y,dx,dy)
--end

                defPrevRound=round; --定義變量diffRound=round
        elseif diffRound >18  then  --第一個判斷不成立會跳到這裡(譯:否則如果defPrevRound大於18就往下運行)
                click(x,y,dx,dy); --調用名為click的子程序(通常這個是用來封裝點擊子程序的)
                defPrevRound=round; --定義變量diffRound=round
        else --判斷不成立會跳到這裡(譯:否則就...)
                click30Percent();--調用名為click30Percent的子程序
        end --對應if (PS:腳本中否則如果是不用end的)
end --對應clickDef

function click30Percent() --這段大致上也是封裝子程序
        x, y =findColorInRegion(0x939393,346,751,346,751); --區域找色bj4
        if x ~= -1 and y ~= -1 then  --判斷變量xy是否不等於-1
                click(350,385,0,0) --調用名為click的子程序(通常這個是用來封裝點擊子程序的)
        else --否則
                click(347,751,0,0); --調用名為click的子程序(通常這個是用來封裝點擊子程序的)
        end --對應if

end --對應click30Percent

function click(x,y,dx,dy) --這段大致上也是封裝子程序(括弧內變量不明)
    if x ~= -1 and y ~= -1 then --判斷xy是否不等於-1
        touchDown(0, (x+dx), (y+dy)) --點擊座標(x+dx)(y+dy)               
        touchUp(0); --基本函數bj4
        --mSleep(500); --基本延遲bj4

       --notifyMessage(x); --這個也是基本的(提示框)不過被設為註解了
       --notifyMessage(y); --這個也是基本的(提示框)不過被設為註解了
    else --否則                           
      -- notifyMessage("no"); --這個也是基本的(提示框)不過被設為註解了                    
    end  --對應if

end --對應click

=================================================================

大致上就這樣了~翻完後我發現除了"fightEvil();"意義不明~
(x,y,dx,dy)這個大概是用來分辨子程序的~
不過看到touchDown(0, (x+dx), (y+dy))這段,
或許(x,y,dx,dy)是用來定義座標的,
只不過腳本中我沒找到定義x,y,dx,dy的變量,所以還是存在著一個無解的狀態~

我翻的是照自己認知的,不過應該也不會差太遠,腳本內容我個人在猜並不完整,
不過這可能是自己學習未達到一定程度吧!

總之希望我有幫到您,如果有哪位大大有更好的解答,也歡迎回復這個問題~
不惑還是在這裡呼應前來提問的大大們,如果您是想提問腳本有哪裡錯了,
或那裡是需要改進的!
請各位張貼完整的腳本內容,不然解答有誤就不能怪小的我了~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

18
charxp | 收聽TA | 只看該作者
發表於 2014-5-13 16:38
大大問一下:
-- 适用屏幕参数
SCREEN_RESOLUTION="640x1136";
SCREEN_COLOR_BITS=32;


count=1;
round=0
defPrevRound=0;
bloodRound=65
hardRound=100
function main()  
   
        while count<6000 do
                fightEvil();
                mSleep(300);
        end
       
       

                                                   
end   

function fightEvil()
        count=count+1;
        --notifyMessagew(round);
       
        --判斷跳過動畫
        x, y =findColorInRegion(0x1f907d,35,569,35,569);   
        click(x,y,20,20)
        touchDown(0, 600, 570)                        
    touchUp(0);
        mSleep(300);
           x, y =findColorInRegion(0x1f907d,35,569,35,569);   
        click(x,y,20,20)
    --touchDown(0, 600, 570)                        
    --touchUp(0);

        --打完繼續
        x1, y1 =findColorInRegion(0x21937d,29,675,29,675);   
        click(x1,y1,0,0)
       
        --領獎勵
        x2, y2 =findColorInRegion(0x1f937a,95,570,95,570);   
        click(x2,y2,0,0)
       
        if round<=bloodRound then
                --血戰
                x3, y3 =findColorInRegion(0xdd4d31,135,348,135,348);   
                clickRound(x3,y3,0,0)
        elseif round<= hardRound then
                --力戰
                x4, y4 =findColorInRegion(0xd64831,134,564,134,564);   
                clickRound(x4,y4,0,0)
        else
                --奮戰
                x5, y5 =findColorInRegion(0xdf5433,136,782,136,782);   
                clickRound(x5,y5,0,0)
        end

       
    --點加成
        --30%氣血
        x6, y6 =findColorInRegion(0xdc5ea1,347,751,347,751);   
       
        --30%武力
        x7, y7 =findColorInRegion(0xd65b35,351,747,351,747);   
       
        --30%防禦
        x8, y8 =findColorInRegion(0xfbd55c,351,750,351,750);   
       
        --15%氣血
        x9, y9 =findColorInRegion(0xdb519c,343,569,343,569);   
       
        --15%武力
        x10, y10 =findColorInRegion(0xd65631,346,568,346,568);   
       
        --15%防禦
        x11, y11 =findColorInRegion(0xfbd662,349,569,349,569);   
       
       
        --以上都沒有,則點任何30%
        if x6 ~= -1 then
                --notifyMessage("氣血");  
                click(x6,y6,0,0)
        elseif x7 ~= -1 then
                --notifyMessage("武力");
                click(x7,y7,0,0)
        elseif x8 ~= -1 then
                --notifyMessage("防禦");
                clickDef(x8,y8,0,0)
        elseif x9 ~= -1 then
                --notifyMessage("氣血");
                click(x9,y9,0,0)
        elseif x10 ~= -1 then
                --notifyMessage("武力");
                click(x10,y10,0,0)
        elseif x11 ~= -1 then
                --notifyMessage("防禦");
                clickDef(x11,y11,0,0)
        elseif x6 == -1 and x7 == -1 and x8 == -1 and x9 == -1 and x10 == -1 and x11 == -1 then  
                --notifyMessage("30%");
                click30Percent();
        end
end

function clickRound(x,y,dx,dy)
       
        if x ~= -1 and y ~= -1 then
              round=round+1;
              touchDown(0, (x+dx), (y+dy)) ;
              touchUp(0);
    end

end
function clickDef(x,y,dx,dy)
        diffRound=round-defPrevRound;
        if defPrevRound == 0  then  
                click(x,y,dx,dy);
                defPrevRound=round;
        elseif diffRound >18  then  
                click(x,y,dx,dy);
                defPrevRound=round;
        else
                click30Percent();
        end
end
function click30Percent()
        x, y =findColorInRegion(0x939393,346,751,346,751);  
        if x ~= -1 and y ~= -1 then  
                click(350,385,0,0)
        else
                click(347,751,0,0);
        end

       

end
function click(x,y,dx,dy)
    if x ~= -1 and y ~= -1 then                        
        touchDown(0, (x+dx), (y+dy))   ;                     
        touchUp(0);               
        --mSleep(500);

       --notifyMessage(x);                    
       --notifyMessage(y);                             
    else                                                              
      -- notifyMessage("no");                        
    end  

end                                                              
這一篇文章說只有 iPhone5 or 5S 才能用
我不知道差在哪裡 我什麼我的紅米機不能用 一執行就跳出到 音量 設定
請大大指點我該如何去修改成自己可用的腳本     謝謝
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

19
 樓主| 有本書 | 收聽TA | 只看該作者
發表於 2014-5-13 17:33
charxp 發表於 2014-5-13 16:38
大大問一下:
-- 适用屏幕参数
SCREEN_RESOLUTION="640x1136";

我不太清楚IOS和Android 的腳本是否能通用...
不過既然你有原碼,你可試著將他所有的點擊和座標位置
都修改成適用於自己的位置,顏色部份也是需要修改的~

不過呢!如果你跟她的設備屏幕大小是相同的,那只要將找色的部份修一修!
自然就能運作了...

還有啊...與其修改別人腳本,不如自己寫一個~
你現在有一個範例,只是不太清楚他的具體功用!
不過有個範例,寫起來也會跟著輕鬆恩多~

以上都是我的建議!比較麻煩的是要將屏幕座標不同的腳本,
改寫成適用自己屏幕大小的腳本,是比較麻煩的!

如果希望我幫您改,也必須我有接觸相同的遊戲...
不然我也只能說說而已了~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

20
charxp | 收聽TA | 只看該作者
發表於 2014-5-13 19:11
我有用過過我的座標套上大大的 顏色獲取.lua 把獲取的色跟座標變更成我的
結果還是一樣一執行就跳成音量設置畫面 那是我哪裡有錯   謝謝指教
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則