没有准星的射击游戏该如何模拟鼠标移动?
autohotkey吧
全部回复
仅看楼主
level 1
颗颗TVT 楼主
本人小白一个,想要写一个在射击游戏中,按左键开枪瞬间模拟鼠标移动的脚本,但是我试过之后发现,MouseMove指令貌似只能移动光标,我成功的让光标在点击后移动,但是入游戏内没能达到效果。仔细观察后,我发现脚本正常运行,在游戏的设置界面的光标,实现了点击后移动的功能,但是一旦进入游戏对局就无效了,这个射击游戏类似于战地,在拿着武器的时候是没有光标的,只能通过右键打开瞄准镜进行瞄准射击,而这时候脚本的移动功能完全失效。有大佬知道怎么模拟鼠标的移动吗?
2023年09月07日 14点09分 1
level 1
部分第一人称游戏mousemove并不能转动屏幕,所以要用到下面这种格式调用DLL来移动:uint为类型不用改动,0x01、0x02为鼠标事件类型(十六进制),事件类型后2个数字分别为距当前点移动的X、Y坐标,移动准星行为基本用这种方法,此段含义为向右移动17个像素并且向下移动6个像素
DllCall("mouse_event", "UInt", 0x01, "UInt", 17, "UInt", 6)
绝对坐标写法(这个挺鸡肋,因为准星转动规则不是按照绝对坐标来实现的,而只是移动鼠标光标的话,MOUSEMOVE就可以胜任):
DllCall("mouse_event",uint,0x8000|0x0001 ,int,114 * 65536 / 1024,int,514 * 65536 / 768,uint,0,int,0) ; 绝对坐标,移动到(114,514)的位置
2023年09月07日 14点09分 2
谢谢大佬,代码简直完美,复制粘贴就能用。我现在成功的在游戏中实现了射击同时准星移动。[泪][泪]我搞了一个半小时代码没有效果,最后一个个标点符号排查过去,才发现是Uint,而不是Ulnt,我敲错了[泪][泪],总共就一行代码,我的天。
2023年09月07日 22点09分
想请教下这个转动速度可以调节吗?
2024年02月27日 16点02分
牛呀! DllCall("mouse_event", "UInt", 0x01, "UInt", 17, "UInt", 6) 这句代碼神了,它解决了第一人称游戏的180度转向的应用问题[哈哈]!
2024年03月09日 12点03分
@贴吧用户_0072aaE🐾 能问一下大神,你是从哪學到这些知识的?(注:我没系統學过计算机的课程)
2024年03月09日 12点03分
level 5
@OTA
能问一下大神,你是从哪學到这些知识的?(注:我没系統學过计算机的课程)
2024年03月09日 12点03分 3
1