Od czego zacząć programowanie w js?

0

Dobry, w ramach nauki programowania wpadł mi do głowy pomysł na napisanie bota do gry przeglądarkowej opartego na js w formie rozszerzenia do przeglądarki (Greasemonkey). Chciałbym żeby po odpaleniu go chodził w grze i klikał dialogi, które mu wyznaczę i stąd moje pytanie, od czego zacząć? Zaznaczam również, że nie chodzi mi o typowego clickera, który jest łatwo wykrywalny przez twórców gry. Bardzo bym was prosił o nadesłanie jakichś kursów internetowych (jeżeli takowe są) lub książek uczących js, które mi pozwolą takiego bota napisać.

0
piter15 napisał(a):

Zaznaczam również, że nie chodzi mi o typowego clickera, który jest łatwo wykrywalny przez twórców gry.

Co przez to rozumiesz?
Czym miałby się charakteryzować nietypowy kliker, którego się łatwo nie wykrywa?

BTW: w zależności od stopnia upierdliwości danej strony, już samo zasymulowanie kliknięcia na elemencie, w taki sposób, żeby skrypty strony go zaakceptowały, może wymagać od autora bota wykonania "indiańskich tańców".

A w ogólności, robienie tego typu bota nie jest najlepszym sposobem na rozpoczęcie nauki JS.

0

Dobry, w ramach nauki programowania wpadł mi do głowy pomysł na napisanie bota do gry przeglądarkowej opartego na js w formie rozszerzenia do przeglądarki (Greasemonkey). Chciałbym żeby po odpaleniu go chodził w grze i klikał dialogi, które mu wyznaczę i stąd moje pytanie, od czego zacząć? Zaznaczam również, że nie chodzi mi o typowego clickera, który jest łatwo wykrywalny przez twórców gry. Bardzo bym was prosił o nadesłanie jakichś kursów internetowych (jeżeli takowe są) lub książek uczących js, które mi pozwolą takiego bota napisać.

Jeśli pasuje Ci nauka z książki to You don;t Know JS jest trafioną pozycją.

0
Freja Draco napisał(a):
piter15 napisał(a):

Zaznaczam również, że nie chodzi mi o typowego clickera, który jest łatwo wykrywalny przez twórców gry.

Co przez to rozumiesz?
Czym miałby się charakteryzować nietypowy kliker, którego się łatwo nie wykrywa?

BTW: w zależności od stopnia upierdliwości danej strony, już samo zasymulowanie kliknięcia na elemencie, w taki sposób, żeby skrypty strony go zaakceptowały, może wymagać od autora bota wykonania "indiańskich tańców".

A w ogólności, robienie tego typu bota nie jest najlepszym sposobem na rozpoczęcie nauki JS.

Napisałem, że nie chce clickera, bo on kilka cały czas w te same punkty, gdyby zobaczyli, że dzień w dzień klikam tak samo to skończyło by sie to banem. Myślałem, że to jest jasne. Wiem, że to nie jest dobry sposób do nauki, ale taki sobie wybrałem cel i do niego dążę.

0
piter15 napisał(a):

Napisałem, że nie chce clickera, bo on kilka cały czas w te same punkty, gdyby zobaczyli, że dzień w dzień klikam tak samo to skończyło by sie to banem. Myślałem, że to jest jasne.

No niespecjalnie jasne. Zwłaszcza, że taki podstawowy kliker zrobiony w JS wywołuje po prostu metodę click() na wskazanym obiekcie, w związku z czym nie przekazuje stronie koordynatów kliknięcia.

Metoda bardziej zaawansowana symuluje faktyczne zaistnienie zdarzenia:
(Poniższe działa w Chrome, w FF chyba gdzieś coś było ciut inaczej).


/* --- f: m_klik --- */
function m_klik(x, y, czy_klikac=1) {
  /* --- stwórz strzałkę --- */
  var obiekt_strzalka = document.getElementById("svg_strzalka");
  if (!obiekt_strzalka) {
    m_strzalka = document.createElement("SVG");
    m_strzalka.setAttribute("id", "svg_strzalka");
    m_strzalka.style.position = "fixed";
    m_strzalka.style.top =  x + "px";
    m_strzalka.style.left = y + "px";
    m_strzalka.style.width  = "20px";
    m_strzalka.style.height = "20px";
    m_strzalka.innerHTML = "<svg height='20' width='20'><polygon points='0 0,20 10,10 10,10 20' style='fill:red;stroke-width:1;stroke:yellow;' />⬉</svg>";
    /* + */  document.body.appendChild(m_strzalka);
  }
  document.getElementById("svg_strzalka").style.display = "none";
  /* --- /stwórz strzałkę --- */

  /* --- symuluj kliknięcie --- */
  if (czy_klikac==1) {
    /* --- mousedown --- */
    var e = document.createEvent("MouseEvent");
    var obiekt = document.elementFromPoint(x,y);
    e.initMouseEvent("mousedown", true, true, window, null, 0, 0, x, y, false, false, false, false, 0, null);
    obiekt.dispatchEvent(e);
    /* --- /mousedown --- */
    /* --- mouseup --- */
    var e = document.createEvent("MouseEvent");
    var obiekt = document.elementFromPoint(x,y);
    e.initMouseEvent("mouseup", true, true, window, null, 0, 0, x, y, false, false, false, false, 0, null);
    obiekt.dispatchEvent(e);
    /* --- /mouseup --- */
    /* --- click --- */
    var e = document.createEvent("MouseEvent");
    var obiekt = document.elementFromPoint(x,y);
    e.initMouseEvent("click", true, true, window, null, 0, 0, x, y, false, false, false, false, 0, null);
    obiekt.dispatchEvent(e);  
    /* --- /click --- */
  }
  /* --- /symuluj kliknięcie --- */
  
  /* --- pokaż strzałkę --- */
  m_strzalka = document.getElementById("svg_strzalka");
  m_strzalka.style.top =  y + "px";
  m_strzalka.style.left = x + "px";
  m_strzalka.style.zIndex = "99999";
  m_strzalka.style.display = "block";
  /* --- /pokaż strzałkę --- */
}
/* --- /f: m_klik --- */

1 użytkowników online, w tym zalogowanych: 0, gości: 1