То есть, ты не программист и поэтому тебе можно задавать вопросы по каждой мельчайшей ошибке в твоём кривом коде? Знаешь сколько у программистов таких ошибок за день? Если по каждому задавать вопрос, то на Ответах некому будет отвечать.
Перед тем как что-то писать, надо теорию изучить и хоть немного попрактиковаться а ты пытаешься прыгнуть выше своей головы.
У тебя объект engine не объявлен. Это ошибка первокурсника, который час назад узнал что такое "var".
Engine это не нативный JavaScript объект, и судя по вопросу, его создавал не ты. Из чего вывод что это какая-то библиотека. Её надо подключить к скрипту прежде чем использовать.
Так что возвращайся к основам.
Яркий пример:
Данный код можно сократить в 3 раза:
Если учесть что данная часть кода вообще рабочая.
Почему-то в 2023 всё используешь "var", не знаешь самых элементарных операторов &&, ||, else if...
Может я выражаюсь немного грубо, но иначе не научишься. Так что без обид, возвращайся к основам, если хочешь писать код корректно и не задавать глупых вопросов.
https://developer.mozilla.org/ru/docs/Learn/JavaScript/First_steps
var startingBalance = userInfo.balance;
var currentBet = 0;
var currentGame = 0;
var totalGames = 0;
var winStreak = true;
var loseStreak = false;
var startingBet = currentBet;
log('Script is running.... ');
log('Starting Balance: ', startingBalance);
engine.on('GAME_STARTING', onGameStarted);
engine.on('GAME_ENDED', onGameEnded);
function onGameStarted()
{
totalGames++;
var currentBet = 0;
var cashOut = 0;
if(winStreak)
{
currentBet = winMatrix[currentGame][0]*100;
cashOut = winMatrix[currentGame][1];
}
else
{
currentBet = loseMatrix[currentGame][0]*100;
cashOut = loseMatrix[currentGame][1];
}
if (currentBet > userInfo.balance) {
log('Game KILLED BET TO BIG');
engine.removeListener('GAME_STARTING', onGameStarted);
engine.removeListener('GAME_ENDED', onGameEnded);
}
else
{
if(currentBet != 0)
{
log('Game #', currentGame, 'PLACE BET: ', roundBit(currentBet)/100, ' Cashout: ', cashOut, ' User Balance: ', userInfo.balance/100);
engine.bet (roundBit(currentBet), cashOut);
}
}
}
function onGameEnded() {
var lastGame = engine.history.first()
if (!lastGame.wager) {
log('SKIP:', lastGame.bust);
if(currentGame > 0)
currentGame++;
return;
}
if (lastGame.cashedAt)
{
log('Current Game:', currentGame, 'WON : ', (lastGame.wager/100) * (lastGame.cashedAt), ' Bust: ', lastGame.bust, ', Balance: ', userInfo.balance/100, ', Profit: ', (userInfo.balance/100) - (startingBalance/100));
if(loseStreak)
{
winStreak = true;
loseStreak = false;
currentGame=0;
}
else
currentGame++;
}
else
{
log('Current Game:', currentGame, 'LOST : ', lastGame.wager/100, ' Bust: ', lastGame.bust, ', Balance: ', userInfo.balance/100, ', Profit: ', (userInfo.balance/100) - (startingBalance/100));
if(winStreak)
{
loseStreak = true;
winStreak = false;
currentGame=0;
}
else
currentGame++;
}
var killScript = false;
if(winStreak)
{
if(currentGame >= winMatrix.length)
killScript = true;
}
else
{
if(currentGame >= loseMatrix.length)
killScript = true;
}
if(killScript)
{
log('Strategy Failed! exiting...');
engine.removeListener('GAME_STARTING', onGameStarted);
engine.removeListener('GAME_ENDED', onGameEnded);
}
}
function roundBit(bet) {
return Math.round(bet / 100) * 100;
}