手撕PUBG羅技LUA腳本(進(jìn)階部分)

????????寫(xiě)在前面,該腳本為作者本人自己開(kāi)發(fā),代碼不多,大概2000行左右,與市面上流傳的大多數(shù)鼠標(biāo)宏和腳本思路不太相同,由于同時(shí)使用了G502的鼠標(biāo)和G910的鍵盤(pán),因此功能多了好多。這個(gè)腳本的穩(wěn)定性自認(rèn)為沒(méi)多大問(wèn)題,差不多斷斷續(xù)續(xù)用了5年了;至于壓槍效果,自認(rèn)為也算是上等水平。話不多說(shuō)直接開(kāi)撕......



EnablePrimaryMouseButtonEvents(1) 使能鼠標(biāo)左鍵
SetBacklightColor(0,0,0) 設(shè)置鼠標(biāo)燈光顏色(羅技502不支持,后面涉及RGB的我PASS)
Gun = nil? 清空槍械指針(通俗點(diǎn)的解釋就是讓他什么都不指)
Gun_Table = {}? ?初始化時(shí)建立一個(gè)槍械數(shù)據(jù)庫(kù)空表

Gun_Code = "turn_off",? ?在Gun_Table["off"]表中插入Gun_Code(key)=?"turn_off"(value)
Function = function() Gun = nil?Fire_cycle = nil end??Function是一個(gè)參數(shù),這個(gè)參數(shù)包含function這個(gè)函數(shù)(子程序),這個(gè)函數(shù)的目的是為了:清空槍械指針和開(kāi)火循環(huán)子程序(主要是連點(diǎn)用)有點(diǎn)繞嘴。
Load_Gun_Table()? 加載槍械數(shù),這個(gè)是一個(gè)函數(shù)(子程序),后面帶括號(hào)的(),不管里面寫(xiě)沒(méi)寫(xiě)字,都是一個(gè)函數(shù)(子程序)。
------? ? OnEvent還沒(méi)結(jié)束,我遇見(jiàn)哪個(gè)函數(shù)就講哪個(gè)? ? ------



這個(gè)是槍械的主數(shù)據(jù),每把槍都是一個(gè)單獨(dú)的表,放在了一個(gè)總的表Gun_Table里面,找兩把槍,單獨(dú)講一下,M762(全自動(dòng))和MK47(單發(fā))
槍械代碼:Gun_Code = "M762",????? ?Gun_Code = "MK47_S_10",
槍械模式:?????????????????????????????????????????Gun_Mode = "Single_Mode",
開(kāi)槍間隔:Interval = 11.25,????????????????Interval_S = 104,
下壓次數(shù):Press_Step = 8,????????????????Press_Step =?8,? ? (1發(fā)子彈下壓8次,平滑)
屏息倍率:Ratio_Shift = 1.327,??????????Ratio_Shift = 1.327,
下蹲倍率:Ratio_Ctrl_N = 0.84,?????????Ratio_Ctrl_N = 0.85,
??????????????????Ratio_Ctrl_S = 0.84,?????????Ratio_Ctrl_S = 0.85,
倍鏡倍率:Ratio_4X = 3.65,????????????? ?Ratio_4X = 3.85,
滿配倍率:Gun_all = 0.78,?????????????????Gun_all = 0.73,
單槍倍率:Gun_Ratio = M762_Ratio,Gun_Ratio = MK47_S_10_Ratio,
彈道數(shù)據(jù):"4.4x8",? ??? ? ?????????????????????"30x1",? ? ? ? ?(第1發(fā)子彈和第2發(fā)子彈間下壓距離)
??????????????????"3.6x8",? ???????????????????????????"12x1",?????????(第2發(fā)子彈和第3發(fā)子彈間下壓距離)
??????????????????以此類推......
全自動(dòng)槍:4.4x8代表每步下壓4.4個(gè)單位距離,一發(fā)子彈下壓8次
單點(diǎn)槍械:30x1代表8步一共下壓30個(gè)像素,每步下壓30/8=3.75個(gè)單位距離
Fire_cycle = nil????清空開(kāi)火循環(huán)子程序
Fire_key = nil????? ?清空開(kāi)火按鍵(如果用鼠標(biāo)左鍵開(kāi)火,這個(gè)就沒(méi)用)













