Mercerbcxc 发表于 2023-10-27 04:10

我的罗技宏运行效率慢 不能套用别人家的数据 新手求解

本帖最后由 Mercerbcxc 于 2023-10-27 05:05 编辑

最近在搞罗技宏 简单写了写参考了一个pubg老宏的写法
大概这样
AK={{x=0, y=0, d=3}, {x=0, y=2, d=3}, {x=0, y=2, d=2}, {x=0, y=1 d=3}, {x=0, y=0, d=2}, {x=0, y=2, d=3}, {x=0, y=0, d=2}, {x=0, y=2 d=3},
i=0
xy=AKhd
然后重复运行下面压枪区的代码
i=i+1
                MoveMouseRelative(xy[ i ].x, xy[ i ].y)
                Sleep(xy[ i ].d)




可以正常运行 但是我怀疑延迟不对
当我用这套代码去套用现在市面上别人宏的压枪数据
发现 不能完美压枪


简单类别了一下 把过程录制了视频
发现 别人的宏 运行速度比我的快
虽然鼠标轨迹是一样的 但是当别人的压枪数据套用到我这里就是运行慢
别人的宏鼠标已经走完全程了 我的宏还有一段路程


很不解
试着寻找原因
下面给出别人的压枪代码
function OnEvent(event, arg)
      if (wireless) then
                Sleep(1)
      end
      while IsMouseButtonPressed(1) and flag2 == 1 do
                if (indexWeapon == 17) then
                        click = true
                        SetMKeyState(3)
                        break
                end
                if moshi == 1 then
                if (indexWeapon > 0 and indexWeapon < 17 and not IsModifierPressed(ShieldCode)) then
                        if indexPattern < #Wpattern then
                              if indexPattern == 1 then
                                        timestart = GetRunningTime()
                              end               
                              MoveMouseRelative(Wpattern.x, Wpattern.y)
                              backx = backx - Wpattern.x
                              backy = backy - Wpattern.y
                              timestart = timestart + Wpattern.d
                              Sleep3(timestart)
                              indexPattern = indexPattern + 1
                        else
                              backx2 = math.floor(backx / 40)
                              backy2 = math.floor(backy / 40)
                              i = 0
                              while (i < round) do
                                        tsleep = 2* math.sqrt(math.abs(backx) * math.abs(backx) + math.abs(backy) * math.abs(backy)) / round / speed
                                        tsleep2 = math.floor(tsleep)
                                        tsleep3 = tsleep3 + tsleep - tsleep2
                                        if tsleep3 >= 1 then
                                                tsleep3 = tsleep3 - 1
                                                tsleep2 = tsleep2 + 1
                                        end
                                        Sleep2(tsleep2)
                                        backx1 = backx1 + backx / 40 - backx2
                                        backy1 = backy1 + backy / 40 - backy2
                                        if (backx1 >= 1) then
                                                backx1 = backx1 - 1
                                                backx3 = backx2 + 1
                                        else
                                                backx3 = backx2
                                        end
                                        if (backy1 >= 1) then
                                                backy1 = backy1 - 1
                                                backy3 = backy2 + 1
                                        else
                                                backy3 = backy2
                                        end
                                        MoveMouseRelative(backx3, backy3)
                                        i = i + 1
                              end
                              indexPattern = 1
                              backx = 0
                              backy = 0
                              backx1 = 0.00
                              backy1 = 0.00
                              tsleep3 = 0.00      
                              flag2 = 0                              
                              Sleep(1000)
                        end
                end


这个是瓦罗兰特的宏后面那堆back应该是使用csgo宏模版保留下来的 应该不必在意
个人不太懂这一段
                if (indexWeapon == 17) then
                        click = true
                        SetMKeyState(3)
                        break






这一段的timestart 的意图是什么
                                        timestart = GetRunningTime()
以及压枪延迟这里的
                              timestart = timestart + Wpattern.d
                              Sleep3(timestart)


这里使用了Sleep3    不解




宏的结尾处似乎是我问题的关键
结尾处的代码如下




function Sleep2(time)
      start = GetRunningTime()
      while (time + start > GetRunningTime())
      do
      end
end


function Sleep3(time)
      while (time > GetRunningTime())
      do
      end
end




为什么别人的宏运行效率这么高 甚是不解希望大佬指点一二
方便的话 希望能给我一个简易的宏 让我时候参照研究


下面是我的宏的完整代码
EnablePrimaryMouseButtonEvents(true)


AK= {{x=0,y=0,d=5},{x=0,y=0,d=5},{x=0,y=0,d=5},{x=0,y=0,d=5},{x=0,y=0,d=5},{x=0,y=6,d=18},{x=0,y=6,d=18},{x=0,y=7,d=18},{x=0,y=7,d=18},{x=0,y=7,d=18},{x=0,y=6,d=18},{x=0,y=7,d=18},{x=0,y=7,d=18},{x=0,y=7,d=18},{x=0,y=7,d=18},{x=0,y=6,d=18},{x=0,y=6,d=18},{x=0,y=7,d=18},{x=0,y=7,d=18},{x=0,y=7,d=18},{x=0,y=6,d=18},{x=0,y=6,d=18},{x=0,y=7,d=18},{x=0,y=7,d=18},{x=0,y=7,d=18},{x=0,y=12,d=18},{x=0,y=12,d=18},{x=0,y=12,d=18},{x=0,y=12,d=18},{x=0,y=12,d=18},{x=0,y=11,d=18},{x=0,y=11,d=18},{x=0,y=11,d=18},{x=0,y=12,d=18},{x=0,y=12,d=18},{x=0,y=10,d=18},{x=0,y=10,d=18},{x=0,y=11,d=18}}
xy=AK
i=0
function OnEvent(event, arg)


OutputLogMessage("event = %s, arg = %s\n", event, arg)


if (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
repeat
i=i+1
MoveMouseRelative( xy[ i ].x,xy[ i ].y )


Sleep( xy[ i ].d )


until not IsMouseButtonPressed(1)
i=0


end
end










下面是别人家的瓦罗兰特宏的下载链接
https://wwrt.lanzoue.com/in5AQ1cyrcqd
密码:8syd
https://pan.baidu.com/s/1GPi7dlpv8NZjZzsX6nSbaQ?pwd=6666
密码:6666
双网盘保险 qaq


还望有大佬解答一下我

Mercerbcxc 发表于 2023-10-27 05:15

自己又继续测试了一下自己的宏 把sleep填写固定数字
比如sleep(20)
然后发现 延迟16跟延迟15 效果差距很大
如果再加上一条sleep指令哪怕两个延迟都是1
效果也跟延迟16差不多

sgly 发表于 2023-10-27 09:32

大佬,前段时间这个罗技宏被检测的很严重,都是封禁3-7天,现在能正常使用了?然后可以共享一下脚本吗

Cool_Breeze 发表于 2023-10-27 09:43

本帖最后由 Cool_Breeze 于 2023-10-27 09:51 编辑

你可以在sleep3里面输出一下time的数。看看它到底延迟了多久。{x=0,y=7,d=18} 这个d就是等待时间。GetRunningTime() 和 sleep 单位是不是一样的。

Poilkm0dbxs 发表于 2023-10-27 10:22

我先插个眼,大佬搞好了求分享一份{:301_976:}

angle951 发表于 2023-10-27 12:02

学习了,可以拿来写CF的宏

cgcg2012 发表于 2023-10-30 22:21

被举报很容易封号

Mercerbcxc 发表于 2023-10-31 12:05

本帖最后由 Mercerbcxc 于 2023-10-31 12:12 编辑

感谢帖中大佬点拨 输出Sleep3之后豁然开朗
原理如下
Sleep3(timestart+压枪延迟)
timestart应该表示宏运行时间 宏运行时间+下一组压枪延迟
得出 在宏运行到这个时间时 开始压枪

之前在贴吧里刷到过这个的运行逻辑 虽然只有代码雏形
但是没深度联想确实有点逆天

终于领悟到了 本 土木人也算是超常发挥了

恶魔之印 发表于 2023-11-15 16:12

在非游戏界面有压枪效果,一打开游戏界面就不压枪了,是什么原因?
页: [1]
查看完整版本: 我的罗技宏运行效率慢 不能套用别人家的数据 新手求解