Как замедлить игру в браузере

Обновлено: 03.07.2024

«Война… Война никогда не меняется». Думаю, многим знакома эта фраза. Каждый пользователь ПК хоть раз запускал компьютерную игру. Много компьютерного железа пострадало в баталиях от горячей руки геймера, потерявшего последнюю «жизнь». Иногда появляется мысль: а не поискать ли «читы» и не накрутить ли себе жизней или ресурсов. Так начинается путь читера.

В этой статье я на двух примерах покажу, как с помощью подручных средств можно нечестно играть в игры на HTML5.

Ядро любой HTML5-игры — JavaScript. Единственной, на данный момент, защитой этого ядра является обфускация кода. Согласитесь, увидеть «простыню» в 10 000 строк обфусцированного кода без new-line — это поначалу страшно. Но если немного покопать — логика и архитектура приложения как на ладони. Главное — определить цель читерства (скорость, ресурсы, GodMode). В качестве инструмента используем Chrome и его Web Inspector. Во вкладке Sources можно «на горячую» изменять исполняемый код.

Google Doodles


Основная цель игры — пройти трассу как можно быстрее. В голову сразу приходят несколько уловок:

  • повысить скорость лодки;
  • убрать препятствия;
  • убрать замедление от столкновений;
  • «выпрямить» трассу;
  • что-нибудь сделать с таймером (обнулить, замедлить).

Нас интересует JavaScript-код игры.


Логично предположить, что это slalom_canoe12-2.js.

Исходный код… немного страшный, правда? Можно автоматом расставить new-line и отформатировать по синтаксису JavaScript. Читаемость значительно улучшиться и анализировать станет легче. Также можно обложить весь код брейкпоинтами и попытаться восстановить алгоритмы. Но не будем стрелять из С-400 по квадрокоптеру…

Начинаем рассуждать. По нажатию клавиши или при прохождении через ворота лодка ускоряется. Следовательно, где-то есть параметр «скорость» и он должен (скорее всего) инкрементироваться. Ищем по коду все операторы «+=» (благо объем и сложность кода позволяют), их находится всего 12. В принципе можно включить метод «научного тыка» и попробовать изменить все 12 по очереди. А можно и подумать.

  1. this.S+=b.duration — что-то связано с продолжительностью (спасибо, кэп!);
  2. this.B&&(e+=this.B*(Math.random()-0.5),f+=this.B*(Math.random()-0.5))… e+=this.o*(Math.random()-0.5))— random-0.5 как-то не похоже на скорость…
  3. R+=Qc*b — хм-м… и начальное значение, и какой-то коэффициент.

Остановимся и проверим. Обновляем страницу (на всякий случай). Открываем Sources slalom_canoe12-2.js. Находим R+=Qc*b. Предположим, что b — коэффициент ускорения. И заменим его на 500 (не забываем нажать Ctrl + S).


Жмем Play в игре и…


Бинго! Наш чудо-катер устремляется к финишу. Теперь можно похвастаться перед друзьями скоростью своих пальцев :)

Отмечу, что приведенный пример — это случай, в котором удалось обойтись малой кровью. И не потребовало глубоких знаний JavaScript, архитектуры, отладки. Только арифметика.

Перейдем к другому примеру.

Spelunky

В этом примере потребуется знать, что такое if и что такое =, а также базовое знание английского языка. Не так давно на Хабре была опубликована статья о Spelunky. Игра, безусловно, заслуживает внимания. Старый добрый хардкор! Но есть в ней несколько «косяков» с управлением и коллизиями, которые мешают пройти игру. Давайте попробуем нарисовать себе жизней, бомб, веревок и прочей радости.


Открываем сайт с игрой. В инспекторе находим index.js, это и есть код игры. Первая мысль: «Какой кошмар».

Однако стоп! Встречаются и понятные слова. Например Bomb, Rope. Это уже интересно. Значит можно попробовать найти кусок кода, который обрабатывает получение предмета. А там где-то должно увеличивать количество оного…

Ищем слово Bomb. Результатов немало — 79. Попробуем Bomb Bag. И вот оно, первым же результатом!

Тут мы видим, что что-то сравнивается с Bomb Bag и если это оно, то делаем global.loc+=3 и куда-то пишется «YOU GOT 3 MORE BOMBS!» соответственно в global.loc у нас лежит количество бомб. Анализируем код, расположенный рядом, и находим переменные, в которых хранятся веревки и прочие радости. Вот краткий список:

  • global.loc — бомбы;
  • global.soc — липкие бомбы;
  • global.woc — веревки.


Открываем Console и вводим следующее.


Отпускаем паузу — и наслаждаемся полученным результатом! Не буду описывать, как нарисовать себе жизней. Пусть читатель сам попробует разобраться с этой переменной.

