|
You last visited: Today at 12:40
Advertisement
Maestia vs. AutoIt - Frage
Discussion on Maestia vs. AutoIt - Frage within the Maestia forum part of the MMORPGs category.
03/07/2012, 14:47
|
#1
|
elite*gold: 0
Join Date: Feb 2008
Posts: 83
Received Thanks: 16
|
Maestia vs. AutoIt - Frage
Moinsen zusammen,
Ich habe ein paar kleine Fragen an die liebe Community, vielleicht kann mir ja der eine oder andere helfen
Zum Vorwort... Ich habe damals bei GuildWars mal angefangen AutoIt Scripte zu schreiben um bestimmte Sachen zu erledigen. Damals noch unter dem Namen HFFF bekannt, und später dann auch nen komplettes Farmscript geschrieben.
Habe ich etwas verpasst, oder nutzt Maestia seitdem es zu Alaplaya gegangen ist kein Hackshield mehr? Denn nun funktioniert mein AutoIt auf einmal
Das ist nun leider auch schon wieder 4 Jahr lang her und ich habe meine ganzen alten Scripte durch etliche Rechnerwechsel irgendwann einmal gelöscht >.<
Soll heißen: Mir fehlen relativ viele Kenntnisse, die ich aus meinen alten Scripts übernehmen, oder auffrischen hätte können... Vielleicht kennt sich ja der ein oder andere aus und kann mir bei meinen Sachen ein wenig auf die Sprünge helfen
Ich bin mit meinem Script mitlerweile so weit, das es ohne Probleme läuft und läuft und läuft... Nur würde ich gern ein paar Kleinigkeiten noch einbauen, bei denen es mir aber an alten Kentnissen fehlt...
Dazu zählt:
1. Eine If Anwendung mit Pixelchecksum, in der ich sagen möchte: Wenn das und das so ist, dann mach weiter wie normal, wenn es anders ist, dann mach bitte das:...
Um ein Checksum auszulesen habe ich bereits schon was wiedergefunden:
Code:
HotKeySet("{HOME}", "_sum")
MsgBox(0,"Info", "Press ""Home"" key (germ.: ""Pos1"") to get the pixelchecksum!""")
Func _sum();
If Not WinActivate("MAESTIA_PSG 3.7.0.0_120223_v1") Then
WinActivate("MAESTIA_PSG 3.7.0.0_120223_v1")
EndIf
Sleep(3000)
$sum = Pixelchecksum(597, 709, 598, 710)
MsgBox(0,"Your Pixelchecksum", $sum)
Exit
EndFunc
While 1
WEnd
2. Ich würde gern wieder wissen, wie ich eine dauerschleife schreibe, in der ich sage: Führe bitte DIESES 50 oder 100 mal aus, und dann mach 1 mal folgendes...
Zur Zeit habe ich nur eine dauerschleife die wie folgt läuft:
Code:
while 1
_**();
_***();
_****();
_*****();
wend
Das wäre meine ersten Fragen, damit würde ich schon ein gutes Stück weiterkommen...
Und um noch zu klären, wieso denn so stümperhaft mit AutoIt, ganze ohne Memory und etc... Ich habe von alle dem gescripte und programmiere nicht sonderlich viel Ahnung, und wenn ich sowass schreibe und veröffentliche, dann möchte ich gerne, das auch andere User die sich evtl. genauso wenig damit auskennen wie ich ein wenig Ainfluss auf den Code haben und somit alles für sich indivituell anpassen können
Selbstverständlich bin ich bereit meinen Code später dann wenn ich alles habe so wie ich es haben möchte öffentlich zur Verfügung zu stellen...
Vielen Dank im Vorraus,
Kremix
|
|
|
03/08/2012, 08:25
|
#2
|
elite*gold: 0
Join Date: Dec 2010
Posts: 1,196
Received Thanks: 682
|
jo maestia hat schon länger kein hackshield mehr. wurde ihnen wahrscheinlich zu teuer, dafür das schon mehrere bypasse released wurden
nun zu deinen problemen
1.
PHP Code:
Func _sum() static $lastsum ;hat bei jedem funktionsaufruf den gleichen wert ist aber nur eine lokale variable If Not WinActivate("MAESTIA") Then ;Damit du es nicht bei jeder neuen version ändern musst ;) WinActivate("MAESTIA") ;Eigentlich macht man sowas( auch der befehl oben drüber über ein handle ;) EndIf Sleep(3000);das sleep sollte eher in deine hauptschleife ;) $sum = Pixelchecksum(597, 709, 598, 710) if $sum <> $lastsum then ;es hat sich was getan EndIF $lastsum = $sum;für nächsten aufruf EndFunc
2.
PHP Code:
while 1 for $i=0 to 99 ;führt die schleife 100 mal aus _**(); next _***(); _****(); _*****(); wend
|
|
|
03/08/2012, 14:58
|
#3
|
elite*gold: 0
Join Date: Feb 2008
Posts: 83
Received Thanks: 16
|
Danke dir erstmal Runzel, du hast mir schon nen gutes Stück weiter geholfen 
Nur hätte ich jetz noch eine Frage bezüglich der If Anwendungen... Die leuchten mir nich ganz so ein...
Ich sagte ja das ich viel Nachholbedarf habe... ^^
Gibts nicht eine möglichkeit das ganze so zu schreiben irgendwie in der Art?
Code:
Func _bla bla bla()
If Pixelchecksum(597, 709, 598, 710)=202178921
then
UND HIER KOMMT DANN NEN KLEINES SCRIPT REIN
WAS ER WENN PIXEL = 202178921 MACHEN SOLL!
If
UND HIER DANN DER COMAND FÜR PIXEL IS NICH = 202178921
DANN LAUF BITTE WIE UNTEN IM WHILE SCRIPT WEITER.
EndIF
EndFunc
Oder ist es so, das er den Func aufruft, dann macht er den Pixelchecksum und schaut ob er 202178921 ergibt.
Wenn der Checksum 202178921 ergibt führt er das Script aus und wenn nich, dann lässt er einfach die While-Schleife weiterlaufen als wäre nichts gewesen.
Dafür müsste man dann aber das zweite If entfernen, oder?
|
|
|
03/08/2012, 18:54
|
#4
|
elite*gold: 0
Join Date: Dec 2010
Posts: 1,196
Received Thanks: 682
|
PHP Code:
Func _bla bla bla()
If Pixelchecksum(597, 709, 598, 710)=202178921
then
UND HIER KOMMT DANN NEN KLEINES SCRIPT REIN
WAS ER WENN PIXEL = 202178921 MACHEN SOLL!
Else;wenn nicht das erste dann mach das
UND HIER DANN DER COMAND FÜR PIXEL IS NICH = 202178921
DANN LAUF BITTE WIE UNTEN IM WHILE SCRIPT WEITER.
EndIF
EndFunc
so geht das erste
und das zweite hab ich nicht so ganz verstanden.
ich empfehle dir wirklich mal ein paar anfänger tuts durch zu ackern
|
|
|
03/09/2012, 10:24
|
#5
|
elite*gold: 5
Join Date: Mar 2008
Posts: 460
Received Thanks: 436
|
Quote:
Originally Posted by Kremix
Code:
Func _bla bla bla()
If Pixelchecksum(597, 709, 598, 710)=202178921
then
UND HIER KOMMT DANN NEN KLEINES SCRIPT REIN
WAS ER WENN PIXEL = 202178921 MACHEN SOLL!
If
UND HIER DANN DER COMAND FÜR PIXEL IS NICH = 202178921
DANN LAUF BITTE WIE UNTEN IM WHILE SCRIPT WEITER.
EndIF
EndFunc
Oder ist es so, das er den Func aufruft, dann macht er den Pixelchecksum und schaut ob er 202178921 ergibt.
Wenn der Checksum 202178921 ergibt führt er das Script aus und wenn nich, dann lässt er einfach die While-Schleife weiterlaufen als wäre nichts gewesen.
Dafür müsste man dann aber das zweite If entfernen, oder?
|
Runzel hat dir ja schon weitergeholfen, zu deinem 2ten absatz noch dazu zusagen ist, JA das siehst du richtig.
Code:
Func _bla bla bla()
If Pixelchecksum(597, 709, 598, 710)=202178921 Then
; Erste "Wenn"-Frage (In diesem Fall wenn der Checksum 202178921 ist)
ENDIF
IF Pixelchecksum(597, 709, 598, 710)<>202178921 Then
; Zweite "Wenn"-Frage (In diesem Fall wenn der Checksum UNGLEICH 202178921 ist)
; Hier wäre natürlich ein Else wie Runzel es dir gezeigt hat von Vorteil, da er hier jetzt nochmal
; die Checksum ausließt und dies natürlich unnötig wäre. Aber damit sollte deine Frage
; beantwortet sein.
EndIF
EndFunc
Ich empfehle dir öfters mal die F1 Taste zu drücken,
die hilfe in AutoIt ist für Anfänger mehr als geeignet. Also einfach mal das IF markieren und F1 drücken, sind auch sehr schöne Beispiele in der Hilfe vorhanden.
|
|
|
03/10/2012, 10:45
|
#6
|
elite*gold: 0
Join Date: Feb 2008
Posts: 83
Received Thanks: 16
|
Morgen ihr lieben 
Wollte mal nen Statusbericht abgeben...
Bin bis jetzt noch ganz guter dinge, es ist alles andere als einfach alles mit Checksum zu machen und vorallem viel mit Mouseclick statt mit W-A-S-D zu laufen, aber bis jetzt rennt das script fehlerfrei.
Bis jetzt habe mir drin:
-death check
-buff check
-armory check
-erleuchtungs check
-aufladen von Maestones
-identen alle Items
-verkaufen aller Items
-reparieren nach bestimmter Zeit
Was für mich noch ganz interessant wäre ist, ob es ein tool gibt, das mir aufzeichnet welche Tasten ich wie lange Drücke, quasi sowass wie nen Tool, das das Schreiben des weges einmal aufzeichnet während ich ihn ingame einmal laufe. Jemand nen Plan davon, oder weiß ob es sowass gibt? Ich mein ich hatte soetwas mal bei GW gefunden...
Bin bald gern bereit das Script Online zu stellen, werde nur noch ein paar Kampfsachen aktualisieren, da ich z.Z. noch alle aktiven Maestones nutze und die wohl nich jeder hat
Bis bald, Kremix
|
|
|
03/10/2012, 17:50
|
#7
|
elite*gold: 5
Join Date: Mar 2008
Posts: 460
Received Thanks: 436
|
Bis auf dass das Aufzeichnen ziemlich unsauber ist, aber das ist ja auch nicht deine Frage,
ja es gibt sollche Tool's zu haufen die deine Tasten die du drückst aufnehmen.
Meine G15 Tastatur hat sowas in seiner Software von haus aus drinnen.
Gibt aber glaube ich auch Tools wie Hotkeysend die wosas mit drin haben.
|
|
|
03/11/2012, 10:45
|
#8
|
elite*gold: 0
Join Date: Feb 2008
Posts: 83
Received Thanks: 16
|
Ich glaub da haben wir aneinander vorbei geredet... ^^
Ich suche ein Tool, oder auch Script, das ich anmache bevor ich das Spiel starte und dann einfach losrenne...
Nehmen wir einfach mal an ich laufe in Superion vom Waldi Viertel bis zum Auktionator, das von Hand, also via WASD, dann sollte mir das Sript nachher in einer TXT Datei Aufschluss liefern, welche Taste ich zu welchem Zeitpunkt gedrückt habe, und wie lange.
Es sollte quasi den fertigen Weg ausspucken, mit allen Tasten, ihren Downs & Ups usw.
Ich habe jetzt mal mit nem Keylogger probiert, aber der zeigt mir nicht die Zeit an wie lange ich eine Taste gedrückt halte, sondern nur beim Vorwertslaufen wwwwwwwwww...
Kennt jemand nen Koffer der diese Vorraussetzung erfüllt?
Muss auch nur einer fürs Keyboard sein.
Gruß Kremix
|
|
|
03/19/2012, 10:26
|
#9
|
elite*gold: 5
Join Date: Mar 2008
Posts: 460
Received Thanks: 436
|
Versuchs mal mit AutoHotkey
da ist ein Tool dabei das dir genau deine Tastaturanschläge wie lange etc. aufzeichnet.
Ansonsten kannst du dir auch eins selber schreiben.
Oder benutz einfach
|
|
|
03/19/2012, 14:46
|
#10
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
Hatte mir mal aus langeweile ne moveto für maestia geschrieben, wenn du die mems der xyz coords und xyz cam findest dann sollte das kein problem sein.
|
|
|
03/19/2012, 15:39
|
#11
|
elite*gold: 0
Join Date: Dec 2010
Posts: 1,196
Received Thanks: 682
|
PHP Code:
Global Const $X_Offset = 0x180 ;float Global Const $Y_Offset = 0x184 ;float Global Const $Z_Offset = 0x188 ;float Global Const $X_Rotation_Offset = 0x394;float x-richtung einheitsvektor = laufrichtung Global Const $Z_Rotation_Offset = 0x398;float z-richtung
Func _RunTo($X_Ziel, $Z_Ziel) Local $X_Curr = _Player_Coord_X() Local $Z_Curr = _Player_Coord_Z() Local $X_Rotation = $X_Ziel - $X_Curr Local $Z_Rotation = $Z_Ziel - $Z_Curr $X_Rotation = $X_Rotation / _Vektorlaenge($X_Rotation, $Z_Rotation) $Z_Rotation = $Z_Rotation / _Vektorlaenge($X_Rotation, $Z_Rotation) _Player_Set_Rotation_X($X_Rotation) _Player_Set_Rotation_Z($Z_Rotation) EndFunc ;==>_RunToStart
Func _Vektorlaenge($Vektor1, $Vektor2) Return Sqrt($Vektor1 ^ 2 + $Vektor2 ^ 2) EndFunc ;==>_Vektorlänge
Func _Player_Coord_X() Return _MemoryRead($Basepointer_Player + $X_Offset, $HPID, 'float') EndFunc ;==>_Player_Coord_X
Func _Player_Coord_Y() Return _MemoryRead($Basepointer_Player + $Y_Offset, $HPID, 'float') EndFunc ;==>_Player_Coord_Y
Func _Player_Coord_Z() Return _MemoryRead($Basepointer_Player + $Z_Offset, $HPID, 'float') EndFunc ;==>_Player_Coord_Z
Func _Player_Rotation_X() Return _MemoryRead($Basepointer_Player + $X_Rotation_Offset, $HPID, 'float') EndFunc ;==>_Player_Rotation_X
Func _Player_Set_Rotation_X($Wert) Return _MemoryWrite($Basepointer_Player + $X_Rotation_Offset, $HPID, $Wert, 'float') EndFunc ;==>_Player_Set_Rotation_X
Func _Player_Rotation_Z() Return _MemoryRead($Basepointer_Player + $Z_Rotation_Offset, $HPID, 'float') EndFunc ;==>_Player_Rotation_Z Func _Player_Set_Rotation_Z($Wert) Return _MemoryWrite($Basepointer_Player + $Z_Rotation_Offset, $HPID, $Wert, 'float') EndFunc ;==>_Player_Set_Rotation_Z
Das ist die Funktion 
Sie Rotiert euch auf euer Ziel, ab dann müsst ihr nur noch gradeaus laufen (die W-Taste  )
Den Basepointer auf den player müsst ihr aber selbst rausfinden
Komischerweise gibt es keinen (oder ich hab ihn einfach nur nicht gefunden) vektor in y Richtung (höhe) daher kommt es nicht genau auf den einheitsvektor. Könnte aber auch ein rundungsfehler sein.
Daher immer ein stück laufen und wieder aufs ziel rotieren
|
|
|
Similar Threads
|
Maestia -> AutoIT
02/25/2011 - Maestia - 11 Replies
Weiß jemand ob und wie HShield auf AutoIT reagiert? Sonst könnt man damit anfangen was feines zu schreiben :)
Gruß, Kremix
|
All times are GMT +1. The time now is 12:41.
|
|