Register for your free account! | Forgot your password?

You last visited: Today at 09:49

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

 

[SCRIPT] WASD AutoIT

Reply
 
Old   #31
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by tortiator View Post
Bei mir geht's super mit dh und 1920...

Eine frag wohin habt ihr eure moves gelegt (welche auf 1-4 lagen) ? Und pot saufen? Ich erwische mich immer wieder das ich an die tasten nicht richtig drankomme oder er beim normal schiessen wieder auf den gegner zulauft...
Pot liegt doch bereits super auf Q , direkt an WASD (Finger bedingt könnte dir die Leertaste besser gefallen, oder C, V je nach Tastatur eine Taste mit der du mit dem kleinen Finger oder per Daumen gut heran kommst).

Als DH benutzt du ja "realistisch" nicht viele skillz.

Machst auf die Maustaste links z.B. Höllententakeln und rechts z.B. Hungriger Pfeil (den du defakto ständig gedrückt hältst im Kampf), die restlichen Skillz sind ja in der Regel Rauchwolke (hab ich persönlich auf Leertaste, da es der Button mit der höchsten Reaktionsfähiger für mich ist) und zum schnellen rumfarmen Salto (den hab ich an der Daumentaste der Gaming Maus).



Wenn du Spiele wie SC gewohnt bist kannst du auch auf die Leertaste (Space) einen Skill sinnvoll platzieren, den erwischt man auch im laufen per WASD mit dem Daumen problemlos.


Da man nur 5 Finger hat (die meisten zumindest) kann man die 1-4 Tasten nicht ganz elegant mit den Fingern drücken an der linken hand.

Optimal hat deine Maus einfach Makro Tasten die du belegen kannst (entweder durch die Software der Maus, dann sagst du eben Makro Taste 1 => Drückt P auf der Tastatur z.B. , was du dann auf einen Skill legst).

Alternativ kannst du auch "Mausrad" bewegungen auf Skillz mappen per Makro und entsprechende Tasten damit "spammen" (pro Bewegung des Mausrads senden, oder nur 1mal wenn es bewegt wird).


Abgefahrenere Eingabemethoden kannst du auch einbauen ; z.B. durch ein headset und Spracheingabe (ja kein Witz).

Dazu musst du eine Software haben die ein paar Schlüsselwörter versteht und entsprechend reagiert (was u.U. schnell sein muss).


Mit der Kinect kannst du sogar irgendwelche anderen Körperbewegungen als Eingabeoption benutzen, aber das ist schon "viel" spezieller (wenn auch sehr witzig).



Die wohl brauchbarste Lösung ist eine Doppelbelegung der WASD Tasten.

Das bedeutet, wenn wir zweimal schnell "W" drücken, dann wird ein Skill ausgeführt ohne das diese Unterbrechung der Bewegung viel schadet.

Dadurch können wir relativ problemlos auf die WASD Tasten noch 4 Skillz legen, die wir dann mit "doppeldrücken" der Taste aktivieren.

Diablo in den Einstellungen bietet all das NICHT (drecks Blizzard, kann garnichts richtig machen) ; aber man kann es sich relativ problemlos hinhacken mit Makro Funktionen.




u.U. setze ich mich mal hin, sobald ich fertig bin mit Arbeiten und lade mal die Idee mit der Doppeldrück-Belegung von WASD hoch.



TheOnlyOne652089 is offline  
Thanks
1 User
Old   #32
 
elite*gold: 0
Join Date: Jul 2008
Posts: 6
Received Thanks: 0
vielen dank


tortiator is offline  
Old   #33
 
elite*gold: 0
Join Date: Apr 2009
Posts: 32
Received Thanks: 8
Naja beschäftige mich schon einiger Zeit mit hooks und co. Programmiere zZ in Java/C/C++/c#/vb.net und muss sagen dieses Code stück in deinem AutoIt script wird mit 100 % warscheinlichkeit von warden detected da es sich soweit ich informiert bin über die internen Abläufe von AutoIt um einen Hook handelt:

Global $winTitle = "Diablo III"
Global $hWnd = WinGetHandle($winTitle)

Genau das gleiche gilt für die Size Abfrage des Windows. Dürfte beides erkannt werden.
Also ich wäre da vorsichtig. BTW schon was von Code Konventionen gehört, sieht grässlich aus der code Nichts destotrotz schön das du dir die Arbeit gemacht hast. Werde dein Script zwar nicht usen, aber es gibt bestimmt noch andere Mittel und wege die Coords Abzufragen als mit nem hook bzw autoit könnte dir C ans herzlegen erst funktional danach c++ mit objekt orientierung

