myHeroes

try to take over the world!myHeroes

  1. // ==UserScript==
  2. // @name myHeroes
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2
  5. // @description try to take over the world!myHeroes
  6. // @author You
  7. // @match https://www.tampermonkey.net/scripts.php
  8. // @include *://play.bnbheroes.io/*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. function loginWallet() {
  14. return new Promise((resolve, reject) => {
  15. try {
  16. document
  17. .querySelector(".sc-eCApGN.cjAFRf.web3modal-provider-wrapper")
  18. .click();
  19. resolve("小狐狸选择成功");
  20. } catch (error) {
  21. reject(error);
  22. }
  23. });
  24. }
  25.  
  26. loginWallet()
  27. .then(res => {
  28. try {
  29. console.log(res);
  30. document.querySelector(".float-end")
  31. .click();
  32. // 延时执行
  33. setTimeout(startFight, 10000);
  34. } catch (error) {
  35. console.log(error);
  36. }
  37. })
  38. .catch(err => {
  39. console.log(err);
  40. });
  41.  
  42. function startFight() {
  43. //获取当前英雄血量
  44. let HP = document
  45. .querySelector(".hp-progress-detail")
  46. .getInnerHTML()
  47. .split(" ")[1]
  48. .split("/")[0];
  49. if (HP >= 200) {
  50. //右侧驼背
  51. let myHeroDom = document.querySelectorAll(
  52. ".general-enemy.d-flex.flex-column.align-items-center.justify-content-center.p-2"
  53. )[1];
  54. //向右切换怪物箭头
  55. let rightArrow = myHeroDom.querySelector(".right-arrow");
  56. //切换到弓箭手方法
  57. function getArcher() {
  58. //获取怪兽名称
  59. let myHeroName = myHeroDom
  60. .querySelector(".text-white.fs-3.p-1")
  61. .getInnerHTML();
  62. if (myHeroName == "Red Skull Archer") {
  63. console.log("切换到弓箭手,开始战斗。。。");
  64. archerFight();
  65. return true;
  66. } else {
  67. rightArrow.click();
  68. getArcher();
  69. }
  70. }
  71. //弓箭手开始战斗的按钮组
  72. function archerFight() {
  73. let fightBtn = myHeroDom.querySelector(
  74. ".btn.btn-yellow.pt-2.pb-3.ps-5.pe-5.w-auto"
  75. );
  76. console.log("战斗中...");
  77. fightBtn.click();
  78. }
  79. getArcher();
  80. } else {
  81. console.log(`当前英雄HP${HP}不足200,准备切换英雄。。。`);
  82. //向右切换下一个英雄 (注意 获取的第一个后面不可以这样用)
  83. document.querySelector(".right-arrow")
  84. .click();
  85. console.log("已切换");
  86. }
  87. }
  88.  
  89. setTimeout(loginWallet, 2000);
  90. //100s刷新页面获取最新HP
  91. setTimeout(() => {
  92. window.location.reload();
  93. }, 100000);
  94. })();