Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 11:54

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

Advertisement



[Schleife]Problem

Discussion on [Schleife]Problem within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
[Schleife]Problem

Hi Leute,

ich amch gerade nen Hack für Metin2.

So ich hab folgendes Problem:

Wenn ich den hack starten will, drücke ich auf $button1

dann schreibt er in den pointer mit

PHP Code:
while 1
 _MemoryPointerWrite
($Aaddress$openmem$AOffset"16656""dword")
wend 

So, klappt auch.

Wenn ich jetzt den ahck deaktivieren will muss ich 16656 zu 16256 ändern

also dachte ich folgendes

der off button ist $button2

PHP Code:
while 1
 _MemoryPointerWrite
($Aaddress$openmem$AOffset"16256""dword")
wend 
aber ich hab den hack trotzdem aktiviert, da ich wenn ich den ahck starte ja die endlosschleife starte, und die dann bei button2 (off button) nicht einfahc überschreiben kann.

ich hoffe ihr versteht was ich meine



PHP Code:

Case $Button1 ;on button
 
while 1
 _MemoryPointerWrite
($Aaddress$openmem$AOffset"16656""dword")
wend


;Hakc ist an

Case $Button2 ;off button -> ich will deaktivieren

while 1
 _MemoryPointerWrite
($Aaddress$openmem$AOffset"16256""dword")
wend 
funktioniert halt nicht, wiel button 1 ne endlosshcleife hat und dann nicht gestopt wird.

und wie kann ich die farbe eines buttons verändern?
Wenn ich on/off in einen button machen will.. ich habe keine ahnung wie ich zwei funktionen , on off, in einen button stecken kann und der button sich bei on grün färbt und bei off rot.

Lg Andsy
.BritainAndy is offline  
Old 10/24/2010, 00:43   #2
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Arbeite im OnEventModus
Einfach mal Googlen oder Hilfe durchsuchen.
PenGuin :O is offline  
Thanks
1 User
Old 10/24/2010, 01:24   #3
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
oder arbeite mit zuständen...

Code:
While 1
    Switch GuiGetMsg()
        Case $start_btn
            $zustand = True
        Case $stop_btn
            $zustand = False
    EndSwitch

    If $zustand Then
        ;aktionen
    EndIf
WEnd
lolkop is offline  
Thanks
1 User
Old 10/24/2010, 02:28   #4
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Quote:
Originally Posted by lolkop View Post
oder arbeite mit zuständen...

Code:
While 1
    Switch GuiGetMsg()
        Case $start_btn
            $zustand = True
        Case $stop_btn
            $zustand = False
    EndSwitch

    If $zustand Then
        ;aktionen
    EndIf
WEnd
Huch, mal kein vernichtendes Argument seitens lolkop gegen meine Problembehandlung?
PenGuin :O is offline  
Old 10/24/2010, 11:31   #5
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
Zu dem Zustand, das ist ne wirklich gute Idee.

Jedoch muss ich ja $zustand auch declarieren, und ich kann doch keine variable mit ner If schelife declarieren oder?
ich habs jetzt so probiert:

PHP Code:
While 1
    
Switch GuiGetMsg()
        Case 
$start_btn
            $zustand 
True
        
Case $stop_btn
            $zustand 
False
    
EndSwitch

    If 
$zustand Then
     SetPrivilege
("SeDebugPrivilege"1)

$pid WinGetProcess("METIN2")
$openmem _MemoryOpen($pid)
$baseadress _MemoryModuleGetBaseAddress($pid,"immortal2.bin")


    
$testoffset1 "128"
    
$testoffset2 "5B6"
    
$testoffset3 "0021C4A4"




Global $AOffset[3]
$AOffset[0] = 0
$AOffset
[1] = Dec($testoffset1)
$AOffset[2] = Dec($testoffset2)
$Aaddress "0x" Hex($baseadress Dec($testoffset3))



$Amemread _MemoryPointerRead($Aaddress$openmem$AOffset"byte[2]")




$Awert _ReturnMemoryValue($Amemread[1])
$Awert Dec($Awert)



Func _ReturnMemoryValue($sAdresse)

    
$sNewAdresse ""
    
$sAdresse StringTrimLeft($sAdresse2)
    For 
$i StringLen($sAdresse) - 1 To 0 Step -2
        $sNewAdresse 
&= StringMid($sAdresse$i2)
    
Next
    
Return $sNewAdresse
EndFunc



while 1
 _MemoryPointerWrite
($Aaddress$openmem$AOffset"16656""dword")
wend
    
EndIf
WEnd 
und error meldung ist: ==> Variable used without being declared.:
If $zustand Then
If ^ ERROR


Sieht auch komishc aus irgendwie in ner if shcleife so nen großen code zuhaben
.BritainAndy is offline  
Old 10/24/2010, 11:38   #6
 
Memphiisto's Avatar
 
elite*gold: 115
Join Date: Feb 2009
Posts: 353
Received Thanks: 44
Ich Programmier zwar noch nicht lang mit Autoit aber was ich weiß musste schon noch einstellen was an der variable $zustand Wahr oder FALSCH ist.
Also das is auf das bezogen:
PHP Code:
 Case $start_btn
            $zustand 
