老派的 RuneScape API 包装器功能更多!
Old School RuneScape (OSRS) 的官方 hiscores API 可以返回 CSV 或简单的 JSON 数组。该包装器将 hiscores 数据转换为更可用的 JSON 对象,并提供有关给定玩家的额外信息。通过比较玩家信息,它可以推断出玩家的游戏模式,以及任何之前的模式(去终极、去铁和/或作为铁杆铁人死亡)。
还提供了其他功能,可以抓取 OSRS 排行榜并以 json 形式返回玩家列表。如果需要,还提供简单的实用函数来从 Jagex 的 API 获取原始响应。
osrs-json-hiscores
支持 TypeScript,具有所有函数和自定义数据类型的完整定义。
Jagex 不在其响应中提供Access-Control-Allow-Origin
标头。这意味着 CORS 将阻止所有浏览器对其 hiscores API 的请求。为了解决这个问题,需要在服务器端安装 osrs-json-hiscores 并通过一个简单的 API 暴露给前端。以下是使用中的示例:codesandbox.io/s/osrs-json-hiscores-demo
TLDR:您不能直接在客户端应用程序(例如 React 或 Vue)中使用此库,您必须设置一个在内部使用此库的服务器,并让您的客户端从服务器获取数据。
使用 npm:
$ npm install osrs-json-hiscores
用纱线:
$ yarn add osrs-json-hiscores
安装该包,然后将其导入到您的项目中:
import { getStatsByGamemode , getSkillPage } from 'osrs-json-hiscores' ;
导入后,您可以异步调用函数:
const stats = await getStatsByGamemode ( 'Lynx Titan' ) ;
const topPage = await getSkillPage ( 'overall' ) ;
getStats
将返回具有游戏模式的完整玩家对象。
getStatsByGameMode
将返回一个统计对象并接受一个游戏模式参数:
游戏模式 | 参数 |
---|---|
常规的 | main |
铁人三项 | ironman |
铁杆钢铁侠 | hardcore |
终极钢铁侠 | ultimate |
亡灵模式 | deadman |
比赛 | tournament |
联赛 | seasonal |
getSkillPage
和getActivityPage
需要技能/活动以及可选的游戏模式和页面:
getSkillPage ( 'attack' , 'main' , 1 )
. then ( ( res ) => console . log ( res ) )
. catch ( ( err ) => console . error ( err ) ) ;
活动包括各个级别的线索卷轴以及迷你游戏和头目:
类型 | 参数 |
---|---|
全部 | allClues |
初学者 | beginnerClues |
简单的 | easyClues |
中等的 | mediumClues |
难的 | hardClues |
精英 | eliteClues |
掌握 | masterClues |
小游戏 | 参数 |
---|---|
赏金猎人(遗产 - 盗贼) | rogueBH |
赏金猎人(遗产 - 猎人) | hunterBH |
赏金猎人(盗贼) | rogueBHV2 |
赏金猎人(猎人) | hunterBHV2 |
LMS - 排名 | lastManStanding |
PvP 竞技场 - 排名 | pvpArena |
灵魂战争热忱 | soulWarsZeal |
裂隙闭合 | riftsClosed |
斗兽场的荣耀 | colosseumGlory |
活动 | 参数 |
---|---|
联赛积分 | leaguePoints |
死亡点 | deadmanPoints |
老板姓名 | 参数 |
---|---|
深渊君主 | abyssalSire |
炼金九头蛇 | alchemicalHydra |
阿莫西汀 | amoxliatl |
阿拉克索 | araxxor |
阿蒂奥 | artio |
巴罗斯宝箱 | barrows |
苔藓植物门 | bryophyta |
木卫四 | callisto |
卡尔瓦里昂 | calvarion |
塞伯鲁斯 | cerberus |
埃里克的钱伯斯 | chambersOfXeric |
Xeric 的房间:挑战模式 | chambersOfXericChallengeMode |
混沌元素 | chaosElemental |
混沌狂热者 | chaosFanatic |
齐利亚娜指挥官 | commanderZilyana |
实体野兽 | corporealBeast |
疯狂考古学家 | crazyArchaeologist |
达甘诺斯 Prime | dagannothPrime |
达甘诺斯霸王龙 | dagannothRex |
至尊达甘诺斯 | dagannothSupreme |
疯狂的考古学家 | derangedArchaeologist |
苏塞勒斯公爵 | dukeSucellus |
格拉多将军 | generalGraardor |
巨鼹鼠 | giantMole |
怪诞守护者 | grotesqueGuardians |
赫斯波里 | hespori |
卡菲特女王 | kalphiteQueen |
黑龙王 | kingBlackDragon |
克拉肯 | kraken |
克雷亚拉 | kreeArra |
克里尔·楚萨罗斯 | krilTsutsaroth |
月球宝箱 | lunarChests |
模仿者 | mimic |
内克斯 | nex |
恶梦 | nightmare |
福萨尼的噩梦 | phosanisNightmare |
一带一路 | obor |
幻影穆斯帕 | phantomMuspah |
萨拉奇尼斯 | sarachnis |
天蝎座 | scorpia |
斯库里乌斯 | scurrius |
斯科蒂佐 | skotizo |
索尔·遗传 | solHeredit |
斯宾德尔 | spindel |
坦波罗斯 | tempoross |
挑战 | gauntlet |
腐化的手套 | corruptedGauntlet |
休伊科特尔 | hueycoatl |
利维坦 | leviathan |
低语者 | whisperer |
血剧场 | theatreOfBlood |
血剧场:困难模式 | theatreOfBloodHardMode |
热核烟雾恶魔 | thermonuclearSmokeDevil |
阿马斯库特墓 | tombsOfAmascut |
阿马斯库特墓:专家模式 | tombsOfAmascutExpertMode |
茨卡尔祖克 | tzKalZuk |
兹托克-贾德 | tzTokJad |
瓦尔多维斯 | vardorvis |
韦内蒂斯 | venenatis |
维信 | vetion |
沃卡斯 | vorkath |
温特托特 | wintertodt |
萨尔卡诺 | zalcano |
祖拉 | zulrah |
getStats
返回一个如下所示的玩家对象:
{
name : 'Lynx Titan' ,
mode : 'main' ,
dead : false ,
deulted : false ,
deironed : false ,
main : {
skills : {
overall : { rank : 1 , level : 2277 , xp : 4600000000 } ,
attack : { } ,
defence : { } ,
// ...
} ,
clues : { } ,
leaguePoints : { } ,
bountyHunter : { } ,
lastManStanding : { } ,
pvpArena : { } ,
soulWarsZeal : { } ,
riftsClosed : { } ,
bosses : { }
}
}
getSkillPage
返回 25 名玩家的数组(这代表 hiscores 上的一页):
[
{ rank : 1 , name : 'Lynx Titan' , level : 2277 , xp : 4600000000 , dead : false } ,
{ } ,
{ }
// ...
] ;
获取任何技能、boss、线索或其他活动的正确格式的名称:
// kril === "K'ril Tsutsaroth"
const kril = FORMATTED_BOSS_NAMES [ 'krilTsutsaroth' ] ;