Key_Tab = {}????????????? ? ?新建一個(gè)鼠標(biāo)按鍵表,用來(lái)存取鼠標(biāo)按鍵信息
Keyboard_Tab = {}????? ?新建一個(gè)鍵盤(pán)按鍵表,用來(lái)存取鍵盤(pán)按鍵信息
鍵盤(pán)G按鍵按下后......

鼠標(biāo)按鍵按下后......



雙擊OFF按鍵,自動(dòng)按下抬起吃藥按鍵
Medicine_key = "9"? ? 把吃藥按鍵綁定為9,9在游戲里設(shè)置為打繃帶,則雙擊OFF自動(dòng)打繃帶。如果不想使用此功能,可以將Off_Key_D_Click_enable = true 改為?Off_Key_D_Click_enable = false




說(shuō)白了就是先判斷按鍵有沒(méi)有其他額外功能,如果有,執(zhí)行完了特殊功能后,就不去執(zhí)行后面的程序了。



????????通俗點(diǎn)的講,就是右鍵沒(méi)被按下的狀態(tài),有鼠標(biāo)其他按鍵按了(左鍵,中鍵、G4、G5、G6....)








我的QE是反向的,可以在程序最開(kāi)始處更改。




假如在自動(dòng)左傾狀,自動(dòng)抬起Q,傾斜標(biāo)記賦值為0,假如在自動(dòng)右傾狀態(tài),自動(dòng)抬起E,傾斜標(biāo)志賦值為0


G502鼠標(biāo)滾輪控制左右傾,偏移滾輪打開(kāi),再按關(guān)閉,同時(shí)鼠標(biāo)移動(dòng)指示。




按住Shift再按鼠標(biāo)G4按鍵,經(jīng)過(guò)修飾后的按鍵為"s4"
按住Alt再按鼠標(biāo)G5按鍵,經(jīng)過(guò)修飾后的按鍵為"a5"
同時(shí)按住Shift、Alt再按鼠標(biāo)G6按鍵,經(jīng)過(guò)修飾后的按鍵為"sa6"
同時(shí)按住Ctrl、Shift、Alt再按鼠標(biāo)G7按鍵,經(jīng)過(guò)修飾后的按鍵為"csa7"










手雷綁定鍵盤(pán)4號(hào)按鍵,拿出來(lái)雷以后程序自動(dòng)按鼠標(biāo)右鍵,然后拉環(huán)


把讀秒計(jì)時(shí)函數(shù)賦值給Fire_cycle開(kāi)火循環(huán)
假如M1按鍵釋放(這個(gè)是自動(dòng)的),則假如按鍵boom_key_button不為空且按鍵表里5這個(gè)按鍵是被按下沒(méi)在抬起狀態(tài),則每間隔100毫秒,系統(tǒng)自動(dòng)按下M1按鍵,重復(fù)這個(gè)循環(huán),直到抬起了鼠標(biāo)G5按鍵,或者讀秒超過(guò)3秒,則自動(dòng)執(zhí)行Boom_Throw()把雷扔出去。


扔雷程序:釋放鼠標(biāo)左鍵,假如次時(shí)按了SHIFT按鍵,則自動(dòng)跳一下,扔雷扔的遠(yuǎn)些。扔完雷自動(dòng)切回第一把槍。









CTRL + 鍵盤(pán)G1 把第1把槍的宏指針存入第二個(gè)寄存器

存第1把槍械指針、倍鏡信息、滿配信息等



存第2把槍械指針、倍鏡信息、滿配信息





清除兩個(gè)寄存器的指針、倍鏡信息、滿配信息

簡(jiǎn)化了修飾按鍵,封裝成函數(shù)


未完待續(xù)
