text 我做过的大多数最安全的脚本

我做过的大多数最安全的脚本

Safest script
const baseBet = 1
const baseTarget = 1.5
const maximumBet = 500
const multiplierBet = 3
const minimalToRunScript = 300

let losses = 1
let bet = 1
let engine = this
let tbet = bet

while(true){
if (this.balance / 100 < minimalToRunScript){
    this.log('Minimal balance is reached, stopping script')
break
}
    if (bet * losses >= maximumBet){losses = 1}
    tbet = Math.floor(toSatoshi(bet))
    const { multiplier} = await this.bet(toSatoshi(toBits(tbet) * Math.floor(toSatoshi(toBits(losses)))), baseTarget)
    this.log(`Current balance ${toBits(this.balance)}`)

    if (multiplier < baseTarget){     /*   [LOSS]   */
        gong()
        await generateSeed()
        //bet = (losses * baseBet)
        if (baseBet * losses >= maximumBet){
            //losses--
        }else{
        losses = losses * multiplierBet +Math.floor(multiplierBet/0.7)
        }
    }else{                               /*    [WIN]   */
        collectSound()
      
        losses = Math.round(losses / multiplierBet)
          if (losses <= baseBet){
              losses = 1
          }
         // bet = baseBet - bet
        }  
}
    
  function gong() {
    const audio = new Audio("https://bustadice.com/5bb187b7ef764e76fb519939f77288c1.mp3")
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
  }
  function collectSound(){
    let pathStr = "http://kz-developer.ru/sounds/chipsHandle" + getRandomInt(6,7) + ".wav"

      
      const audio = new Audio (pathStr)
      audio.play()
      return new Promise(resolve => audio.onended = resolve)
  }
 
  async function generateSeed(){
      const { server_seed_hash } = await engine.newSeedPair()
      engine.log(`Server seed: ${server_seed_hash}`)
      try {
          const clientSeed = randomSeed()
          await engine.setClientSeed(clientSeed)
          engine.log(`Seed was set to: ${clientSeed}`)
      }
      catch(e){
          engine.log(`Client seed already was reset and not used`)
      }
  }
  
  function randomSeed(){
      const words = ['Alegra ','Bravon ','Charlik ','Delago ','Zecho ','Forextromb ','Hotelka ','Gnomus ','Addicted ','Aurelia ','Zigalo ','Wiverma ',
      'Mariner ','Octoberfest ','Nascar ','Papaja ','Alberts ','Gomus ','Fierra ','GTO ','Unicorn ','Vicantus ','Siski ','Xavier ','Poiuplet ','Antutulika ']
  
      return words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())]
  }
  
  function getRandomInt(min, max){
      return Math.floor(Math.random() * (max - min)) + min;
  }
  function toBits(satoshi){
    return satoshi / 100
  }
  function toSatoshi(bits){
    return bits * 100
  }
  

text 以平衡为基础的百分比投注

以平衡为基础的百分比投注

PerfectPercent
const baseBet = 1                     // how many satoshis to bet initially
const target = 2                        // target multiplier
const TargetProfit = 30000
const dontLoseThan = 200   // Stopper
let ubalance = this.balance
this.log(ubalance)
const engine = this
//var betBits = parseInt(Math.floor(baseBet));

this.log(`Starting martingale with a base bet of ${baseBet} satoshis.`)
while (true) {
  checkConditions(this.balance)
let ass = this.balance/100
let asb = Math.floor(ass / 100 * 1) * 100
this.log(asb)
  const { multiplier } = await this.bet(asb, target)
  if (multiplier < target) { /* [LOSS]  */
    collectSound()
  } else {    /*  [WINS]  */
    gong()
  }
}

