Pytanie Unicoin wydobywanie i klikanie na płótnie [zamknięte]


Naprawdę chciałbym zautomatyzować unikalne wydobycie, aby mogło działać w tle, podczas gdy ja robię ważne rzeczy, takie jak odpowiadanie na pytania dotyczące stackoverflow. Zauważyłem, że istnieje canvas#uc-rockcanvas element, w którym można kliknąć skały. Kliknięcie w dół wydaje się dodawać klasę md, a następnie zwolnienie kliknięcia zostanie usunięte md.

Czy istnieje sposób na interakcję z określonymi elementami obszaru roboczego przy użyciu JavaScript, aby można było wywoływać kliknięcia?


76
2018-04-01 14:44


pochodzenie


Być może mógłbyś stworzyć skrypt, który pozwoliłby ci celować w kliknięcia ręcznie, a następnie skrypt rozrzuciłby kamień. - Pointy
Próbowałem tego, ale płótno odpowiedziało tylko na organiczne kliknięcia - JoshWillik
@JoshWillik: Prawdopodobnie problem zaufania. Niestety, mój konfigurowalny, luksusowy pistolet maszynowy do rażenia skał będzie żył we wszechświecie. - Zeta
Właśnie kupiłem Voting Animation i przetestuję to na twoim pytaniu. edytować Omg, co to było. estuckouvrflaw pls y u dis dis - Parziphal
Otwórz konsolę JavaScript i wpisz addUnicoins(999) i zobacz, co się stanie ... - Jojodmo


Odpowiedzi:


Oto kod, który mam na 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);
 })();

Po prostu wprowadź go w konsoli i pozostaw okno otwarte, a Ty powoli otrzymasz uniksy.

Nie jestem pewien co do oryginalnego autora, myślę, że jest to Doorknob


49
2018-04-01 15:05



Jeśli skrypt zostanie uruchomiony zbyt długo, Twoje zarobki spadną do zera na jedno żądanie - JoshWillik
@JoshWillik dziwne, mam to do dziś rano i wciąż mam trochę .... Ale to jest naprawdę powolne! - Karl-André Gagnon
To może być jednak tylko dla mnie. Kilka razy zostałem zwolniony z SO z powodu mojego własnego rozwoju auto-górników: P - JoshWillik
Nie zmieniaj wartości limitu czasu na niższe. Według komunikatów zwrotnych i tak jest 10-sekundowy limit stawki. Ponadto, jeśli uruchomisz to, gdy jesteś na polu, na którym dostaniesz kamienie, dostaniesz czasem błędy (konflikty) z serwera. Uruchom go po prostu na głównej stronie SO. - Csaba Toth
Umieścić go w konsoli? Myślę, że masz na myśli COINSOLE! AMIRITE? AMIRITE? - Chris Baker


Absolutnie masz złe preferencje. Lepiej kliknij kamienie, podczas gdy kod JavaScript odpowiada na pytania.


91
2018-04-01 14:54



Dlaczego nie oba? Odbieranie i klikanie w JavaScript - Sekai
Niestety nie jest to możliwe, JS jest jednowątkowe - Dr.Molle
@ Dr.Molle: Jeśli wydobycie można wykonać tylko za pomocą wywołań AJAX, możesz odrodzić długotrwałego pracownika WWW, aby obsłużyć to i wykonać odpowiedź w wątku głównym / DOM. - ssube


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

Dowiedziałem się, że jeśli zamienisz słowo "Rock" na Potato w kodzie, działa lepiej, to prawie podwaja dochód Unicoins.


27
2018-04-01 15:50



Wiedziałem, że to nie mogło być prawdą. Ale miałem nadzieję, że tak - JoshWillik


Wklej ten kod do swojego JavaScript konsola..

Problem został rozwiązany na całe życie1!

coinMeMaybe(9999);

Jeśli to nie zadziała, spróbuj tego:

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)}};

A potem zadzwoń do funkcji addUnicoins(999);. Możesz użyć dowolnej liczby.


11
2018-04-01 16:21



Wygląda na to, że w twojej funkcji addUnicoins występuje błąd "jeden po drugim". Kiedy wołam addUnicoins (999), otrzymuję tylko 998 unicoinów - nvuono


Nie ma to nic wspólnego z klikaniem na płótnie, ale robi to raczej rozwiązać swój problem z automatyzacją:

http://pastebin.com/6uR2cwpQ

Ten skrypt zakończy się powodzeniem w około 30% przypadków. Będziesz musiał jednak przekopać się przez twoje prośby o znalezienie swojego klucza.

Pełny kod poniżej

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!" );

4
2018-04-01 15:04





Cieszyć się. Uruchom skrypt w konsoli narzędzia deweloperskiego przeglądarki i przesuń kursor myszy na skałę ...

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);

1
2018-04-01 23:27





Chcesz, aby zdarzenia kliknięcia były inicjowane przez użytkownika (oczywiście dla bezpieczeństwa). Będziesz musiał symulować kliknięcia na poziomie systemu operacyjnego. W systemie Windows (także bezpieczeństwa) lubię AutoIt do tego zadania.

Musisz zaprogramować kursor, aby poruszał się losowo, stale próbując koloru pod nim, dopóki nie znajdzie skały. Przesyłanie wielu kolejnych kliknięć staje się trywialne:

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

0