Hey leute,
ich hab mal nen simpelen Splashbot in AutoIt geschrieben:
just a simple splash bot programmed in AutoIt:
Code:
;KalSplashBot
#Include <Misc.au3>
;Slot2 = HP med
;Slot4 = Splash
;Slot6 = MP med
;Slot9 = Teleporter
;if the HP < critical point the bot stop and the teleporter should be use
;to set the bot up, you should have full HP and MP
;##C#####H# <- HP bar / C = critical point / H = HP med use point
;######M### <- MP bar / M = MP med use point
;SK protect = line 0x26
;Start with TAB pause with TAB
MsgBox(1,"Kalsbot","Please start kal and then press OK")
$handle1 = WinGetHandle("KalOnline")
TrayTip("Kalsbot",String($handle1),10)
MsgBox(1,"Kalsbot","Move with the mouse over the HP bar to set the medicin use point")
$HPx1 = MouseGetPos(0)
$HPy1 = MouseGetPos(1)
$HPcolor1 = PixelGetColor(MouseGetPos(0),MouseGetPos(1))
MsgBox(1,"Kalsbot","Move with the mouse over the MP bar to set the mana med use point")
$MPx1 = MouseGetPos(0)
$MPy1 = MouseGetPos(1)
$MPcolor1 = PixelGetColor(MouseGetPos(0),MouseGetPos(1))
MsgBox(1,"Kalsbot","Move with the mouse over the HP bar to set the critical heals point")
$HPCx1 = MouseGetPos(0)
$HPCy1 = MouseGetPos(1)
$HPCcolor1 = PixelGetColor(MouseGetPos(0),MouseGetPos(1))
while true
TraySetState (8)
sleep(2000)
while _IsPressed("09") = False
Sleep(1)
WEnd
TraySetState(4)
sleep(800)
while true
Sleep(1)
if (true and false and true) then
ControlSend($handle1,"","","4",1)
if $MPcolor1 <> PixelGetColor($MPx1,$MPy1) then
ControlSend($handle1,"","","6",1)
EndIf
sleep(Random(95,105))
if $HPcolor1 <> PixelGetColor($HPx1,$HPy1) then
ControlSend($handle1,"","","2",1)
EndIf
;Notfall teleport
if $HPCcolor1 <> PixelGetColor($HPCx1,$HPCy1) then
ControlSend($handle1,"","","9",1)
Exit
EndIf
if _IsPressed("09") = True then ExitLoop(1)
EndIf
Wend
Wend
Bitte Zeile 11 beachten!
Look at line 11 before start!
du kannst die hp und mp auch aus der memory auslesen,
so kannst du auch mit minimierten spiel splashen.
;-)
und du könntest es eventuel auch als .exe anhängen
hmm,
da hast du recht, nur als ich die CE gestartet habe um die adresse herauszufinden, wurde ich gebannd. XD
Die exe häng ich nicht an, weil das bei dem aktuellen qc nicht viel bringen würde. Also anschauen und selber erzeugen...
max hp, max mp und cur mp sind statische adressen.
nur cur hp brauch einen pointer.
und da hab ich dir doch alles geschrieben
pointer adresse:006F3840
offset:46AC
Ach sooooo. Sorry damit habe ich nicht gerechnet. Ich dachte das wären alles dynamische Adressen und ich sollte den offset der anderen drei berechnen. XD
ich habe den Bot nun geändert das er die HP und MP aus dem Speicher ausließt.
Möchte ihn mal jemand testen? Ich kann nämlich Kal nicht starten wegen dem Sch*** GBL block. -.-
Code:
;KalSplashBotV2
#Include <Misc.au3>
#Include <NomadMemory.au3>
;Slot2 = HP med
;Slot4 = Splash
;Slot6 = MP med
;Slot9 = Teleporter
;if the HP < critical point the bot stop and the teleporter should be use.
;start with TAB, pause with TAB
;##C#####H# <- HP bar / C = critical point / H = HP med use point
;######M### <- MP bar / M = MP med use point
;SK protect = line 0x33
$MaxHP = 0x70EB34
$MaxMP = 0x70EB38
$CurMP = 0x70EB30
$Pointer = 0x6F3840
$Offset = 0x46AC
Func GetMemValue(Const $Adress)
$ID = _MemoryOpen($PocID)
$memValue = _MemoryRead($Adress,$ID)
_MemoryClose($ID)
Return $memValue
EndFunc
if MsgBox(1,"Kalsbot","Please start kal and then press OK") <> 1 then Exit
$PocID = ProcessExists("KalOnline")
if $PocID = 0 then Exit
$handle1 = WinGetHandle("KalOnline")
$ID = _MemoryOpen($PocID)
$CurHP = _MemoryRead($Pointer,$ID) + $Offset
_MemoryClose($ID)
TrayTip("Kalsbot",String($handle1),10)
$HPmed = InputBox("Kalsbot","How much do the HP meds recover?","600")
if (@error > 0) or ($HPmed < 1) then Exit
$MPmed = InputBox("Kalsbot","How much do the MP meds recover?","600")
if (@error > 0) or ($MPmed < 1) then Exit
$HPcrit = InputBox("Kalsbot","At what percent of HP the teleporter should be used?","20")
if (@error > 0) or ($HPcrit < 1) or ($HPcrit > 100) then Exit
while true
TraySetState (8)
sleep(2000)
while _IsPressed("09") = False
Sleep(1)
WEnd
TraySetState(4)
sleep(800)
while true
Sleep(1)
if (true and false and true) then
ControlSend($handle1,"","","4",1)
if GetMemValue($CurMP) < GetMemValue($MaxMP) - $MPmed then
ControlSend($handle1,"","","6",1)
EndIf
sleep(Random(95,105))
if GetMemValue($CurHP) < GetMemValue($MaxHP) - $HPmed then
ControlSend($handle1,"","","2",1)
EndIf
;Notfall teleport
if GetMemValue($CurHP) < (GetMemValue($MaxHP) / 100) * $HPcrit then
sleep(1000)
ControlSend($handle1,"","","9",1)
Exit
EndIf
if _IsPressed("09") = True then ExitLoop(1)
Else
MsgBox(16,"Kalsbot","SK protect!")
Exit
EndIf
Wend
Wend