True
        
Case $stop_btn
            $zustand 
False 
Memphiisto is offline  
Old 10/24/2010, 11:41   #7
 
ZaZiZu's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 832
Received Thanks: 136
schreib ganz oben einfach Dim $zustand hin xD damit ist es erledigt (denke ich)

und joa, das war ein guter counter lolkop gegenüber pinguins idee xD
das mit den zuständen werde ich mir mal merken



€dit: @MagicDave
dafür, dass ich sone formel das 1te mal sehe, finde ich ist die ziiemlich simpel zu checken

das was du meintest mit einstellen: dies hat er schon mit dem Case erledigt.
wenn $button (gedrückt wird) ist $zustand wahr, und wird somit ausgeführt.
wenn $button (nochma gedrückt wird) ist $zustand falsch, und wird somit nicht mehr ausgeführt

und ich glaube, das ist auch eine endlosschleife
ZaZiZu is offline  
Old 10/24/2010, 11:43   #8
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
1. if ist keine schleife...
2. lösch dochmal die ganzen sinnlosen leerzeilen da raus...
3. das was du da geschriebn hast wir durchgängig ausgeführt (befindet sich doch in deiner hauptschleife)... => keine endlosschleifen darin starten und schon garkeine funktionen deklarieren -.-

Edit:
Quote:
Originally Posted by MagicDave View Post
Ich Programmier zwar noch nicht lang mit Autoit aber was ich weiß musste schon noch einstellen was an der variable $zustand Wahr oder FALSCH ist.
Also das is auf das bezogen:
PHP Code:
 Case $start_btn
            $zustand 
True
        
Case $stop_btn
            $zustand 
False 
bitte was? -.-
True und False sind boolean werte...
lolkop is offline  
Thanks
1 User
Old 10/24/2010, 11:56   #9
 
ZaZiZu's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 832
Received Thanks: 136
xD
und hier mal ein ansatz um die buttonfarbe zu ändern:
GUICtrlSetDefBkColor ( 0xFarbehex [, Winhandle] )
damit du weißt wann es an und wann es aus ist (außer, dass man es an der funktion erkennen kann)

und joaa, der fail ist genial ich dachte schon ich spinne, als ich deinen skrip gelesen habe
ZaZiZu is offline  
Thanks
1 User
Old 10/24/2010, 12:15   #10
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
wenn man deinen bisher geposteten code mal richtig anordnet, die sinnosen deklarationen und leerzeilen mal rauslöscht, kommt man auf das hier:
Code:
Dim $AOffset[3] = [0, 0x128, 0x5B6]
SetPrivilege("SeDebugPrivilege", 1)
$openmem = _MemoryOpen(WinGetProcess("METIN2"))
$baseadress = _MemoryModuleGetBaseAddress(WinGetProcess("METIN2"), "immortal2.bin")

While 1
	Switch GUIGetMsg()
		Case -3
			_MemoryClose($openmem)
			Exit
		Case $start_btn
			$zustand = True
		Case $stop_btn
			$zustand = False
	EndSwitch

	If $zustand Then
		$Awert =_MemoryPointerRead($baseadress+0x21C4A4, $openmem, $AOffset, "short")
		_MemoryPointerWrite($baseadress + 0x21C4A4, $openmem, $AOffset, "16656", "dword")
	EndIf
WEnd
lolkop is offline  
Thanks
2 Users
Old 10/24/2010, 13:55   #11
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
Code:
Dim $AOffset[3] = [0, 0x128, 0x5B6]
SetPrivilege("SeDebugPrivilege", 1)
$openmem = _MemoryOpen(WinGetProcess("METIN2"))
$baseadress = _MemoryModuleGetBaseAddress(WinGetProcess("METIN2"), "immortal2.bin")

Dim $zustandw

while 1=1
	$nMsg = GUIGetMsg()
		Switch $nMsg
			Case $GUI_EVENT_CLOSE
		Exit
			Case $Button1
	$zustand = True
			Case $Button2
	$zustand = False
			Case $Button3

			Case $Button4

			Case $Button5
	MsgBox(0,"SourceCode","folgt")

			Case $Button6

			Case $Button7
EndSwitch

If $zustand Then
	$Awert =_MemoryPointerRead($baseadress+0x21C4A4, $openmem, $AOffset, "short")
		_MemoryPointerWrite($baseadress + 0x21C4A4, $openmem, $AOffset, "16656", "dword")

EndIf

Wend

So, klappt ingame.
Ich bewege mich schneller, jedoch klappt der off button nicht.
Button2
.BritainAndy is offline  
Old 10/24/2010, 14:12   #12
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
-.- du hast den off zustand ja auchnicht benutzt -.-

im moment macht dein script folgendes...

Code:
wenn an dann [...].
wenn du nicht sagst was es sonst machen soll, dann wird es auch sonst nichts machen...

