WoW Lua - получить данные из URL (ваниль)

В World of Warcraft разработка аддонов Vanilla Lua, как я могу выполнить HTTP-вызов для получения данных обратно? Если нет, как я могу получить данные из веб-источника в игру во время игры?

Я чувствую, что ответ трагически короткий, но хотел бы, чтобы вопрос задавался и отвечал на переполнение стека. Моих исследований не хватало, и я вспоминаю, что делал LUA в 2007 году, и был разочарован.

2 ответа

Ну, трагически коротко - преуменьшение. Вы просто не можете. Не было никаких API, которые бы напрямую взаимодействовали с соединениями, не говоря уже о создании любых, не говоря уже о произвольных URL.

Большинство из них просто транслируют игровые события, которые происходят из-за игрового соединения, и ближе всего к "потоку данных" можно добавить дополнительные каналы чата. Но поскольку боты нарушают ToS, вы не сможете создать учетную запись, которая отвечает на запросы вашего аддона.


Самое близкое, что вы можете получить, - это построить "асинхронную ячеистую сеть", но это хорошо, только если у вашего аддона значительная база пользователей, и не гарантируется, что вы получите информацию своевременно.

Общая идея заключается в том, что у вашего аддона будет открытый ключ (как при шифровании), а у вас (только у вас) будет закрытый ключ. Ваше дополнение отправляет сообщение всем подключенным одноранговым узлам, которые хранят его в перекрестных SavedVariables, и вы надеетесь, что у кого-то будут персонажи в более чем одной области. При входе в систему клиентское дополнение будет транслировать свой последний пакет (все еще зашифрованный) на канал расширения этой области, и, надеюсь, в течение недели или около того вы можете получить обновленную информацию по всем клиентам.

Недостатком является то, что вы будете получать только "push" уведомления, клиент не сможет отправлять вам какие-либо данные *.

Это, или вы могли бы выпустить патч для аддона на Curse:P


НО ЖДАТЬ!

Вы упомянули ваниль, поэтому я могу предположить, что вы разрабатываете это для частного сервера. Частные серверы часто имеют одно или очень небольшое количество областей, что значительно упрощает вышеуказанную ячеистую сеть. Вместо меша, просто используйте шифрование и входите в систему и транслируйте их вручную в каждой области каждый раз, когда вы хотите обновить полученную информацию.

Кроме того, вы можете даже связаться с разработчиками сервера, чтобы предоставить вам API, который отправляет сообщения на соответствующий игровой канал аддона (вам придется спросить).

Конечно, если вы притворяетесь, что ваш аддон не зависит от сервера, а не привязаны к конкретному серверу, вы возвращаетесь к исходной точке.


* Если только вы не посвятите себя этому, потому что это тонна работы.

В ванильном WoW нет веб-API. В настоящее время в игре есть виджет веб-браузера, хотя и очень ограниченный в использовании.

Если у вас есть доступ к коду программного обеспечения сервера, вы можете прослушивать пользовательские сообщения на определенных игровых каналах в определенном формате и позволить серверу отвечать таким образом, чтобы аддон анализировал его.

Другие вопросы по тегам