hwm_trans_nick

HWM mod - set link & nick for transfer (by Demin) + Statistics

  1. // ==UserScript==
  2. // @name hwm_trans_nick
  3. // @namespace Demin
  4. // @description HWM mod - set link & nick for transfer (by Demin) + Statistics
  5. // @homepage https://gf.qytechs.cn/ru/scripts/374544-hwm-trans-nick
  6. // @version 1.07
  7. // @include *heroeswm.ru/pl_info.php*
  8. // @include *heroeswm.ru/transfer.php*
  9. // @include *heroeswm.ru/el_transfer.php*
  10. // @include https://www.lordswm.com/pl_info.php*
  11. // @include https://www.lordswm.com/transfer.php*
  12. // @include https://www.lordswm.com/el_transfer.php*
  13. // @exclude */bselect.php?all=1
  14. // @license MIT
  15. // ==/UserScript==
  16.  
  17. // (c) 2011, demin (http://www.heroeswm.ru/pl_info.php?id=15091)
  18. // [1.07] 02.06.2022, перф: не получало ник у бесклановых игроков, "Статистика" переименована в "Прогресс"
  19. // [1.06] 31.05.2022, перф: изменилась структура ссылки mailto, теперь нужно получать ник в другом месте; статистику открывает на daily.
  20. // 19.11.2018, перф: перевод сервера игры на https://
  21. // 16.11.2012, перф: добавлена ссылка на статистику http://lgnd.ru/event/show/pl_id/ID
  22. // 28.11.2012, перф: разбирает строку адреса (вида: /transfer.php?nick=NICK&ore=0&wood=0&mercury=0&sulphur=0&crystal=0&gem=0&gold=0&desc=COMMENT) для заполнения полей ресурсов и описания перевода.
  23.  
  24.  
  25. var version = '1.07';
  26.  
  27.  
  28. var url_cur = location.href;
  29. var url = 'http://'+location.hostname+'/';
  30.  
  31. var string = 'Пер.ресурсы';
  32. var string2 = 'Пер.элементы';
  33. var string3 = 'Прогресс';
  34.  
  35. if (url.match('lordswm')) {
  36. string = 'Transfer resources';
  37. string2 = 'Transfer elements';
  38. string3 = 'Progress';
  39. }
  40.  
  41.  
  42.  
  43. if( url_cur.indexOf('pl_info.php') > -1 )
  44. {
  45. var all_td_Elements = document.getElementsByTagName('td');
  46. var td_len = all_td_Elements.length;
  47. var my_td;
  48. var pl_name = "";
  49.  
  50. for (var i = 0; i < td_len; i++)
  51. {
  52. my_td = all_td_Elements[i];
  53. if (my_td.innerHTML.match (/&nbsp;&nbsp;.+\>(.+)&nbsp;&nbsp;\[\d\d?\]/))
  54. {
  55. pl_name = RegExp.$1;
  56. pl_name = pl_name.replace("&nbsp;"," ");
  57. // alert (pl_name);
  58. break;
  59. }
  60. }
  61.  
  62. var els = document.getElementsByTagName('a');
  63. if (location.href.match(/\?id=(\d+)/)) {pl_id = RegExp.$1;}
  64. for( var i = 0; i < els.length; i++ )
  65. {
  66. var el = els[i];
  67. if( el.href.match('sms-create.php?') )
  68. {
  69. item_name = pl_name;
  70. a1 = document.createElement( 'a' );
  71. a1.href = url+'transfer.php?nick='+item_name;
  72. a1.innerHTML = string;
  73. a1.style.textDecoration = 'none';
  74. a2 = document.createElement( 'a' );
  75. a2.href = url+'el_transfer.php?nick='+item_name;
  76. a2.innerHTML = string2;
  77. a2.style.textDecoration = 'none';
  78. a3 = document.createElement( 'a' );
  79. a3.href = 'https://daily.heroeswm.ru/progress/'+pl_id;
  80. a3.innerHTML = string3;
  81. a3.style.textDecoration = 'none';
  82. span = document.createElement( 'span' );
  83. span.innerHTML = '<br>&nbsp;&nbsp;';
  84. el.parentNode.insertBefore( a3 , el.nextSibling ) ;
  85. el.parentNode.insertBefore( document.createTextNode( '/' ) , el.nextSibling ) ;
  86. el.parentNode.insertBefore( a2 , el.nextSibling ) ;
  87. el.parentNode.insertBefore( document.createTextNode( '/' ) , el.nextSibling ) ;
  88. el.parentNode.insertBefore( a1 , el.nextSibling ) ;
  89. el.parentNode.insertBefore( span , el.nextSibling ) ;
  90. break;
  91. }
  92. }
  93. }
  94.  
  95. function urlDecode(string) {
  96. var codes = '%E0%E1%E2%E3%E4%E5%B8%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF';
  97. codes += '%C0%C1%C2%C3%C4%C5%A8%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF%20';
  98. codes = codes.split('%');
  99. var chars = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
  100. chars += 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ ';
  101. for (var i=0; i<codes.length; i++) string = string.split('%'+codes[i+1]).join(chars[i]);
  102. return string;
  103. }
  104.  
  105. if( url_cur.indexOf('transfer.php') > -1 )
  106. {
  107. //лучше было бы сделать как здесь: http://blog.yanke.ru/2012/06/javascript-get-window-location-search/
  108. itemname_r = /\?(.+)&?/ ;
  109. // itemname_r = /\??(.+)=(.+)&?/g ;
  110. item_name = itemname_r.exec( url_cur ) ;
  111. if (item_name && item_name[1]) {
  112. var param_arr = urlDecode(item_name[1]).split("&");
  113. var els = document.getElementsByTagName('input');
  114.  
  115. nick = "";
  116. for ( var i = 0; i < param_arr.length; i++ )
  117. {
  118. var param=param_arr[i];
  119. if ( param.match( /(.+?)=(.*)/ ) ) {
  120. // alert (param_arr[j]);
  121. for( var j = 0; j < els.length; j++ )
  122. {
  123. var el = els[j];
  124. if( el.name == RegExp.$1 && el.type == 'text' ) {
  125. if ( nick=="" && RegExp.$1 == "nick" ) { nick = RegExp.$2 }
  126. el.value = RegExp.$2;
  127. break;
  128. }
  129. }
  130. }
  131. }
  132.  
  133. var all_a = document.getElementsByTagName( 'a' );
  134. var a_len = all_a.length;
  135. var a_i;
  136. for (var i=a_len; i--;) {
  137. if (i<10) {break;}
  138. a_i = all_a[i];
  139. if (a_i.href.indexOf('el_transfer')!=-1) {
  140. a_i.href += '?nick=' + nick ;
  141. break;
  142. }
  143. }
  144.  
  145. }
  146. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址