В общем есть скрипт необходимо когда на таймере будет 5 секунд он продолжал прогружать локацию как я понимаю это выполняется функцией enterBattle(); сейчас прогруз происходит вручную когда жму на Entering battle... . Code: // ==UserScript== // @name TM_ghost // @namespace * // @include http://*tmgame.ru/combat.php* // @include http://*tmgame.ru/game.php* // ==/UserScript== var elBt; var el_body; var timer=0; var tmout; var enabled; var accepted=false; var loc; (function(){ loc=document.location.href; enabled=GM_getValue('enabled',true); var css="" +"#switchs{position:absolute;left:3%;bottom:0;background-color:#F2D48C;cursor:pointer;padding:3px}" +"*[enabled=true]{color:green;font-weight:bold}" +"*[enabled=false]{color:red}" +"" +"" ; GM_addStyle(css); el_body = document.getElementsByTagName('body')[0]; if(locCheck('combat.php') && enabled==true){ var b_html = el_body.innerHTML; el_body.innerHTML = ""; elBt = document.createElement("div"); window.setTimeout(function(){ if(!accepted){ document.location='http://www.tmgame.ru/location.php'; } } ,20000); tmout = window.setInterval(function(){ timer++; if(!accepted){ elBt.innerHTML = 'Бой заблокирован.<br>Щелкните чтобы войти в бой('+timer+') <br>'; } // enterBattle(); } ,1000); elBt.setAttribute("ht",b_html); elBt.setAttribute("style",'width:100%;height:20%;color:red;font-size:20px;background:#F2D48C;cursor:pointer;'); elBt.addEventListener('click', bar=function(){ this.innerHTML='Entering battle...' ; accepted=true; window.setTimeout(function(){ enterBattle(); } ,200); } , false); el_body.appendChild(elBt); } if(locCheck('game.php')){ var el_switchs=addElemId(el_body,'span','','','switchs'); el_switchs.innerHTML=enabled?"Выключить расформ":"Включить расформ"; el_switchs.setAttribute('enabled',enabled); el_switchs.addEventListener('click', bar=function(){ enabled=!enabled; el_switchs.innerHTML=enabled?"Выключить расформ":"Включить расформ"; el_switchs.setAttribute('enabled',enabled); GM_setValue('enabled',enabled) } , false); } } )(); function locCheck(substr){ return loc.indexOf(substr)>=0; } function addElemId(parent,tag,iHtml,cl,id){ var elem=document.createElement(tag); elem.innerHTML=iHtml; elem.value=iHtml; parent.appendChild(elem); elem.setAttribute('class',cl) elem.setAttribute('id',id) return elem; } function enterBattle(){ el_body.innerHTML = elBt.getAttribute("ht"); } Пробовала делать вот так. Входит в бой нормально на 5 секунде но через 5 секунд опять блокируется страница автоматом. Хотя когда жмем вручную на вход в бой блокировки в дальнейшем не происходит. Как это поправить?
Code: window.setTimeout(function(){ accepted=true; //Вот этого не хватает. enterBattle(); },1000); Там же по таймеру если !accepted, то выводить текст в элемент, что "Бой заблокирован.<br>Щелкните чтобы войти в бой('+timer+') <br>". Поставить на глобальную переменную тру и всё норм должно быть. А ещё лучше просто убить этот интервал. Code: window.setTimeout(function(){ clearInterval(tmout); enterBattle(); },1000);
Точно не знаю, но как вариант похоже, что tmout = window.setInterver (то что блокирует ваш бой, а затем пускает в бой); , выполняется с повторением раз в секунду и этот интервал нигде не убирается. Попробуйте clearInterval(tmout); Так же у вас похоже ошибка в document.location = 'http://...'; скорее тут loc = 'http://' раз вы выше сделали алиас или же document.location.href
На сайте показывается меню блокировать окно или нет. Если блокировать то открывается вместо стандартного окна что бой заблокирован. Но при клике на нем (на этом окне) прогруз не загруженного элемента продолжается а accepted остается на месте вне зависимости от того нажал я для продолжения прогруза данного элемента или нет. Просто когда я прописываю что надо прогружать не загруженный элемент на 5 секунде он нормально прогружается через 5 секунд но опять через 5 секунд блокируется и через 5 секунд опять прогружается.В общем получается что он зацикливается. Но непонятно почему т.к. в enterbattle() я не вижу кода отвечающего за блок элемента а как раз наоборот.
tmout = window.setInter используется только для того чтобы каждую секунду обновлять страницу блокировки а именно выводить на нее время в секундах с начала блока. Но при нажатии на надпись на блоке элемент спокойно грузиться и не блокируется в дальнейшем. А вот если именно ставить условие то тока в этом случае происходит блокировка и разблокировка через каждые 5 секунд.И собственно говоря как я без этого кода разблокирую страницу именно на 5 секунде? Ведь именно в этом коде они отсчитываются с момента когда на сайте подгружается страница combat.php. Повторюсь первый код который приведен работает на ура блокируется все правильно и разблокируеться но разблокировка происходит вручную то есть когда тыкаешь на элементе блокировки. А второй код это как мне надо то есть чтобы элемент блокировки снимался когда интервал равен 5 секундам. Сейчас получается так что блокировка снимается автоматом и потом опять ставиться через 5 секунд
Код я полностью написала и сайт на котором это дело пашет написано в коде где собственно можно проверить.