KalSplashBot

01/10/2010 17:19 abc321meins#1
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!

HF ;)
01/10/2010 18:16 Timo264#2
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
01/10/2010 18:36 abc321meins#3
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. :p Also anschauen und selber erzeugen...
01/13/2010 16:57 mansken#4
dumme frage aber wie start ich das brauch ich da autoit für?^^
01/13/2010 17:57 Dreckvieh#5
Quote:
Originally Posted by mansken View Post
dumme frage aber wie start ich das brauch ich da autoit für?^^
1. Du brauchst en gutes Hirn :D 2.Wenn du nicht mal weis wie man es zum laufen bringt ....Just Google :handsdown:
01/14/2010 10:58 MoepMeep#6
Code:
SendPacket(splashyani);
Sleep(castzeit); // 600/900 nicht sicher :p
SendPacket(splashy);
Sleep(cd); // 600/900 nicht sicher :p
Mana/HP aussm recv holen.
01/15/2010 09:18 katze123#7
Quote:
Originally Posted by MoepMeep View Post
Code:
SendPacket(splashyani);
Sleep(castzeit); // 600/900 nicht sicher :p
SendPacket(splashy);
Sleep(cd); // 600/900 nicht sicher :p
Mana/HP aussm recv holen.
wäre wohl einfacher und besser fürs minimieren ^^ und da du mit controlsend arbeitest ist das ja gut
01/15/2010 17:24 Timo264#8
Quote:
Originally Posted by MoepMeep View Post
Code:
SendPacket(splashyani);
Sleep(castzeit); // 600/900 nicht sicher :p
SendPacket(splashy);
Sleep(cd); // 600/900 nicht sicher :p
Mana/HP aussm recv holen.
wenn du mir verrätst wie ich an den mainsocket rankomme gerne
01/15/2010 19:47 abc321meins#9
Quote:
Originally Posted by MoepMeep View Post
Code:
SendPacket(splashyani);
Sleep(castzeit); // 600/900 nicht sicher :p
SendPacket(splashy);
Sleep(cd); // 600/900 nicht sicher :p
Mana/HP aussm recv holen.
:D Wenn du mir die Verschlüsselung crackst und ne cheat engine sacht die geht ohne gleich nen gbl ban zu bekommen XD (fusion).

Oder kennt jemand die adressen von HP und MP und will sie mir mal per PM schicken? ;)
01/16/2010 01:24 Timo264#10
1. für packets brauch man keine cheat engine.
2. zu den adressen. (für p-server)

Max. HP:0070EB34
Max. MP:0070EB38
Cur. HP:006F3840 Offset:46AC
Cur.MP:0070EB30
01/16/2010 18:42 abc321meins#11
Quote:
Originally Posted by Timo264 View Post
1. für packets brauch man keine cheat engine.
2. zu den adressen. (für p-server)

Max. HP:0070EB34
Max. MP:0070EB38
Cur. HP:006F3840 Offset:46AC
Cur.MP:0070EB30
1. Ja ne is klar, aber um die Adressen herauszufinden.

2. Danke. :)
Wenn du mir jetzt noch die Statische Adresse des Pointers verrätst kann ich die Werte auch auslesen.
01/16/2010 19:11 Timo264#12
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
01/16/2010 19:50 abc321meins#13
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

Sooo dann werde ich mich mal ans proggen machen. ;)
01/17/2010 00:45 abc321meins#14
Hey,

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
01/17/2010 12:07 Timo264#15
warum definierst du die pointer als string?
PHP Code:
$MaxHP "70EB34" 
ich habs zwar nicht getested aber wird warscheinlich nicht gehen.
mach es mal lieber direkt als Hex
PHP Code:
$MaxHP 0x70EB34