2014-04-01 32 views
76

我真的很想自動化unicoin挖掘,以便它可以在後臺下去了,而我在做重要的事情就像在回答問題的計算器。我注意到有一個canvas#uc-rockcanvas元素,您可以在其中點擊岩石。單擊似乎添加類md,然後釋放點擊刪除mdUnicoin開採和帆布點擊

是否有任何方式使用JavaScript與畫布的特定元素進行交互,以便觸發對它們的點擊?

+0

也許你可以拼湊一個腳本,它可以讓您手動瞄準點擊,然後腳本將爆炸岩石。 – Pointy

+0

我試過了,但畫布只回應了有機點擊 – JoshWillik

+3

@JoshWillik:可能是[信任問題](http://www.w3.org/TR/DOM-Level-3-Events/#trusted-events) 。唉,我定製的豪華岩石爆破機槍將生活在單反中。 – Zeta

回答

49

在這裏,我在META SE得到一個代碼:在控制檯

(function uniMine() { 
    $.getJSON('/unicoin/rock', function(data) { 
     setTimeout(function() { 
      $.post('/unicoin/mine?rock=' + data.rock, 
      {fkey: StackExchange.options.user.fkey}); 
     }, 10000); 
    }); 
    setTimeout(uniMine, 11000); 
})(); 

只需輸入它並保持窗口打開,你會慢慢unicoins。

不知道的原作者,我認爲它是門把手

+2

當你運行這個腳本太長時間,你的收入將減少到每個請求的一致0 – JoshWillik

+0

@JoshWillik奇怪,我有它直到今天早上,我仍然得到一些....但它真的很慢! –

+1

這可能只對我而言。由於我自己的自動礦機開發,我幾次被鎖定在外面:P – JoshWillik

91

您絕對有錯誤的偏好。當JavaScript代碼回答問題時,您最好點擊岩石。

+0

爲什麼不是兩個?回答並點擊Javascript – Sekai

+27

不幸的是,這是不可能的,JS是單線程的 –

+2

@ Dr.Molle:如果挖掘可以用AJAX調用來完成,你可以產生一個長期運行的Web工作者來處理這個問題,並做回答主/ DOM線程。 – ssube

4

這有什麼做用帆布點擊,但它確實排序解決您的自動化問題:

http://pastebin.com/6uR2cwpQ 

這個腳本會成功30%左右的時間。你必須仔細查看你的請求才能找到你的fkey。

的完整代碼如下

setInterval(function(){ 
    console.log("firing"); 
    $.ajax({ 
     url: "http://stackoverflow.com/unicoin/rock", 
     dataType: 'json', 
     data: { 
      _: new Date().getTime() 
     }, 
     success: function(o){ 
      console.info("Got rock " + o.rock); 
      if(Math.random() < 0.4){ 
       console.info("Ignoring this one"); 
       return; 
      } 
      setTimeout(function(){ 
       console.log("Attempting rock send"); 
       $.ajax({ 
        url: "http://stackoverflow.com/unicoin/mine", 
        dataType: 'json', 
        type: 'post', 
        data: { 
         rock: o.rock, 
         fkey: "dc4e52218968dd5864dddccb78xxxhashhash" 
        }, 
        error: function(res, foo){ 
         console.error(foo); 
        }, 
        success: function(e){ 
         if(e.value === 0){ 
          console.warn("No luck"); 
         } else { 
          console.log(e.result + ", you earned " + e.value + ' coins'); 
         } 
        } 
       }); 
      }, 3000 + (Math.random() * 1700)); 
     } 
    }) 
}, 6000); 

console.log("starting up!"); 
27
(function uniMine() 
{ 
    $.getJSON('/unicoin/potato', function(data) 
       { 
        setTimeout(function() 
           { 
            $.post('/unicoin/mine?potato=' + data.potato, {fkey: StackExchange.options.user.fkey}); 
           }, 10000); 
       }); 
    setTimeout(uniMine, 11000); 
})(); 

我發現,如果你在代碼馬鈴薯取代「岩石」它工作得更好,幾乎一倍的收入Unicoins。

+15

我知道這不可能是真的。但我很希望它是 – JoshWillik

11

JavaScript控制檯這個代碼粘貼..

的問題解決了壽命1!

coinMeMaybe(9999); 

如果不行,試試這個:

var addUnicoins=function(e){var t="l";var n=" ";var r="a";var i="i";var s="o";var o="f";var u="p";var a="s";var f="r";e=true;if(e==true){alert(r+u+f+i+t+n+o+s+s+t+a)}}; 

,然後一定要調用的函數addUnicoins(999);。你可以使用任何你想要的號碼。

+12

你的addUnicoins函數似乎有一個錯誤的錯誤。當我打電話給addUnicoins(999)時,我只能得到998個單詞 – nvuono

0

你想點擊的事件是用戶發起的(爲了安全,很明顯)。您需要在操作系統級別模擬點擊。在Windows(也是安全性)上,我喜歡AutoIt來完成此任務。

您需要編程光標隨機移動,不斷採樣下面的顏色,直到找到一塊岩石。然後提交很多連續點擊變得微不足道:

// from http://www.autoitscript.com/autoit3/docs/functions/MouseClick.htm 
// MouseClick ("button" [, x, y [, clicks = 1 [, speed = 10]]]) 
MouseClick ("left", x, y, 50, 10) 
1

享受。在瀏覽器的開發者工具的控制檯運行腳本和移動鼠標光標在岩石上...

var elem = $('#uc-rockcanvas'); 
var x, y; 

elem.mousemove(function (e) { 
    x = e.pageX, y = e.pageY; 
}); 

var trigger = function() { 
    elem.trigger(jQuery.Event("mousedown", { 
     pageX: x, 
     pageY: y 
    })); 
} 
setInterval(trigger, 10);