|
You last visited: Today at 11:54
Advertisement
[Schleife]Problem
Discussion on [Schleife]Problem within the AutoIt forum part of the Coders Den category.
10/24/2010, 00:28
|
#1
|
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
|
|
|
10/24/2010, 00:43
|
#2
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Arbeite im OnEventModus 
Einfach mal Googlen oder Hilfe durchsuchen.
|
|
|
10/24/2010, 01:24
|
#3
|
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
|
|
|
10/24/2010, 02:28
|
#4
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Quote:
Originally Posted by lolkop
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?
|
|
|
10/24/2010, 11:31
|
#5
|
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($sAdresse, 2) For $i = StringLen($sAdresse) - 1 To 0 Step -2 $sNewAdresse &= StringMid($sAdresse, $i, 2) 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
|
|
|
10/24/2010, 11:38
|
#6
|
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
|
|
|
10/24/2010, 11:41
|
#7
|
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
|
|
|
10/24/2010, 11:43
|
#8
|
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
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...
|
|
|
10/24/2010, 11:56
|
#9
|
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
|
|
|
10/24/2010, 12:15
|
#10
|
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
|
|
|
10/24/2010, 13:55
|
#11
|
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
|
|
|
10/24/2010, 14:12
|
#12
|
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?
|
|
|
10/24/2010, 14:19
|
#13
|
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
|
|
|
10/24/2010, 14:51
|
#14
|
elite*gold: 0
Join Date: Jul 2008
Posts: 832
Received Thanks: 136
|
Quote:
Originally Posted by .BritainAndy
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.
|
|
|
10/24/2010, 14:53
|
#15
|
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...
|
|
|
 |
|
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(Sender: TObject);
var zahl1,zahl2,a:integer;
begin
|
All times are GMT +1. The time now is 11:55.
|
|