Register for your free account! | Forgot your password?

You last visited: Today at 18:03

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



lolkop's autopot help

Discussion on lolkop's autopot help within the SRO Private Server forum part of the Silkroad Online category.

Reply
 
Old   #1
 
Niperx's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 215
Received Thanks: 35
lolkop's autopot help

Well i hate when im typing and the autopot sends keys it sends the key like 10Times how can i edit it so it only sends 1 ?

here is the source
Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Run_Tidy=y
#AutoIt3Wrapper_Tidy_Stop_OnError=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Opt("TrayMenuMode", 1)
Dim $type[4] = ['HP', 'MP', 'Vigor', 'Pet'  ]
Dim $dif = 70, $y = 40, $run = 0, $pot_pill = 0, $e = 0, $s = 0, $z = 0
Const $epointer = 0xA9EE64, $eCharname = 0xA9DBB8, $spointer = 0xA9EE44, $sCharname = 0xA9DB98, $zpointer = 0xAA0E44, $zCharname = 0xA9FB98, $pill = 0x228, $curhp = 0x3BC, $maxhp = 0x3B4, $curmp = 0x3B0, $maxmp = 0x3B8
Const $h1 = 0x1718, $h2 = 0x8, $h3 = 0x4, $h4 = 0x10, $hcur = 0x8, $hmax = 0xC, $lvl = 0x12
Const $wolf_hp[140] = [360, 441, 524, 611, 701, 795, 892, 992, 1097, 1205, 1317, 1432, 1552, 1677, 1805, 1938, 2076, 2218, 2365, 2517, 2675, 2837, 3005, 3179, 3358, 3544, 3735, 3933, 4137, 4347, 4565, 4789, 5020, 5259, 5506, 5760, 6022, 6292, 6571, 6858, 7154, 7459, 7774, 8098, 8432, 8776, 9131, 9496, 9872, 10260, 10659, 11070, 11493, 11928, 12376, 12838, 13313, 13802, 14305, 14823, 15355, 15903, 16467, 17047, 17644, 18258, 18889, 19538, 20205, 20892, 21598, 22323, 23069, 23836, 24625, 25435, 26268, 27124, 28004, 28908, 29838, 30792, 31774, 32782, 33817, 34881, 35974, 37097, 38250, 39434, 40651, 41901, 43184, 44501, 45855, 47244, 48671, 50136, 51640, 53184, 54770, 56397, 58068, 59782, 61543, 63350, 65204, 67107, 69060, 71065, 73122, 75233, 77399, 79622, 81903, 84243, 86644, 89107, 91634, 94227, 96886, 99615, 102413, 105284, 108229, 111249, 114347, 117524, 120783, 124125, 127552, 131067, 134672, 138368, 142158, 146044, 150029, 154115, 158304, 162599]

$GUI = GUICreate('AutoPot', 335, 370)
GUICtrlCreateLabel('Charname:', 10, 13)
$char_input = GUICtrlCreateInput('', 70, 10, 150)
$start_button = GUICtrlCreateButton('Start Autopot', 235, 9, 85, 23)
For $i = 0 To 3
	GUICtrlCreateGroup($type[$i], 5, $y + $i * $dif, 325, 70)
	Assign($type[$i] & '_check', GUICtrlCreateCheckbox('Use ' & $type[$i] & ' Pots', 10, $y + 15 + $i * $dif))
	GUICtrlCreateLabel('Belt:', 103, $y + 19 + $i * $dif)
	Assign($type[$i] & '_belt', GUICtrlCreateCombo('', 128, $y + 15 + $i * $dif, 40, -1, 3))
	GUICtrlSetData(-1, 'none|F1|F2|F3|F4', 'F1')
	GUICtrlCreateLabel('Slot:', 180, $y + 19 + $i * $dif)
	Assign($type[$i] & '_slot', GUICtrlCreateCombo('', 205, $y + 15 + $i * $dif, 35, -1, 3))
	GUICtrlSetData(-1, '0|1|2|3|4|5|6|7|8|9', 1)
	GUICtrlCreateLabel('Delay:', 255, $y + 19 + $i * $dif)
	Assign($type[$i] & '_delay', GUICtrlCreateInput('1000', 290, $y + 15 + $i * $dif, 35, -1, 3))
	Assign($type[$i] & '_slider', GUICtrlCreateSlider(5, $y + 40 + $i * $dif, 295))
	Assign($type[$i] & '_input', GUICtrlCreateInput(0, 300, $y + 40 + $i * $dif, 25, -1, 1))