wenn dein chef dir auffer arbeit sagt wenns brennt dann lösch das feuer... wüsstest du was du im normalfall (wo es nicht brennt) tun sollst?
lolkop is offline  
Old 10/24/2010, 14:19   #13
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
wie benutz ich denn den off zustand?

ich verstehe das gerade nicht... weil button eins sagt doch:

wenn du mich klickst, aktiviere ich den "shcneller bewegen" zustand

und button zwei:


wenn du mich klickst, deaktiviere ich den "schneller bewegen" zustand..

also wieder normal shcnell gehen
.BritainAndy is offline  
Old 10/24/2010, 14:51   #14
 
ZaZiZu's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 832
Received Thanks: 136
Quote:
Originally Posted by .BritainAndy View Post
wie benutz ich denn den off zustand?

ich verstehe das gerade nicht... weil button eins sagt doch:

wenn du mich klickst, aktiviere ich den "shcneller bewegen" zustand

und button zwei:


wenn du mich klickst, deaktiviere ich den "schneller bewegen" zustand..

also wieder normal shcnell gehen
€dit: ah, jetzt verstehe ich was du meinst ^^

Und nein, Button2 deaktiviert nicht den "schneller bewegen"zustand, sondern sagt dass es nicht gemacht wird (Achtung! 2 verschiedene Sachen ^^)
Ich würde da eine Funktion einbauen, die diese Werte wieder zurück ändert

Aber wieso ändert sich der Wert nicht zurück? Werden die Änderungen permament übernommen oder wie?

€dit2: Wenn man eine Gegenfunktion einbauen müsste, dann denke ich würde auch ein "Else" reichen
Quote:
If $zustand Then
$Awert =_MemoryPointerRead($baseadress+0x21C4A4, $openmem, $AOffset, "short")
_MemoryPointerWrite($baseadress + 0x21C4A4, $openmem, $AOffset, "16656", "dword")
Else
$Awert =_MemoryPointerRead($baseadress+0x21C4A4, $openmem, $AOffset, "short")
_MemoryPointerWrite($baseadress + 0x21C4A4, $openmem, $AOffset, "16256", "dword")
EndIf
Wenn du da aber ein ganzes Hackpaket machen willst (dafür stehen doch die vielen buttons oder ?), dann müsste man für jedes eine einzelne Funktion machen (Else hilft nur bei 2 Möglichkeiten)


€dit2: @lolkop: wenn du meinst, aber wie erklärst du dir seinen fail ^^?
der speicher wird doch nur 1x geändert, aber nicht rückgängig gemacht.
ZaZiZu is offline  
Old 10/24/2010, 14:53   #15
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
eigentlich nicht...

button1 sagt wenn du mich klickst aktivire ich eine variable...
button2 sagt wenn du mich klickst deaktiviere ich eine variable...

und danach guckt eine funktion ob die variable aktiv ist... wenn sie aktiv ist schreibt die funktion in den speicher, wenn nicht macht sie einfach nichts...
lolkop is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
while-schleife cast x | schleife ende cast y
07/26/2010 - Diablo 2 Programming - 6 Replies
ich kann nicht einschlafen und versuche gerade halbwach herauszufinden, wie ich den bot etwas casten lassen kann, um ihn anschließend nach 10-15 casts etwas anderes casten zu lassen. if(NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100) { if((target.name == "Pindleskin") && NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100) { var i =0; while(i<15) { return NTC_CastSkill(106, NTC_HAND_LEFT, target); i++;
autoit do schleife problem
11/21/2009 - AutoIt - 16 Replies
wolte ma ein autoit spammer machen #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Global $pause
Autoit - If Schleife - Problem
05/27/2009 - AutoIt - 3 Replies
Huhu, hab nen kleines Problem mit ner If-Schleife: $pixel_mob = PixelGetColor (549, 68) $farbe_mob = Hex($pixel_mob, 6) if $farbe_mob = 'CE0000' Then ToolTip('Attacking...',0,0)
Autoit - Problem mit If-Schleife
05/27/2009 - General Coding - 1 Replies
Huhu, erstmal ne kleine Frage...hab gerade zu diesem Thema nen Beitrag geschrieben, flupps, 5 Minuten später war er gelöscht - keine PN, nix.. Naja...mal schaun ^^ Problem ist folgendes: Hab diese if schleife in meiner while schleife:
For-Schleife
01/29/2007 - General Coding - 14 Replies
Also wir haben ( um uns an die For-Schleife zu gewöhnen) ne eigentlich relativ einfache Aufgabe bekommen. Ich hoffe ich kann mich richtig dran errinern wie sie hieß^^ Wir sollten mit der FOR-Schleife herrausfinden wie viele Zahlen zwischen zwei Zahlen die man eingeben kann vorhanden sind. So ODER so ähnlich. Is ja auch nich viel Schreibtext aber mir fehlt das entscheidene Zwischenteil : procedure TForm1.Button1Click&#40;Sender&#58; TObject&#41;; var zahl1,zahl2,a&#58;integer; begin



All times are GMT +1. The time now is 11:55.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.