Hi, ich hab mal versucht einen Berry Bot für Ragnarök Online zu coden, aber er will irgendwie nicht so ganz funktionieren wie ich es will. Er soll aus der config.ini alle nötigen Daten rauslesen.
-- ENGLISH: --
Hi, i tried to make a Berry Bot for Ragnarök Online, but it dont works right. It should read the datas from config.ini
--------- config.ini ----------
[Einstellungen]
HP=40000
Ftaste=F9
Window=Forsaken Ragnarok Online - forsaken-ro.net
[Value]
Value=0x078CF8E
------------------------------
-- DEUTSCH: --
Das Problem ist bloß, dass er die Berrys immer im falschen Moment nimmt (F9 drückt). Mein High Priest hat 81000 hp. Wenn aber die hp unter 40000 fallen, dann soll der Bot die F9 Taste drücken wo die Berrys drauf sind.
-- ENGLISH: --
The problem is he takes the berrys not at the right time (press F9). My High Priest has 81000 hp. But if they fall below 4000, then the bot should press the F9 key where the berrys are on it.
Hier mein Script:
Code:
#include <NomadMemory.au3>
#include <Misc.au3>
_Singleton("Berry Bot", 0)
Global $Number, $windowname
Dim $value, $hp, $fpress
Func readini()
$hp = IniRead(@ScriptDir & "\config.ini", "Einstellungen", "HP", "Error!")
$ftaste = IniRead(@ScriptDir & "\config.ini", "Einstellungen", "ftaste", "Error!")
$windowname = IniRead(@ScriptDir & "\config.ini", "Einstellungen", "Window", "Error!")
$value = IniRead(@ScriptDir & "\config.ini", "Value", "Value", "Error!")
If $ftaste = "F1" Then
$fpress = "{F1}"
EndIf
If $ftaste = "F2" Then
$fpress = "{F2}"
EndIf
If $ftaste = "F3" Then
$fpress = "{F3}"
EndIf
If $ftaste = "F4" Then
$fpress = "{F4}"
EndIf
If $ftaste = "F5" Then
$fpress = "{F5}"
EndIf
If $ftaste = "F6" Then
$fpress = "{F6}"
EndIf
If $ftaste = "F7" Then
$fpress = "{F7}"
EndIf
If $ftaste = "F8" Then
$fpress = "{F8}"
EndIf
If $ftaste = "F9" Then
$fpress = "{F9}"
EndIf
EndFunc
AutoItSetOption("WinTitleMatchMode", 4)
$handle = WinGetHandle($windowname, "")
If @error Then
MsgBox(4096, "Error", "Das Fenster konnte nicht gefunden werden")
Exit
Else
EndIf
While 1
$nMsg = readini()
Switch $nMsg
Case checkHP()
Case hpcheck()
EndSwitch
WEnd
Func checkHP()
$pid = WinGetProcess($windowname) ; hier besorge ich die PID
; process öffnen
$ProcessInformation = _MemoryOpen($pid)
$Number = _MemoryRead($value, $ProcessInformation) ;Lesen
_MemoryClose($ProcessInformation)
return $Number ; Wert zurückgeben
EndFunc
Func hpcheck()
If $Number < $hp Then
Berry()
Else
EndIf
EndFunc
Func Berry()
Opt("SendKeyDelay", 100)
ControlSend($windowname, '', '', $fpress)
EndFunc
Kann mir vllt einer weiterhelfen? Ich weiss echt nicht was ich da falsch gemacht hab >-<
-- ENGLISH: --
Could someone help me pls? I really do not know what I did wrong >-<






