Register for your free account! | Forgot your password?

Go Back   elitepvpers > Diablo 3 > Diablo 3 Hacks, Bots, Cheats & Exploits
You last visited: Today at 02:55

  • Please register to post and access all features, it's quick, easy and FREE!

 

[Release] AutoIt v3 Equipchanger Open Source

Reply
 
Old   #1
 
elite*gold: 0
Join Date: May 2011
Posts: 8
Received Thanks: 2
Cool [Release] AutoIt v3 Equipchanger Open Source

Ich habe mich mal hingesetzt und nen Equipchanger geschrieben, dessen Quellcode ich nicht unter Verschluss halten werde. Mir ist das zu dubios gewesen, da irgendwelche .exe Dateien im Zusammenhang mit D3 zu benutzen, deren Source ich nicht kenne. Deshalb liefere ich mit diesem Release einen einfach konfigurierbaren Equipchanger.

Alle wichtigen Einstellungen lassen sich über die "equipwechsler.ini" einstellen. Bilder zur Erklärung sind auch dabei. Er kann alle Slots equippen, auch den zweiten Ring usw.

Über Anregungen und Verbesserungsvorschläge würde ich mich freuen und diese bei Gelegenheit auch umsetzen.

Grüße

Checkliste für Verbesserungen:
-andere Auflösungen als 16:9-formatige unterstützen (wahrscheinlich über einfache Case-Abfragen, oder hat jemand ne bessere Idee?)

Source:


Config:

You must register and activate your account in order to view images.
Attached Files
File Type: rar 1.4.rar (785.9 KB, 58 views)



EnnDee is offline  
Thanks
2 Users
Old   #2
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Bin deinen Code mal kurz überflogen, daher generelles Zeug:

Nutze wenn möglich Singleton bei solchen Tools.

Code:
#include <Misc.au3>
_Singleton(@ScriptName)
Damit immer nur eine Instanz läuft.

Den wenn die Leute so "blöd" sind es zwei mal zu öffnen dann funktioniert nur bei einer die Hotkeys (entsprechend der Exit hotkey) , was etwas unschön ist und mit Pech Probleme erzeugt.


Konfigurierbare Hotkeys finde ich in jedem fall ne super Idee, hab ich meist auch hardcoded.

u.U. musst du abprüfen das keine Doppelt Belegt sind, falls jemand so blöd ist und das eingibt (dann gilt nur der letzte Hotkey, der andere hat keine Funktion).


Das Tool sollte nur laufen wenn Diablo III auch offen ist ; beendet man Diablo III macht es Sinn das Tool gleich mit zu beenden.

Entsprechend bietet es sich an wenn du im While 1 einfach "While WinExists" machst, das sorgt entsprechend für eine schnelle einfache Lösung.


Du benutzt blockinput, was "gut" ist, beachte aber das man dazu Adminrechte benötigt.

Entsprechend macht es Sinn einen "#requireAdmin" hinzuzufügen, damit die Leute das auch richtig machen.



send("{SPACE}") soll das dafür sorgen, dass das Inventar geschlossen wird ?

Bin grad auf Arbeit und habe kein D3 hier, aber wenn "ja" gut so.

Die sleeps halte ich für unnötig an der Stelle, aber u.U. haben die ja einen Zweck.

Warum ein MouseMove ? Ergibt sich mir nicht warum das benötigt wird.



Nutze wenns geht "ControllClick" anstatt MouseClick, das ist einfach klar "superior". Sendet den Befehl direkt an das angegebene Controll und ist wohl auch einfach schneller (siehe dazu meinen Referenz Code, der macht das hoffentlich deutlich, ansonsten F1 in AutoIT sollte auch helfen).

Größter Vorteil von ControllClick, die Maus selbst wird nicht bewegt, es werden nur die Befehle gesendet, dadurch kann der Nutzer eigentlich tun was er will (sollte trotzdem BlockInput sein, den das macht das Macro einfach kaputt wenn der User dazwischen funkt).



