【问题标题】:World of Warcraft image processing魔兽世界图像处理
【发布时间】:2015-12-16 11:40:57
【问题描述】:

我一直在寻找一种方法来创建一个插件,它检查 WoW-PvP-Queue-Status,以创建一个 REST 服务,我被告知不可能在两者之间建立实时连接一个插件和一个 REST 服务。所以我正在考虑另一种方法来解决我的问题,然后我想到了分析 WoW-Window 并寻找一种视觉模式来完成我正在寻找的东西。 我的程序应该检查并告诉我,每当程序的用户在战场上排队时,还应该告诉我他/她在哪个战场上排队,这样我就可以收集数据并将其发布到我的服务/网站。我可以使用 WoW-Addon 为我正在寻找的事件创建一些视觉反馈......就像一个信号,它告诉我的程序要做什么。

所以我想知道,我将如何完成创建这样的信号解释器(就像屏幕抓取器一样)。我在考虑 OpenCV,但不知道从哪里开始,特别是我有点好奇 Warden(反作弊引擎)会如何解释这样的程序,我真的不希望我的用户因为这样的事情而被禁止。它真的应该只是解释我要创建的插件的视觉反馈。

例如:

如果用户在阿拉希盆地排队,应该会弹出一个黄色信号,如果弹出黄色信号,程序会告诉我的服务玩家 xyz 已经排队,稍后应该会在我的主页上显示...时间。如果用户排队等待战歌,则会弹出另一个信号,等等。

我目前只是在早期阶段对 C#/.NET 有经验,并且会用这样的服务开始一个小项目,那么我需要学习什么来构建这个东西?

我真的很想知道我需要哪些知识来解决这个问题。

【问题讨论】:

    标签: c# opencv image-processing computer-vision world-of-warcraft


    【解决方案1】:

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

    所以编写新的应用程序:

    1. 您需要找到 WoW 客户端窗口(其句柄)
    2. 将其画布作为位图获取

      如果 gfx 驱动程序允许,如果不尝试获取桌面图像。所以创建画布:

      Canvas->handle = GetDC(WOW_window_handle);
      

      你得到的尺寸是这样的:

      RECT r; GetWindowRect(WOW_window_handle,&r);
      

      所以现在只需将矩形从画布复制到您的位图进行处理...

    3. 那么你可以做任何你需要做的事情

      由于图像是计算机生成的,它不会有太多嘈杂,仅缩放 +/- 一些过滤器,因此它应该相对容易检测图像是否包含战场信息。同时检测/读取其中的文本应该很容易

    4. 如果检测到搜索的事件/信息

      然后只需将数据发送到您的 WEB

    如果您需要在 ADDON 中也包含此信息

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

    但我会尝试:

    1. 如果您从 Addon 获得任何 IPC 功能,请使用它

    2. 如果您有权访问文件

      然后继续从插件扫描文件并将信息发送到那里(小心多个文件访问冲突)

    3. 可以尝试向您的 WoW 客户端发送击键

      如果您可以从插件或特定操作中检测到​​它们,例如写特定的短信(不与您的移动键冲突)

    4. 如果你能破解你的服务器/客户端 TCP/IP 流

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

    查看这些相关的问答:

    [备注]

    每个项目符号都适用于单独的问题,因此开始编码,遇到问题时提出具体问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多