本帖最後由 pyng1975 於 2010-1-11 11:33 編輯
以下是小弟目前使用中的醫官腳本
大致功能有: 自動找怪打 自動回HP AP SP及補血 自動施放技能
閃NPC 防卡 防呆 反擊 死亡自動回記錄點及走回掛機點(自錄從記錄點走到掛機點的
涵數) 攻擊過久(預設30秒 自行更改)自動重新選怪
唯一美中不足不能範圍打怪 會亂跑
希望有使用或有問題的大大 盡量回覆
---------------------------------
重抓 點.色 的大大們,記得看清楚 IF CHECKCOLOR 跟 IF NOT CHECKCOLOR
的差別唷 ^^ 小弟測試過三台不同的電腦大致會有問題應該都是點.色 沒抓好所致
所以只要點.色搞定 這個腳本應該可以正常使用沒問題才對嘿
http://fhd.iwgun.net/downfile.php?action=public&file_id=4700&file_key=ZhsypraU
下載回來後解壓縮將二個檔案放一起既可
============================================
#[HOTKEY]HOME
#[EXIT]END
#[PAUSE]PAUSE
#SetArgsOnCompile
//--------------------------------
//---將遊戲改成試窗模式
//---利用判斷某點顏色的***抓色工具抓點跟顏色
//---******(每一台電腦裡色彩都不一定相同一定要重抓)****
//---HP()血量的迴圈
//---Find()尋找怪物迴圈
//---AT()攻擊加回血的迴圈
//---DP()反擊迴圈
//---Find2()防呆迴圈
//---FuncTime()技能迴圈
//---SP()體力判斷迴圈
//---AP()原能判斷迴圈
//---按鍵設置[1.普通攻擊][2.技能攻擊][3.技能攻擊][4.技能攻擊][5.技能攻擊]
//---輔助狀態設置[S_1] - [S_7]
//---補血鍵 [6.高階治癒][7.全體治癒][8.治癒]
//---至於AP不足時自動坐下回覆
//================= 進程 =======================
//=================== 按下HOME執行 ==============
function Main
# 在此添加由嚮導創建或錄製的代碼
SetInputMode(3) //驅動模式,很多遊戲會阻擋SP的部份功能,可以套用此函數
init()
RT()
FuncTime()
while true //循環開始
Find2()
FuncTime()
HP()
SP()
AP()
Dp()
Find()
At()
wend //返回while開始循環
end function
dim Time1 = -1
dim Time2 = -1
dim Time3 = -1
dim Time4 = -1
dim Time5 = -1
dim Time6 = -1
dim Time7 = -1
dim time8 = 0
dim S1,S2,S3,S4,S5,S6,S7,Z1,Z2,Z3,Z4,Z5,Z6,Z7
function init
S1=GetConfigString("輔助鍵S_1冷卻時間")
Z1=GetConfigNumber("輔助鍵S_1施展時間")
S2=GetConfigString("輔助鍵S_2冷卻時間")
Z2=GetConfigNumber("輔助鍵S_2施展時間")
S3=GetConfigString("輔助鍵S_3冷卻時間")
Z3=GetConfigNumber("輔助鍵S_3施展時間")
S4=GetConfigString("輔助鍵S_4冷卻時間")
Z4=GetConfigNumber("輔助鍵S_4施展時間")
S5=GetConfigString("輔助鍵S_5冷卻時間")
Z5=GetConfigNumber("輔助鍵S_5施展時間")
S6=GetConfigString("輔助鍵S_6冷卻時間")
Z6=GetConfigNumber("輔助鍵S_6施展時間")
S7=GetConfigString("輔助鍵S_7冷卻時間")
Z7=GetConfigNumber("輔助鍵S_7施展時間")
end function
function SKeyPress(key)
KeyDown("SHIFT")
Wait(100)
KeyPress(key)
Wait(100)
KeyUp("SHIFT")
end function
Function AKeypress(Key)
KeyDown("Alt")
Wait(100)
KeyPress(Key)
Wait(100)
KeyUp("Alt")
end function
//================== 程序迴圈 ====================
//==================== 復活 ====================
Function Rt()
GetActiveWindowXY(WinX0, WinY0)
//如果窗口坐標(550, 234)的顏色等於(255, 255, 255) 那麼
if CheckColor(WinX0+550, WinY0+229, Color(255, 255, 255), 10) then
//以下為嚮導添加的代碼
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//在窗口坐標(549, 235)單擊鼠標左鍵
MouseLeftClick(WinX0+550, WinY0+229)
Wait(2000)
AP()
GoBack()
end if
end function
//==================== 輔助技能 =================
# 定時器添加方法:
# 步驟1. 將以下代碼加入腳本末尾
function FuncTime()
//定時器代碼,每Interval秒執行一次
Print("輔助技能加持中")
if S1 <> "=" then
if Time1 < 0 or GetTime() - Time1 > CNum(S1) * 1000 then
Time1 = GetTime()
KeyPress("F1")
Wait(100)
SKeyPress("1")
Print("施放按鍵S_1輔助技能")
Wait(Z1)
keyPress("Esc")
Wait(100)
end if
end if
if S2 <> "=" then
if Time2 < 0 or GetTime() - Time2 > CNum(S2) * 1000 then
Time2 = GetTime()
KeyPress("F1")
Wait(100)
SKeyPress("2")
Print("施放按鍵S_2輔助技能")
Wait(Z2)
KeyPress("Esc")
Wait(100)
end if
end if
if S3 <> "=" then
if Time3 < 0 or GetTime() - Time3 > CNum(S3) * 1000 then
Time3 = GetTime()
KeyPress("F1")
Wait(100)
SKeyPress("3")
Print("施放按鍵S_3輔助技能")
Wait(Z3)
KeyPress("Esc")
Wait(100)
end if
end if
if S4 <> "=" then
if Time4 < 0 or GetTime() - Time4 > CNum(S4) * 1000 then
Time4 = GetTime()
KeyPress("F1")
Wait(100)
SKeyPress("4")
Print("施放按鍵S_4輔助技能")
Wait(Z4)
KeyPress("Esc")
Wait(100)
end if
end if
if S5 <> "=" then
if Time5 < 0 or GetTime() - Time5 > CNum(S5) * 1000 then
Time5 = GetTime()
KeyPress("F1")
Wait(100)
SKeyPress("5")
Print("施放按鍵S_5輔助技能")
Wait(Z5)
KeyPress("Esc")
Wait(100)
end if
end if
if S6 <> "=" then
if Time6 < 0 or GetTime() - Time6 > CNum(S6) * 1000 then
Time6 = GetTime()
KeyPress("F1")
Wait(100)
SKeyPress("6")
Print("施放按鍵S_6輔助技能")
Wait(Z6)
KeyPress("Esc")
Wait(100)
end if
end if
if S7 <> "=" then
if Time7 < 0 or GetTime() - Time7 > CNum(S7) * 1000 then
Time7 = GetTime()
KeyPress("F1")
Wait(100)
SKeyPress("7")
Print("施放按鍵S_7輔助技能")
Wait(Z7)
KeyPress("Esc")
Wait(100)
end if
end if
end function
//====================== HP ===================
function HP()
print("HP檢查點")
GetActiveWindowXY(WinX0, WinY0)
//如果窗口坐標(153, 708)的顏色不等於(24, 26, 35) 那麼
if CheckColor(WinX0+153, WinY0+708, Color(24, 26, 35), 10) then
Print("HP不足,回血中")
KeyPress("x")
Wait(100)
do
Dp()
Find2()
Rt()
loop until CheckColor(WinX0+251, WinY0+707, Color(152, 24, 45), 10)
end if
end Function
//=================== AP ======================
Function AP()
Print("AP檢查點")
GetActiveWindowXY(winX0,WinY0)
if CheckColor(WinX0+144, WinY0+722, Color(24, 25, 35), 10) then
print("AP不足,回補AP")
KeyPress("x")
Wait(500)
do
Dp()
Find2()
Rt()
loop until CheckColor(WinX0+249, WinY0+721, Color(148, 118, 34), 10)
end if
end Function
//==================== SP ======================
Function SP()
Print("SP檢查點")
GetActiveWindowXY(winX0,WinY0)
if not CheckColor(WinX0+141, WinY0+737, Color(44, 61, 147), 10) then
print("SP不足,回補SP")
KeyPress("x")
Wait(500)
do
DP()
Find2()
RT()
loop until CheckColor(WinX0+255, WinY0+737, Color(42, 49, 124), 10)
end if
end Function
//======================= 反擊 ==================
Function Dp()
GetActiveWindowXY(WinX0, WinY0)
if CheckColor(WinX0+455, WinY0+29, Color(160, 38, 58), 10) then//怪血條後端如果顏色正確就反擊
do
Print("反擊主動怪")
Keypress("1")//普通攻擊
Wait(500)
KeyPress("2")//技能攻擊
Wait(500)
Keypress("3")//技能攻擊
Wait(500)
KeyPress("4")//技能攻擊
Wait(500)
KeyPress("5")//技能攻擊
Wait(500)
Rt()
GetActiveWindowXY(WinX0, WinY0)
//如果窗口坐標(197, 707)的顏色不等於(130, 29, 43) 那麼
if not CheckColor(WinX0+197, WinY0+707, Color(130, 29, 43), 10) then
Print("人物血量不足,補血中")
AkeyPress("5")
Wait(100)
KeyPress("F1")
Wait(100)
KeyPress("6")
Wait(2000)
KeyPress("7")
Wait(1000)
KeyPress("Tab")
Wait(100)
do
Find2()
Rt()
loop While CheckColor(WinX0+250,WinY0+723, Color(110,82,14),10)
end if
loop Until CheckColor(WinX0+451, WinY0+30, Color(24, 26, 29), 10)
print("攻擊結束,檢查怪物血量")
print("怪物死亡 撿取物品")
KeyPress("f")
wait(100)
KeyPress("f")
Wait(100)
KeyPress("x")
Wait(100)
RT()
AP()
end if
end function
//==================== 尋找怪物 ===================
Function Find()
FindWindow("未來啟示錄",WinID)
ActiveWindow(WinID)
Wait(50)
KeyPress("F1")
Wait(100)
KeyPress("8")
Wait(1500)
KeyPress("ESC")
Wait(500)
GetActiveWindowXY(WinX0, WinY0)
if not CheckColor(WinX0+589, WinY0+30, Color(118, 19, 38), 10) then
do
Print("尋找目標")
keyPress("tab")
Wait(500)
KeyPress("q")
Wait(500)
KeyPress("a")
Wait(500)
loop Until CheckColor(WinX0+589, WinY0+30, Color(118, 19, 38), 10)
Time8=Time8+1 //偵測到npc就Time5+1次,如最後大於200次重新回到復活點
exit function //
end if
GetActiveWindowXY(WinX0, WinY0)
if not CheckColor(WinX0+585, WinY0+9, Color(164, 164, 163), 10) then//npc特定圖形判斷
do
print("判斷是否為npc")
Keypress("tab")
Wait(500)
KeyPress("q")
Wait(500)
KeyPress("q")
Wait(500)
KeyPress("q")
Wait(500)
loop until CheckColor(WinX0+585, WinY0+9, Color(164, 164, 163), 10)//如果符合怪的圖行及執行下一行
Find2()
end if
end Function
//==================== 攻擊開始 =================
Function At() //攻擊開始
Time8=0 //有打怪就把Time8設為0,這樣就不會超過200次
stt=GetTime()//stt為打怪超過n秒便重新尋找
GetActiveWindowXY(WinX0, WinY0)
do
Print("攻擊中")
Keypress("1")//普攻
Wait(100)
KeyPress("2")//技能
Wait(100)
Keypress("3")//技能
Wait(100)
KeyPress("4")//技能
Wait(100)
KeyPress("5")//技能
Wait(100)
if gettime()-stt > 30*1000 then//打怪超過n秒,就按下QD移動
print("卡怪!!!Tab換怪")
KeyDown("Q")
//等待800毫秒
Wait(800)
KeyDown("D")
//等待800毫秒
Wait(800)
KeyUp("Q")
Wait(100)
KeyUp("D")
Wait(100)
keypress("TAB") //換怪
stt=GetTime() //重新設定打怪時間
RT()
Find2()
end if
if CheckColor(WinX0+611, WinY0+186, Color(250, 210, 0), 10) then
//如果窗口坐標(611, 186)的顏色等於(250, 210, 0) 那麼
KeyDown("q")
Wait(100)
KeyDown("d")
wait(1000)
KeyUp("q")
KeyUp("d")
Wait(100)
end if
GetActiveWindowXY(WinX0, WinY0)
if CheckColor(WinX0+578, WinY0+172, Color(255, 0, 0), 10) then
KeyDown("q")
Wait(1000)
KeyUp("q")
wait(100)
end if
GetActiveWindowXY(WinX0, WinY0)
if CheckColor(WinX0+142, WinY0+373, Color(255, 0, 0), 10) then
KeyDown("q")
Wait(1000)
KeyUp("q")
Wait(100)
end if
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//如果窗口坐標(599, 160)的顏色等於(67, 72, 62) 那麼
if CheckColor(WinX0+599, WinY0+160, Color(67, 72, 62), 10) then
KeyDown("q")
Wait(1000)
KeyUp("q")
Wait(100)
end if
GetActiveWindowXY(WinX0, WinY0)
//如果窗口坐標(197, 707)的顏色不等於(130, 29, 43) 那麼
if not CheckColor(WinX0+197, WinY0+707, Color(130, 29, 43), 10) then
Print("人物血量不足,補血中")
KeyDown("Alt")
Wait(500)
KeyDown("5")
Wait(500)
KeyUp("Alt")
KeyUp("5")
Wait(100)
KeyPress("F1")
Wait(100)
KeyPress("6")
Wait(2000)
KeyPress("7")
Wait(1500)
KeyPress("Esc")
Wait(100)
KeyPress("Tab")
Wait(100)
Find2()
AP()
end if
do
Rt()
loop While CheckColor(WinX0+250,WinY0+723, Color(110,82,14),10)
KeyPress("f")
Wait(500)
KeyPress("f")
Wait(500)
loop Until CheckColor(WinX0+451, WinY0+30, Color(24, 26, 29), 10)
print("第一次攻擊結束,檢查怪物血量")
print("怪物死亡 撿取物品")
KeyPress("f")
wait(500)
KeyPress("f")
Wait(500)
KeyPress("f")
Wait(500)
dp()
RT()
end function
//=================== Find2 =================
Function Find2()
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//如果窗口坐標(586, 8)的顏色等於(71, 174, 189) 那麼
if CheckColor(WinX0+586, WinY0+8, Color(71, 174, 189), 50) then
KeyPress("Tab")
Wait(100)//以下為嚮導添加的代碼
end if
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//如果窗口坐標(509, 9)的顏色等於(255, 255, 255) 那麼
if CheckColor(WinX0+509, WinY0+9, Color(255, 255, 255), 10) then
KeyPress("Tab")
Wait(100)
end if
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
//如果窗口坐標(553, 185)的顏色等於(191, 0, 0) 那麼
if CheckColor(WinX0+553, WinY0+185, Color(191, 0, 0), 10) then
KeyPress("Tab")
Wait(100)
//取窗口原點坐標
GetActiveWindowXY(WinX0, WinY0)
end if
//如果窗口坐標(600, 190)的顏色等於(255, 0, 0) 那麼
if CheckColor(WinX0+600, WinY0+190, Color(255, 0, 0), 10) then
KeyDown("q")
Wait(100)
KeyDown("d")
Wait(1000)
KeyUp("Q")
KeyUp("d")
end if
end function
//================== GoBack ==================
function goback()
print("開始走回掛機區")
//取得當前活動窗口的坐標
GetActiveWindowXY(WinX0, WinY0)
//鼠標向下滾動距離120
MouseWheel(-12000) //將畫面拉至最大,以下請自行錄製
//取得當前活動窗口的坐標
GetActiveWindowXY(WinX0, WinY0)
KeyPress("W", 5312)
Wait(578)
KeyPress("A", 485)
Wait(78)
KeyPress("A", 47)
Wait(1828)
KeyPress("D", 140)
Wait(860)
KeyPress("A", 78)
Wait(390)
KeyPress("W", 17641)
Wait(453)
KeyPress("D", 641)
Wait(703)
KeyPress("W", 2547)
Wait(484)
KeyPress("A", 735)
Wait(890)
KeyDown("W")
Wait(1953)
KeyPress("D", 172)
Wait(1844)
KeyPress("A", 47)
Wait(16219)
KeyUp("W")
Wait(625)
KeyPress("D", 625)
Wait(515)
KeyPress("W", 11235)
Wait(531)
KeyPress("A", 562)
Wait(532)
KeyPress("W", 10656)
keypress("z")
wait(1000)
Time8=0 //將Time8設為0,避免大於200次後,又按到回到復活點,白走一趟
end function |