返回列表 發帖

請問我該如何執行重複的指令? PART2

var1=0x006B9E44
var2=0x006B9E48
ExtVar[51]=0
ExtVar[52]=0
ExtVar[1]= ReadMemory[var1,1]
ExtVar[2]= (ExtVar[1]+370) / 60
ExtVar[3]= ReadMemory[var2,1]
ExtVar[4]= (ExtVar[3]+240) / 30

        if color[36569863] = 14607335
                KeyPress(115)
                delay(500)
        end if
s1:
ExtVar[1]= ReadMemory[var1,1]
ExtVar[2]= (ExtVar[1]+370) / 60
ExtVar[3]= ReadMemory[var2,1]
ExtVar[4]= (ExtVar[3]+240) / 30
ExtVar[11] = 10
ExtVar[12] = 109
ExtVar[51] = (ExtVar[11] - ExtVar[2])*60 +400
ExtVar[52] = (ExtVar[12] - ExtVar[4])*30 +250
call checkrationpos
MouseMove XY2Pos[ExtVar[51],ExtVar[52]]
delay(300)
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+400,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+404,(ExtVar[12] - ExtVar[4])*30+200]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+393,(ExtVar[12] - ExtVar[4])*30+197]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+196]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+201]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+388,(ExtVar[12] - ExtVar[4])*30+202]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+405,(ExtVar[12] - ExtVar[4])*30+194]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+401,(ExtVar[12] - ExtVar[4])*30+203]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+410,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
delay(500)
Left Click XY2Pos[ExtVar[51],ExtVar[52]]
delay(500)      

     End If
call torelax
Jump ss1
Else
   Jump s2
End If
Else
        Jump s2
End If
Else
        Jump s2
End If
Else
        Jump s2
End If
Else
        Jump s2
End If
Else
        Jump s2
End If
Else
        Jump s2
End If
Else
        Jump s2
End If
Else
        Jump s2
End If
s2:
ExtVar[1]= ReadMemory[var1,1]
ExtVar[2]= (ExtVar[1]+370) / 60
ExtVar[3]= ReadMemory[var2,1]
ExtVar[4]= (ExtVar[3]+240) / 30
ExtVar[11] = 13
ExtVar[12] = 106
ExtVar[51] = (ExtVar[11] - ExtVar[2])*60 +400
ExtVar[52] = (ExtVar[12] - ExtVar[4])*30 +250
call checkrationpos
MouseMove XY2Pos[ExtVar[51],ExtVar[52]]
delay(300)
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+400,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+404,(ExtVar[12] - ExtVar[4])*30+200]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+393,(ExtVar[12] - ExtVar[4])*30+197]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+196]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+201]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+388,(ExtVar[12] - ExtVar[4])*30+202]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+405,(ExtVar[12] - ExtVar[4])*30+194]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+401,(ExtVar[12] - ExtVar[4])*30+203]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+410,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
delay(500)
Left Click XY2Pos[ExtVar[51],ExtVar[52]]
delay(500)      

     End If
call torelax
Jump ss2
Else
   Jump s3
End If
Else
        Jump s3
End If
Else
        Jump s3
End If
Else
        Jump s3
End If
Else
        Jump s3
End If
Else
        Jump s3
End If
Else
        Jump s3
End If
Else
        Jump s3
End If
Else
        Jump s3
End If

s3:
ExtVar[1]= ReadMemory[var1,1]
ExtVar[2]= (ExtVar[1]+370) / 60
ExtVar[3]= ReadMemory[var2,1]
ExtVar[4]= (ExtVar[3]+240) / 30
ExtVar[11] = 11
ExtVar[12] = 104
ExtVar[51] = (ExtVar[11] - ExtVar[2])*60 +400
ExtVar[52] = (ExtVar[12] - ExtVar[4])*30 +250
call checkrationpos
MouseMove XY2Pos[ExtVar[51],ExtVar[52]]
delay(300)
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+400,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+404,(ExtVar[12] - ExtVar[4])*30+200]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+393,(ExtVar[12] - ExtVar[4])*30+197]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+196]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+201]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+388,(ExtVar[12] - ExtVar[4])*30+202]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+405,(ExtVar[12] - ExtVar[4])*30+194]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+401,(ExtVar[12] - ExtVar[4])*30+203]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+410,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
delay(500)
Left Click XY2Pos[ExtVar[51],ExtVar[52]]
delay(500)      

     End If
