本帖最後由 mcsnake 於 2009-12-9 17:09 編輯
#[HOTKEY]HOME
function main
SetInputMode(3) //驅動模式,很多遊戲會阻擋SP的部份功能,可以套用此函數
while true //循環開始
State()//子函數狀態
wend //返回while開始循環
end function
function State//休息攻擊+喝水
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
print("執行攻擊")
if not CheckColor(WinX0+248, WinY0+645, Color(107, 21, 40), 10) then
Wait(500)
KeyDown("x")
Wait(500)
KeyUp("x")
Wait(300)
KeyDown("6")
Wait(500)
KeyUp("6")
KeyDown("F1")
Wait(500)
KeyUp("F1")
KeyDown("7")
Wait(500)
KeyUp("7")
KeyDown("8")
Wait(500)
KeyUp("8")
GetActiveWindowXY(WinX0, WinY0)
if CheckColor(WinX0+587, WinY0+30, Color(109, 17, 35), 10) then//怪血條後端如果顏色正確就反擊
do
Print("主動怪反擊迴圈")
KeyDown("1")
Wait(300)
KeyDown("2")
Wait(300)
KeyUp("2")
Wait(300)
KeyDown("3")
Wait(300)
KeyUp("3")
Wait(100)
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//補血技能,沒有就放紅水
//如果窗口坐標(176, 674)的顏色不等於(219, 18, 13) 那麼
if not CheckColor(WinX0+185, WinY0+674, Color(222, 17, 50), 10) then
KeyDown("6")
Wait(300)
KeyUp("6")
end if
loop while CheckColor(WinX0+447, WinY0+29, Color(108, 49, 54), 10)//怪物血量底部,如果還有血就跳回去出
KeyDown("1")
Wait(300)
KeyPress("F")
Wait(300)
KeyPress("F")
Wait(300)
Keypress("ESC")
Wait(100)
KeyDown("x")
Wait(500)
KeyUp("x")
Wait(2000)
end if
GetActiveWindowXY(WinX0, WinY0)
if CheckColor(WinX0+587, WinY0+30, Color(109, 17, 35), 10) then//怪血條後端如果顏色正確就反擊
do
Print("主動怪反擊迴圈")
KeyDown("1")
Wait(300)
KeyDown("2")
Wait(300)
KeyUp("2")
Wait(300)
KeyDown("3")
Wait(300)
KeyUp("3")
Wait(100)
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//補血技能,沒有就放紅水
//如果窗口坐標(176, 674)的顏色不等於(219, 18, 13) 那麼
if not CheckColor(WinX0+185, WinY0+674, Color(222, 17, 50), 10) then
KeyDown("6")
Wait(300)
KeyUp("6")
end if
loop while CheckColor(WinX0+447, WinY0+29, Color(108, 49, 54), 10)//怪物血量底部,如果還有血就跳回去出
KeyDown("1")
Wait(300)
KeyPress("F")
Wait(300)
KeyPress("F")
Wait(300)
Keypress("ESC")
Wait(100)
KeyDown("x")
Wait(500)
KeyUp("x")
Wait(2000)
end if
GetActiveWindowXY(WinX0, WinY0)
if CheckColor(WinX0+587, WinY0+30, Color(109, 17, 35), 10) then//怪血條後端如果顏色正確就反擊
do
Print("主動怪反擊迴圈")
KeyDown("1")
Wait(300)
KeyDown("2")
Wait(300)
KeyUp("2")
Wait(300)
KeyDown("3")
Wait(300)
KeyUp("3")
Wait(100)
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//補血技能,沒有就放紅水
//如果窗口坐標(176, 674)的顏色不等於(219, 18, 13) 那麼
if not CheckColor(WinX0+185, WinY0+674, Color(222, 17, 50), 10) then
KeyDown("-")
Wait(300)
KeyUp("-")
end if
loop while CheckColor(WinX0+447, WinY0+29, Color(108, 49, 54), 10)//怪物血量底部,如果還有血就跳回去出
KeyDown("1")
Wait(300)
KeyPress("F")
Wait(300)
KeyPress("F")
Wait(300)
Keypress("ESC")
Wait(100)
KeyDown("x")
Wait(500)
KeyUp("x")
end if
do //循環
//等待2000毫秒
Wait(2000)
//直到窗口坐標(188, 42)的顏色等於(166, 60, 23)
loop until CheckColor(WinX0+253, WinY0+674, Color(103, 9, 25), 10)
end if
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//如果窗口坐標(86, 50)的顏色不等於(57, 121, 132) 那麼
//如果怪物狀態條的滿血位置找不到?
if not CheckColor(WinX0+592, WinY0+30, Color(104, 17, 33), 10) then
//執行段內語句,當運行至LOOP時,如果表達式為false則跳回DO進行下一次執行,
//直至LOOP後的表達式為true(真)時運行完畢。
do
KeyPress("TAB")
Wait(600)
loop until CheckColor(WinX0+587, WinY0+30, Color(109, 17, 35), 10)//怪物滿血的位置
GetActiveWindowXY(WinX0, WinY0)
if not CheckColor(WinX0+585, WinY0+9, Color(164, 164, 163), 10) then//npc特定圖形判斷
do
print("判斷是否為npc")
Keypress("tab")
Wait(100)
Wait(300)
loop until CheckColor(WinX0+585, WinY0+9, Color(164, 164, 163), 10)//如果符合怪的圖行及執行下一行
end if
else //找到的話…
do//執行攻擊
for ForCount = 1 to 3
KeyDown("1")
Wait(300)
KeyDown("2")
Wait(300)
KeyUp("2")
Wait(300)
KeyDown("3")
Wait(300)
KeyUp("3")
Wait(100)
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//補血技能,沒有就放紅水
//如果窗口坐標(176, 674)的顏色不等於(219, 18, 13) 那麼
if not CheckColor(WinX0+185, WinY0+674, Color(222, 17, 50), 10) then
KeyDown("6")
Wait(300)
KeyUp("6")
end if
next
loop while CheckColor(WinX0+447, WinY0+29, Color(108, 49, 54), 10)//怪物血量底部,如果還有血就跳回去
//等待500毫秒
Print("死亡")
KeyDown("1")//補打一下免的誤判
Wait(300)
KeyPress("F")
Wait(300)
KeyDown("w")
Wait(1600)
KeyUp("w")
KeyPress("F")
Wait(300)
KeyPress("F")
Wait(300)
Keypress("ESC")
Wait(2000)
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//補血技能,沒有就放紅水
//如果窗口坐標(176, 674)的顏色不等於(219, 18, 13) 那麼
if not CheckColor(WinX0+185, WinY0+674, Color(222, 17, 50), 10) then
KeyDown("6")
Wait(300)
KeyUp("6")
end if
GetActiveWindowXY(WinX0, WinY0)
if CheckColor(WinX0+451, WinY0+30, Color(109, 37, 47), 10) then//怪血條後端如果顏色正確就反擊
do
Print("主動怪反擊迴圈")
KeyDown("1")
Wait(300)
KeyDown("2")
Wait(300)
KeyUp("2")
Wait(300)
KeyDown("3")
Wait(300)
KeyUp("3")
Wait(100)
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//補血技能,沒有就放紅水
//如果窗口坐標(176, 674)的顏色不等於(219, 18, 13) 那麼
if not CheckColor(WinX0+185, WinY0+674, Color(222, 17, 50), 10) then
KeyDown("6")
Wait(300)
KeyUp("6")
end if
loop while CheckColor(WinX0+447, WinY0+29, Color(108, 49, 54), 10)//怪物血量底部,如果還有血就跳回去出
KeyDown("1")
Wait(300)
KeyPress("F")
Wait(300)
KeyPress("F")
Wait(300)
Keypress("ESC")
end if
end if
end function
以上是目前在研究的腳本之ㄧ...本人有研究過如果何抓點
抓色應該是一樣的東西!
我先說明一下我自己怎麼抓點的好了我是抓左下角的人物HP點~
怪物的滿血及死亡我都有抓~~~目前我會的是這樣~~~
但是有個很奇怪的問題~~~一開始會稍微打幾隻~~~但是一但人物休息以後~~~
就去了!!!!!!!!!怪物打也不反擊什麼也不做~~~好像停止了一樣~~~
為什麼會這樣請懂這腳本已經掛的很順的大大指導我~~~如果我用成功了將會幫大家
做非常詳細的解說~~~畢竟~我也是這幾天剛會一點點~~~在那之前已只會複製貼上
然後乾著急的人~~~希望各位能夠幫幫我感謝各位大大
補充一句~本人是玩戰神~~~會的大大請指導~~我不是伸手要~~~我想要自己會~
希望能跟還在學習的各位互相交流~~~ |