greetz
yehowah is offline  
Old   #34
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by yehowah View Post
Also ich wäre da vorsichtig. BTW schon was von Code Konventionen gehört, sieht grässlich aus der code Nichts destotrotz schön das du dir die Arbeit gemacht hast. Werde dein Script zwar nicht usen, aber es gibt bestimmt noch andere Mittel und wege die Coords Abzufragen als mit nem hook bzw autoit könnte dir C ans herzlegen erst funktional danach c++ mit objekt orientierung

greetz
Bevor ich kommentiere, lege ich dir die Definition von "Süffisanz" ans Herz, lese es gut und überdenke deinen Post. Nicht einmal inhaltlich, nur von der Art und Weiße wie du schreibst oder meinst deine Meinung kundtun zu müssen.

Weniger davon und mehr sinnvoller Inhalt, macht dein ganzes Feedback gleich brauchbarer.



AutoIT ist eine Script Sprache und im Beispiel hier wird einfach eine Funktion per WASD Steuerung gebaut.


Was du bei so einem winzigen ShowCase mit Code_Conventions willst ist mir total schleierhaft. Code-Conventions sind wie immer total subjektiv von Team zu Team, von Firma zu Firma, komplett unterschiedlich gestrickt.

Im Prinzip ist "alles" was du an Code schreibst eine Code-Convention, man einigt sich schlicht darauf wie Code auszusehen hat.

AutoIT an sich ist dazu gedacht (wie jede Script Sprache) möglich ohne Aufwand Funktionalität zu bauen.


Will man "sinnvoll" mit einer OO-Sprache arbeiten setze "ich" ganz andere Maßstäbe und die werden in C/C++ ohnehin in aller Regel mit Füßen getreten, weil die Programmierer einfach nicht anfangen "ordentlich" zu coden // so schleppt man uralte Legacy Codestücke mit herum, hat tiefgreifende hacks, die schlecht Dokumentiert sind und eine "pseudo" Objekt Orientierung die mit Statics nur um sich schmeißt und hochgradig unübersichtlich wird, gerade wenn das Projekt wächst.

Für solche Tools, wie eben dieses, ist C/C++ komplett überdimensioniert, den den Grad an hardwarenähe benötigt man keines Wegs und Objekt Orientierung in einem solchen Makro sind ebenso komplett fehl am Platz.


Das es machbar ist bestreitet keiner, "sinnvoll" ist es aber nicht.

Die Grundlage eines Showcase ist ganz einfach "so gehts" , lange nicht das man es anders, besser oder sonstwie "schöner" (subjektiv) machen könnte, den es ist gezeigt es geht, das ist das Ziel und Ziel erreicht.


Jeder Eumel der mal einen Informatik Grundkurs belegt hat kann das Script lesen und wird es verstehen, das macht es lesbar und ausreichend selbst beschreibend, den Bedürfnissen eines Showcases kommt alle mal nach.


Sehen wir mal von der hoch "arroganten" und "flamer" Haltung ab die du an den Tag legst // sei es dir bewußt oder nicht (den solltest du über 18 Jahre sein, solltest du dir wirklich überlegen in welchen Ton du deine Texte verfasst, das kommt dir im Berufsleben nur zum Nachteil).

Natürlich "könntest" du auch einfach selbst einen gewinnbringenden Teil leisten, tust das aber nicht.


Wenn du das Script 100% "sicher" bauen willst, mach einen Showcase, zeige auf wie es zu gehen hat, schreibe von mir aus sogar einen White-Paper der genau Beleuchtet was dein Anliegen ist, auf einem Level der gewinnbringend zu lesen ist und nicht nur Überquillt vor Süffisanz.

#########################

Quote:
Naja beschäftige mich schon einiger Zeit mit hooks und co. Programmiere zZ in Java/C/C++/c#/vb.net und muss sagen dieses Code stück in deinem AutoIt script wird mit 100 % warscheinlichkeit von warden detected da es sich soweit ich informiert bin über die internen Abläufe von AutoIt um einen Hook handelt:

Global $winTitle = "Diablo III"
Global $hWnd = WinGetHandle($winTitle)

Genau das gleiche gilt für die Size Abfrage des Windows. Dürfte beides erkannt werden.
Ich glaube du hast keine Ahnung was ein "Hook" ist.

Geschweige den was ein "Handle" ist.



Man erfragt schlicht weg die "ID" des handles im Betriebssystem, die "einzigartig" für jedes Fenster vergeben wird (anders würde das OS gar nicht sinnvoll mit Fenstern arbeiten, da der Fenstername komplett beliebig auch doppelt vergeben sein kann).

Das Fenster das wir suchen wird über die Windows API ausgelesen.

WinGetHandle ist eine standard Funktion.

