我有一个Adafruit(Gemma)/ Arduino和一个Neopixel LED戒指,我想控制魔兽世界的游戏内活动.这部分焊接和工作.
题:
有没有什么方法可以在魔兽世界和PC上的某种听众之间发送通信,然后可以通过USB将消息发送到Arduino / Gemma设备?
我的目标是创建一个桌面LED指示灯,例如如果我是治疗师,那么我希望绿/黄/红灯代表每个团队/党员的健康状况 – 因此需要以高速率(0.5 /秒)进行更新.
感谢您的反馈,并欢迎即将发布的德拉诺之王的任何未来可能性.
最佳答案
Is there any way to send communications between World of Warcraft and some sort of listener on the PC
不是直接通过WoW API.我提出了一种我从未分享过的方式,因为我的使用打破了暴雪的规则.但是我已经好几年了,所以在这里. 🙂
我使用插件在WoW窗口的左上角创建一个像素框架.我操纵了这个像素的颜色,将数据发送到外面的世界.
“监听器”应用程序可以通过三个Win32调用读取此像素:
HWND hwnd = FindWindow(NULL, "World of Warcraft"); // find WoW window
HDC hdc = GetDC(hwnd); // get the device context (graphics drawing abstraction)
COLORREF color = GetPixel(hdc, 0,0); // read the pixel at x 0, y 0
然后我解释了这个颜色的位:
4: sequence number
7: checksum: (sequence + key code + ctrl + alt + shift + win)/6
8: key code or ASCII character
1: 1: virtual key code, 0: ASCII
1: CTRL key pressed
1: ALT key pressed
1: SHIFT key pressed
2: WINDOWS key pressed
“序列号”只是检测到新消息已发布到像素的手段.校验和是为了防止在我的特殊像素未激活时进行虚假读取,例如在加载屏幕期间.其余的是按键信息.这允许我从插件生成击键.整个观察者应用程序大约是100行C.非常简单.
I wrote an in-game script editor并使用“pixelbot”来自动化游戏中的东西.在我的魔兽生命即将结束时,我为Wow编写了比播放它更有趣的乐趣,这说了很多,因为它是一个有趣的游戏. :)曾几何时我都知道有关WoW插件编程的所有知识,但我现在已经好几年了.不过,我会看看是否可以挖掘一些像素机器人Lua代码.
无论如何,您可以调整此方案以发送您喜欢的任何消息.例如:
4: sequence number
7: checksum (sequence + player number + LED color)/3
5: player number
2: LED color (0: green, 1: yellow, 2: red)
6: *reserved*
至于速度,我从来没有真正测量过它,但它会吹走你的0.5秒要求.写入和读取之间最多只有几毫秒的延迟.
that can then in turn send messages over USB to the Arduino/Gemma device?
这只是writing to the serial port in the “watcher” app并使用Arduino库从设备内的串口读取.
我有“监听器”应用程序(像素监视器)的源代码,以及将消息写入像素的魔兽方面的东西.如果您有兴趣,请告诉我,我会帮助您带外或大幅增加这篇文章的内容.