Tut mir Leid, dass ich diesen "älteren" Thread nochmal hochpushe, aber ich habe eine Frage bezüglich eines Codes. Ich habe das Tutorial befolgt und weitesgehend alles übernommen(nur kleine Änderungen).
Der Bot läuft auch wundervoll nur scheint er sich bei wenig MP nicht hinzusetzen, sprich mein Dienst "doSleep" wird entweder nicht aufgerufen, nimmt die Variable nicht an oder der Dienst "checkMP" ist fehlerhaft.
Da ich keinen Fehler finde und SciTE auch nicht, hoffe ich ihr könnt mir helfen^^
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>;nötig um Prozesse auslesen zu können
Global $Paused
$running = false
HotKeySet("{PAUSE}", "TogglePause")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("NosBot", 259, 403, 192, 124)
$grpAufsammeln = GUICtrlCreateGroup("Aufsammeln", 16, 88, 233, 65)
$chkAufsammeln = GUICtrlCreateCheckbox("Aufsammeln", 88, 128, 97, 17)
$Label2 = GUICtrlCreateLabel("Aufsammeltaste", 32, 104, 78, 17)
$txtASK = GUICtrlCreateInput("", 120, 104, 121, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$grpAdd = GUICtrlCreateGroup("Adressen", 16, 24, 233, 57)
$Label1 = GUICtrlCreateLabel("MP", 32, 56, 19, 17)
$txtMP = GUICtrlCreateInput("", 88, 48, 121, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$grpSteuerung = GUICtrlCreateGroup("Steuerung", 16, 304, 233, 81)
$cmdSS = GUICtrlCreateButton("Start", 48, 320, 179, 25, 0)
$cmdPause = GUICtrlCreateButton("Pause", 48, 348, 179, 25, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Sonstige = GUICtrlCreateGroup("Sonstige Tasten", 16, 152, 233, 57)
$Label3 = GUICtrlCreateLabel("Schlaf-Taste", 32, 176, 64, 17)
$txtSK = GUICtrlCreateInput("", 120, 174, 121, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group1 = GUICtrlCreateGroup("Sonstige Einstellungen", 16, 216, 233, 89)
$Label4 = GUICtrlCreateLabel("MinMP", 32, 240, 36, 17)
$Label5 = GUICtrlCreateLabel("MaxMP", 32, 274, 39, 17)
$txtMinMP = GUICtrlCreateInput("", 99, 238, 121, 21)
$txtMaxMP = GUICtrlCreateInput("", 97, 271, 121, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$windowname = "NosTale"
$minMP = GUICtrlRead($txtMinMP)
$maxMP = GUICtrlRead($txtMaxMP)
$SPA = GUICtrlRead($txtMP);---Textinhalt wird für den Wert der Variable $SPA eingesetzt
$lk = GUICtrlRead($txtASK);---scheint so nicht zu funktionieren, input wird nicht richtig ausgelesen
func startstop()
$running = NOT $running
EndFunc
Func TogglePause()
$Paused = Not $Paused
While $Paused
Sleep(100)
WEnd
EndFunc
func checkMP()
$SPA = "0x2AFB534";---Adress(die habe ich natürlich immer aktualisiert)
$pid = WinGetProcess($windowname) ; hier besorge ich die PID
$ProcessInformation = _MemoryOpen($pid) ;Prozess geöffnet
$Number = _MemoryRead($SPA, $ProcessInformation); Prozess wird ausgelesen
_MemoryClose($ProcessInformation);Prozess geschlossen
return $Number;wert wiedergegeben
EndFunc
func loot()
if BitAnd(GUICtrlRead($chkAufsammeln), $GUI_CHECKED) THEN
ControlSend($windowname, '', '', $lk) ;Variable scheint null zu sein
Else
;NIX TUN --> WEIL NICHT AUSGEWÄHLT
EndIf
;ControlSend($windowname, '', '', $lk) <---hat keinen Sinn
EndFunc
func attack()
ControlSend($windowname, '', '', "{SPACE}"); funktioniert
EndFunc
func doSleep()
$sk = GUICtrlRead($txtSK);---scheint so nicht zu funktionieren, input wird nicht richtig ausgelesen
ControlSend($windowname, '', '', "c");---c da die Variable $sk nicht angenommen wird(am Dienst attack geprüft)
while(checkMP()<$maxMP)
sleep(500)
WEnd
ControlSend($windowname, '', '', "c")
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $cmdSS
startstop()
Case $cmdPause
TogglePause()
EndSwitch
if $running == True Then
if(checkMP()<$minMP) Then
doSleep()
EndIf
attack()
loot()
EndIf
WEnd