關(guān)于APEX抖槍宏的一些原理及適應(yīng)性調(diào)整
發(fā)這個(gè)貼子是為了讓大家對(duì)于這個(gè)宏的一些了解,主要是看不慣那些賣宏的狗,一次性消費(fèi)不管你售后的服務(wù),目前你買到的宏基本也就那幾種,都是通過ghub編寫腳本來模擬手部抖動(dòng),如果你看到某音或者bz這種都?jí)撼梢粋€(gè)點(diǎn)的,光靠宏是做不到這樣的,都是抖槍加控槍的成果,說白了還是得自己去控槍,那么宏的意義是什么,可能就是中遠(yuǎn)距離打一梭子罷了,這個(gè)東西就是個(gè)輔助,開了的壞處就是你的畫面會(huì)抖動(dòng),會(huì)糊,這樣的話在視覺上會(huì)有影響,這樣也影響你跟槍,所以開不開,還是看個(gè)人,開了也就是場(chǎng)傷高一點(diǎn)點(diǎn),區(qū)別不大,這游戲說白了光靠宏是沒什么太大的提升的。
我沒學(xué)過編程,我就以我的理解講這個(gè)宏是怎么樣的,先來看我在網(wǎng)上搜到的第一個(gè)宏(關(guān)鍵詞:apex羅技抖槍宏)
EnablePrimaryMouseButtonEvents(true)
doudong = 1
R = 2
openkey=6
function OnEvent(event, arg)
OutputLogMessage("event = %s, arg = %s\n", event, arg)
if (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
if (doudong == 1) then
repeat
Sleep(1)
MoveMouseRelative(-R,R)
Sleep(2)
MoveMouseRelative(R,R)
Sleep(1)
MoveMouseRelative(R,-R)
Sleep(2)
MoveMouseRelative(-R,-R)
until not IsMouseButtonPressed(1)
end
end
if (event == "MOUSE_BUTTON_PRESSED" and arg == openkey) then
if (doudong == 1) then
doudong = 0
else
doudong =1
end
end
end
這個(gè)原理是正方形抖動(dòng),你可以把R值理解成一個(gè)代數(shù),MoveMouseRelative(R,R)翻譯過來就是移動(dòng)鼠標(biāo),(R,R)就是直角坐標(biāo)系,如圖

這個(gè)就是純抖動(dòng)不帶壓槍,從左上--右上--右下--左下,循環(huán)抖動(dòng),openkey就是宏的開關(guān),sleep值我不太清楚,我試了一下這個(gè)和抖動(dòng)速度好像有關(guān)系。這是一開始的無壓槍宏,然后讓我們來看一個(gè)更高級(jí)的:
R = 5??
E = 3??
P = 0??
switch=1??
EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
OutputLogMessage("Event: "..event.." Arg: "..arg.."\n")
? if (event == "MOUSE_BUTTON_PRESSED" and arg == 6) then
? ? if (switch==0) then?
? ? ? switch=1
? ? ? else
? ? ? switch=0
? ? end
? end
? if (IsMouseButtonPressed(3)) then
? ? ? if (arg == 1 and switch == 1) then
? ? ? MoveMouseRelative(0,P)
? ? ? repeat
? ? ? Sleep(10)
? ? ? MoveMouseRelative(-R,R)
? ? ? Sleep(10)
? ? ? MoveMouseRelative(R,R)
? ? ? Sleep(10)
? ? ? MoveMouseRelative(R,-R)
? ? ? Sleep(10)
? ? ? MoveMouseRelative(-R,-R)
? ? ? Sleep(10)
? ? ? MoveMouseRelative(0,E)
? ? ? until not IsMouseButtonPressed(1)
? ? end
? end
end
這個(gè)宏和上一個(gè)的區(qū)別就是,這個(gè)沒有開關(guān),默認(rèn)為一直開,觸發(fā)條件是按住鼠標(biāo)右鍵,就是開鏡宏,所以在用小幫手和復(fù)合弓的時(shí)候你會(huì)非常難受。同樣是可以參考直角坐標(biāo)系的圖片,只不過這個(gè)是增加的下壓,在畫正方形的時(shí)候下壓,和第一個(gè)區(qū)別就是多了個(gè)E,E就是下壓的值你可以理解成,你在畫正方形的同時(shí)有個(gè)人在前面拽你的紙,所以他的軌跡應(yīng)該是這樣的

左邊是在2R>E時(shí),右邊是2R<E時(shí)。
前幾天我朋友買了一個(gè),不過那個(gè)是加密過的,賣**100圓子,那個(gè)是第一種的升級(jí)版,奸商還加密過,專門給看不懂的人,有一說一真沒必要花這些錢,說白了,還是圖個(gè)樂,用宏打不過的還是打不過,會(huì)玩的沒必要用。
EnablePrimaryMouseButtonEvents(true)
turn=0
down=0
E=3
function OnEvent(event, arg)
local offset
local recovery_offset
local downcount
OutputLogMessage("event = %s, arg = %s\n", event, arg)
if(event== "MOUSE_BUTTON_PRESSED" and arg==1 and turn==1) then
downcount=0
repeat
-- OutputLogMessage("%d\n",downcount)
downcount=downcount+1
if(downcount<=100 and down==1) then
MoveMouseRelative(0,1)
end
?function (event, arg)? ??
on = true?
?end
if output then
OutputLogMessage
?OutputLogMessage
?OutputLogMessage
?end
offset=math.random(4,7)
recovery_offset = -offset
Sleep(4)
MoveMouseRelative(offset,offset)
Sleep(7)
MoveMouseRelative(recovery_offset,recovery_offset)
Sleep(7)
MoveMouseRelative(0,E)
until not IsMouseButtonPressed(1)
end
if(event== "MOUSE_BUTTON_PRESSED" and arg==5) then?
if(turn==0) then
turn=1
else
turn=0
end
end
if(event== "MOUSE_BUTTON_PRESSED" and arg==5) then
if(down==0) then
down=1
down=0
end
end
end? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? MoveMouseTo(math.random(1,65535),math.random(1,65535))? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Sleep(50)? ? ? ? ? ? ? ? ? ? ? ? ??
從這段
offset=math.random(4,7)
recovery_offset = -offset
就可以看出來,這位奸商只不過是換湯不換藥,正方形四點(diǎn)抖動(dòng)加下壓變成了兩點(diǎn)抖動(dòng)下壓,實(shí)測(cè)出來,兩點(diǎn)抖動(dòng)的效果是大于四點(diǎn)抖動(dòng)的,如果你想要實(shí)現(xiàn)開鏡宏的兩點(diǎn)抖動(dòng),那很簡(jiǎn)單,刪除正方形的兩個(gè)角就ok了:
R = 5??
E = 3??
P = 0??
switch=1??
EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
OutputLogMessage("Event: "..event.." Arg: "..arg.."\n")
? if (event == "MOUSE_BUTTON_PRESSED" and arg == 6) then
? ? if (switch==0) then?
? ? ? switch=1
? ? ? else
? ? ? switch=0
? ? end
? end
? if (IsMouseButtonPressed(3)) then
? ? ? if (arg == 1 and switch == 1) then
? ? ? MoveMouseRelative(0,P)
? ? ? repeat
??? ? Sleep(10)
? ? ? MoveMouseRelative(R,R)
? ? ? Sleep(10)
? ? ? MoveMouseRelative(-R,-R)
? ? ? Sleep(10)
? ? ? MoveMouseRelative(0,E)
? ? ? until not IsMouseButtonPressed(1)
? ? end
? end
end
所以說這個(gè)東西,他再跟你吹怎么厲害,也是機(jī)械式的,不可能只靠開槍就壓成一個(gè)點(diǎn),每把槍的彈道也是不一樣的,壓成一個(gè)點(diǎn)的,都是需要經(jīng)過時(shí)間的努力養(yǎng)成的,還是那句話,抖槍宏,好處就是中遠(yuǎn)距離對(duì)槍不會(huì)太散,但是對(duì)面不會(huì)站著和你硬對(duì),基本打到黃金以上,你就發(fā)現(xiàn)這個(gè)東西其實(shí)很雞肋,抖動(dòng)畫面變糊甚至影響你跟槍,官方允許ghub的存在說明這個(gè)游戲槍法的影響其實(shí)微乎其微,想要提升技術(shù)還是多練控槍壓槍,用宏會(huì)讓你變得依賴它,然后傻站著硬對(duì),結(jié)果就是跟槍不行,被對(duì)面躲掉,你打?qū)γ嬉凰笞訉?duì)面打你一梭子,有什么用呢,倆人拉電繼續(xù)對(duì)嗎,那怎么不玩狙呢,游戲理解也很重要,發(fā)這個(gè)貼子主要是想大家不要花冤枉錢,不讓無良商家得逞,綠色游戲健康你我他。