function calculatePercentBet(balance, percent){
let b = (ubalance * percent)
engine.log(b)
    return b
}
function gong() {
  const audio = new Audio("https://bustadice.com/5bb187b7ef764e76fb519939f77288c1.mp3")
  audio.play()
  return new Promise(resolve => audio.onended = resolve)
}
function collectSound(){
    const audio = new Audio ("http://kz-developer.ru/sounds/chipsHandle6.wav")
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
}
async function generateSeed(){
    const { server_seed_hash } = await engine.newSeedPair()
    engine.log(`Server seed: ${server_seed_hash}`)
    try {
        const clientSeed = randomSeed()
        await engine.setClientSeed(clientSeed)
        engine.log(`Seed was set to: ${clientSeed}`)
    }
    catch(e){
        engine.log(`Client seed already was reset and not used`)
    }
}
function randomSeed(){
    const words = ['Ze3foA1gAlpha ','Zefo3AG3B2r2a3qtwvo ','Zefo3AG313Charlie ','ZefoA22G3Delta ','Zef3o1GEcho ','ZefoA22G5oxtrot ','ZefoAG34G223tewlf ','Ze1o5A3GHotel ','ZefoA3dda ','Ze5f3Auliet ','ZefoAGK3agalo ','ZefoAG24rqwima ',
    'Zef5oAG2Mrhe ','ZefoAG52ovember ','Ze67foGOscar ','Zefo3A45apayww ','Zef44A2Quebec ','ZefoAG433omeo ','ZefoA4GSierra ','ZefoA41GTngo ','ZefoA445GUniorm ','Ze37oGVictor ','ZefoA33W4hiskey ','ZefA3G4oXay ','Zef4Gpooper ','ZefoA3GZulu ']

    return words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())]}

async function stopGame(){
  await engine.stop()
}
function checkConditions(balance){
    if(balance / 100 >= TargetProfit){
        engine.log(`You reached target profit of ${TargetProfit}`)
        stopGame()
    }
    if(balance / 100 <= dontLoseThan){
        engine.log(`Your balance limit of ${dontLoseThan}, was reached. Stopping script`)
        stopGame()
    }
}

text 低风险脚本

Low risk script
const baseBet = 100              
const target = 2                     
const resetTargetAt = 10
const resetTargetTo = 2

const betMultiplier = 0.5     
const increaseTargetEvery = 1

const TargetProfit = 2000   
const dontLoseThan = 500


const repeatBetTimes = 2

const engine = this
let _baseBet = baseBet
let lossCount = 1
let _target = target
let incLose  = 0

this.log(`Starting martingale with a base bet of ${baseBet} satoshis.`)
while (true){
    checkConditions(this.balance)
    collectSound()
    //if (this.balance - betSize(lossCount) < dontLoseThan){}
   // if (betSize(lossCount) > 50 * 100){
    //    lossCount = 1
   // }
   // let lossRepeat = lossCount / repeatBetTimes +1
  //  if (lossRepeat <= 0){lossRepeat = 1}
        const {multiplier} = await this.bet(betSize(lossCount), _target)
    if (multiplier < _target) { // loss
        incLose++
        if (incLose >= increaseTargetEvery ){
            _target = _target + betMultiplier
            incLose =0
            if (_target >=resetTargetAt ){
                _target = resetTargetTo 
                _baseBet  = (_baseBet+100)
                incLose = 0
            }
        }
        lossCount++
        this.log(`Lost bet. new bet size of ${betSize(lossCount)/100}.`)
    } else {   /*  [WINS]  */ 
        incLose = 0
_baseBet = baseBet
        lossCount = 1
        if (lossCount <= 1){
            lossCount = 1
        }
        gong()
        incLose = 0
        _target = target
        this.log(`Won bet. Setting bet size to ${baseBet/100}.`)
    }
}
function betSize(lossCount) {
      let bet = (_baseBet) * lossCount
      return bet
  }

function gong() {
  const audio = new Audio("https://bustadice.com/5bb187b7ef764e76fb519939f77288c1.mp3")
  audio.play()
  return new Promise(resolve => audio.onended = resolve)
}
function collectSound(){
    const audio = new Audio ("http://kz-developer.ru/sounds/chipsHandle6.wav")
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
}
async function generateSeed(){
    const { server_seed_hash } = await engine.newSeedPair()
    engine.log(`Server seed: ${server_seed_hash}`)
    try {
        const clientSeed = randomSeed()
        await engine.setClientSeed(clientSeed)
        engine.log(`Seed was set to: ${clientSeed}`)
    }
    catch(e){
        engine.log(`Client seed already was reset and not used`)
    }
}
function randomSeed(){
    const words = ['Ze3foA1gAlpha ','Zefo3AG3B2r2a3qtwvo ','Zefo3AG313Charlie ','ZefoA22G3Delta ','Zef3o1GEcho ','ZefoA22G5oxtrot ','ZefoAG34G223tewlf ','Ze1o5A3GHotel ','ZefoA3dda ','Ze5f3Auliet ','ZefoAGK3agalo ','ZefoAG24rqwima ',
    'Zef5oAG2Mrhe ','ZefoAG52ovember ','Ze67foGOscar ','Zefo3A45apayww ','Zef44A2Quebec ','ZefoAG433omeo ','ZefoA4GSierra ','ZefoA41GTngo ','ZefoA445GUniorm ','Ze37oGVictor ','ZefoA33W4hiskey ','ZefA3G4oXay ','Zef4Gpooper ','ZefoA3GZulu ']

    return words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())]}

