Repository files navigation

Overview

This tool fetches weapon data from mhwg.org and mhw-db.com, and can generate an almost-ready-to-use weapon name mapping between the two, and can also generate the weapon sharpness missing in mhw-db.com from available data in mhwg.org.

You need .NET Core SDK to build this tool. Here you can find everything needed: https://www.microsoft.com/net

Build

You can build the tool either with Visual Studio 2017 Community Edition, or with .NET Core 2.0+.

In the folder containing the .csproj file:

dotnet build

Run

Form the folder that contains the .csproj file:

cd bin/Debug/netcoreapp2.0
dotnet MHWSharpnessExtractor.dll

Options

  • --silent: Does not print the processing time.
  • --no-name-mapping: Does not generate the weapon name mapping output file.
  • --no-sharpness: Does not generate the weapon sharpness output file.

For example:

dotnet MHWSharpnessExtractor.dll --no-name-mapping

The weapon name mapping file is named mhwg_to_mhwdb.json. It may contain conflicts, represented by an array of string instead of a string. In such a case, it is necessary to solve the conflict manually in order to let only one string value.

The weapon sharpness file is named weapon_sharpness.json. The sharpness values are given out of 400.

The tool (executable) creates the file at its root directory level, and returns the following codes:

Return codeExplanation
0Success.
1A format error occurred. This is probably due a formatting change in a data source. In this case, a stack trace is printed, even in solent mode.
2A network error occurred. This is due to a HTTP request timeout.
3An unknown error occurred. Probably an exception in the code. In this case, a stack trace is printed, even in solent mode.

Research result

The goal of this tool is to get the sharpness data from mhwg.org and transfer it to the weapons in mhw-db.com.

The weapons in mhwg.org do not have identifiers that can be matched against the ones in mhw-db.com, and names in both data sources do not match either, because one has Japanese names, the other has English names.

In the begining I wanted to avoid creating a weapon mapping and though about finding the matching weapons automatically at runtime.

So in order to find the weapon matches, my first approach was to find weapons correspondance based on parameters matching. This worked until I ran into an unsolvable problem, some weapons have the exact same parameters, for example, the Buster Blade 1 and the Jagras Blade 2 have exactly the same parameters, even the rarity is the same. The only way to distinguish them from one another is by:

  • id: not good because there is no identifier match across data sources
  • name: not good because of Japanese and English names mismatches
  • sharpness: not good because this is what we are looking for

See weapons parameters bellow:

