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ć.

- Rejestracja:około 7 lat
- Ostatnio:ponad 3 lata
- Postów:3394
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.

- Rejestracja:około 5 lat
- Ostatnio:około 5 lat
- Postów:5
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ą.
- Rejestracja:około 5 lat
- Ostatnio:około 5 lat
- Postów:2
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ążę.

- Rejestracja:około 7 lat
- Ostatnio:ponad 3 lata
- Postów:3394
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 --- */
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.