async function stopGame(){
  await engine.stop()
}
function checkConditions(balance){
    if(balance / 100 >= TargetProfit){
        engine.log(`You just did your profits, terminating script`)
        stopGame()
    }
    if(balance / 100 <= dontLoseThan){
        engine.log(`Stopper triggered script to terminate`)
        stopGame()
    }
}

text 新二

New Two
const baseBet = 1     // how many bits to bet initially
const target = 12    // target multiplier

let _baseBet = baseBet
let nextCount = 0
this.log(`Starting new two.`)

while (true) {
    nextCount++
  const { multiplier } = await this.bet(_baseBet * 100, target)
  collectSound()
  if (multiplier < target) {   /*  Loss  */
    this.log(`Lost bet. nextCount ${nextCount}.`)
    if (nextCount > target ){
        _baseBet = _baseBet - 1
        if(_baseBet <= baseBet){_baseBet = baseBet}
        nextCount = 0
    }
    //await generateSeed()
  } else {  /*  Win  */
    gong()
    if (nextCount > target){
        _baseBet =_baseBet + 3
        nextCount = 0
    }
    this.log(`Won bet. nextCount ${nextCount}.`)
  }
}

async function generateSeed(){
    try {
        const { server_seed_hash } = await this.newSeedPair()
        this.log(`Server seed: ${server_seed_hash}`)
    
        const clientSeed = randomSeed()
        await this.setClientSeed(clientSeed)
        this.log(`Seed was set to: ${clientSeed}`)
    }
    catch(e){
        this.log(`Client seed already was reset and not used`)
    }
}
function randomSeed(){
    const words = ['Ze3foA1gAlpha ','Zefo3AG3B2r2a3qtwvo ','Zefo3AG313Charlie ','ZefoA22G3Delta ','Zef3o1GEcho ','ZefoA22G5oxtrot ','ZefoAG34G223tewlf ','Ze1o5A3GHotel ','ZefoA3dda ','Ze5f3Auliet ','ZefoAGK3agalo ','ZefoAG24rqwima ',
    'Zef5oAG2Mrhe ','ZefoAG52ovember ','Ze67foGOscar ','Zefo3A45apayww ','Zef44A2Quebec ','ZefoAG433omeo ','ZefoA4GSierra ','ZefoA41GTngo ','ZefoA445GUniorm ','Ze37oGVictor ','ZefoA33W4hiskey ','ZefA3G4oXay ','Zef4Gpooper ','ZefoA3GZulu ']
    return words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())]
}
function gong(){
    const audio = new Audio("https://bustadice.com/5bb187b7ef764e76fb519939f77288c1.mp3")
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
}
function collectSound(){
    const audio = new Audio ("http://kz-developer.ru/sounds/chipsHandle6.wav")
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
}

text 新的一个

New One
const baseBet = 2     // how many bits to bet initially
const target = 2.00     // target multiplier
const betMultiplier = 2 // what to multiply the bet size by when we lose a wager

let prevBet = 0
let _baseBet = baseBet
engine.log(`Starting new one.`)

while (true) {
  const { multiplier } = await engine.bet(_baseBet * 100, target)
  collectSound()
  prevBet = _baseBet
  if (multiplier < target) {   /*  Loss  */
    _baseBet = _baseBet + prevBet
    if (_baseBet > prevBet * 2){
        _baseBet = prevBet - 1
    }
    engine .log(`Lost bet. Multiplying bet size by ${betMultiplier} for new bet size of ${betSize(lossCount)} satoshis.`)
    await generateSeed()
  } else {  /*  Win  */
    gong()
    _baseBet = _baseBet - prevBet
    if (_baseBet < baseBet){
        _baseBet = baseBet
    }
    engine .log(`Won bet. Setting bet size to ${baseBet} satoshis.`)
  }
}

