Бот для онлайн игры «Небоскребы»
Бот обновлен 15 августа 2016 года до 1.8.
- Реализован сбор заданий в вестибюле
- Реализовано отдельно задание «Легкие деньги» в полночь
- Исправлена ошибка в городских заданиях и добавлено несколько улучшений в логах
Уважаемые пользователи НебоБота, отписываемся активнее, чего бы вы хотели видеть в боте для игры Небоскрёбы (возможно практически всё, кроме спама и мошенничества!). Дальнейшее развитие и поддержка проекта зависит только от вас!
Содержание:
Описание
Этот бот для онлайн игры «Небоскребы» (nebo.mobi) является UserScript‘ом для Вашего браузера и написан он, соответственно, на JavaScript. Поэтому любой человек со знаниями JavaScript’а в любой момент может его поправить и внести любые изменения.
Возможности
Бот для игры в «Небоскребы» интегрируется в Ваш браузер с которого вы можете играть одновременно с ботом. На данный момент в скрипте реализовано следующие:
- Автоматический подъем посетителей на лифте и получение чаевых
- Закупка товаров во всех магазинах
- Выкладка товаров
- Сбор выручки
- Выселение жителей
- Сбор заданий
- На большинство страниц добавлен таймер обратного отсчета задания и оповещение об окончании
Все выполняющиеся задачи выводятся на экран, давая возможность визуально следить за действиями бота.
Планы
Данный скрипт писался чисто для себя, как для прокачки аккаунта, так и для развития в программирование на JavaScript’е, хотя там ни чего особенного и сложного нет, обычный говнокод. На данный момент возможности скрипта меня полностью устраивают и бот для игры в «Небоскребы» будет развиваться только в случае востребованности или если мне что-то самому понадобится, или, как вариант, будет слишком скучно и будет желание его дописать. В планах возможно частичное улучшение кода и создание кнопок для запуска отдельных задач на любой странице. В общем небольшой рефакторинг кода и немного добавить юзабилити. Если у Вас есть какие-то пожелания, рекомендации или просто хотите сказать спасибо, то пиши в комментариях. Ни один комментарий не останется без внимания, а к некоторым возможно я прислушаюсь 🙂
Распространение, ответственность и прочие права
Данное программное обеспечение, далее «скрипт», «скрипт бота» или «бот» для игры «Небоскребы» распространяется бесплатно «как есть» и использование скрипта происходит на свой страх и риск, вы самостоятельно определяете его надежность, полноту, точность или полезность. Автор не несет никакой ответственности за ошибки скрипта, упущенную выгоду, потери денег, бан аккаунта или иные проблемы связанные с использованием скрипта. Автор гарантирует, что в данном программном обеспечение отсутствуют бэкдоры, вирусы, трояны или иной код для предумышленной порчи программного обеспечения пользователя или его игрового аккаунта.
Установка
Внимание, в скрипте возможны незначительные ошибки, как известные мне, так и нет, поэтому любые комментарии с ошибками (feedback) приветствуются.
Для работы необходим любой браузер поддерживающий UserScript’ы (пользовательские скрипты) или плагин для браузера.
Для Chrome, Opera и других браузеров на движке WebKit и его форках — плагины не нужны, достаточно перейти в Настройки -> Расширения и перетащить туда скрипт НебоБота (предварительно скачав файл).
Для вышеперечисленных браузеров можно поставить дополнение, а для Firefox и других браузеров необходимо поставить дополнение позволяющее запускать UserScript’ы, любой из следующих: GreaseMonkey, TamperMonkey, Scriptish, Greasemetal или аналог. После чего перейдя по ссылке на скрипт НебоБота — Вам будет предложено установить данный скрипт.
Хотя я сам не использую для данного бота GreaseMonkey или TamperMonkey — я бы рекомендовал использовать любой из этих плагинов. Данные плагины автоматически обновляют скрипт в случае выхода новой версии (проверенно в TM), а также позволяют проще редактировать скрипт, например менять настройки и в случае допущения ошибки во время редактирования — сразу об этом сообщат (проверенно в TM).
У кого возникают проблемы с запуском — ознакомьтесь с комментарием ниже
Скрипт на Bitbucket
Скрипт на GitHub
После удачной установки плагина необходимо в Ваш ***Monkey добавить UserScript бота для игры в «Небоскребы» (кликните по ссылке и согласитесь с установкой).
Использование
Скрипт срабатывает только на определенных страницах: Лифт, Сбор выручки, Закупка товара, Выложить товар, Мои жители и Задания. Перейдя на данные страницы бот начнет выполнять за Вас всю рутинную работу. Ссылки должны быть именно такими, как приведены выше, иначе бот не будет работать. Так на странице лифта, через 5 секунд после загрузки страницы с интервалом в 5 секунд бот начнет развозить людей и собирать чаевые. На страницах «Сбор выручки», «Закупка товара», «Выложить товар» интервал составляет 30 секунд. На страницах «Мои жители» и «Задания» — интервал рандомный от 3 до 5 минут.д
Таким образом, чтобы бот работал, вам надо держать открытыми соответствующие вкладки. Для удобства их можно закрепить — для этого щелкните по вкладке и выберите пункт «Закрепить вкладку».
Мне стало известно, что существуют другие сервера. На других серверах я ни разу не был и не планирую, адреса не знаю. Поэтому, если вам надо запускать бот на других серверах, то для этого надо в любом текстовом редакторе заменить с помощью «поиска и замены» все вхождения nebo.mobi и nebo\.mobi на интересующий вас домен. Скрипт должен без проблем запуститься.
Ниже написанное потеряло актуальность, лучше не использовать или использовать на свой страх и риск.
Есть альтернативный похожий вариант — это перейти на специально подготовленную страницу и сохранить её (Файл -> Сохранить как) на компьютер, после чего открыть её в браузере уже с компьютера, ибо есть шанс, что открытие с моего домена может подвести под бан игровой аккаунт. На данной странице находятся четыре фрейма со страницами ранее озвученными. Суть остается такая же — открыты четыре вкладки, только в одном месте.
Таймер должен без проблем заработать на страницах магазинов. Однако, чтобы появлялись уведомления об окончание времени — необходимо разрешить эти самые уведомления. Для этого необходимо нажать в правом углу страницы «Включить уведомления» и дать добро. Если там нет данной ссылки, то скорее всего у вас уведомления уже включены. Если уведомлений нет или в углу написано «У вас запрещены уведомления», то надо разрешить их вручную:
- В Firefox: правой кнопкой мыши на странице —> Информация о странице —> Разрешения —> Отображать уведомления —> Разрешить.
- В Chrome: правой кнопкой мыши на странице —> Посмотреть сведения о странице —> Оповещения —> Всегда разрешать на этом сайте.
- В Opera Next: Settings —> Preferences —> Advanced —> Notifications
Остальные возможности и нововведения смотреть ниже в Истории версий
Настройки бота
Вы можете сами ускорить или замедлить бота.
После того, как скачаете скрипт, откройте его в любом блокноте (кроме Word’а), внесите изменения и заново установите в браузер.
Не забыв обновить страницы, где работает бот.
После любого изменения — обязательно заново устанавливать его.
Исключения только, если вы пользуетесь TM, то там код можно править прямо в TM.
ВНИМАНИЕ! После обновления версий — вносить изменения надо будет заново!
Для ускорения лифтёра необходимо найти строки в разделе (в условие) «лифтёр» и заменить время срабатывания:
rand_time(3,6) — это время обращения к странице лифта
rand_time(1,3) — время срабатывания перевозки клиента
Цифры означают случайное (рандомное) время от и до секунд.
Например можно выставить максимально быструю перевозку, установив в первом случае rand_time(1,2), во втором rand_time(0,1).
Первое время (по коду оно ниже) должно быть в 2 раза больше, чтобы не было ложных срабатываний.
Для Закупки, Выкладки и Сбора бабла необходимо менять строки с цифрами 30000 и 3000 в соответствующих разделах кода. Цифры указаны в миллисекундах (то есть в тысячных секунды, 1000 — 1 сек).
Первую цифру рекомендуется указывать минимум в 3 раза больше, чем вторую + 1 сек, потому что за раз на странице может быть три товара. Таким образом минимальные значения, ниже которых не рекомендуется опускаться равны 5000 и 500 соответственно. Это значит будет обращение к странице с товарами каждые 5 сек и в случае если есть товар/выкладка/деньги — обращаться к товару/выкладке/деньгам через полсекунды.
Также вы сами можете поставить случайное время, по аналогии с лифтёром, для этого вместо, например, 30000 — можно написать rand_time(4,7), что будет означать случайное срабатывание в промежутке от 4 до 7 сек. В будущих версиях я пропишу по умолчанию там случайное время.
В версии 1.04 добавил выселение жителей которые ниже 9 уровня и не являются лучше других (нет плюсика). Чтобы изменить минимальный уровень, необходимо найти строку в коде
if (link && parseInt(lvl.innerText) < 9 && !amount) {
и заменить цифру 9 на интересующий вас минимальный уровень.
История версий
Бот обновлен 15 августа 2016 года до 1.8
- Реализован сбор заданий в вестибюле. На странице с инвесторами добавлен чекбокс, которым вы сами должны регулировать — собирать или нет задания. В текущей версии бот только собирает задания, если стоит чекбокс. Сам он не отменяет задания. Однако, в следующей версии бот будет отменять задания, поэтому его надо сейчас обучить, потом может не быть шанса. Шутка. Что-нибудь придумаю.
- Реализовано отдельно задание «Легкие деньги» в полночь. Если установить время, например в 23, то, в случае, если бот будет запускать задания города после 23 вечера, он отдаст предпочтение заданию «Легкие деньги».
Если у вас часовой пояс не московский, то необходимо вручную добавить условия. Найти строку // Баксы в полночь и поправить следующие условия:
для тех, у кого полночь наступает раньше, чем в Москве
if( easyMoney && easyMoney >= 0 && (hour >= easyMoney || hour === 0) ){
соответственно вместо последнего нуля, надо поставить ваше число, где 0 — это различие в час с Москвой, 1 — в два часа, и т.д.;
для тех, у кого полночь наступает позже, чем Москвеif( easyMoney && easyMoney >= 0 && hour >= easyMoney && hour < 23 ){
где 23 — это время, когда наступает полночь в Москве.
- Исправлена ошибка в городских заданиях и добавлено несколько улучшений в логах
Бот обновлен 13 августа 2016 года до 1.7
- Добавлен сбор заданий в городе.
Необходимо настроить приоритет заданий вручную на странице заданий города.
0 — отключение сбора.
Для запуска сбора, необходимо держать открытой страницу заданий города - Добавлены разговоры с инвесторами. Не проверялись в кооперативе.
На данный момент запускать и держать открытой страницу инвесторов надо только в дни, когда приходят инвесторы.
Если бот не начинает переговоры, то проследите, чтобы у вас была открыта страница nebo.mobi/boss/, а не nebo.mobi/boss/start/. Если открыта страница boss/start, то вам надо нажать «начать переговоры», тогда вас перекинет на boss и бот должен заработать.
ВНИМАНИЕ! Если переговоры прошли удачно, то страницу лучше закрывать! Иначе бот будет каждые несколько секунд ломиться на страницу, привлекая лишнее внимание. Данные неудобства будут исправлены в след. версиях.
Версия 1.6 от 11 августа 2016 года
- Добавлена проверка на работающего менеджера. Теперь, если активный менеджер, то бот прекращает работу по закупкам и прочим обязанностям менеджера; по окончанию работы менеджера — закупки и прочие должны вновь запускаться (требуется проверка работоспособности запуска)
- В коде (ближе к концу) добавил описание по исправлению проблемы с запуском бота
- Добавлен перезапуск лифтёра в случае ошибки
- Добавлена очистка консоли вместе с очисткой логов
- Немного правок кода, рефакторинг, debuglog. Подробности в комитах
Версия 1.05 от 3 мая 2016 года
- Добавил сбор заданий
- Улучшена очистка логов, теперь остаётся несколько старых сообщений
Версия 1.04 от 2 мая 2016 года
- Добавлено выселение жителей
Версия 1.03 от 23 апреля 2016 года
- Частично переписан и полностью исправлены таймеры и уведомления.
- Частично переписан лифтёр, теперь нет ложных срабатываний.
- У лифтёра добавлено время ожидания, если нет клиентов.
- Добавлено рандомное время срабатывания, что чуть-чуть уменьшает заметность бота.
Версия 1.02 от 13 апреля 2016 года
- Теперь нет зависимости от GreaseMonkey или TamperMonkey.
- Исправлен таймер.
- Имеется баг с Уведомлениями — сообщение отображается некорректно.
Клевая статья, и реально работала до вчера (01.04.16)
как назло очередной раз запускаю и нечего не происходит.
до этого все работало (((
Дополнить хотел браузер Хром, нечего не пытался изменить в коде или как то подправить, просто как обычно в очередной раз запустил, и нечего.
переустанавливал расширение и сам плагин
Может быть обновился TM?
Попробуйте откатить на более старую версию.
Также попробуйте нажать CTRL+SHIFT+I, откроется панель разработчика, перейдите там на вкладку консоль и посмотрите какие ошибки.
В скрипте ничего не менялось.
Игру я не запускал уже почти два года.
Проверил сейчас в Хроме 48 и TM 3.12.58 — всё работает.
После обновления ТМ до версии 4.0 скрипт перестал работать, ругается:
VM142:23 Uncaught ReferenceError: GM_xmlhttpRequest is not defined
Значит в TM тоже отключили или переделали GM_xmlhttpRequest. Ставьте старую версию.
что-то я никак не могу найти, откуда можно установить старую версию расширения? или хотя бы, как можно достать ее уже установленную на другом браузере?
На сайте TM есть
После этого у тебя будет установлена старая версия. Новую надо отключить, если останется.
Если для тебя это сложно, то можешь установить это же расширение в Оперу (в опере кликаешь по розовому значку и пробуешь сразу установить, без скачивания), оно должно там работать. Опера сама предложит перейти на страницу расширений и установить от туда. Проблем возникнуть не должно.
Кроме Оперы можно ещё попробовать в Яндекс.Браузер, Vivaldi и другие, которые работают на движке Chromium/Blink.
Спасибо, конечно, за подробное описание, но я так уже пробовал. Проблема не в том, как установить, а в том, откуда скачать расширение с нужной версией. В описание речь идет о «розовом значке», я так понимаю, что это сиреневый ярлычок, который предлагает скачать версию 3.9.202, она и так без проблем устанавливается, но в ней ничего не работает. Если листать страницу к старым версиям, под значком все равно висит последняя версия для скачивания, предыдущих версий там нет.
Печально.
Ну поправлю тогда на днях скрипт, если не забуду.
Пока можешь попробовать Scriptish, Greasemetal или аналоги поискать для UserScript’ов, которые поддерживают GM_xmlhttpRequest
https://yadi.sk/d/l690LnHxqvyXU вот ссылка на старую версию ТМ , все работает ,Затем его любым архиватором распаковываешь
После заходишь в Настройки хрома -> расширения, там включаешь «режим разработчика» и жмешь «загрузить распакованное расширение», указываешь до распакованной папки с расширением и оно ставится от туда. Я сейчас сам так сделал.
спасибо за ответы, последний коментарий Димы помог, скачал по его ссылке и все за работало. только я так понимаю после перезагрузки хрома он снова обновит расширение ? отключить обновления я не нашел где…
Можно открыть файл manifest.json и удалить там строчки update_url и key.
Однако, распакованные расширения Хром не должен сам обновлять.
Также я обновил сам скрипт.
Подробности в статье.
Спасибо за обновление, как вы и написали в хроме работает без ТМ , просто перетащил в расширения. Ошибок не вижу работает быстрее, еще раз спасибо.
Лифт перестает работать после того как развезет всех, и жильцов не выселяет. исправьте пожалуйста или подскажите что надо сделать, за ранние спасибо.
Странно, у меня лифт работает. Если никого нет, то он ожидает необходимое время и после опять развозит
Чтобы найти ошибку надо предоставить:
Жильцов начинает выселять через 3-5 минут (случайное время), а не сразу.
Пока имеется неизвестная ошибка — не всегда с первого раза всех выселяет.
Вероятно потому что сервер отвечает «множественное открытие этой страницы» (или как-то так).
Есть вероятность того, что бот не запустился. Если не появилось его приветственное сообщение — тогда необходимо нажать F5. Но думаю это и так ясно было.
Если что-то перестало работать, всегда можно откатиться назад, скачав любую версию, в том числе и промежуточную с bitbucket или github.
В версии 1.5 лифт вообще перестал работать, жильцов тоже не выселяет,в версии 1.3 лифт работал. Изменения в скрипт не вносил.оформление нормальное не мини. Побывал и в опере и в хроме и с ТМ и без.Вот скрины (Ссылки удалены, ибо содержат личные данные)
Щас пользуюсь из 1.3 код лифтера копирую в 1.5
А у вас в каком браузере все работает?
Не понял последнюю фразу. Если только кусок кода скопировать от лифтёра, то разумеется работать не будет. В последней версии он запускается в конце файла, внутри onload вызовом liftFN();
Плюс также имеются зависимости от других функций.
У меня работает в хроме, как с TM, так и без.
Скрины удали, не пали свой ник.
Щас пользуюсь из 1.2 код лифтера копирую в 1.5
Спасибо за ответы , может у меня где косяк. Другие не пишут значит работает.
Я так и не понял — ты пробовал использовать скрипт «как есть» или куски из новых версий в старые добавлял (обновлял частично)?
Если первое, то давай искать причину, если второе, то я ответил возможную причину и если не она, готов дальше помочь найти её.
На данный момент у тебя нет ошибок, значит функции просто не запускаются.
На 434 строке идёт запуск скрипта, а на 454 строке непосредственно запуск функций в зависимости от страницы.
Если я устанавливаю новую версию 1.5 то лифт перестает работать вообще. Я не шарю в скриптах и т.д. Сейчас стоит 1.5 чтоб лифт заработал я беру из 1.2 код лифта и заменяю в 1.5 и все работает, и меня это вполне устраивает. Скрины я показывал когда стояла версия 1.5 без изменений и лифт не работал.Спасибо за помощь и вообще за бота. Разбираться будет сложно если я не шарю и у меня мало времени на все это, чтоб сделать скрины у меня только час ушел:) я их некогда ни делал, печатаю я еще медленней.
В nebo.mobi обновили сам сайт и после этого перестал работать бот. Пробовал вышеперечисленные советы, не помогает ничего.
Со старой версией расширения «TampermonkeyWithoutSyncFileAPI» пишет: «Нет включенных скриптов».
С новой: «Uncaught TypeError: Failed to execute ‘addEventListener’ on ‘EventTarget’: 2 arguments required, but only 1 present.»
Подскажите какой-либо вариант выхода для работающего бота.
p.s. в кодах и их изменениях не силен, но если распишите как и что изменить — попробую.
Заранее спасибо.
1) Когда было обновление? У меня нормально работает и обновления не видно.
2) На какой строке и каком файле ошибка (там указываются эти данные)? Эта ошибка похоже от самого сайта, а не моего скрипта.
3) Вы точно доменом не ошиблись? Может у вас фейковый домен или вирус какой подменяющий домен? Есть возможность проверить на другом компе или под другой ОС?
Обновление было 5 мая.
Uncaught TypeError: Failed to execute ‘addEventListener’ on ‘EventTarget’: 2 arguments required, but only 1 present. VM72:2
Tampermonkey started (program):2
1 t.js:1
НебоБот Запущен 1.05 VM79:22
(расписал построчно, растяните окно чтобы было понятнее)
До самого момента обновления все работало как часы, вот именно после ихнего нововведения он (бот) и перестал работать.
Данная ошибка не в скрипте бота.
Она скорее всего в Tampermonkey.
У меня нет обновления почему-то. Прошло уже 10 дней, а всё по старому.
Есть какая-то более подробная информация об обновление, может где новость была? И визуально есть изменения? Если есть, можно скрин, просто любопытно.
Я так понимаю у тебя тоже Хром и в нём сломалось?
Пробовал запустить без TM (может ТМ обновился опять и всё поломалось?), напрямую закидывая в расширения? Пробовал другие плагины и браузеры?
Точно, обновился TM, а не игра
Сейчас попробую глянуть, что там на этой строке.
Вариантов решения два.
Дима, тебе тоже должен помочь второй вариант.
1) В TM открыть настройки скрипта и выбрать Запускать при: document-end. При использование плагина — это оптимальный вариант, чтобы не править постоянно скрипт.
2) Отредактировать скрипт ближе к концу. Заменить
на
И в самом конце добавить скобку, заменить: } на })
Позже или исправлю, чтобы были два варианта. Пока не знаю как. Или сделаю форк. У меня без плагинов не запускается через DOMContentLoaded, а через плагин наоборот соответственно.
Спасибо. С первым вариантом не разобрался, а вот второй сработал полностью.
p.s. пробовал закидывать напрямую в расширения, но хром блокирует скрипт установленный в режиме разработчика.
Спасибо еще раз Вам за помощь.
ТМ, браузер и бот, сами по себе обновились-и сейчас все работает, до этого все сам обновлял и не работало, какой то глюк был. Жителей выселяет, задания закрывает, супер!!!. Еще раз спасибо за бота.
И снова здравствуйте.
После обновления бота, он полностью перестал работать.
Пользуюсь хромом.
В расширения разработчика добавить бота не могу — блокирует хром.
Попутно пользовался Tampermonkey 4.1.10.
Сам скрипт: «небоскреб включен», но ничего не происходит.
Оповещения включены.
Как блокирует хром, можно скрин сообщения?
Чтобы бот заработал в ТМ, необходимо, как я в комментариях выше писал, сменить режим запуска на document-end или попробовать другие варианты
Или открыть скрипт в ТМ двойным кликом по скрипту в списке скриптов ТМ и в конце документа в двух местах (строки примерно 820 и в самом конце) изменить скрипт согласно комментариям.
надо найти время, дописать прохождение лабиринта, на заданное количество ключей)
Ого, кто-то ещё пользуется этим ботом спустя 8 лет 🙂
Помню в планах такое было, даже продумывал.
Напишу как-нибудь, но не стоит ждать что это будет быстро.
Выпустил обновление, добавил прохождение Лабиринта.
Ссылка для установки/обновления прежняя. Можно ставить и запускать.
В ближайшие дни обновлю статью.