Javascript Как подправить код под правила? [требует правки]

387
28 декабря 2016, 06:01

С сайта получаю данные о таймере и имени игрока.

Данные обрабатываю с помощью JS.

Правила: Нельзя при включенном Автоходе совершать обычный ход (оно само совершает - нет кнопки). Если Автоход не сработал, то попробовать совершить обычный ход.

Запутался с условиями. (новичок на собственном велосипеде)

Необходимые условия:

  1. Когда значение таймера <= 2 и не мой ник, то нужно совершить обычный ход.

  2. Когда значение таймера меньше 4 и не мой ник, то нужно совершить включение автохода с подтверждением.

  3. Когда включен автоход и значение таймера = 14 с моим ником, то выключить автоход.
  4. Когда включен автоход и не мой ник со значением таймера = 20, то выключить автоход. Вот собственно сам мой код:

var timer_value = 2; // сделать обычный ход 
var timer_value_avtostav = 4; // вкл режим авто при условии меньше чем это значение 
var interval = 500; // интервал в мс 
 
var myname = "Nick"; // собственный ник 
 
var already_clicked = false; // флаг 
var already_clicked_avtostav = false; // флаг 
var already_clicked_del_avtostav0 = false; // флаг 
var already_clicked_del_avtostav = false; // флаг 
 
function find_tttimer() // поиск таймера 
{ 
  var div_timer = document.getElementsByTagName('div'); 
  for (var i = 0; i< div_timer.length; i++) 
	if(div_timer[i].className == "tttimer") 
	  return timer_element = div_timer[i]; 
} 
 
function find_myname() // поиск имени игрока 
{ 
	var div_name = document.getElementsByTagName('div'); 
	for (var i=0; i< div_name.length; i++)  
		if(div_name[i].className == "nameonurl")  
			return name_element = div_name[i]; 
} 
 
//основной код 
function func() 
{ 
  var timer_element = find_tttimer(); 
  var name_element = find_myname(); 
  if((!timer_element) && (!name_element)) 
	return;   
 
  var value = parseInt(timer_element.innerHTML); // таймер с сайта 
  var value2 = name_element.innerHTML; // имя участника сделавшего ход 
 
// если автоход не включился (хз почему) жмем обычную кнопку хода для совершения 
  if((value <= timer_value)) //todo: мб нужно добавить проверку, если автоход не включен, то ищем кнопку и кликаем 
  { 
	 if(!already_clicked) 
	 { 
		var button_element = document.getElementById('CPH1_Add'); 
		if(!already_clicked_avtostav0) 
		{ 
		button_element.click(); 
		already_clicked = true; 
		document.title = "Произведен клик обычный ход";	 
		} 
 
	 } 
  }   
  else 
  { 
     already_clicked = false; 
	 document.title= "Обычный ход возвращает значение"; 
  } 
 
 // по условию включаем автоход 
  if((value < timer_value_avtostav) && (value2 !== myname)) 
  { 
	 //if(!already_clicked_avtostav) 
	 //{ 
 
        document.getElementById('fbg2').style.display = 'block'; 
        document.getElementById('formAvto').style.display = 'block'; 
 		var a_stavka = document.getElementById('showFormAvto'); 
		document.title= "Включили автоход"; 
		already_clicked_avtostav0 = true; 
		var button_element_avtostav = document.getElementById('CPH1_BtnAvto'); 
		if (already_clicked_avtostav0) 
		{ 
			button_element_avtostav.click(); 
			document.getElementById('fbg2').style.display = 'none'; 
			document.getElementById('formAvto').style.display = 'none'; 
			already_clicked_avtostav = true; 
			document.title= "Подтвердили автоход"; 
		} 
	 //} 
  } 
  else 
  { 
     already_clicked_avtostav0 = false; 
	 already_clicked_avtostav = false; 
	 document.title= "Автоход возвращает значение"; 
  } 
   
 
  // удаление автохода 
if(((value2 === myname) && (value==14)) || ((value2 !== myname) && (value==20))) 
  { 
	 if(!already_clicked_avtostav) 
	 { 
		var del_button_element = document.getElementById('CPH1_DelAvto'); 
		del_button_element.click(); 
		already_clicked_del_avtostav = true; 
		document.title= "Выключаем автоход!"; 
	 } 
  } 
  else 
  { 
     already_clicked_del_avtostav = false; 
	 document.title= "Выключение Автохода возвращает значение"; 
  }   
   
}setInterval(func, interval);

Сейчас не всегда срабатывает условие включить Автоход и выключить Автоход. Выключение вообще редко срабатывает. Пункты 2-4 проблемные в коде. Пункт 3-4 объединен в коде.

Конкретней, при каком-либо действии в титульник страницы выводится информация о совершении действия с JS. Для проверки. И я заметил, что проблема начинается после Включения Автохода. В титульнике ничего нет. После повторного внедрения кода на страницу, в титульнике вижу Выключение Автохода, но таймер ещё не показал заданное условие, когда доходит до заданного условия, то всё хорошо, Выключается Автоход. Как только обратно попадает на Включение Автохода так и всё... Грешу на неправильную реализацию Включения/Выключения Автохода. Помогите разобраться.

READ ALSO
Пиксель facebook ошибка при валюте UAH

Пиксель facebook ошибка при валюте UAH

Использую скрипт для пиксель facebook

553
gulp-jade-inheritance выбрасывает ошибку unexpected text

gulp-jade-inheritance выбрасывает ошибку unexpected text

Добрый деньПередали проект на ведение

442
Angular отображение маршрутов

Angular отображение маршрутов

Начал использовать Angular недавно и сразу столкнулся с такой проблемой при использовании маршрутизации: когда я подключаю на сайт библиотеку...

482
Не настраивается fancybox

Не настраивается fancybox

Есть скрипт, в нем настройки прописаны(я его скопировал из гайда и подстроил под свой код)Теперь когда я хочу добавить настройку из общий...

382