call torelax
Jump ss3
Else
   Jump s4
End If
Else
        Jump s4
End If
Else
        Jump s4
End If
Else
        Jump s4
End If
Else
        Jump s4
End If
Else
        Jump s4
End If
Else
        Jump s4
End If
Else
        Jump s4
End If
Else
        Jump s4
End If

s4:

ExtVar[1]= ReadMemory[var1,1]
ExtVar[2]= (ExtVar[1]+370) / 60
ExtVar[3]= ReadMemory[var2,1]
ExtVar[4]= (ExtVar[3]+240) / 30
ExtVar[11] = 8
ExtVar[12] = 107
ExtVar[51] = (ExtVar[11] - ExtVar[2])*60 +400
ExtVar[52] = (ExtVar[12] - ExtVar[4])*30 +250
call checkrationpos
MouseMove XY2Pos[ExtVar[51],ExtVar[52]]
delay(300)
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+400,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+404,(ExtVar[12] - ExtVar[4])*30+200]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+393,(ExtVar[12] - ExtVar[4])*30+197]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+196]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+201]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+388,(ExtVar[12] - ExtVar[4])*30+202]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+405,(ExtVar[12] - ExtVar[4])*30+194]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+401,(ExtVar[12] - ExtVar[4])*30+203]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+410,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
delay(500)
Left Click XY2Pos[ExtVar[51],ExtVar[52]]
delay(500)      

     End If
call torelax
Jump ss4
Else
   Jump s1
End If
Else
        Jump s1
End If
Else
        Jump s1
End If
Else
        Jump s1
End If
Else
        Jump s1
End If
Else
        Jump s1
End If
Else
        Jump s1
End If
Else
        Jump s1
End If
Else
        Jump s1
End If

torelax:
KeyPress(114)
delay(100)
KeyPress(114)
delay(100)
        if color[36569863] != 14607335
                KeyPress(115)
                delay(500)
        end if
        delay(1500)
return

relax:
       
        if color[36569863] = 14607335
                KeyPress(115)
                delay(500)
        end if
return

ss1:
delay(300)
ExtVar[1]= ReadMemory[var1,1]
ExtVar[2]= (ExtVar[1]+370) / 60
ExtVar[3]= ReadMemory[var2,1]
ExtVar[4]= (ExtVar[3]+240) / 30
ExtVar[11] = 10
ExtVar[12] = 109
ExtVar[51] = (ExtVar[11] - ExtVar[2])*60 +400
ExtVar[52] = (ExtVar[12] - ExtVar[4])*30 +250
MouseMove XY2Pos[ExtVar[51],ExtVar[52]]
delay(200)
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+400,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+404,(ExtVar[12] - ExtVar[4])*30+200]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+393,(ExtVar[12] - ExtVar[4])*30+197]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+196]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+396,(ExtVar[12] - ExtVar[4])*30+201]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+388,(ExtVar[12] - ExtVar[4])*30+202]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+405,(ExtVar[12] - ExtVar[4])*30+194]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+401,(ExtVar[12] - ExtVar[4])*30+203]] = 16777215
If Color[XY2Pos[(ExtVar[11] - ExtVar[2])*60+410,(ExtVar[12] - ExtVar[4])*30+204]] = 16777215
delay(500)
Left Click XY2Pos[ExtVar[51],ExtVar[52]]
delay(500)      
Jump ss1
Else
        call relax
   Jump s2
End If
Else
        call relax
        Jump s2
End If
Else
        call relax
        Jump s2
End If
Else
        call relax
        Jump s2
End If
Else
        call relax
        Jump s2
End If
Else
        call relax
        Jump s2
End If
Else
        call relax
        Jump s2
End If
Else
        call relax
        Jump s2
