Оболочка API старой школы RuneScape, которая делает больше!
Официальный API hiscores для Old School RuneScape (OSRS) может возвращать CSV или простой массив JSON. Эта оболочка преобразует данные hiscores в более удобный объект JSON и предоставляет дополнительную информацию о данном игроке. Сравнивая информацию об игроке, он определяет игровой режим игрока, а также любые предыдущие режимы (устаревший, снятый с железа и/или умерший как хардкорный железный человек).
Предоставляются дополнительные функции, которые очищают экран таблицы лидеров OSRS и возвращают список игроков в формате JSON. Также при желании предоставляются простые служебные функции для получения необработанных ответов от API Jagex.
osrs-json-hiscores
поддерживает TypeScript с полными определениями всех функций и пользовательских типов данных.
Jagex не предоставляет в своих ответах заголовки Access-Control-Allow-Origin
. Это означает, что CORS будет блокировать все запросы браузера к API hiscores. Чтобы обойти эту проблему, необходимо установить osrs-json-hiscores на стороне сервера и предоставить доступ к интерфейсу через простой API. Вот пример использования: codeandbox.io/s/osrs-json-hiscores-demo.
TLDR: вы не можете использовать эту библиотеку непосредственно в своем клиентском приложении, например React или Vue, вы должны настроить сервер, который использует эту библиотеку внутри себя, и ваш клиент извлекает данные с вашего сервера.
С НПМ:
$ 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 |
СДО – ранг | lastManStanding |
PvP Арена — Ранг | pvpArena |
Рвение душевных войн | soulWarsZeal |
Разломы закрыты | riftsClosed |
Колизей Славы | colosseumGlory |
Активность | Парам |
---|---|
Очки лиги | leaguePoints |
Очки Мертвеца | deadmanPoints |
Имя босса | Парам |
---|---|
Сир Бездны | abyssalSire |
Алхимическая Гидра | alchemicalHydra |
Амокслиатль | amoxliatl |
Араксор | araxxor |
Артио | artio |
Сундуки курганов | barrows |
Мохообразные | bryophyta |
Каллисто | callisto |
Кальварион | calvarion |
Цербер | cerberus |
Палаты Ксерика | chambersOfXeric |
Палаты Ксерика: режим испытаний | chambersOfXericChallengeMode |
Элементаль Хаоса | chaosElemental |
Фанатик Хаоса | chaosFanatic |
Командир Зилиана | commanderZilyana |
Телесный зверь | corporealBeast |
Сумасшедший археолог | crazyArchaeologist |
Даганнот Прайм | 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 игроков (это страница в его рейтинге):
[
{ rank : 1 , name : 'Lynx Titan' , level : 2277 , xp : 4600000000 , dead : false } ,
{ } ,
{ }
// ...
] ;
Получите правильно отформатированное имя любого навыка, босса, подсказки или другого действия:
// kril === "K'ril Tsutsaroth"
const kril = FORMATTED_BOSS_NAMES [ 'krilTsutsaroth' ] ;