Der Name des Window lässt auf den Prozess und das Handle schließen, folgend kann über diese ID das Window angesprochen werden, anstatt das über sonstige Wege zu tun.

Ein Hook hat mit dem absolut garnichts zu tun, mit dem Code des Spiels schon 10mal nicht.

Dazu hast du zu lesen:

Handles and Objects


Willst du tiefgreifend den Speicher manipulieren, benötigst du entsprechende Rechte, oder du versuchst dich mit einem Hook, was wie gesagt hier komplett vorbei sinnfrei ist, da keinerleih Information im Speicher des Spiels irgendwie verändert wird, nicht einmal ausgelesen. AutoIT setzt komplett auf der Windows API auf und jedes brauchbarer C code wird das gleiche tun wenn du nicht auf die hirnrissige Idee kommst die Windows API "umzuschreiben".


Zum Thema AutoIT schaust du dir wohl besser direkt den Source Code an, anstatt irgend ein sau blödes Halbwissen abzuseilen:



Sollte dir aus der glorreichen Weisheit deines Schwams die brennende Erleuchtung kommen wie du die größte Trivialität überhaupt ohne Windows API und mit sinnvoller Menge Code erreichen willst, dann bitte her damit.


Ansonsten, gut das wir das besprochen haben, der Nächste bitte.


TheOnlyOne652089 is offline  
Old   #35
 
elite*gold: 0
Join Date: Aug 2008
Posts: 3
Received Thanks: 0
You must register and activate your account in order to view images.
mkey2 is offline  
Old   #36
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by mkey2 View Post
You must register and activate your account in order to view images.
Kein Window existiert mit dem Namen "Diablo III" , liegt wohl daran das du "Russisch" oder etwas in der Art als Sprache hast.


Ändere den $winTitle entsprechend dem Namen den das Diablo III Window bei dir hat.


************************************************** ***

EDIT FRONT PAGE / SCRIPT:

Habe die Geschichte mit Doppel-Drücken der WASD Tasten mal gebastelt.


Einfach gesagt.

Drückt man innerhalb von 300ms zweimal W , wird der Hotkey auf 1 ausgeführt.

Das gleiche Spiel mit A => Hotkey 2
S => Hotkey 3
D => Hotkey 4


Erstmal gewöhnungsbedürfnis, aber man kann auch weiterhin 1,2,3,4 drücken, hat eben nur zusätzlich die Option das auch per Doppeldrücken während der WASD Steuerung zu machen.


*Ganz witzig ist das wenn man Salto oder ähnliche Skillz auf die taste legt.

Nicht sinnvoll funktionieren tut das wenn man die Taste "gedrückt" halten will, da sich das natürlich beist mit der normalen WASD Steuerung.
TheOnlyOne652089 is offline  
Old   #37
 
elite*gold: 0
Join Date: Aug 2008
Posts: 3
Received Thanks: 0
thx
mkey2 is offline  
Old   #38
 
elite*gold: 0
Join Date: Jun 2012
Posts: 2
Received Thanks: 0
I have 2 displays and it's not working, it only moves forward
nickstr is offline  
Old   #39
 
elite*gold: 0
Join Date: Aug 2008
Posts: 3
Received Thanks: 0
+
but its just move mouse top
mkey2 is offline  
Old   #40
 
elite*gold: 0
Join Date: Aug 2008
Posts: 107
Received Thanks: 14
welche einstellung müssen getroffen werden wenn das script auf 1680x1050 vernünftig laufen soll.

bin leider nicht AutoIT firm.

bei mir läuft der gegenwärtig nur nach links oben.
prinz orgi is offline  
Old   #41
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by prinz orgi View Post
welche einstellung müssen getroffen werden wenn das script auf 1680x1050 vernünftig laufen soll.

bin leider nicht AutoIT firm.

bei mir läuft der gegenwärtig nur nach links oben.
Im Prinzip nicht viel.

Eigentlich nur die + / - Werte in der doMove berechnung.


Er klickt effektiv mit der Maus einfach in die entsprechende Richtung in die du per WASD drückst, es sollte sich wirklich unkompliziert machen lassen, musst nur mit den Werten etwas rumspielen.


Ansonsten Fullscreen Window mode, nur Fullscreen scheint Diablo III per Window nicht ordentlich zu finden zu sein.


Wenn dus hinbekommst schreib einfach zurück.


TheOnlyOne652089 is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
[AHK] WASD Script
Quelle: AHKscriptWASD - Bringing WASD functionality and other alternative movement methods to Diablo III Hierbei handelt es sich um ein AutoHotkey...
20 Replies - Diablo 3 Hacks, Bots, Cheats & Exploits



All times are GMT +1. The time now is 09:49.


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.