Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Кнопка старт/стоп в js как сделать? (https://javascript.ru/forum/events/44605-knopka-start-stop-v-js-kak-sdelat.html)

Александр_1997 26.01.2014 01:10

Кнопка старт/стоп в 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 странице, к которой подсключен скрипт, кнопку старт(при нажатии которой начинает выполняться код выше и сама кнопка потом меняеться на значение "стоп") а при нажатии на стоп скрипт останавливаеться и снова имя кнопки старт, и чтоб при нажатии на старт скрипт начинал заново работать а не с места паузы...

Cuntmann 27.01.2014 00:54

а можно узнать смысл выражения window.location + '' ?

kostyanet 27.01.2014 16:41

локация объект, через унарное сложение автор корована превращает его в текст.

kostyanet 27.01.2014 16:59

Про кнопку я вообще не понял. Скрипт постоянно перезагружается, какие там кнопки?

Делайте через setInterval(). Схема грабежа корована такова:

пишется функция скажем check_task() которая достает из глобала номер текущей задачи (или имя). По которому через if else (switch) или .call (если имя) выполняет текущую поставленную задачу. Если эта задача потребует больше времени чем задано в setInterval все пройдет своим чередом: задача выполнится, скрипт поменяет номер-имя задачи и вывалится на очередное прерывание по таймеру который попросту не будет ждать, а сразу пошлет на следующую задачу.

Что это дает. Например запросто ожидать ответа сервера. Послали ему запрос и ждете тыкаясь в проверяемую переменную каждые 0.5 секунды, которую колбак сервера поменяет после успешного response. Поменял - поехали дальше.

Ну вот, когда есть такой бесконечный цикл его можно запускать и останавливать кнопкой Play/Stop.

setTimeout() это не Play.

Александр_1997 27.01.2014 18:03

Цитата:

Сообщение от kostyanet
Делайте через setInterval().

после этого не понял ничего, а есть может где статься о том что вы хотели именно сказать. Я совсем новичек в этом деле, почти полностью учебник прочитал на сайте, но он мало чем помог мне придумать как сделать бота для игры, поэтому пытаюсь делать как мозги доходят, пока что все работает(и очень много не работает чего бы я хотел добавить)...А о кнопке, типо чтоб скрипт повесил кнопку в начало страницы, нажать ее и скрипт ложиться в комментарий /* ...*/ а еще раз нажать, комментарий убераеться... И вообще я мечтаю написать программу бота, умную, которая бы могла на каждой странице игры ориентироваться и знать что делать в любой ситуации

Cuntmann 27.01.2014 18:24

Цитата:

Сообщение от kostyanet (Сообщение 294390)
локация объект, через унарное сложение автор корована превращает его в текст.

почему бы вместо такого извращения просто не взять location.href, который есть стринг

kostyanet 28.01.2014 06:37

ХЗ, наверно так в учебнике который автор прочел написано.

Александр_1997,

Забейте на бота. Это вечная борьба. С той стороны меняют коды - вы будете менять коды. Пока вы меняет коды там очередное обновление. Покой нам только снится.

И главное. Нажимать все ихние кнопки-шмопки нет никакой нужды. Любая кнопка ведет в итоге на сервер. Трассируете этот ход и пишите свою функцию для данной функции. Когда все функции для функций будут написаны, вы получаете свою версию гамы. Оригинальную версию выкашиваете до загрузки хтмл, выкашиваете весь DOM, строите свой. Который как вы хотели общается с игровым сервером теми же самыми запросами, но рендерит как вы пожелали. Because it's your web внатури. Анально, в общем.

Александр_1997 28.01.2014 16:05

Цитата:

Сообщение от kostyanet
Забейте на бота. Это вечная борьба.

поймите что для меня это важно, мне без разницы для какой игры бот, просто хочу сделать это, вот нашел игру подходящую, пробую, я вроде немного понимаю ваши советы, но в это же время не знаю как все сделать, может прозвучит нагло, но не могли бы вы мне помочь написать одну маленькую функцию, смотря на которую я бы мог сделать еще сотни таких функций которые бы играли игрой...или я снова чтото не допонял?)

Александр_1997 28.01.2014 16:08

Цитата:

Сообщение от Александр_1997
С той стороны меняют коды - вы будете менять коды

ту игру которую выбрал для эксперементов не обновляют, если раз в пол года что то добавят...а даже если бы и обновляли, это значит что я бы чаще заглядывал в код и не так все забывал..

kostyanet 29.01.2014 06:54

Откуда я знаю как устроена ваша подопытная игра. Если там флэш то придется сразу выходить на общение с сервером и про графику забыть. Если там обычный js, то искать в тамошнем доме функции которые не придется переписывать и можно юзать; если там фреймы то придется налаживать взаимодействие скрипта с самим собой в другом фрейме через localStorage.

Принцип я изложил. Любая игра в которой имитируется течение времени базируется на том же принципе. Там есть часы по тикам которых проверяются данные и генерятся события, отражение которых на экране будит воображение юзера.

Например враг в хз каком браузере напал на ваш корован. Как вы об этом узнаете в своем браузере? Правильно. По часикам скрипт проверяет данные, запрашивает сервер и, если враг грабит ваш корован, с сервера приходят данные "юзер 99 начал грабеж корована номер 88 0.3 с назад, потери 16 процентов" (на человеческом языке). После чего скрипт изображает грабеж корована юзером МегаВася и рендерит потери в 16 процентов. Вы в это время смотрите Дом-2... Понятно?

А бот Дом-2 не смотрит, у него свои часики, или он повис на игровых часиках и получает данные с сервера к себе в карман. Как только МегаВася напал на ваш корован, бот напал на корован МегаВаси, то есть отправил серверу типа ваш щелчок мышью. МегаВася думает что вы смотрите дом-2 и внезапно замечает что пока он грабил ваш корован, от его корована остался один мусор.


Часовой пояс GMT +3, время: 01:44.