End If
Else
        call relax
        Jump s2
End If
checkrationpos:
If ExtVar[51] < 1 || ExtVar[51] > 799 || ExtVar[52] < 1 || ExtVar[52] > 459
ExtVar[1]= ReadMemory[var1,1]
ExtVar[2]= (ExtVar[1]+370) / 60
ExtVar[3]= ReadMemory[var2,1]
ExtVar[4]= (ExtVar[3]+240) / 30
ExtVar[11] = 12
ExtVar[12] = 106
ExtVar[51] = (ExtVar[11] - ExtVar[2])*60 +400
ExtVar[52] = (ExtVar[12] - ExtVar[4])*30 +250
Left Click XY2Pos[ExtVar[51],ExtVar[52]]
delay(2500)
jump s1
end if
return
//431.225
//429,228
//429,230
//434,231
//434,234
//438,234
//439,234
=================
PART1跟PART2的指令需要併在一起
並且每小時重複一次
請問該怎麼寫呢?
謝謝
PS:我把SS2~4的指令給刪除了,因為字太多
跟SS1是一樣的

吳星慧寵物SPA館 寵物店 · 寵物美容師 · 狗屋 貓旅館 吳星慧
本帖最後由 fan62 於 2013-8-11 18:56 編輯

回復 1# skyblue0622
  1. rerun:
  2. //以下為你的原始所有代碼
  3. var1=0x006B9E44
  4. var2=0x006B9E48
  5. ExtVar[51]=0
  6. ExtVar[52]=0
  7. ExtVar[1]= ReadMemory[var1,1]
  8. ExtVar[2]= (ExtVar[1]+370) / 60
  9. ExtVar[3]= ReadMemory[var2,1]
  10. ExtVar[4]= (ExtVar[3]+240) / 30

  11.         if color[36569863] = 14607335
  12.                 KeyPress(115)

  13. ......省略
  14. //以上為你的原紿所有代碼

  15. delay(3600000)
  16. jump rerun
複製代碼
PS:我無法知道你原始程式裡是否有什麼判斷會一直迴圈,我是假定你程式會從頭執行到尾,只執行一次就停止,再來改成每小時執行一次!!詳細程式碼說明請看你另一篇提問帖裡的回覆~

TOP

回復 2# fan62

謝謝回覆告知
所以我PART1的指令,要接在最下面
最後才是
delay(3600000)
jump return
這樣對嗎?

TOP

回復  fan62

謝謝回覆告知
所以我PART1的指令,要接在最下面
最後才是
delay(3600000)
jump return
這樣對 ...
skyblue0622 發表於 2013-8-15 12:20


沒錯,可是別忘了還有最前面要加
rerun:

因為我不是很明白你的PART1跟PART2有沒有什麼聯貫性,若是兩個不同的,就是各自在最前面跟最後面加上我說的程式碼~~

TOP

本帖最後由 skyblue0622 於 2013-8-16 03:25 編輯
回復  skyblue0622 PS:我無法知道你原始程式裡是否有什麼判斷會一直迴圈,我是假定你程式會從頭執行到尾,只 ...
fan62 發表於 2013-8-11 18:52


版大你好
首先我先打上part2的指令
return:                               <===開頭加入?
var1=0x006B9E44
var2=0x006B9E48
ExtVar[51]=0
ExtVar[52]=0
ExtVar[1]= ReadMemory[var1,1]
ExtVar[2]= (ExtVar[1]+370) / 60
ExtVar[3]= ReadMemory[var2,1]
ExtVar[4]= (ExtVar[3]+240) / 30

        if color[36569863] = 14607335
                KeyPress(115)
                delay(500)
        end if
//以下原始代碼省略
........................
........................
Left Click XY2Pos[ExtVar[51],ExtVar[52]]
delay(2500)
jump s1
end if
delay(3600000)
jump return                  <==是要加在最後嗎?

SendKey(121)               <==然後在這加上PART1的指令?
MouseMove 13304403
Delay(300)
Left Down 13304403
Delay(400)
MouseMove 3146495
Delay(300)
//以下省略

