Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.06.2016, 09:09
Новичок на форуме
Отправить личное сообщение для Allina Посмотреть профиль Найти все сообщения от Allina
 
Регистрация: 10.06.2016
Сообщений: 9

Установить время работы скрипта
Здравствуйте.
Помогите, пожалуйста, установить время работы скрипта.
Хочу сделать так чтобы 5 минут работал, 15 минут “отдыхал”
Пыталась использовать Sleep(), но ничего не получилось.
Весь код:
var startValue = '0.00000001', // Don't lower the decimal point more than 4x of current balance
stopPercentage = 0.001, 
maxWait = 777,
stopped = false, // debugging
stopBefore = 1; // In minutes for timer before stopping redirect on webpage
var $loButton = $('#double_your_btc_bet_lo_button'),
$hiButton = $('#double_your_btc_bet_hi_button');
function multiply(){ 
var current = $('#double_your_btc_stake').val();
var multiply = (current * 2).toFixed(8);
$('#double_your_btc_stake').val(multiply);
}
function getRandomWait(){
var wait = Math.floor(Math.random() * maxWait ) + 100;
console.log('Waiting for ' + wait + 'ms before next bet.');
return wait ;
}
function startGame(){
console.log('Game started!');
reset();
$loButton.trigger('click');
}
function stopGame(){
console.log('Game will stop soon! Let me finish.');
stopped = true;
}
function reset(){
$('#double_your_btc_stake').val(startValue);
}
function deexponentize(number){
return number * 10000000;
}
function iHaveEnoughMoni(){
var balance = deexponentize(parseFloat($('#balance').text()));
var current = deexponentize($('#double_your_btc_stake').val());
return ((balance)*2/100) * (current*2) > stopPercentage/100;
}
function stopBeforeRedirect(){
var minutes = parseInt($('title').text());
if( minutes < stopBefore )
{
console.log('Approaching redirect! Stop the game so we don\'t get redirected while loosing.');
stopGame();
return true;
}
return false;
}
$('#double_your_btc_bet_lose').unbind();
$('#double_your_btc_bet_win').unbind();
$('#double_your_btc_bet_lose').bind("DOMSubtreeModified",function(event){
if( $(event.currentTarget).is(':contains("lose")') )
{
console.log('You LOST! Multiplying your bet and betting again.');
multiply();
setTimeout(function(){
$loButton.trigger('click');
}, getRandomWait());
}
});
$('#double_your_btc_bet_win').bind("DOMSubtreeModified",function(event){
if( $(event.currentTarget).is(':contains("win")') )
{
if( stopBeforeRedirect() )
                {
                        return;
                }
if( iHaveEnoughMoni() )
{
console.log('You WON! But don\'t be greedy. Restarting!');
reset();
if( stopped )
{
stopped = false;
return false;
}
}
else
{
console.log('You WON! Betting again');
}
setTimeout(function(){
$loButton.trigger('click');
}, getRandomWait());
}
});startGame()
Ответить с цитированием
  #2 (permalink)  
Старый 10.06.2016, 11:31
Аспирант
Отправить личное сообщение для Alex_63 Посмотреть профиль Найти все сообщения от Alex_63
 
Регистрация: 22.08.2015
Сообщений: 71

Allina,
Поясните, что делает скрипт, и какая часть его должна "отдыхать"
Ответить с цитированием
  #3 (permalink)  
Старый 10.06.2016, 16:29
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Allina,
Сообщение от Allina Посмотреть сообщение
Хочу сделать так чтобы 5 минут работал, 15 минут “отдыхал”
Пыталась использовать Sleep(), но ничего не получилось.

Вот приблизительно так можно это сделать:
Код:
<html>
<head>
<script type="text/javascript">
var последнее_Измерение_Времени = Number(new Date());
var сообщение = 'первое сообщение'; //Остальные сообщения будут выдаваться
//только при нажатии кнопки "Добавить сообщение" и только во время работы

function пять_Минут_Работать()
{
	//1 секунда = 1000 миллисекунд, отсюда 5 минут = 5 * 60 * 1000 = 300000
	if(Number(new Date()) - последнее_Измерение_Времени <= 300000)
	{
		if(сообщение != '')
		{
			//что-то делает:
			console.log(сообщение);
			//сообщение выдано и поэтому его можно больше не выдавать:
			сообщение = '';
		}

		//вызывает саму себя через 100 миллисекунд
		setTimeout(пять_Минут_Работать, 100);
	}
	else
	{
		последнее_Измерение_Времени = Number(new Date());
		console.log('5 минут работал. Пора бы теперь 15 минут и отдохнуть...');
		пятнадцать_Минут_Отдыхать()
	}
}

function пятнадцать_Минут_Отдыхать()
{
	//1 секунда = 1000 миллисекунд, отсюда 5 минут = 15 * 60 * 1000 = 900000
	if(Number(new Date()) - последнее_Измерение_Времени <= 900000)
	{

		//здесь при "отдыхе" можно что-то делать:
		//будет писать в console каждые 5000 миллисекунд (5 секунд)
		//'Отдыхаю...' в течение 15 минут
		console.log('Отдыхаю...');

		//вызывает саму себя через 5 секунд
		setTimeout(пятнадцать_Минут_Отдыхать, 5000);
	}
	else
	{
		последнее_Измерение_Времени = Number(new Date());
		console.log('15 минут отдохнул. Пора бы теперь 5 минут и поработать...');
		пять_Минут_Работать()
	}
}

