HWM_Color_Market_Sell_Options

Позволяет долгосрочно окрашивать артефакты из меню выбора на продажу при выставлении нового лота

  1. // ==UserScript==
  2. // @name HWM_Color_Market_Sell_Options
  3. // @namespace Рианти
  4. // @description Позволяет долгосрочно окрашивать артефакты из меню выбора на продажу при выставлении нового лота
  5. // @include http://www.heroeswm.ru/auction_new_lot.php
  6. // @version 1
  7. // @grant GM_setValue
  8. // @grant GM_getValue
  9. // ==/UserScript==
  10.  
  11. var gmVar = 'HWM_Color_Market_1';
  12.  
  13. function setColor(el){
  14. el.style = 'background-color: #DBFFB4';
  15. }
  16. function setHuntColor(el){
  17. el.style = 'background-color: #FCD35F';
  18. }
  19. function dropColor(el){
  20. el.style = '';
  21. }
  22. function loadData(){
  23. return JSON.parse(GM_getValue(gmVar, '[]'));
  24. }
  25. function saveData(data){
  26. GM_setValue(gmVar, JSON.stringify(data));
  27. }
  28. function paint(){
  29. var select = document.querySelector('select[name="item"]');
  30. var options = select.childNodes;
  31. var colored = loadData();
  32. var i;
  33. for(i in options){
  34. if(options[i].value == undefined || options[i].value == ''){
  35. options[i].oncontextmenu = function(){return false}
  36. continue;
  37. } else if(options[i].innerHTML.indexOf('охотник') > -1 || options[i].innerHTML.indexOf('зверобо') > -1){
  38. setHuntColor(options[i]);
  39. } else if(colored.indexOf(options[i].value) > -1){
  40. setColor(options[i]);
  41. } else {
  42. dropColor(options[i]);
  43. }
  44. options[i].oncontextmenu = function(){
  45. changeDisplay(this);
  46. return false;
  47. }
  48. }
  49. }
  50. function changeDisplay(el){
  51. var colored = loadData(), i;
  52. if((i = colored.indexOf(el.value)) > -1){
  53. delete colored[i];
  54. saveData(colored);
  55. dropColor(el);
  56. } else {
  57. colored.push(el.value);
  58. saveData(colored);
  59. setColor(el);
  60. }
  61. }
  62. try{
  63. paint();
  64. } catch (e){ console.log(e); }