WoW Lua - 从 URL 获取数据(原版)

WoW Lua - Get Data from URL (Vanilla)

在魔兽世界原版 Lua 插件开发中,我如何发出 HTTP 调用来接收数据?如果没有,我如何在玩游戏时从网络源获取数据到游戏中?

我觉得答案短得可悲,但希望在 Stack Overflow 上提问和回答这个问题。我的研究缺乏,我记得在 ~2007 年做了一些 LUA 并且很失望。

好吧,悲惨的短暂是一种轻描淡写的说法。 你根本做不到。从来没有任何 APIs 直接与连接交互,更不用说创建任何连接了,更不用说到任意 URL 了。

它们中的大多数只是广播游戏连接中发生的游戏事件,而您可以获得的最接近“数据流”的是附加聊天频道。但是由于机器人违反了 ToS,您将无法创建一个帐户来响应您的插件查询。


最接近的事情是建立一个“异步网状网络”,但这只有在您的插件拥有相当大的用户群时才有用,并且不能保证您会及时获得信息。

一般的想法是您的插件将有一个 public 密钥(如加密),而您(只有您)将保留一个私钥。您的插件向任何连接的对等方发出一条消息,将其存储在跨领域 SavedVariables 中,并且您希望某人在多个领域拥有角色。登录后,客户端插件会将其最新数据包(仍然加密)广播到该领域的插件频道,希望在一周左右的时间内您可以获得所有客户端的更新信息。

缺点是您只会收到“推送”通知,客户端无法将任何数据发回给您*。

那个,或者你可以发布 Curse 插件的补丁 :P


等等!

你提到了香草,所以我可以假设你正在为私人服务器开发这个。私人服务器通常只有一个或很少的领域,使得上述网状网络更加简单。每次您想更新检索到的信息时,只需加密并在每个领域手动登录和广播,而不是网格。

此外,您甚至可以联系服务器开发人员,让您可以 API 将消息发送到适当的游戏内插件频道(您必须询问)。

当然,如果您假装使您的插件与服务器无关,而不是针对特定服务器量身定制,那么您就回到了原点。


* 除非你真的致力于实现这一目标,因为这是一项大量的工作。

原版 WoW 中没有网页 API。目前游戏中有一个网络浏览器小部件,尽管使用非常有限。

如果您有权访问服务器软件代码,则可以挂钩侦听特定游戏频道以获取定义格式的用户消息,并让服务器以某种方式响应以供插件解析。