Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Maestia
You last visited: Today at 12:40

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

Advertisement



Maestia vs. AutoIt - Frage

Discussion on Maestia vs. AutoIt - Frage within the Maestia forum part of the MMORPGs category.

Reply
 
Old   #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
Kremix is offline  
Old 03/08/2012, 08:25   #2
 
RunzelEier's Avatar
 
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 sowasauch der befehl oben drüber über ein handle ;)
   EndIf
   
Sleep(3000);das sleep sollte eher in deine hauptschleife ;)
   
$sum Pixelchecksum(597709598710)
   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 
RunzelEier is offline  
Thanks
1 User
Old 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?
Kremix is offline  
Old 03/08/2012, 18:54   #4
 
RunzelEier's Avatar
 
elite*gold: 0
Join Date: Dec 2010
Posts: 1,196
Received Thanks: 682
PHP Code:
Func _bla bla bla()
   If 
Pixelchecksum(597709598710)=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
RunzelEier is offline  
Old 03/09/2012, 10:24   #5
 
elite*gold: 5
Join Date: Mar 2008
Posts: 460
Received Thanks: 436
Quote:
Originally Posted by Kremix View Post
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.
SwarN is offline  
Old 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
Kremix is offline  
Old 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.
SwarN is offline  
Old 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
Kremix is offline  
Old 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
SwarN is offline  
Old 03/19/2012, 14:46   #10
 
| Moep |'s Avatar
 
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.
| Moep | is offline  
Old 03/19/2012, 15:39   #11
 
RunzelEier's Avatar
 
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 $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
RunzelEier is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.