Next
GUICtrlCreateGroup('Universal Pills', 5, 320, 325, 45)
$pill_check = GUICtrlCreateCheckbox('Use Abnormal State Recovery', 10, 335)
GUICtrlCreateLabel('Belt:', 180, 340)
$pill_belt = GUICtrlCreateCombo('', 205, 335, 40, -1, 3)
GUICtrlSetData(-1, 'none|F1|F2|F3|F4', 'F1')
GUICtrlCreateLabel('Slot:', 255, 340)
$pill_slot = GUICtrlCreateCombo('', 280, 335, 35, -1, 3)
GUICtrlSetData(-1, '0|1|2|3|4|5|6|7|8|9', 1)
GUISetState()

While 1
	$msg = GUIGetMsg()
	If $msg = $char_input Then
		ini('read')
	EndIf
	If $msg = -3 Then Exit
	If $msg = -4 Then Tray()
	For $i = 0 To 3
		If $msg = Eval($type[$i] & '_slider') Then GUICtrlSetData(Eval($type[$i] & '_input'), GUICtrlRead(Eval($type[$i] & '_slider')))
		If $msg = Eval($type[$i] & '_input') Then GUICtrlSetData(Eval($type[$i] & '_slider'), GUICtrlRead(Eval($type[$i] & '_input')))
	Next
	If $msg = $start_button Then
		If GUICtrlRead($start_button) = 'Start Autopot'  Then
			GUICtrlSetData($start_button, 'Stop Autopot')
			$run = True
			ini()
		ElseIf GUICtrlRead($start_button) = 'Stop Autopot'  Then
			GUICtrlSetData($start_button, 'Start Autopot')
			$run = False
		EndIf
	EndIf
	If $run Then
		If $e = 1 Then
			$pointer = $epointer
		ElseIf $s = 1 Then
			$pointer = $spointer
		Else
			$pointer = $zpointer
		EndIf
		$mid = memopen(WinGetProcess(GetHandle(GUICtrlRead($char_input))))
		$HP_percent = memreaddynamic($mid, $pointer, $curhp) / memreaddynamic($mid, $pointer, $maxhp) * 100
		$MP_percent = memreaddynamic($mid, $pointer, $curmp) / memreaddynamic($mid, $pointer, $maxmp) * 100
		$Vigor_percent = memreaddynamic($mid, $pointer, $curhp) / memreaddynamic($mid, $pointer, $maxhp) * 100
		$1 = memread($mid, $pointer) + $h1
		$2 = memread($mid, $1) + $h2
		$3 = memread($mid, $2) + $h3
		$4 = memread($mid, $3) + $h4
		$horsecur = memreaddynamic($mid, $4, $hcur)
		$horselvl = memreaddynamic($mid, $4, $lvl, 'byte')
		If $horselvl = 0 Then
			$horsemax = memreaddynamic($mid, $4, $hmax)
		ElseIf $horselvl > 0 And $horselvl <= 140 Then
			$horsemax = $wolf_hp[$horselvl - 1]
		Else
			$horsemax = 0
		EndIf
		If $horsemax <> 0 Then
			$Pet_percent = $horsecur / $horsemax * 100
		Else
			$Pet_percent = 0
		EndIf
		$status = memreaddynamic($mid, $pointer, $pill, "byte")
		For $i = 0 To 5
			If BitAND($status, 2 ^ $i) Then $pot_pill = 1
		Next
		If GUICtrlRead(Eval($type[0] & '_check')) = 1 And Eval($type[0] & '_percent') <= GUICtrlRead(Eval($type[0] & '_input')) And Eval($type[0] & '_percent') <> 0 And BitAND($status, 2 ^ 5) <> 1 Then
			Pot(GUICtrlRead($char_input), GUICtrlRead(Eval($type[0] & '_belt')), GUICtrlRead(Eval($type[0] & '_slot')), GUICtrlRead(Eval($type[0] & '_delay')))
		EndIf
		For $i = 0 To 3
			If GUICtrlRead(Eval($type[$i] & '_check')) = 1 And Eval($type[$i] & '_percent') <= GUICtrlRead(Eval($type[$i] & '_input')) And Eval($type[$i] & '_percent') <> 0 Then
				If $i = 0 Or $i = 2 Then
					If Not BitAND($status, 2 ^ 5) Then Pot(GUICtrlRead($char_input), GUICtrlRead(Eval($type[$i] & '_belt')), GUICtrlRead(Eval($type[$i] & '_slot')), GUICtrlRead(Eval($type[$i] & '_delay')))
				Else
					Pot(GUICtrlRead($char_input), GUICtrlRead(Eval($type[$i] & '_belt')), GUICtrlRead(Eval($type[$i] & '_slot')), GUICtrlRead(Eval($type[$i] & '_delay')))
				EndIf
			EndIf
		Next
		If GUICtrlRead($pill_check) = 1 And $pot_pill Then
			Pot(GUICtrlRead($char_input), GUICtrlRead($pill_belt), GUICtrlRead($pill_slot), 1000)
		EndIf
		memclose($mid)
		$pot_pill = 0
	EndIf
	Switch TrayGetMsg()
		Case - 13
			Tray()
	EndSwitch
