老派的 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' ] ;