HWM_Resource_Retabler

Меняет разметку вкладки ресурсов под нужды других скриптов

当前为 2022-07-06 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/447488/1067731/HWM_Resource_Retabler.js

  1. // ==UserScript==
  2. // @name HWM_Resource_Retabler
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.6
  5. // @description Меняет разметку вкладки ресурсов под нужды других скриптов
  6. // @author Tags
  7. // @include /^https{0,1}:\/\/(www\.heroeswm\.ru|178\.248\.235\.15|my\.lordswm\.com)\/(pl_info.php*)/
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=heroeswm.ru
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. this.MercenaryElements = {
  13. "абразив":{
  14. id: "EL_42",
  15. art_type: "abrasive"
  16. }, "змеиный яд":{
  17. id: "EL_43",
  18. art_type: "snake_poison"
  19. }, "клык тигра":{
  20. id: "EL_46",
  21. art_type: "tiger_tusk"
  22. }, "ледяной кристалл":{
  23. id: "EL_44",
  24. art_type: "ice_crystal"
  25. }, "лунный камень":{
  26. id: "EL_45",
  27. art_type: "moon_stone"
  28. }, "огненный кристалл":{
  29. id: "EL_40",
  30. art_type: "fire_crystal"
  31. }, "осколок метеорита":{
  32. id: "EL_37",
  33. art_type: "meteorit"
  34. }, "цветок ведьм":{
  35. id: "EL_41",
  36. art_type: "witch_flower"
  37. }, "цветок ветров":{
  38. id: "EL_39",
  39. art_type: "wind_flower"
  40. }, "цветок папоротника":{
  41. id: "EL_78",
  42. art_type: "fern_flower"
  43. }, "ядовитый гриб":{
  44. id: "EL_38",
  45. art_type: "badgrib"
  46. },};
  47. window.RetablerFired =false;
  48. (function() {
  49. 'use strict';
  50.  
  51. if(!window.location.href.includes('pl_info') || this.RetablerFired ||window.RetablerFired )
  52. return;
  53. const tables = Array.from(document.getElementsByClassName('wb'));
  54. const resourceTable = tables[tables.indexOf(tables.filter(e=>e.innerText=="Ресурсы")[0])+3]
  55.  
  56. //Вытаскиваем все доступные элементы и превращаем в объекты.
  57. const items = resourceTable.innerHTML.split(/&nbsp;/).filter(e => e !== "").map(s => s.replaceAll("<b>", "").replaceAll("<br>", "").replaceAll("</b>", "")).map(e => ({
  58. name: e.split(':')[0],
  59. value: e.split(':')[1],
  60. isMercenary: window.MercenaryElements[e.split(':')[0]]!==undefined,
  61. }));
  62.  
  63. const parts = items.filter(e=>!e.isMercenary);
  64. const mercenary = items.filter(e=>e.isMercenary);
  65. //Чистим табличку
  66. resourceTable.innerHTML = "";
  67.  
  68. //Записываем новую разметку
  69. for (let item of parts) {
  70. const div = Object.assign(
  71. document.createElement('div'), {
  72. innerHTML: `<div>&nbsp;&nbsp;&nbsp;&nbsp;<b>${item.name}</b>:&nbsp;${item.value}</div>`,
  73.  
  74. });;
  75. div.setAttribute('ismercenary', item.isMercenary);
  76. div.setAttribute('name', item.name);
  77. resourceTable.appendChild(div);
  78. }
  79. const splitter = Object.assign(
  80. document.createElement('div'), {
  81. innerHTML: `<div name="splitter"><br></div>`,
  82.  
  83. });;
  84. if(parts.length>0){
  85. resourceTable.appendChild(splitter);
  86. }
  87. for (let item of mercenary) {
  88. const div = Object.assign(
  89. document.createElement('div'), {
  90. innerHTML: `<div">&nbsp;&nbsp;&nbsp;&nbsp;<b>${item.name}</b>:&nbsp;${item.value}</div>`,
  91.  
  92. });;
  93. div.setAttribute('ismercenary', item.isMercenary);
  94. div.setAttribute('name', item.name);
  95. resourceTable.appendChild(div);
  96. }
  97.  
  98. window.RetablerFired = true;
  99. })();
  100.  
  101.  
  102.