Logging würde ich in jedem fall "optional" machen.



In meiner Referenz siehst du eine Alternative für das Macro.

Anstelle mit Rechtsklick verwende ich eine linksklick und füge die Items direkt dort ein wo sie hinsollen.
Das macht die Sache mit "Alt" unnötig und die Recorder Funktion erlaubt es mit jeder Auflösung seine Einstellung zu tätigen.

Die Option mit Rechtsklick und Alt funktioniert natürlich auch, im Detail müsste man das stärker Vergleichen ob es unterschiede gibt (nicht nur Geschwindigkeit, sondern Sicherheit auf Fehler, bzw. wie das Spiel in bestimmten Situation anders handelt, wenn vielleicht einmal eine 2h Waffe verwendet wird und im magic Set je 2x Einhand usw.).


Mein Recorder speichert einfach .ini files mit den Koordinaten als Namen die Auflösung.


Generell kann man einiges tun damit das Tool einfach "schöner" funktioniert und mehr Optionen zur Verfügung stehen, den die "eigentliche" Funktion des EquipWechsel ist ja ziemlich trivial.



Nur als Referenz Code:

RECORDER.au3


AutoEquipper.au3


TheOnlyOne652089 is offline  
Thanks
2 Users
Old   #3
 
elite*gold: 0
Join Date: Sep 2008
Posts: 362
Received Thanks: 25
Hey, ich bekomme den Fehler Equipwechsler.exe ist keine zulässige Win32-Anwendung. Woran kann das liegen?
xXuserXx is offline  
Old   #4
 
elite*gold: 0
Join Date: May 2011
Posts: 8
Received Thanks: 2
Controlclick hab ich mir auch schon mal angeschaut, da es ja z.b. auch für inaktive und minimierte Fenster funktioniert, bzw. wenn D3 als Fenster im Hintergrund läuft. Allerdings hab ichs wieder veworfen, weil ich keine Ahnung hatte, was ich als ControlID angeben sollte, wenn ich son Spielfenster habe. Bei Windows GUI Fenstern kriegt man das ja leicht raus, aber bei Spielen gibt es so was ja nicht. Ich gucke mir das in deinem Script mal genauer an.
Könnte das nicht zu Problemen bei der Detectability führen, wenn man die Maus gar nicht mehr bewegt? Hauptaugenmerk meines Programms liegt ja darauf, es möglichst menschlich wirken zu lassen, daher auch die Random Delays zwischen allen Aktionen.

Danke für deine Anregungen auf jeden Fall. Einen Teil setze ich gerade um, einen Teil werde umzusetzen versuchen und eventuell nochmal hier nachfragen.

Quote:
Originally Posted by xXuserXx View Post
Hey, ich bekomme den Fehler Equipwechsler.exe ist keine zulässige Win32-Anwendung. Woran kann das liegen?
Das liegt daran, dass ich es als 64Bit Anwendung compiliert habe. Werds bei Gelegenheit berichtigen und als 32 Bit compilen.


EnnDee is offline  
Old   #5
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by EnnDee View Post
Controlclick hab ich mir auch schon mal angeschaut, da es ja z.b. auch für inaktive und minimierte Fenster funktioniert, bzw. wenn D3 als Fenster im Hintergrund läuft. Allerdings hab ichs wieder veworfen, weil ich keine Ahnung hatte, was ich als ControlID angeben sollte, wenn ich son Spielfenster habe. Bei Windows GUI Fenstern kriegt man das ja leicht raus, aber bei Spielen gibt es so was ja nicht. Ich gucke mir das in deinem Script mal genauer an.
Da musst du wohl noch etwas lesen, aber die kurzfassung:

Jedes Window hat ein Handle (hwnd), das kannst du als ID betrachten in dem Zusammenhang.

Das zu bekommen ist sehr einfach mit AutoIT, einfach "WinGetHandle" und fertig.

