Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Wow molten fishbot c++


xhrTV

Rekomendowane odpowiedzi

Opublikowano

Witam!

Ostatnimi czasy żaden fishbot nie działa na moltenie, więc postanowiłem napisać swojego mam jednak kilka pytań:

1. jakiej biblioteki użyć(c++)? W winapi są takie funkcje jak sendinput itd, ale one nie działają w tle.

2. Jak kazać botowi czekać, aż pojawi się ryba i wtedy "kliknąć" na spławik? Nie mam zielonego pojęcia jak z tego wybrnąć, bo nie wiem na jakiej zasadzie działają inne boty tego typuJeśliby udało mi się napisać bota, to podzielę się nim tutaj, ale najpierw sam potrzebuję pomocy.

Opublikowano

Witam!

Ostatnimi czasy żaden fishbot nie działa na moltenie, więc postanowiłem napisać swojego mam jednak kilka pytań:

1. jakiej biblioteki użyć(c++)? W winapi są takie funkcje jak sendinput itd, ale one nie działają w tle.

2. Jak kazać botowi czekać, aż pojawi się ryba i wtedy "kliknąć" na spławik? Nie mam zielonego pojęcia jak z tego wybrnąć, bo nie wiem na jakiej zasadzie działają inne boty tego typuJeśliby udało mi się napisać bota, to podzielę się nim tutaj, ale najpierw sam potrzebuję pomocy.

dzialaja w tle lol

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644944%28v=vs.85%29.aspx

musisz czytac pamiec ktora okresla czy jest ryba czy nie

­

Opublikowano

Ok, obczaję

musisz czytac pamiec ktora okresla czy jest ryba czy nie

Czyli co zabawa cheat engine dopóki nie uzyskam adresu zmienniej ryby tak?

A lokalizacja spławika na ekranie?

­

w cheat engine znalezienie stalego adresu bedzie trudne, o ile sie nie myle to boty do wowa ludzie pisza w lua 

Opublikowano

Problem w tym, że gdybym użył twojego sposobu to musialbym każdy pixel po kolei sprawdzać instrukcja warunkawa jeśli się nie myle. Nie mówiąc o tym ze w grze jest cieniowanie i nie zawsze kolor jest ten sam.

Opublikowano

Nie grałem w tą grę, ale jeżeli patrzysz się z stojąc na ziemi to woda jest na dole ekranu... Więc spławika szukasz nie na całym ekranie, a tylko na dole...

Jeśli chodzi o kolory, to nie musi być dokładny kolor. Jak spławik jest czerwonawy no to dajesz np R>160;G<60;B<60;

Dookoła jest sama woda, więc powinno być dużo blue. Tak więc spławik można łatwo i bez pomyłek zlokalizować. 

Najtrudniejsze to kiedy spławik bierze? :D zapewne trzeba zrobić screena i w paincie policzyć ile pixeli wysokości ma spławik kiedy nurkuje...

Opublikowano

Nie grałem w tą grę, ale jeżeli patrzysz się z stojąc na ziemi to woda jest na dole ekranu... Więc spławika szukasz nie na całym ekranie, a tylko na dole...

Jeśli chodzi o kolory, to nie musi być dokładny kolor. Jak spławik jest czerwonawy no to dajesz np R>160;G<60;B<60;

Dookoła jest sama woda, więc powinno być dużo blue. Tak więc spławik można łatwo i bez pomyłek zlokalizować. 

Najtrudniejsze to kiedy spławik bierze? :D zapewne trzeba zrobić screena i w paincie policzyć ile pixeli wysokości ma spławik kiedy nurkuje...

 

Nie da się tak zrobić, ponieważ spławik ma zmienny wygląd, woda też nie zawsze jest w tym samym miejscu, przecież postać można różnie ustawić.

Możnaby ewentualnie znaleźć spławik tak, że po najechaniu na niego zmienia się kursor, ale w dalszym ciągu nie wiem jak:

Przesuwać/klikać myszą w oknie gry nie ustawiając okna jako aktywnego

Zlokalizować spławik

Będę wdzięczny za każdą pomoc :)

 

EDIT Jeśli to kogoś interesuje zamieszczam aktualny kod bota

 

 

#define _WIN32_WINNT 0x0500
#include <iostream>
#include <windows.h>
#include <process.h>

bool czyodpalone = 0;

using namespace std;