Вывод: умный в гору не пойдет. Изменение JavaScript-кода — это легче легкого. Обфускация — это не смертельно. Старайтесь мыслить логически. И еще: любое читерство постепенно убивает интерес к игре (во всяком случае у меня), аккуратней с этим.

Команды для замедления воспроизведения содержимого при помощи флеш-плеера могут быть разными в зависимости от используемого вами программного обеспечения. Также управление скоростью воспроизведения в онлайн флеш-играх часто может осуществляться при помощи сторонних программ.

Как замедлить flash

  • - флеш-плеер;
  • - программа ArtMoney;
  • - браузер;
  • - подключение к интернету.

Для того чтобы замедлить воспроизведение flash на вашем компьютере, воспользуйтесь кнопками меню в вашем плеере, данная функция доступна практически для всех известных проигрывателей. Также вы можете настроить данный параметр из меню «Воспроизведение», «Действия» и так далее.

В случае если вы хотите замедлить воспроизведение flash в плеере вашего браузера, также воспользуйтесь контекстным меню программы. Если вам нужно замедлить время в онлайн-игре, необходимо знать, какие значения используются разработчиками для настройки скорости течения времени.

После этого сверните игру на панель задач, запустите ArtMoney или другую подобную программу, которую вам удобно использовать, и задайте скорость из специального меню.

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

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

Также обращайте внимание на правила пользования онлайн-играми. В большинстве случаев за применение таких методов достижения результатов вас могут забанить на время или просто удалить аккаунт, поэтому лучше всего пробуйте различные дополнения на альтернативных учетных записях, которые не понадобятся вам в дальнейшем.

Я пытаюсь играть в игру Adobe Flash в своем браузере. Единственная проблема в том, что это слишком быстро для меня. Я знаю, что это будет "обман", но я бы больше наслаждался игрой, если бы мог играть в нее медленнее.

Я пытался дросселировать процессор, но я не думаю, что этот подход надежен.

Как я могу заставить мой браузер или плагин Flash играть в игру с более низкой частотой кадров?

3 ответа 3

Вместо того, чтобы ограничивать процессор, вы можете замедлять Flash-игры, используя функцию Speedhack в Cheat Engine . Таким образом, Speedhack работает, изменяя процедуры синхронизации, которые вызываются игрой, чтобы получить текущее время 1 .

Откройте вашу любимую флеш игру в вашем браузере.

Запустить Cheat Engine.

процесс

Отметьте опцию Включить Speedhack справа.

speedcheck

Если вы получили ошибку, вы выбрали неправильный процесс!

ошибка

Измените Скорость с 1.0 на другое значение и затем нажмите Применить. В этом случае вы хотите, чтобы игра была медленнее, поэтому сделайте ее менее 1.0 . Например, 0.5 будет запускать игру медленнее, с нормальной скоростью 50 % .

скорость

Вернитесь к своей игре. Надо играть на новой скорости!

Рекомендации:

Вы можете попробовать снизить напряжение для вашего процессора в настройках BIOS. Это немного ограничит ресурсы. Вы можете создать простую программу на С ++, которая заполняет всю память и использует 100% процессорного времени.

это для использования процессора:

Насчет памяти - настройте Oracle Virtual Host. Установите некоторую систему в качестве виртуальной машины и выделите ей много памяти для использования. Огненная пара виртуальных машин. это самый простой способ программирования, который я не могу себе представить.

Есть игрушка, в которой надо читерским образом набить дофига очков. Время игры ограничено. Игрушка не соревновательная, никто от этого не пострадает.

Есть ли какой-нибудь хак (например экстеншен в Firefox), который может заморозить время, сделать время для приложения в браузере замедленным или что-то такое?




кстати неплоха идея, когда браузер(или ещё какая прога) ненужен делать
kill -SIGSTOP `pidof firefox`


можно запустить браузер с LD_PRELOAD и подрузить библиотеку с обёртками для системых вызовов, относящихся к работе со временем и там в ней замедлять или останавливать его

стиви скатился до браузерок



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


Она ещё может с сервера время проверять


Игрушка не соревновательная, никто от этого не пострадает.
а интеллектуальная игра со значительным ценным призом

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

Попробуй, в самом деле, SIGSTOP для начала, а ответ гугли в другом браузере.

proud_anon ★★★★★ ( 21.10.14 00:41:40 )
Последнее исправление: proud_anon 21.10.14 00:44:27 (всего исправлений: 1)


она проверяет, но этому уже найдено хитрое_решение (тм)

stevejobs ★★★★☆ ( 21.10.14 00:54:30 )
Последнее исправление: stevejobs 21.10.14 00:56:41 (всего исправлений: 1)


и не надо гадать и выдумывать велосипедов


очки проверяются на сервере


Можно попробовать переопределить функции для работы со временем в js,например:

Читайте также: