DH3 Real Max Global Level

Show the actual global level where each skill is maxed out at level 100

  1. // ==UserScript==
  2. // @name DH3 Real Max Global Level
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2.1
  5. // @description Show the actual global level where each skill is maxed out at level 100
  6. // @author Lasse Brustad
  7. // @match https://dh3.diamondhunt.co/
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. /* jshint esversion:6 */
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. // skills
  17. const skills = {
  18. combat: {
  19. unlocked: false,
  20. xp: 0,
  21. lvl: 0
  22. },
  23. magic: {
  24. unlocked: false,
  25. xp: 0,
  26. lvl: 0
  27. },
  28. mining: {
  29. unlocked: false,
  30. xp: 0,
  31. lvl: 0
  32. },
  33. crafting: {
  34. unlocked: false,
  35. xp: 0,
  36. lvl: 0
  37. },
  38. woodcutting: {
  39. unlocked: false,
  40. xp: 0,
  41. lvl: 0
  42. },
  43. farming: {
  44. unlocked: false,
  45. xp: 0,
  46. lvl: 0
  47. },
  48. brewing: {
  49. unlocked: false,
  50. xp: 0,
  51. lvl: 0
  52. },
  53. fishing: {
  54. unlocked: false,
  55. xp: 0,
  56. lvl: 0
  57. },
  58. cooking: {
  59. unlocked: false,
  60. xp: 0,
  61. lvl: 0
  62. }
  63. };
  64.  
  65. function getActualLvl(skill, xp) {
  66. if (skills[skill].unlocked) {
  67. const lvl = window.getLevel(xp);
  68. return lvl >= 100 ? 100 : lvl;
  69. }
  70. if (window.getItem(skill + 'Unlocked') === 1) {
  71. skills[skill].unlocked = true;
  72. return getActualLvl(skill, xp);
  73. }
  74. return 0;
  75. }
  76.  
  77. function getStoredLvl(skill) {
  78. const xp = window.getItem(skill + 'Xp');
  79. if (skills[skill] && skills[skill].xp === xp) {
  80. return skills[skill].lvl;
  81. }
  82. const lvl = getActualLvl(skill, xp);
  83. skills[skill] = { xp, lvl };
  84. return lvl
  85. }
  86.  
  87. window.getGlobalLevel = function() {
  88. let globalLevel = 0;
  89. for (let skill in skills) {
  90. globalLevel += getStoredLvl(skill);
  91. }
  92.  
  93. return globalLevel;
  94. };
  95. })();