Comments 30
Давайте делится рекордами, мой пока
Использую такой код для кликанья:
Работает быстрее, чем через .click()
Скрытый текст
![](https://habrastorage.org/getpro/habr/comment_images/b96/ca2/e64/b96ca2e646aa75de78eba7f3ddd58638.png)
Использую такой код для кликанья:
var interval = setInterval(function(){
var t=CoffeeCup.calcBytesPerClick();
localStats.byteCount+=t;
popManager.newPop("btn-addMem","+"+NumUtils.byteConvert(t,2));
},50);
Работает быстрее, чем через .click()
+6
Над CookieClicker'ом мой ноут трудился с неделю в 24x7, тоже накручивая клики и собирая ништяки. Забавная это вещь, кликеры. И автокликеры к ним :)
+2
А я руками 263 гб накликал…
+11
На текущий момент 12** место…
Игра реально затягивает, по-этому я даже рад что применил чит и написал клик в таймауте — больше к игре не тянет.
Игра реально затягивает, по-этому я даже рад что применил чит и написал клик в таймауте — больше к игре не тянет.
+1
Использую такой скрипт:
document.hasFocus = function(){return true} // for click without focus
setInterval(function() {
var t=CoffeeCup.calcBytesPerClick();
localStats.byteCount+=t;
popManager.newPop("btn-addMem","+"+NumUtils.byteConvert(t,2));
},50);
setInterval(function() {
// auto drip
if(parseFloat($('#localProgressBar').css('width'))/parseFloat($('#localProgressBar').parent().css('width')) === 1)
$('#btn-addGlobalMem').click();
// auto buy
if(!$('#pu10').hasClass('disabled'))
$('#pu10').click();
// auto buy 1st powerup
if(!$('#upg1').hasClass('disabled'))
$('#upg1').click();
}, 1000);
За вечер и утро, такие результаты:![image](https://www.evernote.com/shard/s55/sh/06d0725f-3601-46b0-9974-624402e89d26/57a54a68a88f67cf2d544eaa0843143a/res/69f0f36d-1409-4291-a5a5-4d42ac26a479/skitch.png?resizeSmall&width=832)
![image](https://www.evernote.com/shard/s55/sh/06d0725f-3601-46b0-9974-624402e89d26/57a54a68a88f67cf2d544eaa0843143a/res/69f0f36d-1409-4291-a5a5-4d42ac26a479/skitch.png?resizeSmall&width=832)
+1
Какие результаты?
+2
Сегодня уже такие cl.ly/Uinn, почему предыдущее изображение отвалилось, не понимаю.
0
Хм, а зачем проверять css свойства для дрипа?
такая конструкция вполне адекватно работает.
также вполне можно перебирать localStats.powerUps и определять какой ресурс купить выгодней всего на текущий момент. ^_^
такая конструкция вполне адекватно работает.
if (localStats.byteCount>localStats.memoryCapacity*0.97)
dripper.dripGlobal(!1);
также вполне можно перебирать localStats.powerUps и определять какой ресурс купить выгодней всего на текущий момент. ^_^
0
Почему никто не упомянул о
document.hasFocus=function(){return true;}
?0
Упоминалось и в статье
unsafeWindow.document.hasFocus = function () {return true;};и в комменте akurganow — habrahabr.ru/post/217507/#comment_7446305
0
А я накопил побольше памяти, потом нажал «Drip Memory» и стал дублировать запрос из консоли. За 10 секунд накрутил 130 MB и меня забанили. :)
Дублировал так:
Дублировал так:
$.ajax({type:"POST",async:a,url:GAME_URL+(loggedIn?"events":"eventsanon"),data:"<base64 из request payload запроса>",contentType:"text/plain"});
0
Переписал алгоритм покупки. Теперь он ищет самый эффективный продукт на данный момент. Ищет по принципу самого дешевого байта, тоесть смотрим на коэффициент / (кол-во байт которое добавляет покупка очередного аппера).
P.S. Capacity на данный момент — пол терабайта.
var storeUppers = [2,5,12,16,32,142,389,2075,8858,70862];
var productivity = [];
var ind = 0;
localStats.powerUps.forEach(function(powerUp) {
var realPrice = powerUp.currentPrice;
productivity.push(realPrice / storeUppers[ind]);
ind++;
});
var store = document.querySelector('#powerupstore');
var children = store.childNodes;
var nodeIndex = productivity.indexOf(Math.min.apply(Math, productivity));
var child = children[nodeIndex];
if(child.className == 'storeItem') {
child.dispatchEvent(evt);
}
P.S. Capacity на данный момент — пол терабайта.
+1
Оцените и мой, что ли laravel.io/bin/nOW9
0
Предвкушая скорое завершение левела хочу поделиться текущим результатом:
P.S. А кто в курсе что будет после того как набьем необходимое кол-во памяти?
6 место![](https://habrastorage.org/r/w1560/getpro/habr/comment_images/49d/177/5c3/49d1775c36ccc8e6e12bd0cf3f16f16e.png)
![](https://habrastorage.org/getpro/habr/comment_images/49d/177/5c3/49d1775c36ccc8e6e12bd0cf3f16f16e.png)
P.S. А кто в курсе что будет после того как набьем необходимое кол-во памяти?
+2
Коллективные ништяки (вроде как Hellbound в небезызвестной Lineage II).
Вообще, скрипт у Вас хороший, только стоит доработать процесс покупки — не покупать Cursor и другие «усилки» по причине нерентабельности (39 гигов за прирост в смехотворные 2 байта/сек это чересчур). В общем и целом, покупать надо не «улучшение И усилок», а «улучшение ИЛИ усилок» — в зависимости от эффективности данного приобретения, что влечёт за собой чуть более сложный процесс покупки. В довесок: не ждать заполнения N % стакана и покупать на заработанное честным трудом, а ждать накопления ресурса на нужное приобретение (сумбурно звучит, да).
Вообще, скрипт у Вас хороший, только стоит доработать процесс покупки — не покупать Cursor и другие «усилки» по причине нерентабельности (39 гигов за прирост в смехотворные 2 байта/сек это чересчур). В общем и целом, покупать надо не «улучшение И усилок», а «улучшение ИЛИ усилок» — в зависимости от эффективности данного приобретения, что влечёт за собой чуть более сложный процесс покупки. В довесок: не ждать заполнения N % стакана и покупать на заработанное честным трудом, а ждать накопления ресурса на нужное приобретение (сумбурно звучит, да).
+1
Коллеги, есть вопрос.
Пробовал ли кто-нибудь после достижения некоторого параметра уходить в наращивание объема без покупок? Или как достигаются объемы в 100 TB и более?
У меня сейчас скорость 7.45 MB/s, объем 3.59 TB, 90 кластеров. В алгоритме сделан упор на приращение скорости.
// Занятно было заглянуть в историю своего бота: код кликера разросся с 5 до 12 строк, код покупки разросся с 13 до 52 строк :)
Да, и это, хабраэффект! :)
Пробовал ли кто-нибудь после достижения некоторого параметра уходить в наращивание объема без покупок? Или как достигаются объемы в 100 TB и более?
У меня сейчас скорость 7.45 MB/s, объем 3.59 TB, 90 кластеров. В алгоритме сделан упор на приращение скорости.
// Занятно было заглянуть в историю своего бота: код кликера разросся с 5 до 12 строк, код покупки разросся с 13 до 52 строк :)
Да, и это, хабраэффект! :)
We have had crazy traffic towards Level 3 end! Here is a bandwidth graph. Notice the insane spike…
+1
Я так и сделал, перешел на накопление. На данный момент вот результаты:
Но как видно из скрина мне удается бобмить по 30 Gb в минуту, что по факту сложно сделать при производительности в 5.6 Mb/sec и при этом еще не быть пойманным.
Для того что бы получить возможность делать большие drip'ы мне пришлось поэкспериментировать и вот что я выяснил: если часто drip'ать (примерно раз в 50 мс) то ошибка не возникает даже если клики по кружке очень частые (у меня их 10 штук каждые 50 мс). Интервалы из скрипта найдены опытным путем, пробовал увеличить даже на единичку — возникает ошибка.
Вот итоговый скрипт:
P.S. Так же, на всякий случай, была добавлена проверялка наличия окошка об ошибке (один раз был неприятно удивлен, проверив утром состояние статов).
3 место![image](https://habrastorage.org/r/w1560/getpro/habr/comment_images/029/838/c12/029838c123496a21779d572a48b424b1.png)
![image](https://habrastorage.org/getpro/habr/comment_images/029/838/c12/029838c123496a21779d572a48b424b1.png)
Но как видно из скрина мне удается бобмить по 30 Gb в минуту, что по факту сложно сделать при производительности в 5.6 Mb/sec и при этом еще не быть пойманным.
Для того что бы получить возможность делать большие drip'ы мне пришлось поэкспериментировать и вот что я выяснил: если часто drip'ать (примерно раз в 50 мс) то ошибка не возникает даже если клики по кружке очень частые (у меня их 10 штук каждые 50 мс). Интервалы из скрипта найдены опытным путем, пробовал увеличить даже на единичку — возникает ошибка.
Вот итоговый скрипт:
(function (window, undefined) {
if (window.top != window.self) { return; }
window.addEventListener("load", LocalMain, false);
function LocalMain() {
setInterval(function() { FuckTheSystem(); }, 50);
setInterval(function() { Drip(); }, 50);
setInterval(function() { CheckError(); }, 1000);
}
function FuckTheSystem() {
for(var i = 0; i < 10; i++) { // 10
var t=CoffeeCup.calcBytesPerClick();
localStats.byteCount+=t;
}
}
function Drip() {
$('#btn-addGlobalMem').click();
}
function CheckError() {
if($('#networkError').css('display') == 'block') {
location.reload();
}
}
})(window);
P.S. Так же, на всякий случай, была добавлена проверялка наличия окошка об ошибке (один раз был неприятно удивлен, проверив утром состояние статов).
0
Из-за отсутствия возможности отписать лично, передаю слова Remember'a (да-да, это именно тот человек который возглавляет top):
Хочу поделиться своими результатами и наработками.
При 8.24MB/sec, реальная скорость майнинга, на последнем этапе, была около 120-130 GB/min.
Последняя статистика (думаю на этом мой майнинг и закончился)![image](https://habrastorage.org/r/w1560/getpro/habr/comment_images/c7a/806/c31/c7a806c3100a4dbb8ba68735de77b0e8.png)
![image](https://habrastorage.org/getpro/habr/comment_images/c7a/806/c31/c7a806c3100a4dbb8ba68735de77b0e8.png)
Изначально использовал просто клики раз в 50мс, без каких либо автоматических покупок. Так довольно быстро открылся доступ к Cache. После этого стало актуально не покупать всё подряд, а находить самую выгодную покупку.
var bestPowerUp = localStats.powerUps[0];
for(var i = 1;i < localStats.powerUps.length; i++) {
var powerUp = localStats.powerUps[i];
if(powerUp.currentPrice/powerUp.currentBps < bestPowerUp.currentPrice/bestPowerUp.currentBps) {
bestPowerUp = powerUp;
}
}
bestPowerUp.buy(localStats);
Если же денег не хватало, то просто ждём и копим дальше. Особого смысла придумывать что-то лучше не было, т.к. через пару дней покупки становятся неактуальными.
Вместе с этим был добавлен авто drip:
if (window.localStats.byteCount > window.localStats.memoryCapacity*0.97) {
window.dripper.dripGlobal(!1);
}
Также, для удобства, было сделано простенькое расширение для Chrome, которое подгружало рабочий скрипт с Github Gist.
После того как я дошёл до уровня 20+ кластеров, скорость майнинга перестала радовать. Появился повод изучить скрипты Dripstat. В процессе недолгих экспериментов выяснилось, что при частых запросах к серверу можно значительно увеличить скорость майнинга без каких-либо последствий. Как уже описывалось, можно настроить очень частый drip. Но мне это не нравилось тем, что очень уж заметно в поминутной статистике. В итоге, после очередной серии экспериментов, появился такой скрипт:
window.dataSaver.saveInterval = 0.00001;
setInterval(function() {
window.localStats.byteCount += window.CoffeeCup.calcBytesPerClick();
},0);
Результат: майнинг происходил относительно незаметно и очень быстро.
Ну и чтобы окончательно максимизировать скорость, был проведён эксперимент с коэффициентами.
В итоге стабильно работающая функция майнинга превратилась в:
window.dataSaver.saveInterval = 0.00001;
setInterval(function() {
window.localStats.byteCount += window.CoffeeCup.calcBytesPerClick()*2.3;
},0);
Вот такая вот история успеха. Только вот интерес уже угас. Да и с 4-м уровнем никак не сложится, не смотря на то, что он должен был начаться еще 2 дня назад — twitter.com/dripstat/status/453577707268231168
+2
Ну как, всех побанали за багоюзерство? :)
0
Новый уровень началася, соотвственно всех помиловали, но играть уже не интересно, так что я в завязке.
+1
Вот перед ним и ужесточили алгоритмы бана
Например, замена
Deployed fix in cheat detector to ban all the auto clickers
Например, замена
saveInterval
привела к моментальной блокировке :/0
Sign up to leave a comment.
Dripstat — сервис мониторинга производительности JVM или MMO игра?