請問版大是這樣嗎??
PART1的指令,是要傳送另外一個地圖,點擊NPC後再傳送回來原地圖,需要每小時重複一次
而PART2的指令,是在同一地圖內不斷的點擊4支NPC
會自行判斷如果NPC死亡自動跳下一支,不斷的環繞
我需要的是part1執行後接著執行prat2
然後一小時後再接著執行part1再接part2這樣子

TOP

照你所述的PART1跟2之間的關係,跟你提問時我所了解的意思是不太一樣的,我以為那是兩支不同的程式,分別都是要執行完就暫停一小時,再重複!!

如果照你所述的PART1跟2的關係,應該要改成:
return:
//--------------------------------
part1的全部份程式碼
//--------------------------------
part2的程式碼
//------------------
delay(3600000)
jump return  

程式碼大意是:先在PART1的程式碼前定義return副程序名,然後執行PART1的傳送地圖程式,執行完PART1的程式後執行PART2的打怪程式,PART2程式執行完後,等待一個小時,跳往宣告的return副程序處~

PS:以上是指你的PART1跟2之間的地圖傳送及點擊NPC判斷NPC死亡自動跳下一支等等的程式是能完整執行的情況!再來就是若原本的程式碼在完整執行一次後,有自動停止外掛的判斷或語法的話,要刪掉或註解起來!!

TOP

回復 6# fan62


好,我在試試看
再次謝謝版大

TOP

var1=0x006B9E44
var2=0x006B9E48
ExtVar[51]=0
ExtVar[52]=0
ExtVar[1]= ReadMemory[var1,1]
ExtVar[2]= ( ...
skyblue0622 發表於 2013-8-7 21:29


在程式頭加上一個自己定義的標記, 然後程式結束之後回到這個標記
我習慣用Star, 和fan62用rerun是一樣的
隨便一個名稱後面加個冒號就是標記了
在第二次執行之前加上一個小時的延遲

============================
Star:
        //你的腳本程式放這邊
        //PART1
        //PART2
Delay(3600000)
Jump Star
============================

如果PART1和PART2沒有什麼相衝突的問題的話這樣就可以了
當然也要注意PART1和PART2之間的銜接問題
多試試就可以了
1

評分人數

  • fan62

TOP

回復 5# skyblue0622

PART1的指令,是要傳送另外一個地圖,點擊NPC後再傳送回來原地圖,需要每小時重複一次
而PART2的指令,是在同一地圖內不斷的點擊4支NPC
會自行判斷如果NPC死亡自動跳下一支,不斷的環繞
我需要的是part1執行後接著執行prat2
然後一小時後再接著執行part1再接part2這樣子


每小時傳送一次地圖, 然後不斷的判斷4個NPC是否有死亡並自動切換點擊, 一個小時後再傳送一次
是這樣嗎

我這裡有些假設
如果PART1是單純重送地圖
然後PART2是單純判斷NPC
那可以這樣試試

============================
Delay(2000)
ExtVar[99] = Timer
Call PART1
Star:
                If Timer - ExtVar[99] >= 36000000
                        ExtVar[99] = Timer
                        Call PART1
                End if

                Call PART2
Jump Star

PART1:
        Delay(2000)
        //PART1 程式放這裡
        Return
       
PART2:
        Delay(2000)
        //PART2 程式放這裡
        Return
============================

Call 會跳到一個自己定義的子程式, 然後要有相應的Return才能跳回原來Call的地方
Timer可以取得程式執行了多久的時間, 單位是千分之一秒
PART1和PART2裡面的Delay(2000)是動作延遲, 自己拿捏, 比如傳送地圖會不會有時間差

程式開始會停個兩秒, 方便自己準備而已, 然後先傳送一次地圖
先用ExtVar[99]取得目前執行了多久時間
然後用現在的Timer減去剛剛取得的ExtVar[99]算出時間差, 看有沒有到一小時
有的話重設一次ExtVar[99], 再去跑PART1, 沒有的話則是繼續重複PART2

TOP

謝謝大大分享

TOP

返回列表