DJMAX Trilogy idee

08/12/2009 01:39 SYY99#1
Hallo. Ich hab eben erst angefangen mir autoit tuts durchzulesen und kam dann auf die idee mir so ein programm zu schreiben. Aber jetzt weiß ich nicht genau wie ich das anstellen soll. Was ich will ist ein programm das ein knopf drückt wenn ein bestimmter pixel seine farbe ändert. Und so hab ich mir das vorgestellt:

[Only registered and activated users can see links. Click Here To Register...]

Da, wo die roten punkte sind, sollen die überwachten pixel hin. Und wenn dort eine note durchfällt soll das programm den richtigen knopf drücken (S D F J K L). Nun hab ich das mal ausprobiert zu schreiben aber ging mal voll daneben... irgendwie hat das prog die ganze zeit J gedrückt und das spiel fing an zu laggen und oft drückte es zu spät.

Kann mir jemand bei der sache behilflich sein? Gibt es noch eine andere möglichkeit sowas zu machen?
08/12/2009 12:38 Atheuz#2
Hatte mal selbiges probiert, was du da gemacht hast funktioniert schon.
Das Problem ist aber das du Oblivion auf 5x spielst, was schon fast unmöglich ist überhaupt mit AutoIt zu machen bzw das Programm kommt garnicht nach weil die Noten zu schnell fallen und drückt auch noch zu spät (Probiers mal mit 1x). Du solltest da eher eine Sprache benutzen die GetPixel am schnellsten ausführen & auswerten kann. Mit C++ hab ich den Song am Ende nur mit ca 2500 Kombo geschafft und einer 93% genauigkeit (Ich habe natürlich alle Effekte etc aus dem Spiel entfernt damit es nicht gestört wird). Ich bezweifel auch das jemand ein Bot dafür machen kann der die Notes 100% trifft, vorallem weil Oblivion ziemlich leicht noch ist und später keine Fehler erlaubt werden.
Das einzigste was du machen könntest wären mehrere Threads für eine Note zu plazieren mit einem vertikalen abstand damit auch wirklich jede Note erkannt wird, egal wie schnell. Aber ob das wirklich hilft - keine Ahnung. Wahrscheinlich werden die zuvielen Abfragen aber sich gegenseitig behindern, aber mal ein Bild wie ich es meine:

[Only registered and activated users can see links. Click Here To Register...]

Hatte auch schon einiges probiert daran Adressen zu finden die anzeigen ob sich eine Note über ein 100% Feld befinden.. aber nichts gefunden. Da es auch kein Crack gibt für das Spiel, wird es auch kaum jemand geben der sich damit beschäftigen will ;)

Edit: Wieso sieht eigentlich dein Gear so scheisse aus? Selbst auf 1680*1050 sieht das bei mir nicht so aus :o

Ansonsten kann sich jemand mal ein Bild davon machen wie schnell schon 4.5 ist, der Threadersteller hats auf 5.0 ;O
08/12/2009 14:19 SYY99#3
ah .. ist ja voll kompliziert.. ich glaub ich lass das erst mal. bin ja noch nicht ganz so gut in autoit. naja was meinste eig mit der gear sache? die sieht doch ganz in ordnung aus^^ ich hab nur mein DJMAX window auf mein desktop angepasst also 1665x990
08/12/2009 14:44 link#4
Naja, die paar Pixel überprüfen und dann 'ne Taste drücken...
Einen Basic-Bot dürftest du da schnell und mit wenig Aufwand haben.

Um an Performance alles Mögliche herauszuholen, würde ich allerdings selber ein MemDC mit einem zugeschnittenen Bitmap erzeugen, als eines mit angepasster Größe von GetPixel bei jedem Aufruf erstellen und wieder löschen zu lassen (s. [Only registered and activated users can see links. Click Here To Register...]).
08/12/2009 14:53 syntex#5
Würde das Spiel reversen und schauen wo die funktionen liegen bzw die noten herkommen und diese dann in meinem eigenem Key Simulator mit den Zeiten wie sie einfliegen usen.
Irgendwo im Client bekommt das Spiel ja die Infos wie die Steine fallen. Ist aber um einiges schwerer da du wahrscheinlich .song files decrypten muss um diese infos zu bekommen (kenne das spiel nicht).

@edit
@link,
es gibt für autoit auch eine DLL die die GetDIBits schon benutzt ... glaube sie hieß _ImageSearch. Ist sehr einfach zu benutzen aber für sowas denke ich nicht geeignet da zuviele effekte durchs bild fliegen.
08/12/2009 18:00 Atheuz#6
Quote:
Originally Posted by syntex View Post
Würde das Spiel reversen und schauen wo die funktionen liegen bzw die noten herkommen und diese dann in meinem eigenem Key Simulator mit den Zeiten wie sie einfliegen usen.
Irgendwo im Client bekommt das Spiel ja die Infos wie die Steine fallen. Ist aber um einiges schwerer da du wahrscheinlich .song files decrypten muss um diese infos zu bekommen (kenne das spiel nicht).

@edit
@link,
es gibt für autoit auch eine DLL die die GetDIBits schon benutzt ... glaube sie hieß _ImageSearch. Ist sehr einfach zu benutzen aber für sowas denke ich nicht geeignet da zuviele effekte durchs bild fliegen.
Nunja, leichter gesagt als getan. Die exe ist gepackt (pEid erkennt es jedenfalls nicht) und dann kommt noch der USB Dongle dazu der das ganze noch schwieriger macht. :o Sowas überschreitet weitgehend meine wenigen Kenntnisse in asm.

GetDIBits funktioniert viel schneller und genauer, aber damit bekommt man auch zu 100% keine Lösung hin da die Noten bei höheren Liedern so schnell fallen das diese gerade mal zu maximal 100ms zu sehen sind im ganzen Bild. Effekte sind aber kein Problem, kann mit einem Hook entfernen oder man prüft die Noten schon ganz oben und lässt die Taste mit verzögerung drücken, dass muss aber dann an die meisten Lieder angepasst werden. Der Threadersteller wird also auf keine vollkommende Lösung kommen, muss er halt das Spiel lernen ;D
08/12/2009 19:21 SYY99#7
ich lass das dann doch sein. ich kann das spiel ja spielen^^ nur früher hab ich mir bots für D2 immer gedownloadet. jetzt wollt ich meinen eigenen in DJMAX Trilogy machen.. war wohl nix^^