本帖最後由 bulabula 於 2009-10-29 11:01 編輯
以下是小弟結合了諸位大大的各功能所改編的~如果有撞到腳本還請各大大多包含指教!!
測試已完全!!
#[HOTKEY][EXT]SCROLL
dim sum=1,hp,hp1,hp2,mp,mp1,mp2,xp,pet,pet1,pet2,pmp,pmp1,pmp2
dim RunNO1=0,Scope,MyPosX,MyPosY,PosXNo1,PosYNo1,ID,find //加入(全局變量)
function main
IF RunNO1=0 then
GetActiveWindowID(ID)
Print("Pid: " &ID)
check()
PosXNo1=MyPosX
PosYNo1=MyPosY
Scope=5 ///////////////掛機範圍(自行設定)///////////////
print("人物座標: " &PosXNo1 & "," & PosYNo1)
RunNO1=1
end if
//
SetInputMode(4)
SetTimer("skill1", 800*1000, true) //施放技能1,每10分鐘=600秒
Wait(500)
SetTimer("skill2", 1800*1000, true) //揓技技能2,每30分鐘=1800秒
//如關畢討罰請在 SetTimer("skill3", 2*1000, true) 前面加上 "//"
Wait(500)
// SetTimer("skill3", 2*1000, true) //討伐書計時器
while true
GO()
wend
end function
function GO
KSP_ReadMemory(&H1C1027C,2,find)
if find=0 then
ReturnScope() //超出掛機範圍,回掛機點
//找尋寶箱
MouseMove(521, 356)
MouseRightClick(219)
MouseMove(499, 439)
MouseRightClick(281)
MouseMove(526, 270)
MouseRightClick(219)
MouseMove(394, 353)
MouseRightClick(172)
MouseMove(606, 369)
MouseRightClick(140)
MouseMove(607, 298)
MouseRightClick(188)
MouseMove(417, 409)
MouseRightClick(156)
MouseMove(443, 296)
MouseRightClick(172)
MouseMove(574, 417)
MouseRightClick(250)
MouseMove(570, 309)
MouseRightClick(406)
MouseMove(422, 320)
MouseRightClick(234)
Wait(10)
//找尋怪物
KeyPress("`")
else
while find>0
KeyPress("1")
wait(500)
check() //邊打邊檢查hp、mp、寵hp
KSP_ReadMemory(&H1C1027C,2,find)
wend
check() //打完再檢查一下hp、mp、寵hp
print("第"& sum &"隻怪")
print("HP:"& hp2 & "%|MP:" & mp2 & "%|XP:" & xp & "|寵HP:" & pet2 & "%")
sum=sum+1
end if
end function
function Check //檢查hp、mp、xp、寵血
KSP_ReadMemory(&H163A8A4,2,hp)
KSP_ReadMemory(&H163A8C0,2,hp1)
KSP_ReadMemory(&H163A8A8,2,mp)
KSP_ReadMemory(&H163A8C4,2,mp1)
KSP_ReadMemory(&H1A4F4B0,2,xp)
KSP_ReadMemory(&H1676E28,2,pet)
KSP_ReadMemory(&H1676E2C,2,pet1)
###########################
KSP_ReadMemory(&H163A86C,3,MyPosX)
KSP_ReadMemory(&H163A870,3,MyPosY)
MyPosX=int(MyPosX)
MyPosY=int(MyPosY)
###########################
hp2=int(hp/hp1*100)
mp2=int(mp/mp1*100)
pet2=int(pet/pet1*100)
if hp2<80 then //hp低於80%,按補血鍵
KeyPress("F1")
end if
if mp2<70 then //hp低於50%,按補mp鍵
KeyPress("F2")
end if
if pet2<80 then //寵的血低於80%,按吃藥鍵
KeyPress("F3")
end if
if xp=1001 then //xp滿,自動放 開xp=1000 關xp=1001
KeyPress("f4")
end if
end function
function skill1 //技能1按鍵
KeyPress("f5")
end function
function skill2 //技能2按鍵
KeyPress("f6")
end function
function skill3 //討伐書鍵
if sum>63 then //設定討伐書所要打的怪總數,請多加兩隻比較準確
KeyPress("A", 203)
Wait(2000)
//討伐書原點坐標:
MouseMove(827, 399) //<== 這邊更換你自己的討罰書座標
//單擊鼠標右鍵
MouseRightClick(203)
Wait(1000)
KeyPress("RETURN", 250)
Wait(2000)
KeyPress("A", 203)
Wait(1000)
sum=0 //歸零,重新計算怪死亡數
end if
end function
###########################
function ReturnScope
if PosXNo1-MyPosX>Scope Or PosXNo1-MyPosX<-Scope Or PosYNo1-MyPosY>Scope Or PosYNo1-MyPosY<-Scope then
Print("掛機範圍:" &Scope & " 已超出範圍:" & PosXNo1-MyPosX & "," & PosYNo1-MyPosY)
if find>0 then //如果有目標,可能是打怪中,取消選取)
KeyPress("Esc")
Wait(1000)
end if
Check_Tab(1)
MouseLeftClick(MaptoPosX(PosXNo1), MaptoPosY(PosYNo1))
Wait(5000) //回掛機點的走路時間(自己設,看你的範圍設多大,秒數自己加...)
Check_Tab(0)
end if
end function
# Tab地圖開和關
function Check_Tab(value)
//調用方式Check_Tab(value) value=0 關閉 value=1 開啟
KSP_ReadMemory(&H01C8FD10,2,chktab)
while chktab<>value
Keypress("Tab")
Wait(400)
KSP_ReadMemory(&H01C8FD10,2,chktab)
wend
end function
# Tab地圖開和關
# 地圖座標轉視窗座標
//調用方式 MouseLeftClick(MaptoPosX(地圖座標X), MaptoPosY(地圖座標Y))
function MaptoPosX(MapX)
MaptoPosX=int(167+(MapX*1.56))
end function
function MaptoPosY(MapY)
MaptoPosY=int(97+(MapY*1.56))
end function
# 地圖座標轉視窗座標
==================討罰書取點設定======================
在Seraph程式裡左邊有個腳本嚮導、找基本動作、連點『點擊鼠標』
出現『點擊鼠標』小視窗、點『錄』
來到錄製點信息、點『開始錄製點信息』
到神鬼奇兵你會看到一個跟著游標的小視窗
它堶惘部y屏幕坐標』、『窗口坐標』(在神鬼奇兵有開小視窗請把它關了,因會看不到『窗口坐標』)
打開背包,固定好位置(如背包視窗右下對齊神鬼奇兵視窗右下)
把游標移到討伐書位置,
記下『窗口坐標』資料、按F12
跳回Seraph程式,關了那些小視窗
把『窗口坐標』參數加入MouseMove(X,Y) |