HWM_Resources

Библиотека всякой мелочевки, для совместной работы других скриптов

目前为 2024-02-27 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/447488/1334213/HWM_Resources.js

  1. // ==UserScript==
  2. // @name HWM_Resources
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.0
  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. // @license CC0
  11. // ==/UserScript==
  12.  
  13. this.MercenaryElements = {
  14. "абразив":{
  15. id: "EL_42",
  16. art_type: "abrasive"
  17. }, "змеиный яд":{
  18. id: "EL_43",
  19. art_type: "snake_poison"
  20. }, "клык тигра":{
  21. id: "EL_46",
  22. art_type: "tiger_tusk"
  23. }, "ледяной кристалл":{
  24. id: "EL_44",
  25. art_type: "ice_crystal"
  26. }, "лунный камень":{
  27. id: "EL_45",
  28. art_type: "moon_stone"
  29. }, "огненный кристалл":{
  30. id: "EL_40",
  31. art_type: "fire_crystal"
  32. }, "осколок метеорита":{
  33. id: "EL_37",
  34. art_type: "meteorit"
  35. }, "цветок ведьм":{
  36. id: "EL_41",
  37. art_type: "witch_flower"
  38. }, "цветок ветров":{
  39. id: "EL_39",
  40. art_type: "wind_flower"
  41. }, "цветок папоротника":{
  42. id: "EL_78",
  43. art_type: "fern_flower"
  44. }, "ядовитый гриб":{
  45. id: "EL_38",
  46. art_type: "badgrib"
  47. },};
  48.  
  49. (function() {
  50. 'use strict';
  51.  
  52. if(!window.location.href.includes('pl_info'))
  53. return;
  54. const tables = Array.from(document.getElementsByClassName('wb'));
  55. const resourceTable = tables[tables.indexOf(tables.filter(e=>e.innerText=="Ресурсы")[0])+3]
  56. if(resourceTable.hasAttribute("done")){
  57. return;}
  58. //Вытаскиваем все доступные элементы и превращаем в объекты.
  59. const source = resourceTable.innerText.split("\n").filter(e=>!(e.includes("Части") || e.includes("Частей"))&&e!==""&&window.MercenaryElements[e.split(':')[0].replaceAll(String.fromCharCode(160),'').toLowerCase()]!==undefined);
  60.  
  61. const mappedItems = source.map(e => ({
  62. name: e.split(':')[0].replaceAll(String.fromCharCode(160),''),
  63. value: e.split(':')[1].replaceAll(String.fromCharCode(160),''),
  64. isMercenary: window.MercenaryElements[e.split(':')[0].replaceAll(String.fromCharCode(160),'').toLowerCase()]!==undefined,
  65. }));
  66. const mercenary = mappedItems.filter(e=>e.isMercenary);
  67. var itemsCount = mercenary.length
  68.  
  69. for(var i = 0; i<itemsCount; i++){
  70. resourceTable.innerHTML = resourceTable.innerHTML.substring(resourceTable.innerHTML.indexOf("\n") + 1)
  71. }
  72.  
  73. let tempInnerHtml = resourceTable.innerHTML;
  74. resourceTable.innerHTML ="";
  75. for (let item of mercenary) {
  76. const div = Object.assign(
  77. document.createElement('div'), {
  78. innerHTML: `<div">&nbsp;&nbsp;&nbsp;&nbsp;<b>${item.name}</b>:&nbsp;${item.value}</div>`,
  79.  
  80. });;
  81. div.setAttribute('ismercenary', item.isMercenary);
  82. div.setAttribute('name', item.name);
  83. resourceTable.appendChild(div);
  84. }
  85.  
  86. resourceTable.innerHTML +=(tempInnerHtml);
  87. resourceTable.setAttribute("done","true")
  88. })();
  89.  
  90.