WEnd

Func Tray()
	If BitAND(WinGetState($GUI), 2) Then
		WinSetState($GUI, "", @SW_HIDE)
	Else
		WinSetState($GUI, "", @SW_SHOW)
	EndIf
EndFunc   ;==>Tray

Func SendSro($handle, $key)
	Switch $key
		Case "F1" 
			$k = 0x70
		Case "F2" 
			$k = 0x71
		Case "F3" 
			$k = 0x72
		Case "F4" 
			$k = 0x73
		Case Else
			$k = 0x30 + $key
	EndSwitch
	For $i = 1 To 5
		DllCall("User32.dll", "int", "PostMessageA", "hwnd", $handle, "int", 0x100, "int", $k, "int", 0)
		DllCall("User32.dll", "int", "PostMessageA", "hwnd", $handle, "int", 0x101, "int", $k, "int", 0)
	Next
EndFunc   ;==>SendSro

Func GetHandle($char)
	Local $list = WinList("[CLASS:CLIENT]")
	For $i = 1 To $list[0][0]
		Local $mid = memopen(WinGetProcess($list[$i][1]))
		Local $name = memread($mid, $eCharname, 'char[12]')
		If $name = $char Then
			memclose($mid)
			Global $e = 1
			Global $s = 0
			Global $z = 0
			Return $list[$i][1]
		EndIf
		Local $name = memread($mid, $sCharname, 'char[12]')
		If $name = $char Then
			memclose($mid)
			Global $s = 1
			Global $e = 0
			Global $z = 0
			Return $list[$i][1]
		EndIf
		Local $name = memread($mid, $zCharname, 'char[12]')
		If $name = $char Then
			memclose($mid)
			Global $s = 0
			Global $e = 0
			Global $z = 1
			Return $list[$i][1]
		EndIf
		memclose($mid)
	Next
EndFunc   ;==>GetHandle

Func ini($action = 'write')
	If $action = 'write'  Then
		For $i = 0 To 3
			IniWrite('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_check', GUICtrlRead(Eval($type[$i] & '_check')))
			IniWrite('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_belt', GUICtrlRead(Eval($type[$i] & '_belt')))
			IniWrite('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_slot', GUICtrlRead(Eval($type[$i] & '_slot')))
			IniWrite('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_input', GUICtrlRead(Eval($type[$i] & '_input')))
			IniWrite('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_slider', GUICtrlRead(Eval($type[$i] & '_slider')))
		Next
		IniWrite('pot_config.ini', GUICtrlRead($char_input), 'pill_check', GUICtrlRead($pill_check))
		IniWrite('pot_config.ini', GUICtrlRead($char_input), 'pill_belt', GUICtrlRead($pill_belt))
		IniWrite('pot_config.ini', GUICtrlRead($char_input), 'pill_slot', GUICtrlRead($pill_slot))
	Else
		For $i = 0 To 3
			GUICtrlSetState(Eval($type[$i] & '_check'), IniRead('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_check', GUICtrlRead(Eval($type[$i] & '_check'))))
			GUICtrlSetData(Eval($type[$i] & '_belt'), IniRead('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_belt', GUICtrlRead(Eval($type[$i] & '_belt'))))
			GUICtrlSetData(Eval($type[$i] & '_slot'), IniRead('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_slot', GUICtrlRead(Eval($type[$i] & '_slot'))))
			GUICtrlSetData(Eval($type[$i] & '_input'), IniRead('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_input', GUICtrlRead(Eval($type[$i] & '_input'))))
			GUICtrlSetData(Eval($type[$i] & '_slider'), IniRead('pot_config.ini', GUICtrlRead($char_input), $type[$i] & '_slider', GUICtrlRead(Eval($type[$i] & '_slider'))))
		Next
		GUICtrlSetState($pill_check, IniRead('pot_config.ini', GUICtrlRead($char_input), 'pill_check', GUICtrlRead($pill_check)))
		GUICtrlSetData($pill_belt, IniRead('pot_config.ini', GUICtrlRead($char_input), 'pill_belt', GUICtrlRead($pill_belt)))
		GUICtrlSetData($pill_slot, IniRead('pot_config.ini', GUICtrlRead($char_input), 'pill_slot', GUICtrlRead($pill_slot)))
	EndIf