{
"id": 4,
"name": "Buster Blade 1",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 21,
"name": "Jagras Blade 2",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 20,
"orange": 12,
"yellow": 20,
"green": 10,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

Technically the sharpness could be used to further improve parameters matching and make it perfect, but even the sharpness values are slightly different across data sources. For example, hereafter are the level 1 sharpenss values of the first Great Sword Buster Sword 1:

mhwg.org: 100 50 50
mhw-db.com: 100 48 52

An equality matching could be implemented with a -2/+2 accuracy range, but that makes it impossible for hash code matching.

Also, yet another problem occurs is that different weapons have exact same parameters, including exact same sharpness, such as Iron Grace 2 and Flickering Glow 1. They have a different rarity value, but then enters the Steel Knife 1 and Lumu Knife 1 which are exactly similar.

{
"id": 173,
"slug": "steel-knife-1",
"name": "Steel Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 201,
"slug": "lumu-knife-1",
"name": "Lumu Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

So in the end I opted for a name mapping, but still generated based on parameters matching scores, so instead of doing all the hard work, the tool generates as much data as it can, and in case of conflicts, it outputs both weapons for me to manually solve them.

This solution seems to be the most reliable in the end, because I can validate the generated mapping before it being reused as input for the next run.

About

A tool to extract weapons sharpness information from different data sources, for Monster Hunter: World game

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Overview

This tool fetches weapon data from mhwg.org and mhw-db.com, and can generate an almost-ready-to-use weapon name mapping between the two, and can also generate the weapon sharpness missing in mhw-db.com from available data in mhwg.org.

You need .NET Core SDK to build this tool. Here you can find everything needed: https://www.microsoft.com/net

Build

You can build the tool either with Visual Studio 2017 Community Edition, or with .NET Core 2.0+.

In the folder containing the .csproj file:

dotnet build

Run

Form the folder that contains the .csproj file:

cd bin/Debug/netcoreapp2.0
dotnet MHWSharpnessExtractor.dll

Options

  • --silent: Does not print the processing time.
  • --no-name-mapping: Does not generate the weapon name mapping output file.
  • --no-sharpness: Does not generate the weapon sharpness output file.

For example:

dotnet MHWSharpnessExtractor.dll --no-name-mapping

The weapon name mapping file is named mhwg_to_mhwdb.json. It may contain conflicts, represented by an array of string instead of a string. In such a case, it is necessary to solve the conflict manually in order to let only one string value.

The weapon sharpness file is named weapon_sharpness.json. The sharpness values are given out of 400.

The tool (executable) creates the file at its root directory level, and returns the following codes:

Return codeExplanation
0Success.
1A format error occurred. This is probably due a formatting change in a data source. In this case, a stack trace is printed, even in solent mode.
2A network error occurred. This is due to a HTTP request timeout.
3An unknown error occurred. Probably an exception in the code. In this case, a stack trace is printed, even in solent mode.

Research result

The goal of this tool is to get the sharpness data from mhwg.org and transfer it to the weapons in mhw-db.com.

The weapons in mhwg.org do not have identifiers that can be matched against the ones in mhw-db.com, and names in both data sources do not match either, because one has Japanese names, the other has English names.

In the begining I wanted to avoid creating a weapon mapping and though about finding the matching weapons automatically at runtime.

So in order to find the weapon matches, my first approach was to find weapons correspondance based on parameters matching. This worked until I ran into an unsolvable problem, some weapons have the exact same parameters, for example, the Buster Blade 1 and the Jagras Blade 2 have exactly the same parameters, even the rarity is the same. The only way to distinguish them from one another is by:

  • id: not good because there is no identifier match across data sources
  • name: not good because of Japanese and English names mismatches
  • sharpness: not good because this is what we are looking for

See weapons parameters bellow:

{
"id": 4,
"name": "Buster Blade 1",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 21,
"name": "Jagras Blade 2",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 20,
"orange": 12,
"yellow": 20,
"green": 10,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

Technically the sharpness could be used to further improve parameters matching and make it perfect, but even the sharpness values are slightly different across data sources. For example, hereafter are the level 1 sharpenss values of the first Great Sword Buster Sword 1:

mhwg.org: 100 50 50
mhw-db.com: 100 48 52

An equality matching could be implemented with a -2/+2 accuracy range, but that makes it impossible for hash code matching.

Also, yet another problem occurs is that different weapons have exact same parameters, including exact same sharpness, such as Iron Grace 2 and Flickering Glow 1. They have a different rarity value, but then enters the Steel Knife 1 and Lumu Knife 1 which are exactly similar.

{
"id": 173,
"slug": "steel-knife-1",
"name": "Steel Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 201,
"slug": "lumu-knife-1",
"name": "Lumu Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

So in the end I opted for a name mapping, but still generated based on parameters matching scores, so instead of doing all the hard work, the tool generates as much data as it can, and in case of conflicts, it outputs both weapons for me to manually solve them.

This solution seems to be the most reliable in the end, because I can validate the generated mapping before it being reused as input for the next run.

About

A tool to extract weapons sharpness information from different data sources, for Monster Hunter: World game

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Overview

This tool fetches weapon data from mhwg.org and mhw-db.com, and can generate an almost-ready-to-use weapon name mapping between the two, and can also generate the weapon sharpness missing in mhw-db.com from available data in mhwg.org.

You need .NET Core SDK to build this tool. Here you can find everything needed: https://www.microsoft.com/net

Build

You can build the tool either with Visual Studio 2017 Community Edition, or with .NET Core 2.0+.

In the folder containing the .csproj file:

dotnet build

Run

Form the folder that contains the .csproj file:

cd bin/Debug/netcoreapp2.0
dotnet MHWSharpnessExtractor.dll

Options

  • --silent: Does not print the processing time.
  • --no-name-mapping: Does not generate the weapon name mapping output file.
  • --no-sharpness: Does not generate the weapon sharpness output file.

For example:

dotnet MHWSharpnessExtractor.dll --no-name-mapping

The weapon name mapping file is named mhwg_to_mhwdb.json. It may contain conflicts, represented by an array of string instead of a string. In such a case, it is necessary to solve the conflict manually in order to let only one string value.

The weapon sharpness file is named weapon_sharpness.json. The sharpness values are given out of 400.

The tool (executable) creates the file at its root directory level, and returns the following codes:

Return codeExplanation
0Success.
1A format error occurred. This is probably due a formatting change in a data source. In this case, a stack trace is printed, even in solent mode.
2A network error occurred. This is due to a HTTP request timeout.
3An unknown error occurred. Probably an exception in the code. In this case, a stack trace is printed, even in solent mode.

Research result

The goal of this tool is to get the sharpness data from mhwg.org and transfer it to the weapons in mhw-db.com.

The weapons in mhwg.org do not have identifiers that can be matched against the ones in mhw-db.com, and names in both data sources do not match either, because one has Japanese names, the other has English names.

In the begining I wanted to avoid creating a weapon mapping and though about finding the matching weapons automatically at runtime.

So in order to find the weapon matches, my first approach was to find weapons correspondance based on parameters matching. This worked until I ran into an unsolvable problem, some weapons have the exact same parameters, for example, the Buster Blade 1 and the Jagras Blade 2 have exactly the same parameters, even the rarity is the same. The only way to distinguish them from one another is by:

  • id: not good because there is no identifier match across data sources
  • name: not good because of Japanese and English names mismatches
  • sharpness: not good because this is what we are looking for

See weapons parameters bellow:

{
"id": 4,
"name": "Buster Blade 1",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 21,
"name": "Jagras Blade 2",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 20,
"orange": 12,
"yellow": 20,
"green": 10,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

Technically the sharpness could be used to further improve parameters matching and make it perfect, but even the sharpness values are slightly different across data sources. For example, hereafter are the level 1 sharpenss values of the first Great Sword Buster Sword 1:

mhwg.org: 100 50 50
mhw-db.com: 100 48 52

An equality matching could be implemented with a -2/+2 accuracy range, but that makes it impossible for hash code matching.

Also, yet another problem occurs is that different weapons have exact same parameters, including exact same sharpness, such as Iron Grace 2 and Flickering Glow 1. They have a different rarity value, but then enters the Steel Knife 1 and Lumu Knife 1 which are exactly similar.

{
"id": 173,
"slug": "steel-knife-1",
"name": "Steel Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 201,
"slug": "lumu-knife-1",
"name": "Lumu Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

So in the end I opted for a name mapping, but still generated based on parameters matching scores, so instead of doing all the hard work, the tool generates as much data as it can, and in case of conflicts, it outputs both weapons for me to manually solve them.

This solution seems to be the most reliable in the end, because I can validate the generated mapping before it being reused as input for the next run.

About

A tool to extract weapons sharpness information from different data sources, for Monster Hunter: World game

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Overview

This tool fetches weapon data from mhwg.org and mhw-db.com, and can generate an almost-ready-to-use weapon name mapping between the two, and can also generate the weapon sharpness missing in mhw-db.com from available data in mhwg.org.

You need .NET Core SDK to build this tool. Here you can find everything needed: https://www.microsoft.com/net

Build

You can build the tool either with Visual Studio 2017 Community Edition, or with .NET Core 2.0+.

In the folder containing the .csproj file:

dotnet build

Run

Form the folder that contains the .csproj file:

cd bin/Debug/netcoreapp2.0
dotnet MHWSharpnessExtractor.dll

Options

  • --silent: Does not print the processing time.
  • --no-name-mapping: Does not generate the weapon name mapping output file.
  • --no-sharpness: Does not generate the weapon sharpness output file.

For example:

dotnet MHWSharpnessExtractor.dll --no-name-mapping

The weapon name mapping file is named mhwg_to_mhwdb.json. It may contain conflicts, represented by an array of string instead of a string. In such a case, it is necessary to solve the conflict manually in order to let only one string value.

The weapon sharpness file is named weapon_sharpness.json. The sharpness values are given out of 400.

The tool (executable) creates the file at its root directory level, and returns the following codes:

Return codeExplanation
0Success.
1A format error occurred. This is probably due a formatting change in a data source. In this case, a stack trace is printed, even in solent mode.
2A network error occurred. This is due to a HTTP request timeout.
3An unknown error occurred. Probably an exception in the code. In this case, a stack trace is printed, even in solent mode.

Research result

The goal of this tool is to get the sharpness data from mhwg.org and transfer it to the weapons in mhw-db.com.

The weapons in mhwg.org do not have identifiers that can be matched against the ones in mhw-db.com, and names in both data sources do not match either, because one has Japanese names, the other has English names.

In the begining I wanted to avoid creating a weapon mapping and though about finding the matching weapons automatically at runtime.

So in order to find the weapon matches, my first approach was to find weapons correspondance based on parameters matching. This worked until I ran into an unsolvable problem, some weapons have the exact same parameters, for example, the Buster Blade 1 and the Jagras Blade 2 have exactly the same parameters, even the rarity is the same. The only way to distinguish them from one another is by:

  • id: not good because there is no identifier match across data sources
  • name: not good because of Japanese and English names mismatches
  • sharpness: not good because this is what we are looking for

See weapons parameters bellow:

{
"id": 4,
"name": "Buster Blade 1",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 21,
"name": "Jagras Blade 2",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 20,
"orange": 12,
"yellow": 20,
"green": 10,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

Technically the sharpness could be used to further improve parameters matching and make it perfect, but even the sharpness values are slightly different across data sources. For example, hereafter are the level 1 sharpenss values of the first Great Sword Buster Sword 1:

mhwg.org: 100 50 50
mhw-db.com: 100 48 52

An equality matching could be implemented with a -2/+2 accuracy range, but that makes it impossible for hash code matching.

Also, yet another problem occurs is that different weapons have exact same parameters, including exact same sharpness, such as Iron Grace 2 and Flickering Glow 1. They have a different rarity value, but then enters the Steel Knife 1 and Lumu Knife 1 which are exactly similar.

{
"id": 173,
"slug": "steel-knife-1",
"name": "Steel Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 201,
"slug": "lumu-knife-1",
"name": "Lumu Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

So in the end I opted for a name mapping, but still generated based on parameters matching scores, so instead of doing all the hard work, the tool generates as much data as it can, and in case of conflicts, it outputs both weapons for me to manually solve them.

This solution seems to be the most reliable in the end, because I can validate the generated mapping before it being reused as input for the next run.

About

A tool to extract weapons sharpness information from different data sources, for Monster Hunter: World game

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Overview

This tool fetches weapon data from mhwg.org and mhw-db.com, and can generate an almost-ready-to-use weapon name mapping between the two, and can also generate the weapon sharpness missing in mhw-db.com from available data in mhwg.org.

You need .NET Core SDK to build this tool. Here you can find everything needed: https://www.microsoft.com/net

Build

You can build the tool either with Visual Studio 2017 Community Edition, or with .NET Core 2.0+.

In the folder containing the .csproj file:

dotnet build

Run

Form the folder that contains the .csproj file:

cd bin/Debug/netcoreapp2.0
dotnet MHWSharpnessExtractor.dll

Options

  • --silent: Does not print the processing time.
  • --no-name-mapping: Does not generate the weapon name mapping output file.
  • --no-sharpness: Does not generate the weapon sharpness output file.

For example:

dotnet MHWSharpnessExtractor.dll --no-name-mapping

The weapon name mapping file is named mhwg_to_mhwdb.json. It may contain conflicts, represented by an array of string instead of a string. In such a case, it is necessary to solve the conflict manually in order to let only one string value.

The weapon sharpness file is named weapon_sharpness.json. The sharpness values are given out of 400.

The tool (executable) creates the file at its root directory level, and returns the following codes:

Return codeExplanation
0Success.
1A format error occurred. This is probably due a formatting change in a data source. In this case, a stack trace is printed, even in solent mode.
2A network error occurred. This is due to a HTTP request timeout.
3An unknown error occurred. Probably an exception in the code. In this case, a stack trace is printed, even in solent mode.

Research result

The goal of this tool is to get the sharpness data from mhwg.org and transfer it to the weapons in mhw-db.com.

The weapons in mhwg.org do not have identifiers that can be matched against the ones in mhw-db.com, and names in both data sources do not match either, because one has Japanese names, the other has English names.

In the begining I wanted to avoid creating a weapon mapping and though about finding the matching weapons automatically at runtime.

So in order to find the weapon matches, my first approach was to find weapons correspondance based on parameters matching. This worked until I ran into an unsolvable problem, some weapons have the exact same parameters, for example, the Buster Blade 1 and the Jagras Blade 2 have exactly the same parameters, even the rarity is the same. The only way to distinguish them from one another is by:

  • id: not good because there is no identifier match across data sources
  • name: not good because of Japanese and English names mismatches
  • sharpness: not good because this is what we are looking for

See weapons parameters bellow:

{
"id": 4,
"name": "Buster Blade 1",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 21,
"name": "Jagras Blade 2",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 20,
"orange": 12,
"yellow": 20,
"green": 10,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

Technically the sharpness could be used to further improve parameters matching and make it perfect, but even the sharpness values are slightly different across data sources. For example, hereafter are the level 1 sharpenss values of the first Great Sword Buster Sword 1:

mhwg.org: 100 50 50
mhw-db.com: 100 48 52

An equality matching could be implemented with a -2/+2 accuracy range, but that makes it impossible for hash code matching.

Also, yet another problem occurs is that different weapons have exact same parameters, including exact same sharpness, such as Iron Grace 2 and Flickering Glow 1. They have a different rarity value, but then enters the Steel Knife 1 and Lumu Knife 1 which are exactly similar.

{
"id": 173,
"slug": "steel-knife-1",
"name": "Steel Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 201,
"slug": "lumu-knife-1",
"name": "Lumu Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

So in the end I opted for a name mapping, but still generated based on parameters matching scores, so instead of doing all the hard work, the tool generates as much data as it can, and in case of conflicts, it outputs both weapons for me to manually solve them.

This solution seems to be the most reliable in the end, because I can validate the generated mapping before it being reused as input for the next run.

About

A tool to extract weapons sharpness information from different data sources, for Monster Hunter: World game

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Overview

This tool fetches weapon data from mhwg.org and mhw-db.com, and can generate an almost-ready-to-use weapon name mapping between the two, and can also generate the weapon sharpness missing in mhw-db.com from available data in mhwg.org.

You need .NET Core SDK to build this tool. Here you can find everything needed: https://www.microsoft.com/net

Build

You can build the tool either with Visual Studio 2017 Community Edition, or with .NET Core 2.0+.

In the folder containing the .csproj file:

dotnet build

Run

Form the folder that contains the .csproj file:

cd bin/Debug/netcoreapp2.0
dotnet MHWSharpnessExtractor.dll

Options

  • --silent: Does not print the processing time.
  • --no-name-mapping: Does not generate the weapon name mapping output file.
  • --no-sharpness: Does not generate the weapon sharpness output file.

For example:

dotnet MHWSharpnessExtractor.dll --no-name-mapping

The weapon name mapping file is named mhwg_to_mhwdb.json. It may contain conflicts, represented by an array of string instead of a string. In such a case, it is necessary to solve the conflict manually in order to let only one string value.

The weapon sharpness file is named weapon_sharpness.json. The sharpness values are given out of 400.

The tool (executable) creates the file at its root directory level, and returns the following codes:

Return codeExplanation
0Success.
1A format error occurred. This is probably due a formatting change in a data source. In this case, a stack trace is printed, even in solent mode.
2A network error occurred. This is due to a HTTP request timeout.
3An unknown error occurred. Probably an exception in the code. In this case, a stack trace is printed, even in solent mode.

Research result

The goal of this tool is to get the sharpness data from mhwg.org and transfer it to the weapons in mhw-db.com.

The weapons in mhwg.org do not have identifiers that can be matched against the ones in mhw-db.com, and names in both data sources do not match either, because one has Japanese names, the other has English names.

In the begining I wanted to avoid creating a weapon mapping and though about finding the matching weapons automatically at runtime.

So in order to find the weapon matches, my first approach was to find weapons correspondance based on parameters matching. This worked until I ran into an unsolvable problem, some weapons have the exact same parameters, for example, the Buster Blade 1 and the Jagras Blade 2 have exactly the same parameters, even the rarity is the same. The only way to distinguish them from one another is by:

  • id: not good because there is no identifier match across data sources
  • name: not good because of Japanese and English names mismatches
  • sharpness: not good because this is what we are looking for

See weapons parameters bellow:

{
"id": 4,
"name": "Buster Blade 1",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 21,
"name": "Jagras Blade 2",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 20,
"orange": 12,
"yellow": 20,
"green": 10,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

Technically the sharpness could be used to further improve parameters matching and make it perfect, but even the sharpness values are slightly different across data sources. For example, hereafter are the level 1 sharpenss values of the first Great Sword Buster Sword 1:

mhwg.org: 100 50 50
mhw-db.com: 100 48 52

An equality matching could be implemented with a -2/+2 accuracy range, but that makes it impossible for hash code matching.

Also, yet another problem occurs is that different weapons have exact same parameters, including exact same sharpness, such as Iron Grace 2 and Flickering Glow 1. They have a different rarity value, but then enters the Steel Knife 1 and Lumu Knife 1 which are exactly similar.

{
"id": 173,
"slug": "steel-knife-1",
"name": "Steel Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 201,
"slug": "lumu-knife-1",
"name": "Lumu Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

So in the end I opted for a name mapping, but still generated based on parameters matching scores, so instead of doing all the hard work, the tool generates as much data as it can, and in case of conflicts, it outputs both weapons for me to manually solve them.

This solution seems to be the most reliable in the end, because I can validate the generated mapping before it being reused as input for the next run.

About

A tool to extract weapons sharpness information from different data sources, for Monster Hunter: World game

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Overview

This tool fetches weapon data from mhwg.org and mhw-db.com, and can generate an almost-ready-to-use weapon name mapping between the two, and can also generate the weapon sharpness missing in mhw-db.com from available data in mhwg.org.

You need .NET Core SDK to build this tool. Here you can find everything needed: https://www.microsoft.com/net

Build

You can build the tool either with Visual Studio 2017 Community Edition, or with .NET Core 2.0+.

In the folder containing the .csproj file:

dotnet build

Run

Form the folder that contains the .csproj file:

cd bin/Debug/netcoreapp2.0
dotnet MHWSharpnessExtractor.dll

Options

  • --silent: Does not print the processing time.
  • --no-name-mapping: Does not generate the weapon name mapping output file.
  • --no-sharpness: Does not generate the weapon sharpness output file.

For example:

dotnet MHWSharpnessExtractor.dll --no-name-mapping

The weapon name mapping file is named mhwg_to_mhwdb.json. It may contain conflicts, represented by an array of string instead of a string. In such a case, it is necessary to solve the conflict manually in order to let only one string value.

The weapon sharpness file is named weapon_sharpness.json. The sharpness values are given out of 400.

The tool (executable) creates the file at its root directory level, and returns the following codes:

Return codeExplanation
0Success.
1A format error occurred. This is probably due a formatting change in a data source. In this case, a stack trace is printed, even in solent mode.
2A network error occurred. This is due to a HTTP request timeout.
3An unknown error occurred. Probably an exception in the code. In this case, a stack trace is printed, even in solent mode.

Research result

The goal of this tool is to get the sharpness data from mhwg.org and transfer it to the weapons in mhw-db.com.

The weapons in mhwg.org do not have identifiers that can be matched against the ones in mhw-db.com, and names in both data sources do not match either, because one has Japanese names, the other has English names.

In the begining I wanted to avoid creating a weapon mapping and though about finding the matching weapons automatically at runtime.

So in order to find the weapon matches, my first approach was to find weapons correspondance based on parameters matching. This worked until I ran into an unsolvable problem, some weapons have the exact same parameters, for example, the Buster Blade 1 and the Jagras Blade 2 have exactly the same parameters, even the rarity is the same. The only way to distinguish them from one another is by:

  • id: not good because there is no identifier match across data sources
  • name: not good because of Japanese and English names mismatches
  • sharpness: not good because this is what we are looking for

See weapons parameters bellow:

{
"id": 4,
"name": "Buster Blade 1",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 21,
"name": "Jagras Blade 2",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 20,
"orange": 12,
"yellow": 20,
"green": 10,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

Technically the sharpness could be used to further improve parameters matching and make it perfect, but even the sharpness values are slightly different across data sources. For example, hereafter are the level 1 sharpenss values of the first Great Sword Buster Sword 1:

mhwg.org: 100 50 50
mhw-db.com: 100 48 52

An equality matching could be implemented with a -2/+2 accuracy range, but that makes it impossible for hash code matching.

Also, yet another problem occurs is that different weapons have exact same parameters, including exact same sharpness, such as Iron Grace 2 and Flickering Glow 1. They have a different rarity value, but then enters the Steel Knife 1 and Lumu Knife 1 which are exactly similar.

{
"id": 173,
"slug": "steel-knife-1",
"name": "Steel Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 201,
"slug": "lumu-knife-1",
"name": "Lumu Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

So in the end I opted for a name mapping, but still generated based on parameters matching scores, so instead of doing all the hard work, the tool generates as much data as it can, and in case of conflicts, it outputs both weapons for me to manually solve them.

This solution seems to be the most reliable in the end, because I can validate the generated mapping before it being reused as input for the next run.

About

A tool to extract weapons sharpness information from different data sources, for Monster Hunter: World game

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Overview

This tool fetches weapon data from mhwg.org and mhw-db.com, and can generate an almost-ready-to-use weapon name mapping between the two, and can also generate the weapon sharpness missing in mhw-db.com from available data in mhwg.org.

You need .NET Core SDK to build this tool. Here you can find everything needed: https://www.microsoft.com/net

Build

You can build the tool either with Visual Studio 2017 Community Edition, or with .NET Core 2.0+.

In the folder containing the .csproj file:

dotnet build

Run

Form the folder that contains the .csproj file:

cd bin/Debug/netcoreapp2.0
dotnet MHWSharpnessExtractor.dll

Options

  • --silent: Does not print the processing time.
  • --no-name-mapping: Does not generate the weapon name mapping output file.
  • --no-sharpness: Does not generate the weapon sharpness output file.

For example:

dotnet MHWSharpnessExtractor.dll --no-name-mapping

The weapon name mapping file is named mhwg_to_mhwdb.json. It may contain conflicts, represented by an array of string instead of a string. In such a case, it is necessary to solve the conflict manually in order to let only one string value.

The weapon sharpness file is named weapon_sharpness.json. The sharpness values are given out of 400.

The tool (executable) creates the file at its root directory level, and returns the following codes:

Return codeExplanation
0Success.
1A format error occurred. This is probably due a formatting change in a data source. In this case, a stack trace is printed, even in solent mode.
2A network error occurred. This is due to a HTTP request timeout.
3An unknown error occurred. Probably an exception in the code. In this case, a stack trace is printed, even in solent mode.

Research result

The goal of this tool is to get the sharpness data from mhwg.org and transfer it to the weapons in mhw-db.com.

The weapons in mhwg.org do not have identifiers that can be matched against the ones in mhw-db.com, and names in both data sources do not match either, because one has Japanese names, the other has English names.

In the begining I wanted to avoid creating a weapon mapping and though about finding the matching weapons automatically at runtime.

So in order to find the weapon matches, my first approach was to find weapons correspondance based on parameters matching. This worked until I ran into an unsolvable problem, some weapons have the exact same parameters, for example, the Buster Blade 1 and the Jagras Blade 2 have exactly the same parameters, even the rarity is the same. The only way to distinguish them from one another is by:

  • id: not good because there is no identifier match across data sources
  • name: not good because of Japanese and English names mismatches
  • sharpness: not good because this is what we are looking for

See weapons parameters bellow:

{
"id": 4,
"name": "Buster Blade 1",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 21,
"name": "Jagras Blade 2",
"type": "great-sword",
"rarity": 3,
"attack": {
"display": 576,
"raw": 120
},
"attributes": {
"attack": "576"
},
"sharpness": {
"red": 20,
"orange": 12,
"yellow": 20,
"green": 10,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

Technically the sharpness could be used to further improve parameters matching and make it perfect, but even the sharpness values are slightly different across data sources. For example, hereafter are the level 1 sharpenss values of the first Great Sword Buster Sword 1:

mhwg.org: 100 50 50
mhw-db.com: 100 48 52

An equality matching could be implemented with a -2/+2 accuracy range, but that makes it impossible for hash code matching.

Also, yet another problem occurs is that different weapons have exact same parameters, including exact same sharpness, such as Iron Grace 2 and Flickering Glow 1. They have a different rarity value, but then enters the Steel Knife 1 and Lumu Knife 1 which are exactly similar.

{
"id": 173,
"slug": "steel-knife-1",
"name": "Steel Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}
{
"id": 201,
"slug": "lumu-knife-1",
"name": "Lumu Knife 1",
"type": "sword-and-shield",
"rarity": 3,
"attack": {
"display": 168,
"raw": 120
},
"attributes": {
"attack": "168"
},
"sharpness": {
"red": 17,
"orange": 13,
"yellow": 20,
"green": 12,
"blue": 0,
"white": 0
},
"slots": [],
"elements": []
}

So in the end I opted for a name mapping, but still generated based on parameters matching scores, so instead of doing all the hard work, the tool generates as much data as it can, and in case of conflicts, it outputs both weapons for me to manually solve them.

This solution seems to be the most reliable in the end, because I can validate the generated mapping before it being reused as input for the next run.

About

A tool to extract weapons sharpness information from different data sources, for Monster Hunter: World game

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages