首先申明,大家不要把制作的腳本拿到游戲中去玩,倒不是因?yàn)樽悦橛绊懥斯叫?,而是這個腳本效果很差,確實(shí)有自瞄功能,卻相當(dāng)難用,到時候坑了隊友就不好了。這個腳本是用按鍵精靈做的,只是實(shí)現(xiàn)了基本的功能,并不成熟。
自瞄的基本原理是捕捉準(zhǔn)心周圍敵軍的顏色,如果找到了,就將鼠標(biāo)移動到找到的顏色上,然后開槍。而按鍵精靈就提供了區(qū)域模糊找色以及移動鼠標(biāo)的命令,所以很容易就能夠?qū)崿F(xiàn)這功能。fps游戲的準(zhǔn)心永遠(yuǎn)在屏幕正中央,也就是在玩fps游戲時,鼠標(biāo)永遠(yuǎn)在屏幕中央那一塊。在游戲中準(zhǔn)心移動的距離并不是實(shí)際的鼠標(biāo)移動的距離,大約是1比3的關(guān)系,也就是準(zhǔn)心移動一個像素,鼠標(biāo)實(shí)際移動3個像素,細(xì)心的朋友可以自己實(shí)驗(yàn)一下。這在后面會用到。
現(xiàn)在開始制作腳本,打開按鍵精靈,新建空白腳本,在編輯區(qū)選擇源文件。輸入setSimMode 2,意思是模擬方式選擇超級模擬,如果不是超級模擬的話腳本就運(yùn)行不了。代碼不用一個一個字母的敲,打出前幾個字母,后面會智能提醒。然后打開游戲,注意是以窗口模式打開。接下來的要做的是獲取游戲窗口句柄,代碼是hwnd=Plugin.Windows.MousePoint 。將鼠標(biāo)放在游戲窗口上就能獲取了。取得窗口句柄就能對窗口進(jìn)行各種操作了。rect = Plugin.Windows.GetClientRect(hwnd),意思是獲得窗口的大小。rect是一個字符串,用arr = split(rect,"|")將字符串分割成數(shù)組,數(shù)組的前面兩個元素就是窗口的左上角的坐標(biāo)。
可以用TracePrint arr(0)和 TracePrint arr(1) 來在控制臺輸出窗口左上角的坐標(biāo),看看是否正確獲取到了左上角的坐標(biāo)。
然后進(jìn)入守望先鋒訓(xùn)練模式,截一張圖,將圖片粘貼到畫板中,找到槍的準(zhǔn)心的坐標(biāo),記下這個坐標(biāo)?;氐骄庉媴^(qū),輸入下面的代碼,圓心X = arr(0) + 坐標(biāo)的第一個值 ,圓心Y =arr(1)+坐標(biāo)的第二個值。代碼的意思是游戲中準(zhǔn)心的坐標(biāo)為窗口左上角的坐標(biāo)加上剛剛測得的準(zhǔn)心坐標(biāo)。
然后回到畫圖,在準(zhǔn)心左上面一點(diǎn)的位置找一個點(diǎn),記下坐標(biāo),右下面一點(diǎn)的位置找一個點(diǎn),記下坐標(biāo),而自瞄的范圍就是這兩個點(diǎn)之間的區(qū)域,也就是準(zhǔn)心周圍的區(qū)域,一旦這個區(qū)域內(nèi)出敵方目標(biāo),準(zhǔn)心就移動到敵方單位上。代碼是左上角X = arr(0)+左上坐標(biāo)的第一個值,左上角Y = arr(1)+左上坐標(biāo)的第二個值,右下角X = arr(0) +右下坐標(biāo)的第一個值,右下角Y = arr(1) +右下坐標(biāo)的第二個值,原理同上。
大家不要模仿圖片的代碼,因?yàn)槊總€電腦的點(diǎn)的坐標(biāo)不一樣。
接下來就很簡單了。插入顏色圖形命令中的區(qū)域模糊找色命令,區(qū)域屏幕的四個參數(shù)就是左上角X,左上角Y,右下角X,右下角Y,相似度為0.5就行,查找方式為0,從左上往右下。然后進(jìn)入訓(xùn)練模式,截一種訓(xùn)練機(jī)器人的圖。放進(jìn)畫圖。打開按鍵精靈的抓抓工具,鼠標(biāo)移到圖片中機(jī)器人的邊緣紅色區(qū)域,在抓抓工具的放大鏡中可以看到。按ctrl+alt+1,可以記下這個點(diǎn)的顏色值,放進(jìn)區(qū)域模糊找色的命令的顏色參數(shù)中。
再介紹一個命令,moveR,這個命令控制鼠標(biāo)相對移動的距離。上個命令取得的指定顏色塊的坐標(biāo)保存在intX,itnY中,用準(zhǔn)心坐標(biāo)減去這個坐標(biāo),得到坐標(biāo)差,鼠標(biāo)移動這個坐標(biāo)差就到了指定顏色塊的位置,然后單擊左鍵。只需要重復(fù)執(zhí)行找色代碼就行,加上 do loop和延遲,完整代碼如下
mover的y坐標(biāo)可以加上20個像素,因?yàn)闇?zhǔn)心容易瞄準(zhǔn)到機(jī)器人的血條而瞄準(zhǔn)不到人,y坐標(biāo)加上20像素可以解決。
現(xiàn)在可以打開游戲測試,看到自己制作的腳本是不是很有成就感。但是這個腳本只能在游戲窗口模式下運(yùn)行,因?yàn)槭赝蠕h禁止了按鍵精靈后臺取色的插件,所以不能全屏模式下取到顏色。
可能沒有用過按鍵精靈的朋友看教程有點(diǎn)吃力,但是篇幅有限,沒辦法講的很詳細(xì),如果有不懂的可以在評論區(qū)留言談?wù)摶蛘咦约翰榭窗存I精靈的文檔。