Falls benötigt kannst du auch den Prozess abgreifen "WinGetProcess" (brauchst du hier aber nicht tun, das Handle reicht).


Quote:
Könnte das nicht zu Problemen bei der Detectability führen, wenn man die Maus gar nicht mehr bewegt? Hauptaugenmerk meines Programms liegt ja darauf, es möglichst menschlich wirken zu lassen, daher auch die Random Delays zwischen allen Aktionen.
Im Endeffekt lösen beide Funktionen das gleiche aus.

MouseClick geht den "umweg" über den MouseCursor und bewegt die Maus, das sorgt dann für das entsprechende "MouseClick" Event.

ControllClick sendet dieses MouseClick Event einfach direkt, spart sich den Umweg.

In Sachen Detectability sollte das komplett zu vernachlässigen sein, ich meine sogar es macht absolut keinen Unterschied.


Quote:
Danke für deine Anregungen auf jeden Fall. Einen Teil setze ich gerade um, einen Teil werde umzusetzen versuchen und eventuell nochmal hier nachfragen.
Gut so ^^


Quote:
Das liegt daran, dass ich es als 64Bit Anwendung compiliert habe. Werds bei Gelegenheit berichtigen und als 32 Bit compilen.
Kannst auch beides machen und als "_32bit" bzw. "_64bit" angeben.

Die 32-bit version funktioniert in aller Regel aber auch unter 64bit.

Quote:
Originally Posted by EnnDee View Post
Danke für die Hinweise, hab das alles mal umgesetzt und noch etwas mehr Konfigurierbarkeit rein gebracht. Außerdem sollte es nun auch unter 32 Bit Betriebssystemen laufen.

Problem:
Ich kann keinen ALT+Rechtsklick mit dem Controlclick machen .. Lösungsideen?
Ich meine das geht.

Code:
ControlSend($winTitle, "", $hWnd, "{ALTDOWN}")
ControlClick($winTitle, "", $hWnd, "right", 1, $mouseCoord[0], $mouseCoord[1])
ControlSend($winTitle, "", $hWnd, "{ALTUP}")
Scheint relativ problemlos zu funktionieren.
TheOnlyOne652089 is offline  
Old   #6
 
elite*gold: 0
Join Date: May 2011
Posts: 8
Received Thanks: 2
Quote:
Originally Posted by TheOnlyOne652089 View Post

Code:
ControlSend($winTitle, "", $hWnd, "{ALTDOWN}")
ControlClick($winTitle, "", $hWnd, "right", 1, $mouseCoord[0], $mouseCoord[1])
ControlSend($winTitle, "", $hWnd, "{ALTUP}")
Scheint relativ problemlos zu funktionieren.
jo, hab ich auch direkt danach herausgefunden und deshalb den Post schnell wieder gelöscht.


EnnDee is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
Aion AutoIt Bot Beta [Open Source]
So hier ist mein Aion Bot, hab in selbst gecodet und ich weiss nicht gerade schön^^ Aber ich hab mir gedacht ich mach ihn mal public damit ihr euch...
1078 Replies - Aion Hacks, Bots, Cheats & Exploits
Sbot AutoLogIn open source (autoit)
http://darkbudweiser.com/AL/AL-V3.jpg source is now closed i started back on my old login tool project AL Functions (Silkroad id and pw...
4 Replies - SRO Hacks, Bots, Cheats & Exploits
[Release][AutoIt] SmileyBot [Open Source]
Hi. es tut mir leid an Epvpers aber ich mag die Smileys hier im forum nicht! der grüne lachsmiley sieht einfach krank aus: :D...
17 Replies - AutoIt
[RELEASE] [OPEN SOURCE] CE 5.5 Pointer to AutoIt Source-Code
Habe heute erst gemerkt, dass es hier eine AutoIt Sektion gibt xD also poste ich mal mein Programm mit rein. Funktionsweise: 1. in CE Rechtsklick...
6 Replies - AutoIt



All times are GMT +2. The time now is 02:55.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.