function betSize(lossCount) {
    let bet
    if (lossCount < 4){
        bet = baseBet
    }
    if (lossCount == 4){
        bet = 9
    }
    if (lossCount == 5){
        bet = 27
    }
    if (lossCount == 6){
        bet = 81
    }
    if (lossCount == 7){
        bet = 243
    }
    if (lossCount == 8){
        bet = 270
    }
    if (lossCount == 9){
        bet = 729
    }
    if (lossCount == 10){
        bet = 1913
    }
    if (lossCount == 11){
        bet = 4800
    }
  return bet * 100
}

async function generateSeed(){
    const { server_seed_hash } = await engine.newSeedPair()
    engine.log(`Server seed: ${server_seed_hash}`)
    try {
        const clientSeed = randomSeed()
        await engine.setClientSeed(clientSeed)
        engine.log(`Seed was set to: ${clientSeed}`)
    }
    catch(e){
        engine.log(`Client seed already was reset and not used`)
    }
}

function randomSeed(){
    const words = ['Ze3foA1gAlpha ','Zefo3AG3B2r2a3qtwvo ','Zefo3AG313Charlie ','ZefoA22G3Delta ','Zef3o1GEcho ','ZefoA22G5oxtrot ','ZefoAG34G223tewlf ','Ze1o5A3GHotel ','ZefoA3dda ','Ze5f3Auliet ','ZefoAGK3agalo ','ZefoAG24rqwima ',
    'Zef5oAG2Mrhe ','ZefoAG52ovember ','Ze67foGOscar ','Zefo3A45apayww ','Zef44A2Quebec ','ZefoAG433omeo ','ZefoA4GSierra ','ZefoA41GTngo ','ZefoA445GUniorm ','Ze37oGVictor ','ZefoA33W4hiskey ','ZefA3G4oXay ','Zef4Gpooper ','ZefoA3GZulu ']

    return words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())]}
function gong() {
    const audio = new Audio("https://bustadice.com/5bb187b7ef764e76fb519939f77288c1.mp3")
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
    }
function collectSound(){
    // "http://kz-developer.ru/sounds/dieThrow1.wav"
    // "http://kz-developer.ru/sounds/dieThrow2.wav"
    // "http://kz-developer.ru/sounds/dieThrow3.wav"
    
    let pathStr = "http://kz-developer.ru/sounds/chipsHandle" + getRandomInt(6,7) + ".wav"
    
    const audio = new Audio (pathStr)
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
}
function getRandomInt(min, max){
    return Math.floor(Math.random() * (max - min)) + min;
}
function toBits(satoshi){
  return satoshi / 100
}
function toSatoshi(bits){
  return bits * 100
}

text 鞅 - 模拟器(仅跳过)

Martingale - simulator only skips
/*            Simulated script              */
const baseBet = 200       // how many satoshis to bet initially
const target = 2.00       // target multiplier
const betMultiplier = 2   // what to multiply the bet size by when we lose a wager
let balance = 2000  /*  Simulated Balance  */

const skipscounter = 9

let lossCount = 0
let skips = 0

this.log(`Balance: ${balance}.`)
this.log("[WAGER][TARGET][OUTCOME][PROFIT]")
while (true){
  skips++
    if( balance < betSize(lossCount) / 100){
        await this.stop()
    }else{
        this.log(`Balance: ${balance} Bet: ${betSize(lossCount) / 100}`)}
  /*  [WAGER][TARGET][OUTCOME][PROFIT]   */
  if (skips >= skipscounter){
    const { multiplier } = await this.bet(100, 1.01)
    skips = 0
  } else {
    const { multiplier } = await this.skip()
  }
  if (multiplier < target){  /* [LOSS] */
    collectSound()
    balance = balance - betSize(lossCount) / 100
    //this.log(`[LOST] ${betSize(lossCount) / 100} ${target}x ${multiplier}x -Ƀ ${betSize(lossCount) / 100}`)
    this.log(`[LOST]`)
    this.log(`${betSize(lossCount) / 100}`)  /* For parse */
    lossCount++
  }else{  /* [WON] */
    gong()
    balance = balance + betSize(lossCount) / 100
    //this.log(`[WINS] ${betSize(lossCount) / 100} ${target}x ${multiplier}x Ƀ ${betSize(lossCount)*target / 100}`)
    this.log(`[WINS]`)
    this.log(`${betSize(lossCount) * target / 100}`)  /* For parse */
    lossCount = 0
  }
}