EndFunc   ;==>ini

Func Pot($name, $bar, $slot, $delay = 1000)
	If Not IsDeclared($name & "pot" & $slot) Then
		If $bar <> 'none'  Then SendSro(GetHandle($name), $bar)
		SendSro(GetHandle($name), $slot)
		Assign($name & "pot" & $slot, TimerInit(), 2)
	ElseIf TimerDiff(Eval($name & "pot" & $slot)) > $delay Then
		If $bar <> 'none'  Then SendSro(GetHandle($name), $bar)
		SendSro(GetHandle($name), $slot)
		Assign($name & "pot" & $slot, TimerInit(), 2)
	EndIf
EndFunc   ;==>Pot

Func memopen($pid)
	Local $mid = DllCall('kernel32.dll', 'int', 'OpenProcess', 'int', 0x1F0FFF, 'int', 1, 'int', $pid)
	Return $mid[0]
EndFunc   ;==>memopen

Func memread($mid, $adress, $type = 'dword')
	Local $struct = DllStructCreate($type)
	DllCall('kernel32.dll', 'int', 'ReadProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', '')
	Return DllStructGetData($struct, 1)
EndFunc   ;==>memread

Func memreaddynamic($mid, $pointer, $offset, $type = "dword")
	$newadress = memread($mid, $pointer) + $offset
	Return memread($mid, $newadress, $type)
EndFunc   ;==>memreaddynamic

Func memclose($mid)
	DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $mid)
EndFunc   ;==>memclose
im not so good in Autoit...

so could anyone help me ? to try to only send 1 key and not 10
Niperx is offline  
Old 11/06/2010, 20:42   #2
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,693
Received Thanks: 3,160
Func Pot($name, $bar, $slot, $delay = 1000)


change delay=1000 value to your value

hope i helped
LastThief is offline  
Old 11/06/2010, 20:53   #3
 
thieef's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 373
Received Thanks: 62
mmmm i dunno i don't agree with you as i know this delay means the time between when HP gets detected low and the autopot get worked
thieef is offline  
Old 11/06/2010, 21:13   #4
 
Niperx's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 215
Received Thanks: 35
Quote:
Originally Posted by thieef View Post
mmmm i dunno i don't agree with you as i know this delay means the time between when HP gets detected low and the autopot get worked
ye..

Quote:
Originally Posted by LastThief View Post
Func Pot($name, $bar, $slot, $delay = 1000)


change delay=1000 value to your value

hope i helped
i tried that before posting and didn't help, and sometimes when i change another thing

Code:
Func Pot($name, $bar, $slot, $delay = 1000)
	If Not IsDeclared($name & "pot" & $slot) Then
		If $bar <> 'none'  Then SendSro(GetHandle($name), $bar)
		SendSro(GetHandle($name), $slot)
		Assign($name & "pot" & $slot, TimerInit(), [COLOR="Lime"]2[/COLOR])
	ElseIf TimerDiff(Eval($name & "pot" & $slot)) > $delay Then
		If $bar <> 'none'  Then SendSro(GetHandle($name), $bar)
		SendSro(GetHandle($name), $slot)
		Assign($name & "pot" & $slot, TimerInit(), [COLOR="Lime"]2[/COLOR])
	EndIf
EndFunc
those 2 in green if i change that for lower or higher number it goes fast. so it doesn't press 10times the key it press it like infinity.....
Niperx is offline  
Reply


Similar Threads Similar Threads
[GUIDE]How to use Lolkop's Bot/Launcher
06/13/2011 - SRO PServer Guides & Releases - 38 Replies
Well i ahve noticed that ther were not any guides for this awsome tool. So i decided to make on my self: Enjoy! 1. Getting the BOT Download the tools from Here - the files should be clean!
lolkop's sources please ?
11/06/2010 - SRO Private Server - 3 Replies
since lolkop's link is broken or deleted i can't find the .au3 source of Auto Potion for ZSZC i need to edit it for me cuz i hate im typing and it says like 0000000000 i want to change it just to send 1 time not like 10times....
lolkop's loader/autopot/bot
10/13/2010 - SRO Private Server - 0 Replies
PROs i need your help. Please teach me how to work lolkop's loader/autopot/bot. I'm using the current version 1.681 and every time i log in there's and error saying "My version is not being supported" something like that. Anyone know's how to work with this? Need your help badly.
Lolkop's files
08/13/2010 - SRO Private Server - 5 Replies
Hi, can somone upload for me lolkops files? Because his site isn't working. I need: ECSRO_test_serwer_autoselect.exe/Autoselect.exe (pather media.pk2) Thx...



All times are GMT +2. The time now is 18:03.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.