关于APEX抖枪宏的一些原理及适应性调整
发这个贴子是为了让大家对于这个宏的一些了解,主要是看不惯那些卖宏的狗,一次性消费不管你售后的服务,目前你买到的宏基本也就那几种,都是通过ghub编写脚本来模拟手部抖动,如果你看到某音或者bz这种都压成一个点的,光靠宏是做不到这样的,都是抖枪加控枪的成果,说白了还是得自己去控枪,那么宏的意义是什么,可能就是中远距离打一梭子罢了,这个东西就是个辅助,开了的坏处就是你的画面会抖动,会糊,这样的话在视觉上会有影响,这样也影响你跟枪,所以开不开,还是看个人,开了也就是场伤高一点点,区别不大,这游戏说白了光靠宏是没什么太大的提升的。
我没学过编程,我就以我的理解讲这个宏是怎么样的,先来看我在网上搜到的第一个宏(关键词: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
这个原理是正方形抖动,你可以把R值理解成一个代数,MoveMouseRelative(R,R)翻译过来就是移动鼠标,(R,R)就是直角坐标系,如图

这个就是纯抖动不带压枪,从左上--右上--右下--左下,循环抖动,openkey就是宏的开关,sleep值我不太清楚,我试了一下这个和抖动速度好像有关系。这是一开始的无压枪宏,然后让我们来看一个更高级的:
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
这个宏和上一个的区别就是,这个没有开关,默认为一直开,触发条件是按住鼠标右键,就是开镜宏,所以在用小帮手和复合弓的时候你会非常难受。同样是可以参考直角坐标系的图片,只不过这个是增加的下压,在画正方形的时候下压,和第一个区别就是多了个E,E就是下压的值你可以理解成,你在画正方形的同时有个人在前面拽你的纸,所以他的轨迹应该是这样的

左边是在2R>E时,右边是2R<E时。
前几天我朋友买了一个,不过那个是加密过的,卖**100圆子,那个是第一种的升级版,奸商还加密过,专门给看不懂的人,有一说一真没必要花这些钱,说白了,还是图个乐,用宏打不过的还是打不过,会玩的没必要用。
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
就可以看出来,这位奸商只不过是换汤不换药,正方形四点抖动加下压变成了两点抖动下压,实测出来,两点抖动的效果是大于四点抖动的,如果你想要实现开镜宏的两点抖动,那很简单,删除正方形的两个角就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
所以说这个东西,他再跟你吹怎么厉害,也是机械式的,不可能只靠开枪就压成一个点,每把枪的弹道也是不一样的,压成一个点的,都是需要经过时间的努力养成的,还是那句话,抖枪宏,好处就是中远距离对枪不会太散,但是对面不会站着和你硬对,基本打到黄金以上,你就发现这个东西其实很鸡肋,抖动画面变糊甚至影响你跟枪,官方允许ghub的存在说明这个游戏枪法的影响其实微乎其微,想要提升技术还是多练控枪压枪,用宏会让你变得依赖它,然后傻站着硬对,结果就是跟枪不行,被对面躲掉,你打对面一梭子对面打你一梭子,有什么用呢,俩人拉电继续对吗,那怎么不玩狙呢,游戏理解也很重要,发这个贴子主要是想大家不要花冤枉钱,不让无良商家得逞,绿色游戏健康你我他。