Jamlegend C++ Bot
-
Guten Tag,
ich suche schon seit längeren nach einem Bot für www.jamlegend.com
ich hab auch schon einen Beitrag für die pixelsearch funktion in c++ gesehen , da ich früher mal autoit programmiert hab weiß ich ,dass das nützlich sein könnte.
Könnte mir jemand von euch einen Bot für Jamlegend machen??
MfG Drachlen
-
Falsches Forum. Es gibt ein Projekte-Forum.
-
Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ in das Forum Projekte verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
schaut einfach aus, ist also wohl nur eine frage der bezahlung
-
Ja also ich würde auch zahlen und da es ja leicht aussieht muss es ja auch nicht viel sein oder??
ich erklär ma was der bot machen sollte :
Hier erst ma zwei links zu zwei songs
http://www.jamlegend.com/song/302/1251/
in diesem songs werden hauptsächlich hammerons benutzt das sind die noten in denen so etwas blinkt (sowas wie ein stern)
diese noten muss man nicht mit enter bestätigen aber die noten in denen diese nicht sind die muss man mit enter bestätigen
also : man muss immer den jeweiligen key drücken 1,2,3,4oder 5 und dazu die noten mit enter bestätigen(die die nicht blinken)es gibt beat jam das hier: http://1000ff.de/img/screenshot_jamlegend.jpg
und guitar jam das hier : http://www.pault.de/wp-content/uploads/2009/01/jamlegend.pngder bot sollte hauptsächlich für guitar jam sein..
hoffe du könntest mir so schnell wie möglich einen bot coden
MfG drachlen
-
niemand will einen bot machen ??
anscheinend doch nicht so leicht
-
drachlen schrieb:
niemand will einen bot machen ??
anscheinend doch nicht so leichtfalls falls du gewinnen willst, wuerde es dich billiger kommen Roxanne auf ein date einzuladen und sie betrunken zu machen bevor du sie an den computer fesselst und gegen sie zoggst, als hier jemanden zu bezahlen
Der preis richtet sich nach angebot/nachfrage, nicht nach schwierigkeit, solange du das selbst nicht kannst :p
-
Ja also ich würde auch zahlen und da es ja leicht aussieht muss es ja auch nicht viel sein oder??
Was ist nicht viel? Ein paar Stunden wird man da allemal dransitzen (zumindest ich).
-
dann nimm dir die stunden zeit und dann bekommse von mir nen haufen geld... achja roxanne ...gegen die gewinn ich ehschon immer
-
ich probiere mich einfach mal selbst dran...^^
könnte mir denn vielleicht einer von euch sagen wie man einen bestimmten pixel auf die farbe kontrolieren kann und wenn die farbe sich verändert eine bestimmte taste drückt??das wär ja eigentlich auch alles was ich für so einen bot bräuchte.
Danke
-
Erster Treffer bei google:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-231951.html
-
Hatte gerade lust sowas zu basteln.
Anpassen und zum laufen bekommen musste es aber selber, ist für die beatjam version. Hat noch ein paar kleine bugs (ka ob das am programm oder flash liegt) aber läuft generell schon recht gut. Ist eher ne kalibrierungssache. Habs unter 1280x1024 gebaut (opera).
viel spass.
// JamBot is a bot especially for http://www.jamlegend.com // it uses simple color detection for actions #include "stdafx.h" #include <iostream> #include <vector> #include <utility> #define VK_1 0x31 #define VK_2 0x32 #define VK_3 0x33 #define VK_4 0x34 #define VK_5 0x35 struct Vector2D { Vector2D() {} Vector2D(float x, float y) { this->x = x; this->y = y; } float x, y; }; struct Vector3D { Vector3D() {} Vector3D(float x, float y, float z) { this->x = x; this->y = y; this->z = z; } float x, y, z; }; struct Button { Button(COLORREF c, COLORREF hc, Vector2D p, Vector2D hp, int k) { color = c; holdColor = hc; pos = p; holdPos = hp; locktime = 0; down = false; key = k; } COLORREF color; COLORREF holdColor; Vector2D pos; Vector2D holdPos; unsigned long locktime; bool down; int key; }; class Window { public: Window() { hDC = CreateDC("DISPLAY", NULL, NULL, NULL); hWnd = FindWindow("OperaWindowClass", NULL); Init(); Run(); } ~Window() { DeleteDC(hDC); } private: COLORREF GetColor(Vector2D pos, int rows , int cols) { Vector3D rgb; int counter = 0; if (rows == 0 || cols == 0) { return GetPixel(hDC, (int)pos.x, (int)pos.y); } // row oder col == 1 -> -1, 0, 1, == 2 -> -2, -1, 0, 1, 2 for (int y = -cols; y <= cols; y++) { for (int x = -rows; x <= rows; x++) { COLORREF color = GetPixel(hDC, (int)pos.x + x, (int)pos.y + y); rgb.x += GetRValue(color); rgb.y += GetGValue(color); rgb.z += GetBValue(color); counter++; } } rgb.x /= counter; rgb.y /= counter; rgb.z /= counter; return RGB(rgb.x, rgb.y, rgb.z); } void Init() { buttons.push_back(Button(RGB(255, 236, 136), RGB(255, 247, 51), Vector2D(549, 480), Vector2D(552, 465), VK_1)); // gelb buttons.push_back(Button(RGB(236, 148, 255), RGB(246, 96, 254), Vector2D(589, 480), Vector2D(592, 465), VK_2)); // lila buttons.push_back(Button(RGB(198, 255, 130), RGB(201, 255, 50), Vector2D(629, 480), Vector2D(632, 465), VK_3)); // grün buttons.push_back(Button(RGB(255, 146, 134), RGB(255, 97, 100), Vector2D(669, 480), Vector2D(672, 465), VK_4)); // rot buttons.push_back(Button(RGB(151, 211, 247), RGB(146, 246, 255), Vector2D(711, 480), Vector2D(712, 465), VK_5)); // blau } bool IsColorSimilar(COLORREF c1, COLORREF c2, int maxDistance) { byte r1 = GetRValue(c1); byte r2 = GetRValue(c2); byte g1 = GetGValue(c1); byte g2 = GetGValue(c2); byte b1 = GetBValue(c1); byte b2 = GetBValue(c2); // größer dem kleineren und kleiner dem größeren if (r1 <= Clamp(r2 + maxDistance, 0, 255) && r1 >= Clamp(r2 - maxDistance, 0, 255) && g1 <= Clamp(g2 + maxDistance, 0, 255) && g1 >= Clamp(g2 - maxDistance, 0, 255) && b1 <= Clamp(b2 + maxDistance, 0, 255) && b1 >= Clamp(b2 - maxDistance, 0, 255)) { return true; } return false; } bool HasToHold(Button &b) { COLORREF lineColor = GetColor(b.holdPos, 0, 0); if (IsColorSimilar(lineColor, b.holdColor, 60)) { return true; } return false; } void Run() { // better sleep timeBeginPeriod(1); while (true) { for(size_t i = 0; i < buttons.size(); i++) { Button &b = buttons[i]; COLORREF targetColor = GetColor(b.pos, 2, 1); bool isSimilar = IsColorSimilar(targetColor, b.color, 30); if (isSimilar && !b.down/* && (b.locktime + 90) < timeGetTime() */) { keybd_event(b.key, 0, 0, 0); // press enter at the same time //keybd_event(0xD, 0, 0, 0); b.down = true; b.locktime = timeGetTime(); } else if(!isSimilar && b.down && /*(b.locktime + 50) < timeGetTime() && */!HasToHold(b)) { //keybd_event(0xD, 0, KEYEVENTF_KEYUP, 0); keybd_event(b.key, 0, KEYEVENTF_KEYUP, 0); b.down = false; } } Sleep(10); } } int Clamp(int val, int min, int max) { return max(min, min(val, max)); } HDC hDC; HWND hWnd; std::vector<Button> buttons; }; int _tmain(int argc, _TCHAR* argv[]) { Window wnd; return 0; }
-
also wenn ich den code compilieren will kommen 37 errors ... ich benutze dev-c++
hier ma der logCompiler: Default compiler
Executing g++.exe...
g++.exe "C:\Users\Philipp\Desktop\Untitled1.cpp" -o "C:\Users\Philipp\Desktop\Untitled1.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\Users\Philipp\Desktop\Untitled1.cpp:4:21: stdafx.h: No such file or directory
C:\Users\Philipp\Desktop\Untitled1.cpp:40: error: expected `)' before "c"C:\Users\Philipp\Desktop\Untitled1.cpp:51: error:
COLORREF' does not name a type C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:52: error:
COLORREF' does not name a type
C:\Users\Philipp\Desktop\Untitled1.cpp:77: error:COLORREF' does not name a type C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:118: error: expected
;' before '(' token
C:\Users\Philipp\Desktop\Untitled1.cpp:144: error: expected;' before "bool" C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:196: error:
HDC' does not name a type
C:\Users\Philipp\Desktop\Untitled1.cpp:197: error:HWND' does not name a type C:\\Users\\Philipp\\Desktop\\Untitled1.cpp: In constructor
Window::Window()':
C:\Users\Philipp\Desktop\Untitled1.cpp:66: error:hDC' undeclared (first use this function) C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:66: error: (Each undeclared identifier is reported only once for each function it appears in.) C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:66: error:
CreateDC' undeclared (first use this function)
C:\Users\Philipp\Desktop\Untitled1.cpp:67: error:hWnd' undeclared (first use this function) C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:67: error:
FindWindow' undeclared (first use this function)
C:\Users\Philipp\Desktop\Untitled1.cpp: In destructorWindow::~Window()': C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:74: error:
hDC' undeclared (first use this function)
C:\Users\Philipp\Desktop\Untitled1.cpp:74: error:DeleteDC' undeclared (first use this function) C:\\Users\\Philipp\\Desktop\\Untitled1.cpp: In member function
void Window::Init()':
C:\Users\Philipp\Desktop\Untitled1.cpp:111: error: `RGB' undeclared (first use this function)C:\Users\Philipp\Desktop\Untitled1.cpp: In member function
bool Window::HasToHold(Button&)': C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:146: error:
COLORREF' undeclared (first use this function)
C:\Users\Philipp\Desktop\Untitled1.cpp:146: error: expected;' before "lineColor" C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:148: error:
lineColor' undeclared (first use this function)
C:\Users\Philipp\Desktop\Untitled1.cpp:148: error: 'struct Button' has no member named 'holdColor'C:\Users\Philipp\Desktop\Untitled1.cpp:148: error:
IsColorSimilar' undeclared (first use this function) C:\\Users\\Philipp\\Desktop\\Untitled1.cpp: In member function
void Window::Run()':
C:\Users\Philipp\Desktop\Untitled1.cpp:159: error:timeBeginPeriod' undeclared (first use this function) C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:167: error:
COLORREF' undeclared (first use this function)
C:\Users\Philipp\Desktop\Untitled1.cpp:167: error: expected;' before "targetColor" C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:169: error:
targetColor' undeclared (first use this function)
C:\Users\Philipp\Desktop\Untitled1.cpp:169: error: 'struct Button' has no member named 'color'
C:\Users\Philipp\Desktop\Untitled1.cpp:169: error:IsColorSimilar' undeclared (first use this function) C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:173: error:
keybd_event' undeclared (first use this function)
C:\Users\Philipp\Desktop\Untitled1.cpp:177: error: `timeGetTime' undeclared (first use this function)C:\Users\Philipp\Desktop\Untitled1.cpp:182: error:
KEYEVENTF_KEYUP' undeclared (first use this function) C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:187: error:
Sleep' undeclared (first use this function)
C:\Users\Philipp\Desktop\Untitled1.cpp: In member functionint Window::Clamp(int, int, int)': C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:193: error:
min' cannot be used as a function
C:\Users\Philipp\Desktop\Untitled1.cpp:193: error:max' cannot be used as a function C:\\Users\\Philipp\\Desktop\\Untitled1.cpp: At global scope: C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:202: error:
_TCHAR' has not been declared
C:\Users\Philipp\Desktop\Untitled1.cpp:203: error: ISO C++ forbids declaration of `argv' with no typeExecution terminated
ich benutze dev-c++ erst seit kurzem .
liegt es vielleicht am programm kennt ihr ein besseres??
-
Ja, z.B. Eclipse mit C++ plugin oder VisualStudio EE
-
Du brauchst die windows.h. Solltest du als erstes includen um Fehler zu vermeiden. Und musst gegebenenfalls auch noch die libs user32.lib und gdi32.lib linken.
edit:
Und die winmm.lib.
-
so hab jetzt windows.h included
doch jetzt sind noch zwei errors da ..
hier der logCompiler: Default compiler
Executing g++.exe...
g++.exe "C:\Users\Philipp\Desktop\Untitled1.cpp" -o "C:\Users\Philipp\Desktop\Untitled1.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\Users\Philipp\Desktop\Untitled1.cpp: In member function `int Window::Clamp(int, int, int)':C:\Users\Philipp\Desktop\Untitled1.cpp:194: error:
min' cannot be used as a function C:\\Users\\Philipp\\Desktop\\Untitled1.cpp:194: error:
max' cannot be used as a functionExecution terminated
muss stdafx.h unbedingt included werden??
-
Dann fehlt dir noch ein Makro für min/max:
#define max(a,b) (((a) > (b)) ? (a) : (b)) #define min(a,b) (((a) < (b)) ? (a) : (b))
-
ok klappt aber jetzt neue fehler meldungen
LOG:
(edit) jetzt siehts nur noch so aus :
Compiler: Default compiler
Building Makefile: "C:\Dev-Cpp\Makefile.win"
Executing make...
make.exe -f "C:\Dev-Cpp\Makefile.win" all
g++.exe -c ../Users/Philipp/Desktop/main.cpp -o ../Users/Philipp/Desktop/main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"g++.exe ../Users/Philipp/Desktop/main.o -o "Project1.exe" -L"C:/Dev-Cpp/lib" -mwindows
../Users/Philipp/Desktop/main.o:main.cpp:(.text_ZN6Window3RunEv[Window::Run()]+0xf): undefined reference to `timeBeginPeriod@4' ../Users/Philipp/Desktop/main.o:main.cpp:(.text_ZN6Window3RunEv[Window::Run()]+0xe9): undefined reference to `timeGetTime@0'
collect2: ld returned 1 exit statusmake.exe: *** [Project1.exe] Error 1
Execution terminated
-
Sicher das du die "winmm.lib" gelinkt hast, kuck doch mal in den Projekt Einstellungen.
In VisualStudio kann man es auch ganz einfach mit
#pragma comment(lib, "winmm.lib")
weißt nicht ob das bei anderen Compilern auch geht.
-
so habs geschafft ..
es läuftnur ma ne frage is der bot nicht vielleicht schneller wenn der nicht nach einer bestimmten farbe sucht sonder einfach wartet bis sich die grundfarbe verändert??
weil die richtig harten songs bekommt der nicht hin
aber der ist 1000 mal so gut wie der autoit bot