怎么在 CS2 内实现鼠标的移动? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhuxs
V2EX    游戏

怎么在 CS2 内实现鼠标的移动?

  •  
  •   zhuxs 2024-05-29 11:08:40 +08:00 1596 次点击
    这是一个创建于 510 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在研究 AI 玩 CS2 ,模型训练完毕后测试效果,遇到比较奇葩的情况: Python 几个模拟输入的库均可操作键盘按键、鼠标单击事件,唯独不支持鼠标的移动。(为什么不一起禁用了?) 翻了几个仓库,知道可行的方案是:Andunio 开发板输入、罗技驱动、Kmclass 。目前正在使用罗技驱动,但是有个问题,在移动的过程中,鼠标位置会被重置为(960,540)屏幕中心点,移动到目标点,需要分 3 次移动,速度太慢了。kmclass 驱动因为 ASUS 死活不给关 Security Boot ,W 用不了,而且还不清楚是否支持最新 W10 想问还有没有比较成熟的方案,这些太鸡肋。

    14 条回复    2024-05-31 21:07:54 +08:00
    codehz
        1
    codehz  
       2024-05-29 11:16:59 +08:00
    cs2 用 direct input 的吧,不然没法屏蔽系统层面的鼠标加速()
    另外你搞这个不怕封号的吗,还是说不进 vac 服单纯测试效果?
    CSGO
        2
    CSGO  
       2024-05-29 14:20:09 +08:00
    @codehz 题外话:如果我开外挂,自己本地开游戏会被 VAC 吗?以及开了外挂,再进入 VAC 服务器前关闭,也不会 VAC ?
    zhuxs
        3
    zhuxs  
    OP
       2024-05-29 19:01:27 +08:00
    @codehz 我想做的是一个基于计算机视觉的 DQL 强化学习 AI ,CS2 好像暂时不支持 RAW Input ,G Hub 用的也好鸡肋
    nipvc
        4
    nipvc  
       2024-05-30 09:15:44 +08:00 via iPhone
    目前正在使用罗技驱动,但是有个问题,在移动的过程中,鼠标位置会被重置为(960,540)屏幕中心点,移动到目标点,需要分 3 次移动,速度太慢了。

    移动到目标点为啥要三次移动?移动到目标点指什么?
    cs2 鼠标用的 rawinput 接口
    nipvc
        5
    nipvc  
       2024-05-30 09:17:46 +08:00 via iPhone
    模拟输入不是直接用 sendinput 就好了?
    zhuxs
        6
    zhuxs  
    OP
       2024-05-30 13:42:02 +08:00
    @nipvc 不行啊,用了没有反应:
    ```
    SendInput = ctypes.windll.user32.SendInput
    def set_pos(x, y):
    x = 1 + int(x * 65536./1920.)
    y = 1 + int(y * 65536./1080.)
    extra = ctypes.c_ulong(0)
    ii_ = pynput._util.win32.INPUT_union()
    ii_.mi = pynput._util.win32.MOUSEINPUT(x, y, 0, (0x0001 | 0x8000), 0, ctypes.cast(ctypes.pointer(extra), ctypes.c_void_p))
    command=pynput._util.win32.INPUT(ctypes.c_ulong(0), ii_)
    SendInput(1, ctypes.pointer(command), ctypes.sizeof(command))
    ```
    至于罗技是这样的:
    从当前位置(x1,y1) 移动到 目标位置(x2,y2)的过程中游戏会重置准星位置为(960,540),重置后鼠标就动不了,需要再次计算位置。
    zhuxs
        7
    zhuxs  
    OP
       2024-05-30 13:42:54 +08:00
    我买了个 CH9329 模块,用 python 给串口发型号看看可行性如何
    zhuxs
        8
    zhuxs  
    OP
       2024-05-30 13:44:04 +08:00
    罗技完整代码:
    ```
    dll_path = os.path.join("..", "驱动", "ghub_device.dll")
    global gmok, gm # Access global variables
    try:
    gm = CDLL(dll_path)
    gmok = gm.device_open() == 1
    if not gmok:
    print('未安装 ghub 或者 lgs 驱动!!!')
    exit();
    print('初始化成功!')

    except FileNotFoundError:
    print('缺少文件')

    # 鼠标移动
    def mouse_xy(x, y, abs_move = False):
    if gmok:
    gm.moveR(int(x), int(y), abs_move)
    ```
    nipvc
        9
    nipvc  
       2024-05-30 15:58:34 +08:00 via iPhone
    @zhuxs dwFlags 错了
    nipvc
        10
    nipvc  
       2024-05-30 16:05:49 +08:00 via iPhone
    cs2 写着不支持手柄,手柄能操作 cs2 ,用的 SendInput 接口
    zhuxs
        11
    zhuxs  
    OP
       2024-05-31 00:37:55 +08:00 via Android
    @nipvc SendInput 相信是可以完成按键输入的,但是对于 Mouse move 我怎么改都无法成功让视角变动一下
    nipvc
        12
    nipvc  
       2024-05-31 10:30:25 +08:00 via iPhone
    @zhuxs 上面说了,你的示例 dwFlags 写错了,不要 8 ,只要 0 ,再改下 dx 和 dy
    nipvc
        13
    nipvc  
       2024-05-31 10:30:53 +08:00 via iPhone
    @nipvc 说错了,只要 1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2876 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 13:48 PVG 21:48 LAX 06:48 JFK 09:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86