function betSize(lossCount) {
    let bet = baseBet * lossCount * betMultiplier 
    if (bet <= 1){bet = baseBet}
    return bet
}

function gong(){
  const audio = new Audio("https://bustadice.com/5bb187b7ef764e76fb519939f77288c1.mp3")
  audio.play()
  return new Promise(resolve => audio.onended = resolve)
}
function collectSound(){
  const audio = new Audio ("http://kz-developer.ru/sounds/chipsHandle6.wav")
  audio.play()
  return new Promise(resolve => audio.onended = resolve)
}

text 鞅 - 非经典

Martingale - non classic
const baseBet = 100                     // how many satoshis to bet initially
const target = 2                        // target multiplier
const TargetProfit = 300000
const dontLoseThan = 2500   // Stopper

const betMultiplier = 1  

const engine = this

let lossCount = 1
let _target = target
let incLose  = 0

this.log(`Starting martingale with a base bet of ${baseBet} satoshis.`)
while (true) {
  checkConditions(this.balance)
  collectSound()

  const { multiplier } = await this.bet(betSize(lossCount), _target)

  if (multiplier < _target) { /* [LOSS]  */
    incLose++
    if (incLose >= 4 ){
        _target = _target + betMultiplier
       // if (_target >=20){_target = target}
            incLose = 0
    }
    
    lossCount++

    this.log(`Lost bet.`)
  } else {    /*  [WINS]  */
    incLose = 0
    lossCount = 1
    if (lossCount <= 1){lossCount = 1}
        gong()
    incLose = 0
    _target = target
    this.log(`Won bet.`)
  }
}

function betSize(lossCount) {
      let bet = baseBet * lossCount
      return bet
}
function gong() {
  const audio = new Audio("https://bustadice.com/5bb187b7ef764e76fb519939f77288c1.mp3")
  audio.play()
  return new Promise(resolve => audio.onended = resolve)
}
function collectSound(){
    const audio = new Audio ("http://kz-developer.ru/sounds/chipsHandle6.wav")
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
}
async function generateSeed(){
    const { server_seed_hash } = await engine.newSeedPair()
    engine.log(`Server seed: ${server_seed_hash}`)
    try {
        const clientSeed = randomSeed()
        await engine.setClientSeed(clientSeed)
        engine.log(`Seed was set to: ${clientSeed}`)
    }
    catch(e){
        engine.log(`Client seed already was reset and not used`)
    }
}
function randomSeed(){
    const words = ['Ze3foA1gAlpha ','Zefo3AG3B2r2a3qtwvo ','Zefo3AG313Charlie ','ZefoA22G3Delta ','Zef3o1GEcho ','ZefoA22G5oxtrot ','ZefoAG34G223tewlf ','Ze1o5A3GHotel ','ZefoA3dda ','Ze5f3Auliet ','ZefoAGK3agalo ','ZefoAG24rqwima ',
    'Zef5oAG2Mrhe ','ZefoAG52ovember ','Ze67foGOscar ','Zefo3A45apayww ','Zef44A2Quebec ','ZefoAG433omeo ','ZefoA4GSierra ','ZefoA41GTngo ','ZefoA445GUniorm ','Ze37oGVictor ','ZefoA33W4hiskey ','ZefA3G4oXay ','Zef4Gpooper ','ZefoA3GZulu ']

    return words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())]}

async function stopGame(){
  await engine.stop()
}
function checkConditions(balance){
    if(balance / 100 >= TargetProfit){
        engine.log(`You reached target profit of ${TargetProfit}`)
        stopGame()
    }
    if(balance / 100 <= dontLoseThan){
        engine.log(`Your balance limit of ${dontLoseThan}, was reached. Stopping script`)
        stopGame()
    }
}

text 等待条纹然后停止

Awaiting to streaks and then stop
const streakToWait = 12

let rolls = 0
let lossCount = 0

while (lossCount <= streakToWait) {
  rolls++
  const { multiplier } = await this.bet(100, 1.01)

  if (multiplier < 2){lossCount++} else {lossCount = 0}
 if (lossCount == streakToWait){
        this.log(`${rolls} rolls has pasted to catch streak. Good luck!`)
        gong()
        await this.stop()
    }  
}
async function betSize(lossCount) {
    if (lossCount == streakToWait){
        this.log(`${rolls} rolls has pasted to catch streak. Good luck!`)
        gong()
        await this.stop()
    }  
    return 100
}
function gong() {
    const audio = new Audio("https://bustadice.com/5bb187b7ef764e76fb519939f77288c1.mp3")
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
  }