class kolor{
    HANDLE hOut = GetStdHandle( STD_OUTPUT_HANDLE );
    public:
    void red(){
        SetConsoleTextAttribute(hOut, FOREGROUND_RED);
    }
    void green(){
        SetConsoleTextAttribute(hOut, FOREGROUND_GREEN);
    }
    void blue(){
        SetConsoleTextAttribute(hOut, FOREGROUND_BLUE);
    }
};
class controll{
    public:
    void cast(HWND uchwyt){
        SendMessage(uchwyt, WM_KEYDOWN, VK_RETURN, 0);
        Sleep(50);
        SendMessage(uchwyt, WM_KEYUP, VK_RETURN, 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, VK_DIVIDE, 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x43 , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x41 , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x53 , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x54 , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, VK_SPACE , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x46 , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x49 , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x53 , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x48 , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x49 , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x4E , 0);
        Sleep(50);
        PostMessage(uchwyt, WM_KEYDOWN, 0x47 , 0);
        Sleep(50);
        SendMessage(uchwyt, WM_KEYDOWN, VK_RETURN, 0);
        Sleep(50);
        SendMessage(uchwyt, WM_KEYUP, VK_RETURN, 0);
        Sleep(50);
    }
    void klik(HWND uchwyt){

        PostMessage ( uchwyt, WM_LBUTTONDOWN, 700 | 400, 0 );
        PostMessage ( uchwyt, WM_LBUTTONUP, 700 | 400, 0 );

        Sleep ( 5 );
    }
};
void Skrot( void * );

void Dzialanie (void * );

int main(){
    bool mainloopworks = 1;
    _beginthread(Skrot, 0, NULL);
    _beginthread(Dzialanie, 0 , NULL);
    kolor color;
    color.green();
    cout << endl;
    cout << " MWFB" << endl;
    cout << " Molten WoW Fish Bot" << endl;
    cout << " =========================" << endl;
    color.blue();
    cout << " Nacisnij CTRL+E aby rozpoczac prace bota " << endl;
    color.red();
    do{
        if (mainloopworks ==1){
            do{
                cout << "\r oOo";
                Sleep(100);
                cout << "\r ooO";
                Sleep(100);
                cout << "\r Ooo";
                Sleep(100);
            }while(1);
        }
        else
            break;
    }while(1);
}

void Skrot(void * ){
    kolor color;
    bool firststart = 1;
    RegisterHotKey(NULL, 1, MOD_CONTROL, 0x45);
    do{
        MSG msg = {0};
        while (GetMessage(&msg, NULL, 0, 0) != 0)
        {
            if (msg.message == WM_HOTKEY)
            {
                if (firststart == 1){
                    color.blue();
                    cout <<"\r Rozpoczeto prace bota" << endl;
                    czyodpalone = 1;
                    firststart = 0;
                    color.red();
                }
                else if (firststart == 0){
                    color.blue();
                    czyodpalone = 0;
                    cout <<"\r Zatrzymano bota" << endl;
                    firststart = 1;
                    color.red();
                }
            }
        }
    }while(1);
    _endthread();
}

void Dzialanie(void *){
    HWND hWin;
    hWin = FindWindow(NULL, "World of Warcraft");
    controll kontrola;
    do{
        if (czyodpalone == 1){
            kontrola.cast(hWin);
            Sleep(100);
            kontrola.klik(hWin);
        }
    }while(1);
}

 

 

Opublikowano

zmien to wszystko ze switcha - nie rob tak, zrob wrapper na przycisk

BOOL sendKey(HWND hWindow, UINT uMsg, WPARAM wParam, LPARAM lParam = 0, unsigned uSleepTime = 50)
{
        Sleep(uSleepTime);
        return PostThreadMessage(hWindow, uMsg, wParam, lParam);
}

tym sposobem pozbywamy sie 2 linijek kodu, i jest czytelniej, i latwiej zmienic - bedziesz chcial zmienic sleepa z 50 na 100, no to zmienisz w jednym miejscu 

Opublikowano

Nie znam się na tej grze, jednak zapewne jest jakiś adres odpowiadający za to czy wędka ma iść w górę (bo z tego co widzę to trzeba kliknąć w spławik) więc kiedy będziesz podnosił ten spławik w grze, szukaj w CE zmienionych wartości, być może natrafisz tą, która odpowiada za tą czynność. Jeśli to nie zadziała można też w odwrotną stronę, załóżmy że jakiś adres przyjmuje wartość "1" gdy łowisz, więc gdy zmienisz jego wartość na "0" to postać być może przestanie wykonywać czynność. Musisz sam zobaczyć, każda gra działa inaczej, zależy jak to zaimplementowali twórcy.

Bot do gry NosTale:


[bOT] NosBota 1.3v

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...