最近在研究 AI 玩 CS2 ,模型训练完毕后测试效果,遇到比较奇葩的情况: Python 几个模拟输入的库均可操作键盘按键、鼠标单击事件,唯独不支持鼠标的移动。(为什么不一起禁用了?) 翻了几个仓库,知道可行的方案是:Andunio 开发板输入、罗技驱动、Kmclass 。目前正在使用罗技驱动,但是有个问题,在移动的过程中,鼠标位置会被重置为(960,540)屏幕中心点,移动到目标点,需要分 3 次移动,速度太慢了。kmclass 驱动因为 ASUS 死活不给关 Security Boot ,W 用不了,而且还不清楚是否支持最新 W10 想问还有没有比较成熟的方案,这些太鸡肋。
![]() |
1
codehz 2024-05-29 11:16:59 +08:00
cs2 用 direct input 的吧,不然没法屏蔽系统层面的鼠标加速()
另外你搞这个不怕封号的吗,还是说不进 vac 服单纯测试效果? |
![]() |
2
CSGO 2024-05-29 14:20:09 +08:00
@codehz 题外话:如果我开外挂,自己本地开游戏会被 VAC 吗?以及开了外挂,再进入 VAC 服务器前关闭,也不会 VAC ?
|
![]() |
3
zhuxs OP @codehz 我想做的是一个基于计算机视觉的 DQL 强化学习 AI ,CS2 好像暂时不支持 RAW Input ,G Hub 用的也好鸡肋
|
4
nipvc 2024-05-30 09:15:44 +08:00 via iPhone
目前正在使用罗技驱动,但是有个问题,在移动的过程中,鼠标位置会被重置为(960,540)屏幕中心点,移动到目标点,需要分 3 次移动,速度太慢了。
移动到目标点为啥要三次移动?移动到目标点指什么? cs2 鼠标用的 rawinput 接口 |
5
nipvc 2024-05-30 09:17:46 +08:00 via iPhone
模拟输入不是直接用 sendinput 就好了?
|
![]() |
6
zhuxs OP @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),重置后鼠标就动不了,需要再次计算位置。 |
![]() |
7
zhuxs OP 我买了个 CH9329 模块,用 python 给串口发型号看看可行性如何
|
![]() |
8
zhuxs OP 罗技完整代码:
``` 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) ``` |
10
nipvc 2024-05-30 16:05:49 +08:00 via iPhone
cs2 写着不支持手柄,手柄能操作 cs2 ,用的 SendInput 接口
|
![]() |
11
zhuxs OP @nipvc SendInput 相信是可以完成按键输入的,但是对于 Mouse move 我怎么改都无法成功让视角变动一下🙃
|
![]() |
14
zhuxs OP @nipvc 大佬,能直接给个链接吗,我按照您的方法修改了参数,还是不行......
然后我又参考了: https://github.com/TeaPearce/Counter-Strike_Behavioural_Cloning/blob/main/key_output.py https://github.com/petercunha/Pine/blob/d57b41b4c9d6536443baf7e0bf39a0f80b0fdb8e/lib/pine.py#L17C1-L17C61 https://www.reddit.com/r/learnpython/comments/bognbs/direct_input_for_python_with_pynput/ https://github.com/ofeksadlo/CSGO-Aimbot-CNN/blob/main/aimbotTensorflow.py 代码基本上都是一样的,动不了 |