0

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

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

例如:

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

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

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

4

1 回答 1

3

对于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. 可以尝试将击键发送到您的魔兽客户端

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

  4. 如果您可以破解您的服务器/客户端 TCP/IP 流

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

请参阅这些相关的 Q/A:

[笔记]

每个项目符号都适用于单独的问题,因此开始编码,当遇到问题时询问有关它的具体问题

于 2015-09-20T07:47:26.433 回答