英雄联盟玩家应该都知道在我们匹配游戏时匹配成功的时候会提示是否接受对局
这个机制让很多玩家很难受所以我在网上搜了很多的LOLAPI的文章想要解决这个问题
给大家分享一些常用的API
# 获取召唤师的信息(get)
# "/lol-summoner/v1/current-summoner"
# 判断 用户状态 api(get)
# "/lol-gameflow/v1/gameflow-phase"
# 返回值
# InProgress 游戏中
# Reconnect 重新连接
# ReadyCheck 需要接受对局
# ChampSelect 选择英雄中
# 自动接受对局 api(post)
# url_one = "/lol-matchmaking/v1/ready-check/accept"
# 获取好友名称(get)
# "/lol-game-client-chat/v1/buddies"
# 获得好友名称 状态(get)
# "/lol-chat/v1/friends"
# 给好友发送消息 (post 字典{"summonerName":"召唤师姓名","message":"消息"})
# "/lol-game-client-chat/v1/instant-messages"
# 游戏掉了之后自动重新连接
# "/lol-gameflow/v1/reconnect"
获取当前对局信息
/lol-gameflow/v1/session
获取已拥有的英雄的信息(GET
/lol-champions/v1/owned-champions-minimal),下面是返回结果(只选取了一个出来分析):
查看召唤师历史记录
/lol-match-history/v1/products/lol/{puuid}/matches
puuid 可以根据获取当前信息获得
使用Python代码实现LOL自动接受对局
本人学习Python学得还学得不太好希望大佬理解下,其实实现的逻辑都是一样的
通过API获取玩家状态当状态为接受对局的状态后在进行调用接受对局的API
还可以通过以上的API实现一个检测最近同局玩家的一个功能曾经实现过但是代码忘放哪了
程序必须是管理员运行
如果是在pycharm中测试的话,以管理员身份运行pycharm就行了
import os
import requests
import re
import base64
import urllib3
class LOL:
def __init__(self):
urllib3.disable_warnings()
# 运行 cmd命令 并进行获取输出结果
result = os.popen('wmic PROCESS WHERE name="LeagueClientUx.exe" GET commandline')
result = result.read().replace(' ', '').split(' ')
# 获取 用户 token
token = re.findall(re.compile(r'"--remoting-auth-token=(.*?)"'), result[0])
# 获取 用户端口
self.__port = re.findall(re.compile(r'"--app-port=(.*?)"'), result[0])
# 或解密之后的 token
self.__token = base64.b64encode(("riot:" + token[0]).encode("UTF-8")).decode("UTF-8")
# 制作 请求头
self.__headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Basic " + self.__token
}
# 构成 本机地址 端口
self.__url = 'https://127.0.0.1:' + str(self.__port[0])
def get(self, url):
return requests.get(url=self.__url + url, headers=self.__headers, verify=False).json()
def post(self, url):
return requests.post(url=self.__url + url, headers=self.__headers, verify=False).json()
if __name__ == '__main__':
# 创建 LOL 类 实例对象
lOL_project = LOL()
# 获取 召唤师名称
print(f'召唤师名称 : {(lOL_project.get("/lol-summoner/v1/current-summoner"))["displayName"]}')
# 获取 召唤师 用户编号
print(f'用户编号 : {lOL_project.get("/lol-summoner/v1/current-summoner")["accountId"]}')
LeagueCustomLobby(github): https://github.com/XHXIAIEIN/LeagueCustomLobby(神中神,帮助很大)
LeagueCustomLobby(github): https://github.com/XHXIAIEIN/LeagueCustomLobby(很难不磕一个再走)