Кнопка старт/стоп в js как сделать?
у меня есть код js
setTimeout("window.location = window.location", 7000); if ( $('a.green').text().indexOf('убить монстров') == 0 ) { var href = $('a.green').attr('href'); window.location = 'http://wap.teeda.ru' + href; } if ( (window.location + '').indexOf('battle') >= 0) { var href = $('a.active_s').attr('href'); window.location = 'http://wap.teeda.ru' + href; } if ( (window.location + '').indexOf('craft') >= 0 && ($('a').text()).indexOf('вернуться') >= 0) { var href = $('a:eq(3)').attr('href'); window.location = 'http://wap.teeda.ru' + href; } if ( (window.location + '').indexOf('craft') >= 0 && ($('span.white').text()).indexOf('добывать руду') >= 0) { $('input').click(); } Вопрос: Как сделать в html странице, к которой подсключен скрипт, кнопку старт(при нажатии которой начинает выполняться код выше и сама кнопка потом меняеться на значение "стоп") а при нажатии на стоп скрипт останавливаеться и снова имя кнопки старт, и чтоб при нажатии на старт скрипт начинал заново работать а не с места паузы... |
а можно узнать смысл выражения window.location + '' ?
|
локация объект, через унарное сложение автор корована превращает его в текст.
|
Про кнопку я вообще не понял. Скрипт постоянно перезагружается, какие там кнопки?
Делайте через setInterval(). Схема грабежа корована такова: пишется функция скажем check_task() которая достает из глобала номер текущей задачи (или имя). По которому через if else (switch) или .call (если имя) выполняет текущую поставленную задачу. Если эта задача потребует больше времени чем задано в setInterval все пройдет своим чередом: задача выполнится, скрипт поменяет номер-имя задачи и вывалится на очередное прерывание по таймеру который попросту не будет ждать, а сразу пошлет на следующую задачу. Что это дает. Например запросто ожидать ответа сервера. Послали ему запрос и ждете тыкаясь в проверяемую переменную каждые 0.5 секунды, которую колбак сервера поменяет после успешного response. Поменял - поехали дальше. Ну вот, когда есть такой бесконечный цикл его можно запускать и останавливать кнопкой Play/Stop. setTimeout() это не Play. |
Цитата:
|
Цитата:
|
ХЗ, наверно так в учебнике который автор прочел написано.
Александр_1997, Забейте на бота. Это вечная борьба. С той стороны меняют коды - вы будете менять коды. Пока вы меняет коды там очередное обновление. Покой нам только снится. И главное. Нажимать все ихние кнопки-шмопки нет никакой нужды. Любая кнопка ведет в итоге на сервер. Трассируете этот ход и пишите свою функцию для данной функции. Когда все функции для функций будут написаны, вы получаете свою версию гамы. Оригинальную версию выкашиваете до загрузки хтмл, выкашиваете весь DOM, строите свой. Который как вы хотели общается с игровым сервером теми же самыми запросами, но рендерит как вы пожелали. Because it's your web внатури. Анально, в общем. |
Цитата:
|
Цитата:
|
Откуда я знаю как устроена ваша подопытная игра. Если там флэш то придется сразу выходить на общение с сервером и про графику забыть. Если там обычный js, то искать в тамошнем доме функции которые не придется переписывать и можно юзать; если там фреймы то придется налаживать взаимодействие скрипта с самим собой в другом фрейме через localStorage.
Принцип я изложил. Любая игра в которой имитируется течение времени базируется на том же принципе. Там есть часы по тикам которых проверяются данные и генерятся события, отражение которых на экране будит воображение юзера. Например враг в хз каком браузере напал на ваш корован. Как вы об этом узнаете в своем браузере? Правильно. По часикам скрипт проверяет данные, запрашивает сервер и, если враг грабит ваш корован, с сервера приходят данные "юзер 99 начал грабеж корована номер 88 0.3 с назад, потери 16 процентов" (на человеческом языке). После чего скрипт изображает грабеж корована юзером МегаВася и рендерит потери в 16 процентов. Вы в это время смотрите Дом-2... Понятно? А бот Дом-2 не смотрит, у него свои часики, или он повис на игровых часиках и получает данные с сервера к себе в карман. Как только МегаВася напал на ваш корован, бот напал на корован МегаВаси, то есть отправил серверу типа ваш щелчок мышью. МегаВася думает что вы смотрите дом-2 и внезапно замечает что пока он грабил ваш корован, от его корована остался один мусор. |
Первое что вам надо сделать - автоматический вход в гаму. Браузерные гамы выкидывают бесполезно висящего юзера через некоторое время. Даже если найти и убить таймер на логаут, логаут все равно произойдет - на сервере. Через Х тиков сервер убьет вашу сессию (в момент обращения к нему, ессно) и любой щелчок в игре по истечении заданного времени выведет вас из игры на страницу логина.
Затем вам потребуется база данных, обычная текстовая, которую запросто хранить в настройках браузера. В этой базе сохраняются параметры входа и параметры игры. Скажем что купить после входа, на кого напасть, куда посадить, где строить и все такое. Жизненный цикл бота это его бизнес-план. Зайти, проверить, купить, продать, напасть, сбежать и в таком роде. Бизнес-логика (сценарий) целиком зависят от конкретной гамы и потребностей ботаписца. Ну вот, а работает этот сценарий по таймеру. Запускаете setInterval(), скажем раз в сек и все что вам надо делаете из функции которая задана в колбэке. function play(interval) { if(MH_watch != null) window.clearTimeout(MH_watch); MH_watch = window.setTimeout(function(){logout()}, 1000*60*10); if(!interval) var interval = 500; window.setTimeout(function() { MH_interval = window.setInterval(function(){checkWork()}, interval); }, interval * 2); } function stop() { if(MH_interval != null) MH_interval = window.clearInterval(MH_interval); } |
Цитата:
|
вить там точно ничего нельзя
|
Часовой пояс GMT +3, время: 08:20. |