@2003scape/rsc-data 中文文档教程
rsc-data
为 runescape classic 收集数据。 掉落概率,实体 生成信息、技能数据等对游戏服务器端应用程序有用或 分析/模拟。
install
$ npm install @2003scape/rsc-data
certificates.json
https://classic.runescape.wiki/w/Certificate
{
"items": {
"151": 517, // original item index: certificate item index
// ...
},
"certers": {
"229": { // index of config/npcs.json
"type": "fish", // used for NPC dialogue
"certificates": [ // menu used for certificate -> item
{
"id": 630, // item index of certificate
"alias": "shark" // text used in client menu
}, // ...
],
"items": [ // menu used for item -> certificate
{
"id": 555, // original item index
"alias": "bass"
}, // ...
]
}, // ...
}
}
config/
从官方客户端转储和转换 .jag 存档文件。 请参阅 https://github.com/2003scape/rsc-config#api
edible.json
{
"257": { // item id to eat
"hits": 5, // amount of hits healed
"result": 263, // optional resulting item ID
// optional message(s) if different than the default
"message": "You eat half of an apple pie"
},
// entries can also just be integers if they have no special behaviour
"373": 12
}
landscape/
.jag 在服务器上用于碰撞检测的存档文件。 看 https://github.com/2003scape/rsc-landscape
locations/items.json
[
{
"id": 10, // index of config/items.json
"amount": 10, // item amount (optional and only for stackables)
"respawn": 60000, // ms for respawn after being picked up
"x": 147,
"y": 3337
}, // ...
]
locations/npcs.json
[
{
"id": 0, // npc index
"x": 185,
"y": 661,
"minX": 175,
"maxX": 195,
"minY": 651,
"maxY": 671
}, // ...
]
locations/objects.json
[
{
"id": 1, // index of config/objects.json
"direction": 0, // direction from 0-6 in TRBL/NESW order
"x": 346,
"y": 554
}, // ...
]
npc-respawn.json
{
"0": 211000, // npc index -> milliseconds for respawn after death
// ...
}
regions.json
不同城市和地区的边界和重生点。
{
// can also be array of objects if area covers multiple rectangles
"varrock": {
"minX": 50,
"maxX": 444,
"minY": 180,
"maxY": 565,
"spawnX": 120, // used for teleportation
"spawnY": 504
}, // etc.
}
rolls/
各种随机方面的概率,例如 NPC 掉落或圣诞节 饼干率。 每卷在0-128之间,所以每个人的总重量 掉落表不能超过128,如果总重量小于128,则有 除了权重为 0 的条目外,还有机会掉落任何东西。
{
"11": [ // npc index or table name
{
"id": 20, // item index
"weight": 0 // if 0, always drop
},
{
"id": 10,
"amount": 3, // amount (multiple are dropped if non-stackable)
"weight": 38 // numerator out of 128
},
{
"reference": "herb", // reference another NPC id or table within
"weight": 23
},
{
"id": [827, 273], // drop 2 items in the same entry
"weight": 10
} // ...
// implicit 43/128 nothing roll (besides 0-weighted entries; bones)
], // ...
}
shops.json
https://classic.runescape.wiki/w/
{
"al-kharid-general": {
"items": [
{
"id": 135, // item index
"amount": 3
}
],
// the multipliers of item.price used when items are at default stock
"sellMultiplier": 130,
"buyMultiplier": 40,
"delta": 3, // amount multipliers change when over/under stock
// milliseconds until restock tick, which increases understocked items
// by 1 annd decreases over-stocked or player-added items by 1
"restock": 12000,
"general": true // true if players can sell any tradeable item
}, // ...
}
skills/cooking.json
类别
{
// the item IDs of uncooked items that gauntlets can affect, and how much
// they increase the roll chances
"gauntlets": {
"369": 1.05, // ...
},
"uncooked": {
"133": { // uncooked food index
"level": 1, // required level
"experience": 120, // experience received on success
"cooked": 132, // cooked item index, received on success
"burnt": 134, // burnt item index, received on failure
"roll": [128, 512], // x/256 of success at level 1 and 99
"range": false // is a range required?
}, // ...
},
// inventory item combinations (use item on item)
"combinations": [
{
"level": 35, // required level to perform
"item": 320, // the first item index to be used on...
"with": 321, // the second item index
"result": 323, // the result item index of combining items
"knife": false, // do we kneed a knife to do this?
"message": "You add tomato to the pizza"
}, // ...
]
}
skills/crafting.json
:商店 https://classic.runescape.wiki/w/烹饪https://classic.runescape.wiki/w/工艺
{
// gem cutting; results of using a chisel on uncut gems
"cutting": {
"157": { // uncut gem item index
"level": 43, // required level
"experience": 430,
"id": 161 // cut gem item index
}, // ...
},
// leather sewing: result of using leather with needle+thread in inventory
"leather": [
{
"level": 14,
"experience": 100,
"id": 15, // item index of completed leather item
"alias": "Armour" // text used in client menu
}, // ...
],
"pottery": [
{
"level": 4,
"unfired": {
// item index from using item on pottery wheel
"id": 278,
"experience": 60
},
"fired": {
// item index of from using unfired item on pottery oven
"id": 251,
"experience": 40
},
"alias": "pie dishes" // text used on menu prompt
}, // ...
],
"silver-jewellery": [ // silver bar on furnace
"moulds": [386, /* ... */], // the moulds for each item below
"items": [
{ "level": 16, "experience": 200, "id": 44 }, // ...
],
],
"gold-jewellery": [ // gold bar on furnace
// same as silver-jewellery
],
"stringing": { // string on unstrung amulet, unstrung -> strung
"1027": 1028, // ...
},
"glassblowing": [ // using glassblowing pipe on molten glass
{
"level": 46,
"experience": 210,
"id": 611, // item index of result
"alias": "orb" // text in menu prompt
}, // ...
],
"battlestaves": { // using powered orb item on battle staff item
"612": {
"level": 62,
"experience": 500,
"id": 615
}, //...
}
}
skills/fishing.json
https://classic.runescape.wiki /w/钓鱼
{
"spots": {
"193": { // fishing spot object index
"net": { // object command name
"tool": 376, // item index required to fish (net, rod, ...)
"bait": null, // stackable item index depleted after success
"fish": {
"349": { // item index of raw fish caught using the command
"level": 1,
"experience": 40,
"roll": [48, 256]
}, // ...
}
}, // ...
}, // ...
}
}
skills/fletching.json
https://classic.runescape.wiki/w/Fletching
{
"bows": {
"14": [ // log item index
// shortbow, longbow
{
"level": 5,
"experience": 20, // experience gained for cutting and stringing
"unstrung": 227, // item index after using knife on log
"strung": 189 // item index after using string on unstrung
},
{
"level": 10,
"experience": 40,
"unstrung": 276,
"string": 188
}
], // ...
}
}
skills/herblaw.json.
https://classic.runescape.wiki/w/Herblaw
{
"herbs": {
"165": { // unidentified herb item index
"level": 3,
"experience": 10,
"id": 44 // ID of identified herb
}, // ...
},
"unfinished": { // results of using identified herb on vial of water
"444": { // identified herb item index
"level": 3,
"id": 454 // unfinished potion item index
}
},
"potions": { // results of using items on unfinished potions
"454": { // unfinished potion item index
"270": { // secondary item index
"level": 3,
"experience": 100,
"id": 474 // finished potion item index (3 dose)
}
}
}
}
skills/magic.json
https://classic.runescape.wiki/w/
{
"spellExperience": [
// experience gained on successful spell. index corresponds to
// config/spells.json
88, // ...
]
}
skills/mining.json
魔法 https://classic.runescape .wiki/w/Mining
{
"pickaxes": {
"156": { // pickaxe item index
"level": 1,
"attempts": 1 // attempts the pickaxe performs before success
}, // ...
},
"gem": [ // gem roll rates (1/256 to get a gem from a rock)
{
"id": 160, // item index
"weight": 64 // roll out of 128
}, // ...
],
"rocks": {
"100": { // game object index
"level": 1,
"experience": 70,
"roll": [48, 256],
// item index, or array of weighted item entries (for gem rocks)
"ore": 150,
"respawn": 5400, // milliseconds until depleted turns into original
"depleted": 9 // game object index of rock after success
}, // ...
}
}
skills/prayer.json
https://classic.runescape.wiki/w/Prayer#Bones
{
"buryExperience": { // bone id -> experience received
"20": 15, // ...
}
}
skills/smithing.json
https://classic.runescape.wiki/w/Smithing
{
"smelting": {
"169": { // smelted bar item index
"level": 1,
"experience": 25,
"ores": [{ "id": 150 }, { "id": 202 }]
}, // ...
},
// there's always the same menu tree for every bar
"smithing": {
// amount of bars needed for each item below, using the menu tree order
"bars": [
[1, 1, [1, 2, 2, 2, 3], [1, 3], 1], // ...
],
"items": [
"169": { // smelted bar item index
// base experience - multiplied by amount of bars required
"experience": 50,
"items": [ // follows the same tree as smithing.bars above
{
"level": 1,
"id": 62,
// only specified to override or if this is an
// additional menu (which bronze and steel bars have)
"bars": 1,
// only specified to override the bar experience rate.
// give constant experience for this item only
"experience": 100
}, // ...
]
}, // ...
]
}
}
skills/thieving.json
https://classic.runescape.wiki/w/Thieving
{
"pickpocket": {
"11": { // npc index
"level": 1,
"experience": 32,
"roll": [180, 240],
// item indexes received on success (optionally weighted)
"items": [{ "id": 10, "amount": 3 }],
// dialogue on failure
"exclaimation": "Oi what do you think you're doing"
}, // ...
},
"stalls": {
"322": { // stall object index (with steal-from command)
"level": 20,
"experience": 96,
// reward for successful theft (optionally weighted)
"items": [{ "id": 200 }],
// how long it takes to steal from the depleted stall to respawn
"respawn": 8000,
"owner": 326, // the shopkeeper of the stall
// npc indexes of nearby NPCs who prevent theft
"guards": [322, 321]
}, // ...
},
"chests": {
"334": {
"level": 13,
"experience": 30,
"items": [{ "id": 10, "amount": 10 }],
"lockpick": false,
"respawn": 10000
}, // ..
},
"doors": {
"93": { // index of config/wall-objects.json
"level": 7,
"experience": 15,
"lockpick": false, // do we need a lockpick in inventory?
// positions where we can open the door freely
"exits": [{ "x": 539, "y": 531 }]
}, // ...
}
}
skills/woodcutting.json
https:/ /classic.runescape.wiki/w/Woodcutting
{
"axes": {
"12": 1.5, // item index -> roll multiplier
// ...
},
"trees": {
"0": {
"level": 1,
"experience": 100,
"roll": [64, 200],
"log": 14, // item index received on success
"respawn": 40000, // milliseconds until stump turns back into tree
"stump": 100 // object index tree turns into when cut
}, // ...
}
}
wieldable.json
可使用物品奖励和技能要求。 指定了使用的插槽 在 config/items.json 中。
{
"0": { // item index
"female": false, // can only female characters wear this?
"animation": 118, // the client-sided animation index
"armour": 0,
"weaponAim": 8,
"weaponPower": 6,
"magic": 0,
"prayer": 0,
"requirements": { // optional
attack: 30 // skill names -> base level required
}
}, // ...
}
license
本网站上的内容已获得许可 CC BY-NC-SA 3.0; 附加条款适用。 RuneScape 和 RuneScape Old School 是 Jagex Limited 和 经 Jagex 许可使用。
原始游戏数据定义(在 config/ 中):
© 2001-2002 Andrew Gower 和 Jagex Ltd
CC-BY-SA-4.0 https://creativecommons.org/licenses/by-sa/4.0/legalcode
rsc-data
collection of data for runescape classic. probabilities for drops, entity spawn information, skill data, etc. useful for game server-sided applications or analysis/simulations.
install
$ npm install @2003scape/rsc-data
certificates.json
https://classic.runescape.wiki/w/Certificate
{
"items": {
"151": 517, // original item index: certificate item index
// ...
},
"certers": {
"229": { // index of config/npcs.json
"type": "fish", // used for NPC dialogue
"certificates": [ // menu used for certificate -> item
{
"id": 630, // item index of certificate
"alias": "shark" // text used in client menu
}, // ...
],
"items": [ // menu used for item -> certificate
{
"id": 555, // original item index
"alias": "bass"
}, // ...
]
}, // ...
}
}
config/
dumped and converted .jag archive files from the official client. see https://github.com/2003scape/rsc-config#api
edible.json
{
"257": { // item id to eat
"hits": 5, // amount of hits healed
"result": 263, // optional resulting item ID
// optional message(s) if different than the default
"message": "You eat half of an apple pie"
},
// entries can also just be integers if they have no special behaviour
"373": 12
}
landscape/
.jag archive files used on the server for collision detection. see https://github.com/2003scape/rsc-landscape
locations/items.json
[
{
"id": 10, // index of config/items.json
"amount": 10, // item amount (optional and only for stackables)
"respawn": 60000, // ms for respawn after being picked up
"x": 147,
"y": 3337
}, // ...
]
locations/npcs.json
[
{
"id": 0, // npc index
"x": 185,
"y": 661,
"minX": 175,
"maxX": 195,
"minY": 651,
"maxY": 671
}, // ...
]
locations/objects.json
[
{
"id": 1, // index of config/objects.json
"direction": 0, // direction from 0-6 in TRBL/NESW order
"x": 346,
"y": 554
}, // ...
]
npc-respawn.json
{
"0": 211000, // npc index -> milliseconds for respawn after death
// ...
}
regions.json
boundaries and spawn points for different cities and areas.
{
// can also be array of objects if area covers multiple rectangles
"varrock": {
"minX": 50,
"maxX": 444,
"minY": 180,
"maxY": 565,
"spawnX": 120, // used for teleportation
"spawnY": 504
}, // etc.
}
rolls/
probabilities for various randomized aspects, such as NPC drops or christmas cracker rates. each roll is between 0-128, so the total weight per individual drop table cannot exceed 128. if the total weight is less than 128, there is a chance to drop nothing besides the entries with 0 weight.
{
"11": [ // npc index or table name
{
"id": 20, // item index
"weight": 0 // if 0, always drop
},
{
"id": 10,
"amount": 3, // amount (multiple are dropped if non-stackable)
"weight": 38 // numerator out of 128
},
{
"reference": "herb", // reference another NPC id or table within
"weight": 23
},
{
"id": [827, 273], // drop 2 items in the same entry
"weight": 10
} // ...
// implicit 43/128 nothing roll (besides 0-weighted entries; bones)
], // ...
}
shops.json
https://classic.runescape.wiki/w/Category:Shops
{
"al-kharid-general": {
"items": [
{
"id": 135, // item index
"amount": 3
}
],
// the multipliers of item.price used when items are at default stock
"sellMultiplier": 130,
"buyMultiplier": 40,
"delta": 3, // amount multipliers change when over/under stock
// milliseconds until restock tick, which increases understocked items
// by 1 annd decreases over-stocked or player-added items by 1
"restock": 12000,
"general": true // true if players can sell any tradeable item
}, // ...
}
skills/cooking.json
https://classic.runescape.wiki/w/Cooking
{
// the item IDs of uncooked items that gauntlets can affect, and how much
// they increase the roll chances
"gauntlets": {
"369": 1.05, // ...
},
"uncooked": {
"133": { // uncooked food index
"level": 1, // required level
"experience": 120, // experience received on success
"cooked": 132, // cooked item index, received on success
"burnt": 134, // burnt item index, received on failure
"roll": [128, 512], // x/256 of success at level 1 and 99
"range": false // is a range required?
}, // ...
},
// inventory item combinations (use item on item)
"combinations": [
{
"level": 35, // required level to perform
"item": 320, // the first item index to be used on...
"with": 321, // the second item index
"result": 323, // the result item index of combining items
"knife": false, // do we kneed a knife to do this?
"message": "You add tomato to the pizza"
}, // ...
]
}
skills/crafting.json
https://classic.runescape.wiki/w/Crafting
{
// gem cutting; results of using a chisel on uncut gems
"cutting": {
"157": { // uncut gem item index
"level": 43, // required level
"experience": 430,
"id": 161 // cut gem item index
}, // ...
},
// leather sewing: result of using leather with needle+thread in inventory
"leather": [
{
"level": 14,
"experience": 100,
"id": 15, // item index of completed leather item
"alias": "Armour" // text used in client menu
}, // ...
],
"pottery": [
{
"level": 4,
"unfired": {
// item index from using item on pottery wheel
"id": 278,
"experience": 60
},
"fired": {
// item index of from using unfired item on pottery oven
"id": 251,
"experience": 40
},
"alias": "pie dishes" // text used on menu prompt
}, // ...
],
"silver-jewellery": [ // silver bar on furnace
"moulds": [386, /* ... */], // the moulds for each item below
"items": [
{ "level": 16, "experience": 200, "id": 44 }, // ...
],
],
"gold-jewellery": [ // gold bar on furnace
// same as silver-jewellery
],
"stringing": { // string on unstrung amulet, unstrung -> strung
"1027": 1028, // ...
},
"glassblowing": [ // using glassblowing pipe on molten glass
{
"level": 46,
"experience": 210,
"id": 611, // item index of result
"alias": "orb" // text in menu prompt
}, // ...
],
"battlestaves": { // using powered orb item on battle staff item
"612": {
"level": 62,
"experience": 500,
"id": 615
}, //...
}
}
skills/fishing.json
https://classic.runescape.wiki/w/Fishing
{
"spots": {
"193": { // fishing spot object index
"net": { // object command name
"tool": 376, // item index required to fish (net, rod, ...)
"bait": null, // stackable item index depleted after success
"fish": {
"349": { // item index of raw fish caught using the command
"level": 1,
"experience": 40,
"roll": [48, 256]
}, // ...
}
}, // ...
}, // ...
}
}
skills/fletching.json
https://classic.runescape.wiki/w/Fletching
{
"bows": {
"14": [ // log item index
// shortbow, longbow
{
"level": 5,
"experience": 20, // experience gained for cutting and stringing
"unstrung": 227, // item index after using knife on log
"strung": 189 // item index after using string on unstrung
},
{
"level": 10,
"experience": 40,
"unstrung": 276,
"string": 188
}
], // ...
}
}
skills/herblaw.json.
https://classic.runescape.wiki/w/Herblaw
{
"herbs": {
"165": { // unidentified herb item index
"level": 3,
"experience": 10,
"id": 44 // ID of identified herb
}, // ...
},
"unfinished": { // results of using identified herb on vial of water
"444": { // identified herb item index
"level": 3,
"id": 454 // unfinished potion item index
}
},
"potions": { // results of using items on unfinished potions
"454": { // unfinished potion item index
"270": { // secondary item index
"level": 3,
"experience": 100,
"id": 474 // finished potion item index (3 dose)
}
}
}
}
skills/magic.json
https://classic.runescape.wiki/w/Magic
{
"spellExperience": [
// experience gained on successful spell. index corresponds to
// config/spells.json
88, // ...
]
}
skills/mining.json
https://classic.runescape.wiki/w/Mining
{
"pickaxes": {
"156": { // pickaxe item index
"level": 1,
"attempts": 1 // attempts the pickaxe performs before success
}, // ...
},
"gem": [ // gem roll rates (1/256 to get a gem from a rock)
{
"id": 160, // item index
"weight": 64 // roll out of 128
}, // ...
],
"rocks": {
"100": { // game object index
"level": 1,
"experience": 70,
"roll": [48, 256],
// item index, or array of weighted item entries (for gem rocks)
"ore": 150,
"respawn": 5400, // milliseconds until depleted turns into original
"depleted": 9 // game object index of rock after success
}, // ...
}
}
skills/prayer.json
https://classic.runescape.wiki/w/Prayer#Bones
{
"buryExperience": { // bone id -> experience received
"20": 15, // ...
}
}
skills/smithing.json
https://classic.runescape.wiki/w/Smithing
{
"smelting": {
"169": { // smelted bar item index
"level": 1,
"experience": 25,
"ores": [{ "id": 150 }, { "id": 202 }]
}, // ...
},
// there's always the same menu tree for every bar
"smithing": {
// amount of bars needed for each item below, using the menu tree order
"bars": [
[1, 1, [1, 2, 2, 2, 3], [1, 3], 1], // ...
],
"items": [
"169": { // smelted bar item index
// base experience - multiplied by amount of bars required
"experience": 50,
"items": [ // follows the same tree as smithing.bars above
{
"level": 1,
"id": 62,
// only specified to override or if this is an
// additional menu (which bronze and steel bars have)
"bars": 1,
// only specified to override the bar experience rate.
// give constant experience for this item only
"experience": 100
}, // ...
]
}, // ...
]
}
}
skills/thieving.json
https://classic.runescape.wiki/w/Thieving
{
"pickpocket": {
"11": { // npc index
"level": 1,
"experience": 32,
"roll": [180, 240],
// item indexes received on success (optionally weighted)
"items": [{ "id": 10, "amount": 3 }],
// dialogue on failure
"exclaimation": "Oi what do you think you're doing"
}, // ...
},
"stalls": {
"322": { // stall object index (with steal-from command)
"level": 20,
"experience": 96,
// reward for successful theft (optionally weighted)
"items": [{ "id": 200 }],
// how long it takes to steal from the depleted stall to respawn
"respawn": 8000,
"owner": 326, // the shopkeeper of the stall
// npc indexes of nearby NPCs who prevent theft
"guards": [322, 321]
}, // ...
},
"chests": {
"334": {
"level": 13,
"experience": 30,
"items": [{ "id": 10, "amount": 10 }],
"lockpick": false,
"respawn": 10000
}, // ..
},
"doors": {
"93": { // index of config/wall-objects.json
"level": 7,
"experience": 15,
"lockpick": false, // do we need a lockpick in inventory?
// positions where we can open the door freely
"exits": [{ "x": 539, "y": 531 }]
}, // ...
}
}
skills/woodcutting.json
https://classic.runescape.wiki/w/Woodcutting
{
"axes": {
"12": 1.5, // item index -> roll multiplier
// ...
},
"trees": {
"0": {
"level": 1,
"experience": 100,
"roll": [64, 200],
"log": 14, // item index received on success
"respawn": 40000, // milliseconds until stump turns back into tree
"stump": 100 // object index tree turns into when cut
}, // ...
}
}
wieldable.json
wieldable item bonuses and skill requirements. the wielded slots are specified in config/items.json.
{
"0": { // item index
"female": false, // can only female characters wear this?
"animation": 118, // the client-sided animation index
"armour": 0,
"weaponAim": 8,
"weaponPower": 6,
"magic": 0,
"prayer": 0,
"requirements": { // optional
attack: 30 // skill names -> base level required
}
}, // ...
}
license
Content on this site is licensed under CC BY-NC-SA 3.0; additional terms apply. RuneScape and RuneScape Old School are the trademarks of Jagex Limited and are used with the permission of Jagex.
original game data definitions (in config/):
© 2001-2002 Andrew Gower and Jagex Ltd
CC-BY-SA-4.0 https://creativecommons.org/licenses/by-sa/4.0/legalcode