text 创世纪

Genesis
/* This script doing rush run 1;2;3;4;5....10
*/
const baseBet = 100        // how many satoshis to bet initially
const target = 10          // target multiplier
const betMultiplier = 1.2  // what to multiply the bet size by when we lose a wager

let skipCount = 0
let loseFirst = 0
let maximumBet = 10000     // in satoshi, maximum bet could be made, until reset bet

let losesCount = 0
let lossCount = 0
let engine = this
/*if (loseFirst >= 0 ) { // make the bet and wait for the result
   const{multiplier} = await this.skip()

    if (target >= multiplier){
        loseFirst = -1
        this.log(`Target found,${multiplier} playing`)
    } else {
      skipCount++
      this.log(`skipped ${multiplier}`)
      losesCount = 0
      lossCount = 0
    }
    continue
  } else{} */

this.log(`Starting bet ${baseBet/100} bits.`)
while (true){
    const {multiplier, value}  = await makeBet() 
    if (lossCount > 2 && multiplier > 2){
       for (let i = 0; i < target / 2; i++) {let result = await this.skip()
        continue}
     }
    if (multiplier < target && value < maximumBet) { // loss
       lossCount++

       this.log(`Lost bet. Multiplying bet size by ${betMultiplier} for new bet size of ${betSize(lossCount)} satoshis.`)
    }
    else{ // win
      gong()
      await generateSeed()
      lossCount = 0
      losesCount = 0
      loseFirst = 0
      this.log(`Won bet. Setting bet size to ${baseBet/100} bits.`)
    }
  }
//}
async function makeBet() {
   collectSound()
   const{ multiplier, value} = await engine.bet(betSize(lossCount), target)

   engine.log(multiplier, value)
   return { multiplier, value}
}
function betSize(lossCount) {
  let bet = baseBet * Math.pow(betMultiplier, lossCount)
  if (bet >= maximumBet){
  bet = maximumBet
  }
  return Math.round(bet / 100) * 100
}

function sleep(ms){return new Promise(resolve => setTimeout(resolve, ms))}

function gong() {
  const audio = new Audio("https://bustadice.com/5bb187b7ef764e76fb519939f77288c1.mp3")
  audio.play()
  return new Promise(resolve => audio.onended = resolve)
}
function collectSound(){
    const audio = new Audio ("http://kz-developer.ru/sounds/chipsHandle6.wav")
    audio.play()
    return new Promise(resolve => audio.onended = resolve)
}
async function generateSeed(){
    const { server_seed_hash } = await engine.newSeedPair()
    engine.log(`Server seed: ${server_seed_hash}`)
    try {
        const clientSeed = randomSeed()
        await engine.setClientSeed(clientSeed)
        engine.log(`Seed was set to: ${clientSeed}`)
    }
    catch(e){
        engine.log(`Client seed already was reset and not used`)
    }
}
function randomSeed(){
    const words = ['Ze3foA1gAlpha ','Zefo3AG3B2r2a3qtwvo ','Zefo3AG313Charlie ','ZefoA22G3Delta ','Zef3o1GEcho ','ZefoA22G5oxtrot ','ZefoAG34G223tewlf ','Ze1o5A3GHotel ','ZefoA3dda ','Ze5f3Auliet ','ZefoAGK3agalo ','ZefoAG24rqwima ',
    'Zef5oAG2Mrhe ','ZefoAG52ovember ','Ze67foGOscar ','Zefo3A45apayww ','Zef44A2Quebec ','ZefoAG433omeo ','ZefoA4GSierra ','ZefoA41GTngo ','ZefoA445GUniorm ','Ze37oGVictor ','ZefoA33W4hiskey ','ZefA3G4oXay ','Zef4Gpooper ','ZefoA3GZulu ']

    return words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())] + words[Math.floor(words.length * Math.random())]}

async function stopGame(){
  await engine.stop()
}
function checkConditions(balance){
    if(balance / 100 >= TargetProfit){
        engine.log(`You reached target profit of ${TargetProfit}`)
        stopGame()
    }
    if(balance / 100 <= dontLoseThan){
        engine.log(`Your balance limit of ${dontLoseThan}, was reached. Stopping script`)
        stopGame()
    }
}

text 升级nodejs

cmd
npm i npm@latest -g