当我在寻找一种创建插件的方法来检查WoW-PvP-Queue-Status来创建REST服务时,我被告知无法在插件和主机之间建立实时连接。 REST服务。因此,我在考虑解决问题的另一种方法,并提出了要点,在这里,我要分析“WoW窗口”并寻找一种视觉模式来完成我要寻找的东西。
每当程序的用户正在排队等候战场时,我的程序都应该检查并告诉我,并且还应该告诉我他/她正在哪个战场上排队,以便我可以收集数据并将其发布到我的服务/网站上。对于我正在寻找的事件,我可以使用WoW-Addon创建一些视觉反馈……就像一个信号,告诉我的程序该做什么。

因此,我想知道如何创建这样的信号解释器(如Screen Grabber)。我当时在考虑OpenCV,但不知道从哪里开始,尤其是我对Warden(反作弊引擎)如何解释此类程序感到好奇,我真的不希望我的用户因这种事情而被禁止。它实际上应该只是解释我创建的插件的视觉反馈。

因此,例如:

如果用户排队进入阿拉希盆地,则将弹出黄色信号,如果弹出黄色信号,该程序将通知我的服务玩家xyz已排队,稍后应在我的主页上实时显示。如果用户排队等待Warsong,则会弹出另一个信号,依此类推。

我目前只是在C#/。NET的早期阶段,并且会使用这种服务来开始一个小项目,所以我需要学习什么才能使这件事变得更复杂?

我真的很想为我解决该问题所需的知识提供一些指导。

最佳答案

对于 Windows ,它是可行的,但是获取WinAPI有点不稳定。

因此编写新的应用程序:

  • ,您需要找到“WoW客户端”窗口(其句柄)
  • 将其 Canvas 作为位图

    如果gfx驱动程序允许,则尝试获取桌面镜像。因此,使用以下命令创建 Canvas :
    Canvas->handle = GetDC(WOW_window_handle);
    

    它的大小如下所示:
    RECT r; GetWindowRect(WOW_window_handle,&r);
    

    所以现在只需将矩形从 Canvas 复制到您的位图以进行处理...
  • ,然后您就可以做所需的任何事情

    由于图像是计算机生成的,因此仅缩放+/-一些过滤器不会产生太大的噪点,因此应该相对容易地检测图像是否包含战场信息。还可以检测/读取其中的文本应该很容易
  • (如果检测到搜索到的事件/信息)

    然后将数据发送到您的WEB

  • ,如果您还需要在ADDON内包含此信息

    那么您需要寻找某种方式来接收它。我不熟悉WoW插件编程,所以不知道...

    ,但我会尝试:
  • (如果您从Addon获得了任何IPC功能)请使用
  • (如果您有权访问文件)

    然后连续扫描插件中的文件,然后将信息发送到该位置(请谨慎处理多个文件访问冲突)
  • 可以尝试将击键发送到您的WoW客户端

    如果您可以从Addon或特定操作(例如写特定文本消息(不与移动键冲突))中检测到它们,则为
  • (如果可以入侵您的服务器/ Clienet TCP / IP流)

    您可以注入(inject)具有特定含义的数据包,例如传入的私有(private)消息等,但是您需要熟悉WoW服务器/客户端通信(如果我没记错的话,WoW使用 SRP6 ),这会增加ping延迟...您仍然需要另一方面,如果能够从Addon中检测到它,则您应该能够检测与战场相关的数据包,而无需OWT图像的 OCR / CV ...

  • 请参阅以下相关的Q / A:
  • list windows handle from outside app
  • simple OCR
  • How to recognize UI elements in image
  • Putting an application in between client and server ...在我的那里张贴了WoW SRP6协议(protocol)数据包的示例
  • MaNGOS source repository ...可以从此
  • 中了解有关WoW的更多信息

    [说明]

    每个项目符号都适用于单独的问题,因此请开始编码,并在遇到问题时提出有关此问题的特定问题

    关于c# - 魔兽世界图像处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32666990/

    10-13 06:15