CHUD

Caddy Healer for Urban Dead

  1. // ==UserScript==
  2. // @name CHUD
  3. // @namespace https://roadha.us
  4. // @author haliphax (https://roadha.us)
  5. // @contributor jimflexx (http://userscripts.org/users/117383)
  6. // @description Caddy Healer for Urban Dead
  7. // @include http://urbandead.com/map.cgi*
  8. // @include http://www.urbandead.com/map.cgi*
  9. // @version 0.0.1.20200325063813
  10. // ==/UserScript==
  11.  
  12.  
  13. // sort players array based on hp (players[i][2])
  14. function sortPlayers(a, b)
  15. {
  16. return (a[2] - b[2]);
  17. }
  18.  
  19. // display chud panel with player list
  20. function chudList(players)
  21. {
  22.  
  23. var bgcolor= "Silver";
  24. var fak=false;
  25. for (var i=0; i< document.forms.length; i++) {
  26. if (document.forms[i].action == "http://www.urbandead.com/map.cgi?use-h") {
  27. fak=true;
  28. }
  29. }
  30. if (fak) { bgcolor = "pink"; }
  31. var divHtml = '<div id="chud" style="background-color:'+bgcolor+';color:Red;'
  32. + 'border-width:2px;border-style:solid;border-color:red;padding:4px;">'
  33.  
  34. for(var i = 0; i < players.length; i++) {
  35. divHtml += '<form name="chudf_' + players[i][0] + '" '
  36. + 'action="map.cgi?use-h" method="post"><span style="color:Red;'
  37. + 'text-decoration:underline;cursor:pointer;"';
  38. if(players[i][3] != null) divHtml += ' class="' + players[i][3] + '"';
  39. divHtml += '" onclick="chudf_' + players[i][0] + '.submit()" '
  40. + 'title="Heal">' + players[i][1] + '</span>: ' + players[i][2]
  41. + 'HP&nbsp;<input type="hidden" name="target" value="'
  42. + players[i][0] + '" /></form><br />';
  43. }
  44.  
  45. divHtml += '</div>'
  46.  
  47. document.body.innerHTML = document.body.innerHTML.replace(/class="y">Donate<\/a>/i,
  48. 'class="y">Donate</a><br />' + divHtml);
  49. }
  50.  
  51. // main script body
  52. var pnRegex = /<a.*?href="profile.cgi\?id=(\d+)"(?:\sclass="(.*?)")?>(.*?)<\/a>.*?\((\d+)/gi;
  53. var matches = null;
  54.  
  55. var players = new Array();
  56. var i = 0;
  57. matches = pnRegex.exec(document.body.innerHTML);
  58.  
  59. while(matches != null) {
  60. if (matches[0].indexOf("class=\"trg\"")!=-1) {
  61. players[i] = new Array();
  62. players[i][0] = matches[1]; // profile id
  63. players[i][1] = matches[3]; // name
  64. players[i][2] = matches[4]; // hit points
  65. players[i][3] = matches[2]; // href class (color)
  66. i++;
  67. }
  68. matches = pnRegex.exec(document.body.innerHTML);
  69. }
  70.  
  71. if(players.length > 0) {
  72. players.sort(sortPlayers);
  73. chudList(players);
  74. }