尝试在 while 循环中使用 setTimeout() 延迟

哈姆迪萨利姆

基本上我正在尝试为赌博网站制作自动化脚本。如果您知道轮盘赌游戏模式,那么您现在有大约 20 秒的时间选择颜色,每轮有 10 秒的时间显示结果。我试图做的是为脚本运行一个 while 循环,直到余额达到一定数量。我正在努力使用设置的超时功能每 30 秒进行一次延迟,因此投注机器人可以在每一轮下注,基本上它等待 30 秒然后机器人下注。例子 :

do{
    delay 30 seconds amount 
    run bot()
}while(condition)

当我尝试使用设置超时功能并使用网站上的脚本时,它开始无限下注,整个事情都崩溃了,因为延迟没有正确发生。这是代码:

function Bot(bt, bc)
{

  l = ((document.getElementsByClassName("roulette-past-queue--previous-rolls-container horizontal-scroll")[0].innerText).length);
  f = document.getElementsByClassName("roulette-past-queue--previous-rolls-container horizontal-scroll")[0].innerText;
  number = f[l - 1];
  number = parseInt(number.replace(" ", ""));
  if (number >= 1 && number <= 7)
  {
    LastResult = "red";
  }
  if (number >= 8 && number <= 14)
  {
    LastResult = "black";
  }
  if (number == 0)
  {
    LastResult = "green";
  }
  if (LastResult == bc)
  {
    if (bc == "red")
    {
      document.getElementById('bet-input-r').value = bt;
      document.getElementById('roulette-btn-red').click();
    }
    else
    {
      document.getElementById('bet-input-r').value = bt;
      document.getElementById('roulette-btn-black').click();
    }

  }
  if (LastResult != bc)
  {
    if (bc == "red")
    {
      document.getElementById('bet-btn-double-r').click();
      document.getElementById('roulette-btn-black').click();
      bc = "black"
        bt = bt * 2

    }
    else
    {
      document.getElementById('bet-btn-double-r').click();
      document.getElementById('roulette-btn-red').click();
      bc = "red"
        bt = bt * 2
    }
  }

}

balance = document.getElementById('balance').innerHTML;
balance = parseInt(balance.replace(",", ""));
bet = 10
  TargetBalance = 99988
  document.getElementById('bet-input-r').value = bet;
betcolor = "black";
if (betcolor == "red")
{
  document.getElementById('roulette-btn-red').click();
}
else
{
  document.getElementById('roulette-btn-black').click();
}
//this is the looping part causing the problem i have deleted setTimout so you can see what i mean clearly
do
{
  // 30 seconds delay
  Bot(bet, betcolor)

}
while (balance < TargetBalance && balance > bet)
必看甜瓜

这将是最简单的方法,但您必须删除循环,否则,您将收到 gazzilion 调用。Bot函数的末尾添加此检查

  if(balance < TargetBalance && balance > bet) {
      setTimeout(() => {
          Bot(bet, betcolor)
      }, 30000); // Expects ms, so 1000 * 30
  }

还有另一种使用async/await. 首先创建一个延迟函数:

function delay(){
    return new Promise((resolve) => {
         setTimeout(() => resolve(), 1000)
    });
}

之后,使用 await 就可以了。请注意,要使用它,范围必须是异步的。

async function main() {
    for(let i = 0; i < 5; i++) {
         console.log(i);
         await delay();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章