localization

This commit is contained in:
mhwikicn 2025-08-30 19:41:51 +08:00
parent 3597e1107d
commit f4d1024aab
16 changed files with 2613 additions and 2630 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
[
{
"name": "Attack Jewel 1",
"name": "腕力珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -9,7 +9,7 @@
}
},
{
"name": "Attack Jewel 2",
"name": "怪力珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -18,7 +18,7 @@
}
},
{
"name": "Attack Jewel 3",
"name": "刚力珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -27,7 +27,7 @@
}
},
{
"name": "Defense Jewel 1",
"name": "守护珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -35,7 +35,7 @@
}
},
{
"name": "Defense Jewel 2",
"name": "防御珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -43,7 +43,7 @@
}
},
{
"name": "Defense Jewel 3",
"name": "刚体珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -51,7 +51,7 @@
}
},
{
"name": "Steadfast Jewel 1",
"name": "耐绝珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -60,7 +60,7 @@
}
},
{
"name": "Steadfast Jewel 2",
"name": "抗绝珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -69,7 +69,7 @@
}
},
{
"name": "Steadfast Jewel 3",
"name": "觉醒珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -78,7 +78,7 @@
}
},
{
"name": "Paralysis Jewel 1",
"name": "耐麻痹珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -87,7 +87,7 @@
}
},
{
"name": "Paralysis Jewel 2",
"name": "抗麻痹珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -96,7 +96,7 @@
}
},
{
"name": "Pep Jewel 1",
"name": "耐眠珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -104,7 +104,7 @@
}
},
{
"name": "Pep Jewel 2",
"name": "绝眠珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -112,7 +112,7 @@
}
},
{
"name": "Antidote Jewel 1",
"name": "抗毒珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -121,7 +121,7 @@
}
},
{
"name": "Antidote Jewel 2",
"name": "断毒珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -130,7 +130,7 @@
}
},
{
"name": "Antibacterial Jewel 1",
"name": "抗力珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -138,7 +138,7 @@
}
},
{
"name": "Antibacterial Jewel 2",
"name": "抗菌珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -146,7 +146,7 @@
}
},
{
"name": "Steady Jewel",
"name": "强腰珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -155,7 +155,7 @@
}
},
{
"name": "Minstrel's Jewel",
"name": "美声珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -164,7 +164,7 @@
}
},
{
"name": "Snow Resistance Jewel",
"name": "雪玉珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -173,7 +173,7 @@
}
},
{
"name": "Ninja Jewel",
"name": "忍脚珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -181,7 +181,7 @@
}
},
{
"name": "Vitality Jewel 1",
"name": "元气珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -190,7 +190,7 @@
}
},
{
"name": "Vitality Jewel 2",
"name": "体力珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -198,7 +198,7 @@
}
},
{
"name": "Vitality Jewel 3",
"name": "霸力珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -207,7 +207,7 @@
}
},
{
"name": "Handicraft Jewel",
"name": "匠珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -216,16 +216,7 @@
}
},
{
"name": "Handicraft Jewel",
"rarity": 4,
"requiredSlots": 1,
"skills": {
"27": 1,
"44": -1
}
},
{
"name": "Razor Jewel 1",
"name": "斩铁珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -234,7 +225,7 @@
}
},
{
"name": "Razor Jewel 2",
"name": "斩空珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -243,7 +234,7 @@
}
},
{
"name": "Expert Jewel 1",
"name": "达人珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -252,7 +243,7 @@
}
},
{
"name": "Expert Jewel 2",
"name": "仙人珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -261,7 +252,7 @@
}
},
{
"name": "Grinder Jewel",
"name": "研磨珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -269,7 +260,7 @@
}
},
{
"name": "Ironwall Jewel",
"name": "铁壁珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -278,7 +269,7 @@
}
},
{
"name": "Guard Jewel 1",
"name": "天盾珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -287,7 +278,7 @@
}
},
{
"name": "Guard Jewel 2",
"name": "天壁珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -296,7 +287,7 @@
}
},
{
"name": "Throwing Jewel",
"name": "力投珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -304,7 +295,7 @@
}
},
{
"name": "Absorber Jewel 1",
"name": "抑反珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -313,7 +304,7 @@
}
},
{
"name": "Absorber Jewel 2",
"name": "反动珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -322,7 +313,7 @@
}
},
{
"name": "Forceshot Jewel",
"name": "强弹珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -331,7 +322,7 @@
}
},
{
"name": "Pierce Jewel",
"name": "贯通珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -340,7 +331,7 @@
}
},
{
"name": "Pellet Jewel",
"name": "散弹珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -349,7 +340,7 @@
}
},
{
"name": "Shot Plus Jewel 1",
"name": "加弹珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -358,7 +349,7 @@
}
},
{
"name": "Pierce Plus Jewel 1",
"name": "加贯珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -367,7 +358,7 @@
}
},
{
"name": "Pellet Plus Jewel 1",
"name": "加散珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -376,7 +367,7 @@
}
},
{
"name": "Crag Plus Jewel 1",
"name": "加榴珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -385,7 +376,7 @@
}
},
{
"name": "Cluster Plus Jewel 1",
"name": "加扩珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -394,7 +385,7 @@
}
},
{
"name": "Shot Plus Jewel 2",
"name": "增弹珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -403,7 +394,7 @@
}
},
{
"name": "Pierce Plus Jewel 2",
"name": "增贯珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -412,7 +403,7 @@
}
},
{
"name": "Pellet Plus Jewel 2",
"name": "增散珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -421,7 +412,7 @@
}
},
{
"name": "Crag Plus Jewel 2",
"name": "增榴珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -430,7 +421,7 @@
}
},
{
"name": "Cluster Plus Jewel 2",
"name": "增扩珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -439,7 +430,7 @@
}
},
{
"name": "Loading Jewel",
"name": "弹穴珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -448,7 +439,7 @@
}
},
{
"name": "Precision Jewel",
"name": "针穴珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -456,7 +447,7 @@
}
},
{
"name": "Status Jewel",
"name": "属攻珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -465,7 +456,7 @@
}
},
{
"name": "Bombardier Jewel",
"name": "爆师珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -473,7 +464,7 @@
}
},
{
"name": "Satiation Jewel",
"name": "满腹珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -482,7 +473,7 @@
}
},
{
"name": "Metabolic Jewel",
"name": "食汉珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -490,7 +481,7 @@
}
},
{
"name": "Ravenous Jewel",
"name": "气短珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -498,7 +489,7 @@
}
},
{
"name": "BBQ Jewel",
"name": "美食珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -506,7 +497,7 @@
}
},
{
"name": "Stamina Jewel",
"name": "强精珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -515,7 +506,7 @@
}
},
{
"name": "Divine Jewel",
"name": "天力珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -523,7 +514,7 @@
}
},
{
"name": "Earplug Jewel 1",
"name": "防音珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -532,7 +523,7 @@
}
},
{
"name": "Earplug Jewel 2",
"name": "音无珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -541,7 +532,7 @@
}
},
{
"name": "Heavy Jewel 1",
"name": "文镇珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -550,7 +541,7 @@
}
},
{
"name": "Heavy Jewel 2",
"name": "重块珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -559,7 +550,7 @@
}
},
{
"name": "Traveller's Jewel",
"name": "旅人珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -568,7 +559,7 @@
}
},
{
"name": "Evasion Jewel 1",
"name": "轻足珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -577,7 +568,7 @@
}
},
{
"name": "Evasion Jewel 2",
"name": "神足珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -586,7 +577,7 @@
}
},
{
"name": "Riskbreaker Jewel",
"name": "危机珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -594,7 +585,7 @@
}
},
{
"name": "Anti-Theft Jewel",
"name": "键珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -602,7 +593,7 @@
}
},
{
"name": "Enduring Jewel 1",
"name": "持续珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -611,7 +602,7 @@
}
},
{
"name": "Enduring Jewel 2",
"name": "恒久珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -620,7 +611,7 @@
}
},
{
"name": "Friendship Jewel 1",
"name": "友爱珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -629,7 +620,7 @@
}
},
{
"name": "Friendship Jewel 2",
"name": "友情珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -638,7 +629,7 @@
}
},
{
"name": "Transport Jewel 1",
"name": "快足珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -647,7 +638,7 @@
}
},
{
"name": "Transport Jewel 2",
"name": "快速珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -655,7 +646,7 @@
}
},
{
"name": "Resistance Jewel 1",
"name": "耐性珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -664,7 +655,7 @@
}
},
{
"name": "Resistance Jewel 2",
"name": "万耐珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -673,7 +664,7 @@
}
},
{
"name": "Resistance Jewel 3",
"name": "天耐珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -682,7 +673,7 @@
}
},
{
"name": "Blaze Jewel 1",
"name": "火炎珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -691,7 +682,7 @@
}
},
{
"name": "Blaze Jewel 2",
"name": "红莲珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -700,7 +691,7 @@
}
},
{
"name": "Blaze Jewel 3",
"name": "狱炎珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -709,7 +700,7 @@
}
},
{
"name": "Stream Jewel 1",
"name": "流水珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -718,7 +709,7 @@
}
},
{
"name": "Stream Jewel 2",
"name": "爆水珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -727,7 +718,7 @@
}
},
{
"name": "Stream Jewel 3",
"name": "水鬼珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -736,7 +727,7 @@
}
},
{
"name": "Frost Jewel 1",
"name": "冰珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -745,7 +736,7 @@
}
},
{
"name": "Frost Jewel 2",
"name": "冰河珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -754,7 +745,7 @@
}
},
{
"name": "Frost Jewel 3",
"name": "永冰珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -763,7 +754,7 @@
}
},
{
"name": "Bolt Jewel 1",
"name": "雷光珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -772,7 +763,7 @@
}
},
{
"name": "Bolt Jewel 2",
"name": "雷鸣珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -781,7 +772,7 @@
}
},
{
"name": "Bolt Jewel 3",
"name": "雷神珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -790,7 +781,7 @@
}
},
{
"name": "Dragon Jewel 1",
"name": "破龍珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -799,7 +790,7 @@
}
},
{
"name": "Dragon Jewel 2",
"name": "灭龍珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -808,7 +799,7 @@
}
},
{
"name": "Dragon Jewel 3",
"name": "龍王珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -817,7 +808,7 @@
}
},
{
"name": "Cold Jewel 1",
"name": "凉风珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -825,7 +816,7 @@
}
},
{
"name": "Cold Jewel 2",
"name": "冷风珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -833,7 +824,7 @@
}
},
{
"name": "Hot Jewel 1",
"name": "温风珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -841,7 +832,7 @@
}
},
{
"name": "Hot Jewel 2",
"name": "暖风珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -849,7 +840,7 @@
}
},
{
"name": "Map Jewel",
"name": "锐眼珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -857,7 +848,7 @@
}
},
{
"name": "Gathering Jewel 1",
"name": "百手珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -865,7 +856,7 @@
}
},
{
"name": "Gathering Jewel 2",
"name": "千手珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -873,7 +864,7 @@
}
},
{
"name": "Gathering Jewel 3",
"name": "万手珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -882,7 +873,7 @@
}
},
{
"name": "Snatcher Jewel 1",
"name": "早手珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -890,7 +881,7 @@
}
},
{
"name": "Snatcher Jewel 2",
"name": "速手珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -898,7 +889,7 @@
}
},
{
"name": "Blessing Jewel 1",
"name": "祝珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -906,7 +897,7 @@
}
},
{
"name": "Blessing Jewel 2",
"name": "祝福珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -914,7 +905,7 @@
}
},
{
"name": "Carver Jewel 1",
"name": "皮剥珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -923,7 +914,7 @@
}
},
{
"name": "Carver Jewel 2",
"name": "兽剥珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -932,7 +923,7 @@
}
},
{
"name": "Fate Jewel 1",
"name": "宝珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -941,7 +932,7 @@
}
},
{
"name": "Fate Jewel 2",
"name": "报珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -950,7 +941,7 @@
}
},
{
"name": "Fisher's Jewel",
"name": "钓力珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -958,7 +949,7 @@
}
},
{
"name": "Psychic Jewel 1",
"name": "透眼珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -967,7 +958,7 @@
}
},
{
"name": "Psychic Jewel 2",
"name": "千里珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -976,7 +967,7 @@
}
},
{
"name": "Psychic Jewel 3",
"name": "万里珠",
"rarity": 5,
"requiredSlots": 3,
"skills": {
@ -985,7 +976,7 @@
}
},
{
"name": "Recovery Jewel 1",
"name": "回复珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -994,7 +985,7 @@
}
},
{
"name": "Recovery Jewel 2",
"name": "快复珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {
@ -1003,7 +994,7 @@
}
},
{
"name": "Medicine Jewel",
"name": "治愈珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -1012,16 +1003,7 @@
}
},
{
"name": "Medicine Jewel",
"rarity": 4,
"requiredSlots": 1,
"skills": {
"51": 1,
"70": -1
}
},
{
"name": "Professor Jewel",
"name": "博士珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -1029,7 +1011,7 @@
}
},
{
"name": "Combination Jewel",
"name": "弹制珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -1038,7 +1020,7 @@
}
},
{
"name": "Alchemical Jewel",
"name": "秘术珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -1046,7 +1028,7 @@
}
},
{
"name": "Giant Jewel",
"name": "巨兽珠",
"rarity": 4,
"requiredSlots": 1,
"skills": {
@ -1054,7 +1036,7 @@
}
},
{
"name": "Cannoneer's Jewel",
"name": "大炮珠",
"rarity": 5,
"requiredSlots": 2,
"skills": {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
[
"Attack and Defense",
"Health and Stamina",
"Evade and Blocking",
"Resistances",
"Item Related",
"Blademaster Exclusives",
"Gunner Exclusives",
"Misc."
"攻击/防御相关",
"体力/耐力相关",
"回避/抵挡相关",
"耐性相关",
"道具相关",
"剑士专属",
"射手专属",
"其他"
]

View File

@ -1,75 +1,75 @@
{
"0": "Alchemy",
"1": "Ammo Maker",
"2": "Anti-Theft",
"3": "Antiseptic",
"4": "Artillery",
"5": "Attack",
"6": "Auto-Guard",
"7": "Bomb Boost",
"8": "Carving",
"9": "Clust S+",
"10": "Cold Resistance",
"11": "Combo Rate",
"12": "Cooking",
"13": "Crag S+",
"14": "Defense",
"15": "Dragon Resistance",
"16": "Earplugs",
"17": "Eating",
"18": "Element Resistance",
"19": "Evasion",
"20": "Expert",
"21": "Fate",
"22": "Fire Resistance",
"23": "Fisher",
"24": "Gathering",
"25": "Gluttony",
"26": "Guard",
"27": "Handicraft",
"28": "Health",
"29": "Heat Resistance",
"30": "Hunger",
"31": "Ice Resistance",
"32": "Lasting Power",
"33": "Load",
"34": "Map",
"35": "Monster",
"36": "Normal S+",
"37": "Normal S Up",
"38": "Paralysis",
"39": "Pellet S+",
"40": "Pellet S Up",
"41": "Pierce S+",
"42": "Pierce S Up",
"43": "Poison",
"44": "Potential",
"45": "Precision",
"46": "Protection",
"47": "Psychic",
"48": "Rapid-Fire",
"49": "Recoil",
"50": "Recover Speed",
"51": "Recovery Items",
"52": "Reload Speed",
"53": "Sense",
"54": "Sharpness",
"55": "Sleep",
"56": "Snow Resistance",
"57": "Speed Gathering",
"58": "Speed Sharpening",
"59": "Stamina",
"60": "Status",
"61": "Stun",
"62": "Terrain",
"63": "Throw",
"64": "Thunder Resistance",
"65": "Torso Up",
"66": "Transporter",
"67": "Tremor Resistance",
"68": "Vocal Chords",
"69": "Water Resistance",
"70": "Whim",
"71": "Wide-Range",
"72": "Wind Pressure"
"0": "炼金术",
"1": "弹调合",
"2": "偷盗无效",
"3": "抗菌・抗毒",
"4": "炮术师",
"5": "攻击",
"6": "自动防御",
"7": "爆弹强化",
"8": "剥取",
"9": "扩散弹追加",
"10": "耐寒",
"11": "调合成功率",
"12": "烤肉",
"13": "榴弹追加",
"14": "防御",
"15": "龍耐性",
"16": "听觉保护",
"17": "食事",
"18": "全耐性UP",
"19": "回避性能",
"20": "达人",
"21": "运气",
"22": "火耐性",
"23": "垂钓",
"24": "采取",
"25": "贪吃鬼",
"26": "防御性能",
"27": "",
"28": "体力",
"29": "耐暑",
"30": "饥饿",
"31": "冰耐性",
"32": "效果持续",
"33": "装填数",
"34": "地图",
"35": "怪物",
"36": "通常弹追加",
"37": "通常弹强化",
"38": "麻痹",
"39": "散弹追加",
"40": "散弹强化",
"41": "贯通弹追加",
"42": "贯通弹强化",
"43": "",
"44": "底力",
"45": "精密射击",
"46": "加护",
"47": "千里眼",
"48": "连射",
"49": "反动",
"50": "回复速度",
"51": "回复",
"52": "装填",
"53": "气息",
"54": "锐利",
"55": "睡眠",
"56": "耐雪",
"57": "高速收集",
"58": "研磨师",
"59": "耐力",
"60": "特殊攻击",
"61": "气绝",
"62": "地形",
"63": "投掷",
"64": "雷耐性",
"65": "胴系统倍加",
"66": "搬运",
"67": "耐震",
"68": "声带",
"69": "水耐性",
"70": "反覆无常",
"71": "广域",
"72": "风压"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5,38 +5,39 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MH2 Armor Set Searcher</title>
<title>怪物猎人2在线配装搜索器</title>
<meta
name="description"
content="Armor Set Searcher for Monster Hunter Dos"
content="怪物猎人2dos的在线配装搜索器"
/>
<meta name="author" content="TimH96" />
<meta property="og:title" content="MH2 Armor Set Searcher" />
<meta property="og:title" content="怪物猎人2在线配装搜索器" />
<meta property="og:type" content="website" />
<meta
property="og:url"
content="https://timh96.github.io/mhdos-armor-set-searcher/"
content="https://mhwikicn.github.io/mhdos-armor-set-searcher/"
/>
<meta
property="og:description"
content="Armor Set Searcher for Monster Hunter Dos"
content="怪物猎人2dos的在线配装搜索器"
/>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<div id="header">MH Dos Armor Set Searcher</div>
<div id="header">怪物猎人2在线配装搜索器</div>
<div id="open-source" class="banner">
<p>
This is an open-source project hosted on gh-pages,
<a href="https://github.com/TimH96/mhdos-armor-set-searcher"
>here is the repository</a
>. If you have a feature request or find any bugs, please create an
issue on GitHub. You are also welcome to integrate them yourself via a
Pull Request.
这是一个托管于GitHub Pages的开源项目
<a href="https://github.com/mhwikicn/mhdos-armor-set-searcher"
>这里是仓库地址</a
>。 项目分支来自于
<a href="https://timh96.github.io/mhdos-armor-set-searcher/"
>TimH96</a
>。<br>如需提交功能请求或反馈错误/bug信息请在GitHub提交议题同样欢迎有能力之人士的拉取请求。
</p>
</div>
@ -44,8 +45,8 @@
<!-- navbar -->
<div id="navbar-container">
<ul class="navbar">
<li class="navbar-option" data-selection="0">Search</li>
<li class="navbar-option" data-selection="2">Equipment</li>
<li class="navbar-option" data-selection="0">搜索</li>
<li class="navbar-option" data-selection="2">装备</li>
</ul>
</div>
@ -56,35 +57,35 @@
<ul>
<li>
<select name="armor-type" id="armor-type">
<option value="1">Blademaster</option>
<option value="2">Gunner</option>
<option value="1">剑士</option>
<option value="2">射手</option>
</select>
</li>
<li>
<select name="weapon-slots" id="weapon-slots">
<option value="0">0 Weapon Slots</option>
<option value="1">1 Weapon Slots</option>
<option value="2">2 Weapon Slots</option>
<option value="3">3 Weapon Slots</option>
<option value="0">0孔武器</option>
<option value="1">1孔武器</option>
<option value="2">2孔武器</option>
<option value="3">3孔武器</option>
</select>
</li>
<li>
<select name="armor-rarity" id="armor-rarity">
<option value="7">Armor RARE7</option>
<option value="6">Armor RARE6</option>
<option value="5">Armor RARE5</option>
<option value="4">Armor RARE4</option>
<option value="3">Armor RARE3</option>
<option value="2">Armor RARE2</option>
<option value="1">Armor RARE1</option>
<option value="7">防具稀有度7以下</option>
<option value="6">防具稀有度6以下</option>
<option value="5">防具稀有度5以下</option>
<option value="4">防具稀有度4以下</option>
<option value="3">防具稀有度3以下</option>
<option value="2">防具稀有度2以下</option>
<option value="1">防具稀有度1以下</option>
</select>
</li>
<li>
<select name="deco-rarity" id="deco-rarity">
<option value="7">Deco RARE7</option>
<option value="6">Deco RARE6</option>
<option value="5">Deco RARE5</option>
<option value="4">Deco RARE4</option>
<option value="7">装饰珠稀有度7以下</option>
<option value="6">装饰珠稀有度6以下</option>
<option value="5">装饰珠稀有度5以下</option>
<option value="4">装饰珠稀有度4以下</option>
</select>
</li>
<li>
@ -106,9 +107,9 @@
<!-- controls -->
<div id="search-controls">
<ul>
<li><button id="search-btn">Search</button></li>
<li><button id="more-btn">More Skills</button></li>
<li><button id="reset-btn">Reset</button></li>
<li><button id="search-btn">搜索</button></li>
<li><button id="more-btn">追加更多技能</button></li>
<li><button id="reset-btn">重置</button></li>
</ul>
</div>

View File

@ -28,7 +28,7 @@ body {
line-height: 1.4;
color: var(--color-text);
margin: 0 0 8em 0;
font: 12px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
font: 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
"Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

View File

@ -41,7 +41,7 @@ const getPinPicker = (cat: EquipmentCategory, eq: EquipmentMin[]) => {
const content = document.createElement('select')
content.setAttribute('id', `eq-${cat}-pin-picker`)
content.style.width = '72%'
for (const x of [{ name: 'None', category: cat }].concat(...eq)) {
for (const x of [{ name: '', category: cat }].concat(...eq)) {
content.appendChild(
htmlToElement(`<option value="${x.name}">${x.name}</option>`),
)
@ -63,11 +63,11 @@ const getPinPicker = (cat: EquipmentCategory, eq: EquipmentMin[]) => {
const renderColumns = (armor: EquipmentMin[][]) => {
const parent = document.getElementById('eq-container')
for (const item of [
[EquipmentCategory.HEAD, 'Head', armor[0]],
[EquipmentCategory.CHEST, 'Chest', armor[1]],
[EquipmentCategory.ARMS, 'Arms', armor[2]],
[EquipmentCategory.WAIST, 'Waist', armor[3]],
[EquipmentCategory.LEGS, 'Legs', armor[4]],
[EquipmentCategory.HEAD, '', armor[0]],
[EquipmentCategory.CHEST, '', armor[1]],
[EquipmentCategory.ARMS, '', armor[2]],
[EquipmentCategory.WAIST, '', armor[3]],
[EquipmentCategory.LEGS, '', armor[4]],
]) {
const cat = item[0] as EquipmentCategory
const name = item[1] as string
@ -76,13 +76,13 @@ const renderColumns = (armor: EquipmentMin[][]) => {
const root = htmlToElement(`<div class="eq-column" data-eq-column-type="${cat}"></div>`)
// pins
const pinHeader = htmlToElement(`<div class="eq-column-item eq-column-header">${name} Pinned</div>`)
const pinHeader = htmlToElement(`<div class="eq-column-item eq-column-header">${name} 固定</div>`)
const pinContent = htmlToElement('<div class="eq-column-item eq-column-content eq-column-pin"></div>')
const pinElement = getPinPicker(cat, eq)
pinContent.appendChild(pinElement)
// exclusions
const exclusionHeader = htmlToElement(`<div class="eq-column-item eq-column-header">${name} Excluded</div>`)
const exclusionHeader = htmlToElement(`<div class="eq-column-item eq-column-header">${name} 排除</div>`)
const exclusionContent = htmlToElement(`<div id="eq-${cat}-exclusion" class="eq-column-item eq-column-content eq-column-exclusion"></div>`)
root.appendChild(pinHeader)
@ -125,7 +125,7 @@ export const addExclusion = (x: EquipmentMin) => {
}
export const addPin = (x: EquipmentMin) => {
if (x.name === 'None') {
if (x.name === '') {
UserEquipmentSettings.Instance.removePin(x.category)
saveToStorage()
return

View File

@ -54,7 +54,7 @@ const searchLogic = (equData: StaticEquipmentData, skillData: StaticSkillData) =
const searchParams = arrangeSearchData()
if (!searchParams) {
alert('Please select at least one skill')
alert('请至少选择1个技能')
return
}
@ -75,7 +75,7 @@ const moreSkillsLogic = async (equData: StaticEquipmentData, skillData: StaticSk
const searchParams = arrangeSearchData()
if (!searchParams) {
alert('Please select at least one skill')
alert('请至少选择1个技能')
return
}

View File

@ -16,7 +16,7 @@ export function * moreSkillsIterator (skillActivations: SkillActivationMap) {
.reduce((sum, c) => sum + c.length, 0)
for (let i = 0; i < totalActCount; i++) {
countDiv.innerHTML = `Checked ${i} possible skills ...`
countDiv.innerHTML = `检查可能的 ${i} 个技能 ...`
yield i
}
}
@ -37,7 +37,7 @@ const onSetClick = (tbNode: Node, viewGetter: () => Node) => {
const PINS_OR_EXCL_ACTIVE_BANNER = htmlToElement(`
<div class="results-banner banner">
You have some pins or exclusions active, which may be limiting results. You may find some results by removing those pins or exclusions.
<div>
`)
@ -45,16 +45,16 @@ const getExpandedView = (set: ArmorSet, skillData: StaticSkillData, searchParams
// build header
const header = htmlToElement(`
<tr>
<th>Skill</th>
<th style="width: 6%">Weapon</th>
<th style="width: 6%">Head</th>
<th style="width: 6%">Chest</th>
<th style="width: 6%">Arms</th>
<th style="width: 6%">Waist</th>
<th style="width: 6%">Legs</th>
<th style="width: 6%">Deco</th>
<th style="width: 6%">Total</th>
<th>Active</th>
<th></th>
<th style="width: 6%"></th>
<th style="width: 6%"></th>
<th style="width: 6%"></th>
<th style="width: 6%"></th>
<th style="width: 6%"></th>
<th style="width: 6%"></th>
<th style="width: 6%"></th>
<th style="width: 6%"></th>
<th></th>
</tr>
`)
@ -82,7 +82,7 @@ const getExpandedView = (set: ArmorSet, skillData: StaticSkillData, searchParams
// build slot list
const slotRow = document.createElement('tr')
slotRow.appendChild(htmlToElement('<td>Slots</td>'))
slotRow.appendChild(htmlToElement('<td>孔位</td>'))
const rawSlowList = [searchParams.weaponSlots, ...set.getPieces().map(x => x.slots)]
rawSlowList.forEach(s => slotRow.appendChild(htmlToElement(`<td>${s}</td>`)))
@ -107,7 +107,7 @@ const getExpandedView = (set: ArmorSet, skillData: StaticSkillData, searchParams
// build piece table
const pieceTable = htmlToElement('<table class="result-set-piece-table"></table>')
const pieceTableHeader = htmlToElement('<tr><th>Def</th><th>Piece</th><th>Pin</th><th>Excl</th></tr>')
const pieceTableHeader = htmlToElement('<tr><th>防御</th><th>防具</th><th>固定</th><th>排除</th></tr>')
pieceTable.appendChild(pieceTableHeader)
for (const piece of set.getPieces()) {
const pieceTableEle = document.createElement('tr')
@ -189,12 +189,12 @@ const getSetElement = (set: ArmorSet, skillData: StaticSkillData, searchParams:
const row2 = htmlToElement(`
<tr class="result-set-row result-set-row2">
<td colspan="6">
<p><span class="def">DEF</span> <span>${set.evaluation.defense.max}</span></p>
<p><span class="fir">FIR</span> <span>${set.evaluation.resistance[0]}</span></p>
<p><span class="wat">WAT</span> <span>${set.evaluation.resistance[1]}</span></p>
<p><span class="ice">ICE</span> <span>${set.evaluation.resistance[2]}</span></p>
<p><span class="thn">THN</span> <span>${set.evaluation.resistance[3]}</span></p>
<p><span class="drg">DRG</span> <span>${set.evaluation.resistance[4]}</span></p>
<p><span class="def"></span> <span>${set.evaluation.defense.max}</span></p>
<p><span class="fir"></span> <span>${set.evaluation.resistance[0]}</span></p>
<p><span class="wat"></span> <span>${set.evaluation.resistance[1]}</span></p>
<p><span class="thn"></span> <span>${set.evaluation.resistance[3]}</span></p>
<p><span class="drg"></span> <span>${set.evaluation.resistance[4]}</span></p>
<p><span class="ice"></span> <span>${set.evaluation.resistance[2]}</span></p>
<span class="result-set-unrelated">${unrelatedHtmlStrings.join('')}</span>
</td>
</tr>`)
@ -233,7 +233,7 @@ export const renderMoreSkills = (activations: SkillActivation[], pinsOrExclActiv
if (activations.length === 0) {
resultContainer.appendChild(htmlToElement(`
<div class="results-banner banner">
Can't fit more skills
<div>
`))
@ -255,14 +255,14 @@ export const renderResults = (sets: ArmorSet[], skillData: StaticSkillData, sear
// add search param element
resultContainer.appendChild(htmlToElement(`
<div class="results-title">Results for ${searchParams.skillActivations.map(x => x.name).join(', ')} (${sets.length} matches)</div>
<div class="results-title"> ${searchParams.skillActivations.map(x => x.name).join(', ')} ( ${sets.length} )</div>
`))
// return if no results
if (sets.length === 0) {
resultContainer.appendChild(htmlToElement(`
<div class="results-banner banner">
No matching armor sets
<div>
`))
@ -273,7 +273,7 @@ export const renderResults = (sets: ArmorSet[], skillData: StaticSkillData, sear
// build table and table header
const table = htmlToElement('<table class="results-table" id="results-table"></table>')
const header = htmlToElement('<tr><th>Head</th><th>Torso</th><th>Arms</th><th>Waist</th><th>Legs</th></tr>')
const header = htmlToElement('<tr><th>头</th><th>胴</th><th>腕</th><th>腰</th><th>脚</th></tr>')
resultContainer.appendChild(table)
table.appendChild(header)

View File

@ -41,7 +41,7 @@ const applyCharmFilter = (charms: Charm[], skills: SkillActivation[]) => {
const x = charms.find(c => c.slots === slots)
if (x) {
const newC: Charm = {
name: `${slots} Slot Charm`,
name: `${slots}孔护符`,
slots: slots as Slots,
category: EquipmentCategory.CHARM,
rarity: 0,
@ -94,7 +94,7 @@ const applyArmorFilter = (
type: x.type,
defense: x.defense,
resistance: x.resistance,
name: `${slots} Slot Piece`,
name: `${slots}孔防具`,
slots: slots as Slots,
category: x.category,
rarity: x.rarity,
@ -111,7 +111,7 @@ const applyArmorFilter = (
.map(x => {
const renamed: ArmorPiece = {
...x!,
name: 'Torso Up Piece',
name: '胴系统倍加防具',
isGeneric: true,
}
return renamed

View File

@ -54,7 +54,7 @@ const getDecorationVariationsPerSlotLevel = (
// create dummy for unused slots
const dummy: Decoration = {
name: 'None',
name: '',
rarity: 0,
requiredSlots: 0,
skills: new EquipmentSkills(),