To use this program follow these easy steps:
1) Read this file.
2) Open 'Settings.ini' and fill in the information required.
3) Save and exit Settings.ini.
4) Double-click CloneHunter2.3.exe.
5) Sit back and wait for it to find the proper IP.
When the proper IP is found a sound will play and the status window will change to display the current game name and password. Ensure you have your sound turned up
Please keep in mind that this program will *NOT* idle in the game for you.
Made a few updates, namley added a user selectable delay before the game is created. Select a low and high number and it will use a random delay between those numbers before the game is created. I don't know if it will prevent your IP being blocked but hey, it's worth a try.
Code:
settings.ini :Quote:
Global $x, $y, $GameCount
$GameCreateDelay = 0
$Name = 0
$Pass = 0
$GameCount = 1
$Number1 = InputBox ( "Short Delay", "Input a short delay number:", "5000" )
$Number2 = InputBox ( "Long Delay", "Input a long delay number:", "15000" )
$Number3 = 0
$SettingsFile = @SCRIPTDIR & '\Settings.ini'
$SoundFile = @SCRIPTDIR & '\tada.wav'
$ActiveAccount = IniRead ( $SettingsFile, 'Account', 'AccountName', "ERROR" )
$ActivePassword = IniRead ( $SettingsFile, 'Account', 'Password', "ERROR" )
$RealmSelection = IniRead ( $SettingsFile, 'Account', 'Realm', "ERROR" )
$CharLocation = IniRead ( $SettingsFile, 'Account', 'CharacterLocation', "ERROR" )
$GameCreateDelay = IniRead ( $SettingsFile, 'Settings', 'GameCreateDelay', "ERROR" )
$Switches = IniRead ( $SettingsFile, 'Account', 'D2Parameter', "ERROR" )
$DCloneIP1 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP1', 999 ) & ":4000"
$DCloneIP2 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP2', 999 ) & ":4000"
$DCloneIP3 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP3', 999 ) & ":4000"
$DCloneIP4 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP4', 999 ) & ":4000"
$DCloneIP5 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP5', 999 ) & ":4000"
$D2Path = IniRead ( $SettingsFile, 'Settings', 'D2Path', "ERROR" )
if $D2Path = '' then $D2Path = RegRead ('HKEY_CURRENT_USER\' & 'Software\Blizzard Entertainment\Diablo II', 'InstallPath')
$D2Executable = IniRead ( $SettingsFile, 'Settings', 'D2Executable', "" )
if $D2Executable = '' then $D2Executable = 'Diablo II.exe'
Select
Case $RealmSelection = 'West'
$x = 296
$y = 374
$ServerIp = '63.241.83.'
Case $RealmSelection = 'East'
$x = 300
$y = 400
$ServerIp = '63.240.202.'
Case $RealmSelection = 'Europe'
$x = 295
$y = 448
$ServerIp = '213.248.106.'
EndSelect
SplashTextOn ( 'CloneHunter 2.3', 'CloneHunter 2.3 by Snarg ()', 200, 100,824,0 )
StartDiablo ()
ServerSelect ()
LogonAccount ()
CharacterSelection ()
while (1)
CreateGame ()
RunWait( @ComSpec & " /c " & 'netstat -n>c:\ip.txt' , "", @SW_HIDE )
CompareIP ()
ExitGame ()
Sleep (8000)
wend
; =========== Subroutines ===============
Func StartDiablo ()
Run ( $D2Path & '\' & $D2Executable & ' ' & $Switches, $D2Path )
WinWait ( 'Diablo II' )
WinActivate ( 'Diablo II' )
Sleep ( 500 )
WinMove ( 'Diablo II', '', 0, 0 )
Sleep ( 500 )
Return
EndFunc
Func ServerSelect ()
Send ( '{ESCAPE}' )
Sleep ( 1500 )
MouseMove ( 408, 403 )
MouseClick( "left", 408, 403 )
Sleep ( 1500 )
MouseMove ( $x, $y )
MouseClick( "left", $x, $y )
MouseClick( "left", $x, $y )
Sleep ( 1500 )
MouseMove ( 404, 374 )
MouseClick( "left", 404, 374 )
Sleep ( 5000 )
Return
EndFunc
Func LogonAccount ()
Send ( '{TAB}' )
Sleep (250)
Send ( $ActiveAccount )
Sleep ( 250 )
Send ( '{TAB}' )
Sleep ( 250 )
Send ( $ActivePassword )
Sleep ( 250 )
Send ( '{ENTER}' )
Sleep ( 6000 )
Return
EndFunc
Func CharacterSelection ()
Select
Case $Charlocation = 1
Send ( '{ENTER}' )
Case $Charlocation = 2
Send ( '{RIGHT}{ENTER}' )
Case $Charlocation = 3
Send ( '{DOWN}{ENTER}' )
Case $Charlocation = 4
Send ( '{RIGHT}{DOWN}{ENTER}' )
Case $Charlocation = 5
Send ( '{DOWN}{DOWN}{ENTER}' )
Case $Charlocation = 6
Send ( '{RIGHT}{DOWN}{DOWN}{ENTER}' )
Case $Charlocation = 7
Send ( '{DOWN}{DOWN}{DOWN}{ENTER}' )
Case $Charlocation = 8
Send ( '{RIGHT}{DOWN}{DOWN}{DOWN}{ENTER}' )
EndSelect
Sleep ( 5000 )
Return
EndFunc
Func CreateGame ()
WinActivate ( 'Diablo II' )
WinWaitActive ( 'Diablo II' )
MouseClick( "left", 601, 482 )
Sleep ( 1500 )
$Name = Random ( 100000, 900000 )
$Pass = Random ( 100000, 900000 )
$Number3 = Random ( $Number1, $Number2, 1 )
Sleep ( $Number3 )
Send ( $Name & '{TAB}' )
Sleep ( 250 )
Send ( $Pass & '{ENTER}' )
Sleep ( $GameCreateDelay + 250 )
EndFunc
Return
Func CompareIP ()
Local $IPStart
$A = 1
$hit = 0
for $i = 1 to 20
$CheckIP = FileReadLine ( 'C:\ip.txt', $A )
;Only check if server IP is part of the current line and it's port 4000
$IPStart = StringInStr ( $CheckIP, $ServerIP )
$PortStart = StringInStr ( $CheckIP, ":4000" )
If ( $IPStart >0 ) and ( $PortStart>0 ) then
SplashTextOn ( 'CloneHunter 2.3', "Current try: " & $GameCount &@CRLF & "Current IP: " &StringMid ( $CheckIp, $IPStart, $PortStart-$IPStart ), 200, 100,824,0 )
WinActivate ( 'Diablo II' )
if StringInStr ( $CheckIP, $ServerIP & $DCloneIP1 ) > 0 then $hit = 1
if StringInStr ( $CheckIP, $ServerIP & $DCloneIP2 ) > 0 then $hit = 1
if StringInStr ( $CheckIP, $ServerIP & $DCloneIP3 ) > 0 then $hit = 1
if StringInStr ( $CheckIP, $ServerIP & $DCloneIP4 ) > 0 then $hit = 1
if StringInStr ( $CheckIP, $ServerIP & $DCloneIP5 ) > 0 then $hit = 1
EndIf
$A = $A + 1
next
if $hit = 1 then
CloneFound ()
EndIf
$GameCount = $GameCount + 1
Return
EndFunc
Func ExitGame ()
WinActivate ( 'Diablo II', ',' )
Sleep ( 250 )
Send ( '{ESC}' )
Sleep ( 250 )
Send ( '{UP}' )
Sleep ( 250 )
Send ( '{ENTER}' )
Sleep ( 5000 )
Return
EndFunc
Func CloneFound ()
filedelete ( 'c:\ip.txt' )
SoundPlay ( $SoundFile )
While WinActive ( 'Diablo II' )
SplashTextOn ( 'CloneHunter 2.3', "Clone IP Found!!" & @CRLF & "Game name: " & $Name & @CRLF & "Game password: " & $Pass, 200, 100,824,0 )
WEnd
Exit
Return
EndFunc
---------------------------------------------------------------------------------Quote:
[Account]
AccountName=ACCOUNT
Password=PASSWORD
Realm=REALM
;The format for Realm is CASE SENSATIVE!!!!!!!!. It MUST be listed as 'East', 'West' or 'Europe' only! You can not use ;'east', this will NOT work.
CharacterLocation=
;Character locations are:
;1 2
;3 4
;5 6
;7 8
D2Parameter=-w -ns -lq -skiptobnet -title "Diablo II" -mpq cdkey.mpq
;There should be no need to touch this line. Obviously, if you are using your original CD key you may remove the -mpq part.
[Settings]
D2Path=
D2Executable=
;Only fill these lines in if the script has trouble starting Diablo.
D2LoadDelay=
;This is the ammount of time it takes for Diablo to start on your computer. Adjust as needed. All times are in miliseconds so ;1000 = 1 second.
GameCreateDelay=
;This is the ammount of time it takes for a game to be created. Adjust as needed. All times are in miliseconds so 1000 = 1 ;second.
;Use the following five lines to enter the LAST SET OF DIGITS of the IP you are searching for. Example:
;IP to find = 192.169.54.77
;Numbers to use = 77
DCloneIP1=
DCloneIP2=
DCloneIP3=
DCloneIP4=
DCloneIP5=
;============================================== Read This ================================================== =================
;Do not use the entire IP address, only the last set of digits.
;You can search for up to five IP's at one time. ALL LINES MUST BE FILLED OUTt. If you wish to search for less then five, ;then the lines should be filled out similar to this:
;
;DCloneIP1=10
;DCloneIP2=11
;DCloneIP3=12
;DCloneIP4=12
;DCloneIP5=12
;
;The above example will search for three IP's.
;
;Visit the D2 General Discussion forum on for a current listing of hot IP's
;
---------------------------------------------------------------------------------
#unconfirmed