Guest User

Untitled

a guest
Feb 1st, 2023
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. // ==UserScript==
  2. // @name AutoHeal z potek i fullheal
  3. // @version 1.1
  4. // @match *.margonem.pl/
  5. // @match *.margonem.com/
  6. // @grant none
  7. // @author Bancewald
  8. // ==/UserScript==
  9.  
  10. //1.1 - dodane potki ktore lecza % hp
  11.  
  12. (Engine => {
  13. const useItem = item => {
  14. const {
  15. name,
  16. id
  17. } = item;
  18.  
  19. window._g(`moveitem&st=1&id=${id}`, () => {
  20. setTimeout(autoHeal, 100);
  21. });
  22. }
  23.  
  24. const getMaxHealVal = items => {
  25. if (items.length > 0) {
  26. return items.reduce((first, second) => first._cachedStats.leczy >= second._cachedStats.leczy ? first : second)
  27. }
  28. }
  29.  
  30. const getMaxHealValFH = items => {
  31. if (items.length > 0) {
  32. return items.reduce((first, second) => first._cachedStats.fullheal >= second._cachedStats.fullheal ? first : second)
  33. }
  34. }
  35.  
  36. const getMaxHealValperheal = items => {
  37. if (items.length > 0) {
  38. return items.reduce((first, second) => first._cachedStats.perheal >= second._cachedStats.perheal ? first : second)
  39. }
  40. }
  41.  
  42. const autoHeal = () => {
  43. const {
  44. hp,
  45. maxhp,
  46. lvl
  47. } = Engine.hero.d;
  48.  
  49. if (hp < maxhp && !Engine.dead) {
  50. const items = Engine.items.fetchLocationItems("g")
  51. .filter(item => item._cachedStats.hasOwnProperty("leczy"))
  52. .filter(item => item._cachedStats.leczy <= maxhp - hp)
  53. .filter(item => item._cachedStats.leczy > 500)
  54. .filter(item => !item._cachedStats.hasOwnProperty("lvl") || (item._cachedStats.hasOwnProperty("lvl") && item._cachedStats.lvl <= lvl))
  55. .filter(item => !item._cachedStats.hasOwnProperty("timelimit") || (item._cachedStats.hasOwnProperty("timelimit") && !item._cachedStats.timelimit.includes(",")));
  56.  
  57. const items_fh = Engine.items.fetchLocationItems("g")
  58. .filter(item => item._cachedStats.hasOwnProperty("fullheal"))
  59. .filter(item => !item._cachedStats.hasOwnProperty("lvl") || (item._cachedStats.hasOwnProperty("lvl") && item._cachedStats.lvl <= lvl))
  60. .filter(item => !item._cachedStats.hasOwnProperty("timelimit") || (item._cachedStats.hasOwnProperty("timelimit") && !item._cachedStats.timelimit.includes(",")));
  61.  
  62. const items_percent = Engine.items.fetchLocationItems("g")
  63. .filter(item => item._cachedStats.hasOwnProperty("perheal"))
  64. .filter(item => item._cachedStats.perheal <= (maxhp - hp)*100/maxhp)
  65. .filter(item => !item._cachedStats.hasOwnProperty("lvl") || (item._cachedStats.hasOwnProperty("lvl") && item._cachedStats.lvl <= lvl))
  66. .filter(item => !item._cachedStats.hasOwnProperty("timelimit") || (item._cachedStats.hasOwnProperty("timelimit") && !item._cachedStats.timelimit.includes(",")));
  67.  
  68. var item;
  69. if (items_fh.length > 0) item = getMaxHealValFH(items_fh);
  70. else if (items_percent.length>0) item = getMaxHealValperheal(items_percent);
  71. else item = getMaxHealVal(items);
  72.  
  73. if (item !== undefined) {
  74. useItem(item);
  75. }
  76. }
  77. }
  78.  
  79. window.API.addCallbackToEvent("close_battle", autoHeal);
  80. })(window.Engine)
Add Comment
Please, Sign In to add comment