[REQUEST]Autoselect range fix ZSZC 1.689

02/08/2011 06:44 omegalugia#1
I am wondering if anyone knows how to patch the autoselect range on the new client. I tried using old SRO_Client although it doesn't work. My client wont run. All of the loaders are also no longer compatible with the autoselect range. Does anyone have a fix?
02/08/2011 23:52 omegalugia#2
Anyone got any progress on a fix?
02/09/2011 17:36 silkje123#3
Try another loader ?
02/14/2011 22:26 omegalugia#4
Bump. I tried lolkops loader, the loader on zszc's forum, the old zszc loader... and other ones.
02/16/2011 00:39 bibiron#5
use db bot it works perfect on 1.689 patch
02/18/2011 14:33 Geezmo#6
i need too a autoselect for zszc 1.689........
02/19/2011 20:40 sarkoplata#7
lol , it's not range , it has closed from the sro_client
02/22/2011 01:50 lolkop#8
they removed the readin of the range...
to fix it you have to reenter the range to the client.

you can do that by a simple patch:
Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Global $kernel32 = DllOpen('kernel32.dll')
$mid = memopen(WinGetProcess('SRO_Client'))
memwrite($mid, 0x739978, 'D905706A9F00')
floatwrite($mid, 0x9F6A70, 5000)
floatwrite($mid, 0x9CC070, 5000)
memclose($mid)
DllClose($kernel32)

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

Func memwrite($mid, $adress, $hex)
	Local $struct = DllStructCreate('byte[' & BinaryLen('0x' & $hex) & ']')
	For $i = DllStructGetSize($struct) To 1 Step -1
		DllStructSetData($struct, 1, BinaryMid('0x' & $hex, $i, 1), $i)
	Next
	Local $x = DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', 0x40, 'dword*', 0)
	DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
	DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', $x[5], 'dword*', 0)
EndFunc   ;==>memwrite

Func floatwrite($mid, $adress, $float)
	Local $struct = DllStructCreate('float')
	DllStructSetData($struct, 1, $float)
	Local $x = DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', 0x40, 'dword*', 0)
	DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
	DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', $x[5], 'dword*', 0)
EndFunc   ;==>memwrite

Func memclose($mid)
	DllCall($kernel32, 'int', 'CloseHandle', 'int', $mid)
EndFunc   ;==>memclose
if you haven't got autoit, i'll attach the compiled and source version
02/22/2011 07:19 ÑõÑ_Ŝŧóp#9
Quote:
Originally Posted by lolkop View Post
they removed the readin of the range...
to fix it you have to reenter the range to the client.

you can do that by a simple patch:
Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Global $kernel32 = DllOpen('kernel32.dll')
$mid = memopen(WinGetProcess('SRO_Client'))
memwrite($mid, 0x739978, 'D905706A9F00')
floatwrite($mid, 0x9F6A70, 5000)
floatwrite($mid, 0x9CC070, 5000)
memclose($mid)
DllClose($kernel32)

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

Func memwrite($mid, $adress, $hex)
	Local $struct = DllStructCreate('byte[' & BinaryLen('0x' & $hex) & ']')
	For $i = DllStructGetSize($struct) To 1 Step -1
		DllStructSetData($struct, 1, BinaryMid('0x' & $hex, $i, 1), $i)
	Next
	Local $x = DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', 0x40, 'dword*', 0)
	DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
	DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', $x[5], 'dword*', 0)
EndFunc   ;==>memwrite

Func floatwrite($mid, $adress, $float)
	Local $struct = DllStructCreate('float')
	DllStructSetData($struct, 1, $float)
	Local $x = DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', 0x40, 'dword*', 0)
	DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
	DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', $x[5], 'dword*', 0)
EndFunc   ;==>memwrite

Func memclose($mid)
	DllCall($kernel32, 'int', 'CloseHandle', 'int', $mid)
EndFunc   ;==>memclose
if you haven't got autoit, i'll attach the compiled and source version
OMG! Thanks so much!!
gonna try it now
02/22/2011 15:03 alionas3#10
how to use it? when i press AutoSelectRangeMod it says is not valid win32 apllication
02/22/2011 15:30 lolkop#11
it's compiled for x64 systems... if you wanna use it @ win32 you have to compile it on ur self with autoit
02/22/2011 15:39 ÑõÑ_Ŝŧóp#12
here is the 32bit version

start your game and log in
then open this tool
and you are done ;)
02/22/2011 15:44 lolkop#13
the zszc team totally fails at client mods...
removing one line of code, is way to easy to fix <.<
02/22/2011 17:55 lols2#14
lolkop help me pl
s
02/22/2011 17:56 lols2#15
How do I enable autoselect patch v1689?