//ЗАПУСКАЕМ:
пять_Минут_Работать();
</script>
</head><body>
<input type="button" value="Добавить сообщение" onclick="сообщение = new Date()">
</body></html>
Я не советую начинать изучение JavaScript через JQuery или других библиотек, иначе уровень знаний будет слишком низким.

Для новичка я советую начинать с основ:Эти 2 книги выпущены Netscape - создателями Javascript. Очень советую прочитать!

Как работают setTimeout и setInterval:

Последний раз редактировалось pureJS, 10.06.2016 в 17:24.
Ответить с цитированием
  #4 (permalink)  
Старый 10.06.2016, 16:39
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Подсказки:
Вопросы надо задавать так, чтобы другим было легко разобраться и прочитать:
1. Не писать сюда всё, а только самое важное (нужное для понимания)
2. Обязательно использовать [ code ]...[ /code ]
3. Следует прочитать:
Как спросить, чтобы вам ответили
Ответить с цитированием
  #5 (permalink)  
Старый 11.06.2016, 00:07
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 443

pureJS,
Сам-то ты почему код не обрамляешь?)
Ты это...так подробно расписываешь всё...ты Дева по гороскопу?)
Ответить с цитированием
  #6 (permalink)  
Старый 11.06.2016, 00:35
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Coriolan161, обрамляю, но не так как многим бы, возможно, здесь хотелось. Нажми сюда и посмотри как у меня там всё обрамлено. "HTML run" имел наверно в виду? Может быть он здесь неуместен?!

Я не Дева по гороскопу, но кое-что в гороскопе моём от неё есть. Отвечай лучше в личку - не стоит здесь флудить!
Ответить с цитированием
  #7 (permalink)  
Старый 11.06.2016, 00:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,450

Сообщение от pureJS
Может быть он здесь неуместен?!
можно же без run? кнопка
форум менее приспособлен для тегов code
Ответить с цитированием
  #8 (permalink)  
Старый 01.07.2016, 09:25
Новичок на форуме
Отправить личное сообщение для Allina Посмотреть профиль Найти все сообщения от Allina
 
Регистрация: 10.06.2016
Сообщений: 9

Сообщение от pureJS Посмотреть сообщение
Allina,

Очень советую прочитать!
Спасибо.
Извиняюсь за долгое отсутствие, форс-мажор.
Все мои попытки оказались тщетны, скрипт вообще перестаёт работать.

Сообщение от Alex_63 Посмотреть сообщение
Allina,
Поясните, что делает скрипт, и какая часть его должна "отдыхать"
Скрипт работает в консоли, “нажимает” всего одну кнопку на сайте, через рандомный промежуток времени. Задаётся переменной maxWait. Хочу сделать так чтобы функция getRandomWait() возвращала значение равное 15 минут, каждые 5 минут, но чтобы в течении этих 5- ти минут, функция возвращала те миллисекунды которые она возвращает сейчас. Помогите пожалуйста. Вот сама функция:
function getRandomWait(){
var wait = Math.floor(Math.random() * maxWait ) + 100;
console.log('Waiting for ' + wait + 'ms before next bet.');
return wait ;
}

Последний раз редактировалось Allina, 01.07.2016 в 09:35.
Ответить с цитированием
  #9 (permalink)  
Старый 03.07.2016, 05:28
Новичок на форуме
Отправить личное сообщение для Allina Посмотреть профиль Найти все сообщения от Allina
 
Регистрация: 10.06.2016
Сообщений: 9

Пыталась сделать так.
Втечении 5-ти минут диапазон случайных чисел от полсекунды до секунды.
По прошествии пяти минут диапазон случайных чисел от 10- ти минут до 15- ти.
var последнее_Измерение_Времени = Number(new Date());
function пять_Минут_Работать()
{

	if(Number(new Date()) - последнее_Измерение_Времени <= 300000)
	{
		maxWait = 1000;//диапазон одна секунда
                start_diap= 500;// начиная с полсекунды
		setTimeout(пять_Минут_Работать, 100);
	}
	else
	{
		maxWait = 900000;//диапазон пятнадцать минут
                start_diap= 10 * 60 * 1000;// начиная  10-ти минут
		последнее_Измерение_Времени = Number(new Date());
		
	}
}

дальше
function getRandomWait(){
var wait = Math.floor(Math.random() * maxWait ) + start_diap;
console.log('Waiting for ' + wait + 'ms before next bet.');
return wait ;
}


и уже получить случайное число здесь:
setTimeout(function()
{
$loButton.trigger('click');
}, getRandomWait());


Подскажите, пожалуйста, что не правильно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Масштабирование своего скрипта: плагины, пользовательские функции и т.д. pandasensey Общие вопросы Javascript 4 23.01.2015 00:20
Объясните принцип работы скрипта jaxmackey Общие вопросы Javascript 7 06.08.2014 22:19
Отмена выделения документа во время работы mousedown Upcoming Events/DOM/Window 1 12.11.2013 06:54
Position fixed, но динамический по оси ОХ tvixa Элементы интерфейса 4 09.09.2013 14:39
Очистка и объеснение скрипта Diferen404 Общие вопросы Javascript 4 11.02.2013 14:02