Sunteți pe pagina 1din 11

@ECHO OFF SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION SET SET SET SET SET SET DB_ERROR_COUNT=0 D3_ERROR_COUNT=0 SYS_ERROR_COUNT=0 NW_ERROR_COUNT=0

RESTART_COUNT=0 Log_File="DB_Run_(%date:/=-%_%time::=-%).log"

:START CLS ::-----------------------------------------------------------------------------::CONFIGURATIONS: Change ONLY the following parameters (No quotes (") required) ::-----------------------------------------------------------------------------::Setting Breaktimes in between Total Bot Restarts set min_minutes=1 set max_minutes=3 ::Enable Scheduler (1=On, 0=Off) set Scheduler=0 ::Setting the DB_Run's running schedule (Please use 24H time for the Hours, DO N OT INCLUDE the front 0 is the time is less than 10 = Put 5 instead of 05) set start_hours=23 set start_minutes=33 set stop_hours=23 set stop_minutes=30 ::Setting the number of minutes before a Total Bot Restart is Triggered set min_restart_minutes=60 set max_restart_minutes=120 ::General Configurations set D3Name=Diablo III.exe set DBName=Demonbuddy1.exe set DBDrive=C: set D3Path=C:\Program Files (x86)\Diablo III\ set DBPath=C:\Users\KcJ\Desktop\D3Farmers\berry\ set DBKey=5D9S7X7O5B3M1B3J5N7P set BNetAcctName=aceofbase@gmail.com set BNetPwd=acesawthesign set Profile=C:\Users\KcJ\Desktop\iAce Elite Private Profiles\iAce Elite Private\ AceD_Start.xml set CombatRoutine=GilesPlugin ::Are you having plugin problems? (Plugins not loading properly?) 1=On, 0=Off, L oginScreenAppear is how long it takes for the D3 login screen to appear after De monbuddy is first launched (In seconds). set PluginProblem=0 set EmptyProfile=C:\Users\KcJ\Desktop\D3Farmers\FarmGroup#1_3sessions\empty.xml ::-------------------------------------------------------------------------------------::OPTIONAL CONFIGURATIONS FOR AUTOAUTH AND ISBOXER: (No quotes (") required) 1=O

n, 0=Off ::-------------------------------------------------------------------------------------set set set set set ISBoxer=1 AutoAuth=0 ISBoxerLinkName=C:\Users\KcJ\Desktop\D3Farmers\berry\berry.lnk ISBoxerLoadTime=20 AutoAuthPath=C:\Users\XXX\Desktop\KillAuth\

::--------------------------------------------------------------------------::DO NOT AMEND ANYTHING BELOW THIS LINE!!! ::--------------------------------------------------------------------------set /a min_seconds=%min_minutes%*60 set /a max_seconds=%max_minutes%*60 set /a range=(%max_seconds%+1)-%min_seconds% set /a rand=%random%%%(%range%)+%min_seconds% set /a timer=%rand% set /a restart_minutes=%random%%%(%max_restart_minutes%+1-%min_restart_minutes%) +%min_restart_minutes% set DBPID= set D3PID= set run_counter=1 ECHO ---------------------------------------------------------------------- >> % Log_File% ECHO INITIAL CONFIGURATION REPORT: >> %Log_File% ECHO ---------------------------------------------------------------------- >> % Log_File% ECHO ISBoxer = %ISBoxer% >> %Log_File% ECHO AutoAuth = %AutoAuth% >> %Log_File% ECHO Scheduler = %Scheduler% >> %Log_File% ECHO Plugin Fix = %PluginProblem% >> %Log_File% ECHO Breaktime between total bot restarts is between: %min_minutes% to %max_minu tes% minutes. >> %Log_File% ECHO DB_Run Scheduled Stop at %stop_hours%:%stop_minutes%. >> %Log_File% ECHO DB_Run Scheduled Start at %start_hours%:%start_minutes%. >> %Log_File% ECHO Total bot restart after: %restart_minutes% minutes. >> %Log_File% ECHO ---------------------------------------------------------------------- >> % Log_File% ECHO DB_Run SUMMARY: >> %Log_File% ECHO ---------------------------------------------------------------------- >> % Log_File% ECHO Diablo III Crashes : %D3_ERROR_COUNT% times >> %Log_File% ECHO Demonbuddy Crashes : %DB_ERROR_COUNT% times >> %Log_File% ECHO System Errors : %SYS_ERROR_COUNT% times >> %Log_File% ECHO Network Errors : %NW_ERROR_COUNT% times >> %Log_File% ECHO. >> %Log_file% ECHO Number of Total Restarts: %RESTART_COUNT% >> %Log_File% ECHO. >> %Log_file% ECHO. >> %Log_File% ECHO %Date% %Time% - DB_Run starting Up. >> %Log_File% %DBDrive% cd %DBPath%

:CHECKING IF PID CACHES ARE PRESENT if exist DBPID.txt ( FOR /F "eol=; tokens=1*" %%i in (DBPID.txt) do ( IF "!DBPID!" == "" SET DBPID=%%i IF !DBPID! LSS %%i SET DBPID=%%i ECHO Previous Demonbuddy PID: !DBPID! ECHO %Date% %Time% - Previous Demonbuddy PID: !DBPID! >> %Log_File%) ) else ( GOTO DBRUN ) if exist D3PID.txt ( FOR /F "eol=; tokens=1*" %%j in (D3PID.txt) do ( IF "!D3PID!" == "" SET D3PID=%%j IF !D3PID! LSS %%j SET D3PID=%%j ECHO Previous Diablo III PID: !D3PID! ECHO %Date% %Time% - Previous Diablo III PID: !D3PID! >> %Log_File%) ) else ( GOTO DBRUN ) CLS ECHO *************************************************************************** ***** ECHO * DB_Run v2.4 (Simple Batch Demonbuddy Relogger) * ECHO * --------------------------------------------------------------------------- * ECHO * Killing any existing Diablo III, Demonbuddy processes and Buddy Auth Sess ion * ECHO *************************************************************************** ***** ECHO. ECHO. TASKKILL /f /im "WerFault.exe" > NUL 2>&1 ECHO Killing Diablo TASKKILL /fi "PID eq %D3PID%" /im "%D3Name%" > NUL 2>&1 ECHO %Date% %Time% - Killing Diablo III PID: !DBPID!. >> %Log_File% ECHO. ECHO. ECHO Killing Demonbuddy TASKKILL /fi "PID eq %DBPID%" /im "%DBName%" > NUL 2>&1 ECHO %Date% %Time% - Killing Demonbuddy PID: !DBPID!. >> %Log_File% ECHO. ECHO. ECHO Closing Any Remaining Blizzard Error Windows TASKKILL /f /im "BlizzardError.exe" > NUL 2>&1 ECHO %Date% %Time% - Killing any Blizzard Error windows. >> %Log_File% ECHO. ECHO. :CheckScheduler1 IF %Scheduler% EQU 1 (GOTO :CheckStopTime1) ELSE (GOTO :CheckStopTimeEnd1) :CheckStopTime1 IF %TIME:~0,2% EQU %stop_hours% ( IF %TIME:~3,2% GTR %stop_minutes% GOTO :WAIT )

:CheckStopTimeEnd1 ::AutoAuth Section IF %AutoAuth% EQU 1 (GOTO :AutoAuthStart) ELSE (GOTO :AutoAuthEnd) :AutoAuthStart ECHO Identifying Last Demonbuddy Session... ECHO %Date% %Time% - Identifying Last Demonbuddy Session... >> %Log_File% ::Locating newest log file created. for /f "delims=" %%x in ('dir /od /a-d /b "%DBPath%Logs\*.*"') do set recent="%% x" IF ERRORLEVEL==1 ( ECHO %Date% %Time% - Skipping AutoAuth process due to inability to obtai n session time stamp. >> %Log_File% GOTO :AutoAuthEnd ) set recent=%recent:"=% ::Retrieving session timestamp from log file. set Tracker=Executable For /F %%t in ('findstr /c:"%Tracker%" "%DBPath%Logs\%recent%"') do set TimeStam p=%%t SET TimeStamp=%TimeStamp:[=% SET TimeStamp=%TimeStamp:~0,-4% FOR /f "eol=; tokens=1,2,3 delims=:" %%i in ("!Timestamp!") do ( SET /a Hour=100%%i %% 100 SET Min=%%j SET Sec=%%k ) IF %Hour% GTR 12 (set /a Hour=%Hour%-12) IF %Hour% EQU 00 (set Hour=12) set timestamp=%Hour%:%Min%:%Sec% ECHO Your Last Demonbuddy Session Time is: %Timestamp% ECHO %Date% %Time% - Your Last Demonbuddy Session Time is: %Timestamp% >> %Log_F ile% ECHO Launching AutoAuth... START "AutoAuth" %AutoAuthPath%autoauth.exe -stamp"%Timestamp%" ECHO %Date% %Time% - Launching AutoAuth: autoauth.exe -stamp"%Timestamp%" >> %Lo g_File% ECHO. ECHO Please wait for AutoAuth to finish up... timeout /t 15 ECHO %Date% %Time% - AutoAuth completed >> %Log_File% :AutoAuthEnd ECHO . ECHO . ECHO . ECHO Done! ECHO. ECHO. ECHO Let's take a break for %rand% seconds before starting a fresh run. ECHO %Date% %Time% - Bot is taking a break for %rand% seconds before starting up . >> %Log_File%

ECHO. timeout /t %timer% ECHO. ECHO. :DBRUN CLS ECHO ************************************** ECHO * Starting Demonbuddy and Diablo III * ECHO ************************************** ECHO. ECHO. ECHO. ECHO. TASKLIST /FI "IMAGENAME eq %D3Name%" /fo csv /nh > D3Before.txt ECHO %Date% %Time% - Starting Diablo III. >> %Log_File% IF %ISBoxer% EQU 1 (GOTO :ISBoxerStart) ELSE (GOTO :NoISBoxer) :ISBoxerStart ECHO %Date% %Time% - Launching ISBoxer Link. >> %Log_File% START "D3Run" "%ISBoxerLinkName%" ECHO Waiting for ISBoxer... TIMEOUT /T 60 /NOBREAK > NUL 2>&1 ECHO. ECHO. TASKLIST /FI "IMAGENAME eq %D3Name%" /fo csv /nh > D3After.txt fc D3Before.txt D3After.txt > D3Diff.txt for /f "eol=; tokens=2,3* delims=," %%i in (D3Diff.txt) do (set m=%%i) SET m=%m:"=% SET D3PID=%m% ECHO %m% > D3PID.txt ECHO %Date% %Time% - Diablo III is using PID %m% for this run. >> %Log_File% DEL /F D3Before.txt D3After.txt D3Diff.txt ECHO Waiting for Diablo III to load. timeout /t %ISBoxerLoadTime% /NOBREAK > NUL 2>&1 ECHO. ECHO. TASKLIST /FI "IMAGENAME eq %DBName%" /fo csv /nh > DBBefore.txt ECHO Starting Demonbuddy ECHO %Date% %Time% - Starting Demonbuddy. >> %Log_File% IF %PluginProblem% EQU 1 ( START "DB_Running" "!DBPath!!DBName!" -key !DBKey! -attachTitle="is" -pi d !D3PID! -bnetaccount !BNetAcctName! -bnetpassword !BNetPwd! -profile="!EmptyPr ofile!" -routine="!CombatRoutine!" -autostart -noflash ) ELSE (START "DB_Running" "!DBPath!!DBName!" -key !DBKey! -attachTitle= "is" -pid !D3PID! -bnetaccount !BNetAcctName! -bnetpassword !BNetPwd! -profile=" !Profile!" -routine="!CombatRoutine!" -autostart -noflash) GOTO :ISBoxerEnd :NoISBoxer START "D3Run" "%D3Path%%D3Name%" -launch

TIMEOUT /T 30 /NOBREAK > NUL 2>&1 TASKLIST /FI "IMAGENAME eq %D3Name%" /fo csv /nh > D3After.txt fc D3Before.txt D3After.txt > D3Diff.txt for /f "eol=; tokens=2,3* delims=," %%i in (D3Diff.txt) do (set m=%%i) SET m=%m:"=% SET D3PID=%m% ECHO %m% > D3PID.txt ECHO %Date% %Time% - Diablo III is using PID %m% for this run. >> %Log_File% DEL /F D3Before.txt D3After.txt D3Diff.txt ECHO Waiting for Diablo III to load. timeout /t 15 /NOBREAK > NUL 2>&1 ECHO. ECHO. TASKLIST /FI "IMAGENAME eq %DBName%" /fo csv /nh > DBBefore.txt ECHO Starting Demonbuddy ECHO %Date% %Time% - Starting Demonbuddy. >> %Log_File% IF %PluginProblem% EQU 1 ( START "DB_Running" "!DBPath!!DBName!" -key !DBKey! -pid !D3PID! -bnetacc ount !BNetAcctName! -bnetpassword !BNetPwd! -profile="!EmptyProfile!" -routine=" !CombatRoutine!" -autostart -noflash ) ELSE (START "DB_Running" "!DBPath!!DBName!" -key !DBKey! -pid !D3PID! -bnetaccount !BNetAcctName! -bnetpassword !BNetPwd! -profile="!Profile!" -routin e="!CombatRoutine!" -autostart -noflash) :ISBoxerEnd TIMEOUT /T 30 /NOBREAK > NUL 2>&1 TASKLIST /FI "IMAGENAME eq %DBName%" /fo csv /nh > DBAfter.txt fc DBBefore.txt DBAfter.txt > DBDiff.txt for /f "eol=; tokens=2,3* delims=," %%i in (DBDiff.txt) do (set n=%%i) SET n=%n:"=% SET DBPID=%n% ECHO %n% > DBPID.txt ECHO %Date% %Time% - Demonbuddy is using PID %n% for this run. >> %Log_File% DEL /F DBBefore.txt DBAfter.txt DBDiff.txt :PluginCorrection IF %PluginProblem% EQU 1 ( IF %ISBoxer% EQU 1 ( ECHO Allowing Diablo III to log in. TIMEOUT /T 90 /NOBREAK > NUL 2>&1 TASKKILL /fi "PID eq %DBPID%" /im "%DBName%" > NUL 2>&1 TIMEOUT /T 60 /NOBREAK > NUL 2>&1 TASKLIST /FI "IMAGENAME eq %DBName%" /fo csv /nh > DBBefore.txt START "DB_Running" "!DBPath!!DBName!" -key !DBKey! -attachTitle= "is" -pid !D3PID! -bnetaccount !BNetAcctName! -bnetpassword !BNetPwd! -profile=" !Profile!" -routine="!CombatRoutine!" -autostart -noflash ) ELSE ( ECHO Allowing Diablo III to log in. TIMEOUT /T 90 /NOBREAK > NUL 2>&1 TASKKILL /fi "PID eq %DBPID%" /im "%DBName%" > NUL 2>&1 TIMEOUT /T 60 /NOBREAK > NUL 2>&1 TASKLIST /FI "IMAGENAME eq %DBName%" /fo csv /nh > DBBefore.txt START "DB_Running" "!DBPath!!DBName!" -key !DBKey! -pid !D3PID! -bnetaccount !BNetAcctName! -bnetpassword !BNetPwd! -profile="!Profile!" -routin

e="!CombatRoutine!" -autostart -noflash ) ) ELSE (GOTO :BEGINCHECKS) :PIDProcessing TIMEOUT /T 30 /NOBREAK > NUL 2>&1 TASKLIST /FI "IMAGENAME eq %DBName%" /fo csv /nh > DBAfter.txt fc DBBefore.txt DBAfter.txt > DBDiff.txt for /f "eol=; tokens=2,3* delims=," %%i in (DBDiff.txt) do (set n=%%i) SET n=%n:"=% SET DBPID=%n% ECHO %n% > DBPID.txt ECHO %Date% %Time% - Demonbuddy is using PID %n% for Plugin Correction. >> %Log_ File% DEL /F DBBefore.txt DBAfter.txt DBDiff.txt

:BEGINCHECKS ECHO. ECHO. ECHO Waiting to commence DB and D3 checks... timeout /t 5 /NOBREAK ECHO ---------------------------------------------------------------------- >> % Log_File% ECHO COMMENCING ERROR CHECKS: >> %Log_File% ECHO ---------------------------------------------------------------------- >> % Log_File% ::This portion listens if DB or D3 are not responding. If they are, they will be restarted CLS ECHO ****************************************************** ECHO * Listening for Misbehaving Diablo III or Demonbuddy * ECHO ****************************************************** ECHO. ECHO. ECHO. ECHO. ECHO Checking in 1 minute. ECHO. ECHO ****************************************************** ECHO. TIMEOUT /T 30 /NOBREAK > NUL 2>&1 :LISTENING TIMEOUT /T 30 /NOBREAK > NUL 2>&1 ECHO Checking if DB or D3 is NOT RESPONDING... :CHECKD3 ECHO Diablo III Status... TASKLIST /FI "IMAGENAME eq %D3Name%" /FI "PID eq %D3PID%" | FIND "%D3Name%" > NU L 2>&1 IF ERRORLEVEL==1 ( SET ERROR=Diablo III has crashed and closed.

SET /a D3_ERROR_COUNT=%D3_ERROR_COUNT%+1 GOTO :DETECTED ) TASKKILL /F /FI "STATUS eq NOT RESPONDING" /IM "%D3Name%" /FI "PID eq %D3PID%" | FIND "%D3Name%" > NUL 2>&1 IF NOT ERRORLEVEL==1 ( SET ERROR=Diablo III has crashed and is not responding. SET /a D3_ERROR_COUNT=%D3_ERROR_COUNT%+1 GOTO :DETECTED ) ECHO OK... ECHO. :CHECKDB ECHO Demonbuddy Status... TASKLIST /FI "IMAGENAME eq %DBName%" /FI "PID eq %DBPID%" | FIND "%DBName%" > NU L 2>&1 IF ERRORLEVEL==1 ( SET ERROR=Demonbuddy has crashed and closed. SET /a DB_ERROR_COUNT=%DB_ERROR_COUNT%+1 GOTO :DETECTED ) TASKKILL /F /FI "STATUS eq NOT RESPONDING" /IM "%DBName%" /FI "PID eq %DBPID%" | FIND "%DBName%" > NUL 2>&1 IF NOT ERRORLEVEL==1 ( SET ERROR=Demonbuddy has crashed and is not responding. SET /a DB_ERROR_COUNT=%DB_ERROR_COUNT%+1 GOTO :DETECTED ) ECHO OK... ECHO. :CHECKDBWINERROR ECHO Demonbuddy/Diablo III Windows Error... TASKLIST /FI "IMAGENAME eq WerFault.exe"| FIND "WerFault.exe" > NUL 2>&1 IF NOT ERRORLEVEL==1 ( SET ERROR=Demonbuddy or Diablo III has crashed: Windows Error SET /a SYS_ERROR_COUNT=%SYS_ERROR_COUNT%+1 GOTO :DETECTED ) TASKLIST /FI "IMAGENAME eq drwatson.exe"| FIND "drwatson.exe" > NUL 2>&1 IF NOT ERRORLEVEL==1 ( SET ERROR=Demonbuddy or Diablo III has crashed: Windows Error SET /a SYS_ERROR_COUNT=%SYS_ERROR_COUNT%+1 GOTO :DETECTED ) TASKLIST /FI "IMAGENAME eq drwtsn32.exe"| FIND "drwtsn32.exe" > NUL 2>&1 IF NOT ERRORLEVEL==1 ( SET ERROR=Demonbuddy or Diablo III has crashed: Windows Error SET /a SYS_ERROR_COUNT=%SYS_ERROR_COUNT%+1 GOTO :DETECTED ) TASKLIST /FI "IMAGENAME eq dwwin.exe"| FIND "dwwin.exe" > NUL 2>&1 IF NOT ERRORLEVEL==1 ( SET ERROR=Demonbuddy or Diablo III has crashed: Windows Error

SET /a SYS_ERROR_COUNT=%SYS_ERROR_COUNT%+1 GOTO :DETECTED ) ECHO OK... ECHO. :CHECKNETWORK ECHO Network Status... SET PingCounter=1 SET PingFailCounter=0 :PINGTEST Ping www.google.com -n 1 | findstr /c:"TTL" > NUL 2>&1 IF ERRORLEVEL==1 (GOTO :PINGFAIL) ELSE (GOTO :PINGPASS) :PINGFAIL ECHO Ping %PingCounter%: Fail SET /a PingCounter=%PingCounter%+1 SET /a PingFailCounter=%PingFailCounter%+1 GOTO :PINGCHECK :PINGPASS ECHO Ping %PingCounter%: Pass SET /a PingCounter=%PingCounter%+1 :PINGCHECK IF %PingCounter% LSS 6 (GOTO :PINGTEST) IF %PingFailCounter% GTR 3 (GOTO :PINGERROR) GOTO :CHECKSOK :PINGERROR SET ERROR=Network connection instability or error detected. SET /a NW_ERROR_COUNT=%NW_ERROR_COUNT%+1 GOTO :DETECTED :CHECKSOK ECHO. ECHO All OK! ECHO. ECHO. :CheckScheduler2 IF %Scheduler% EQU 1 (GOTO :CheckStopTime2) ELSE (GOTO :CheckStopTimeEnd2) :CheckStopTime2 ECHO Checking if its time to take a scheduled break: %stop_hours%:%stop_minutes% IF %TIME:~0,2% EQU %stop_hours% ( IF %TIME:~3,2% GTR %stop_minutes% GOTO :WAIT ) ECHO Not time yet :) ECHO. :CheckStopTimeEnd2 ::Checking number of runs and triggering bot restart. SET /a restart=%restart_minutes%-%run_counter% ECHO There will be %restart% more min(s) until total bot restart. ECHO %Date% %Time% - Check sequence %run_counter% of %restart_minutes%. All chec ks OK! >> %Log_File%

IF %run_counter% EQU %restart_minutes% ( ECHO . ECHO . ECHO Total Bot Restart Now... TIMEOUT /T 5 /NOBREAK > NUL 2>&1 SET /a RESTART_COUNT=%RESTART_COUNT%+1 ECHO %Date% %Time% - Total Bot Restart. >> %Log_File% ECHO. >> %Log_File% GOTO :START ) set /a run_counter=%run_counter%+1 ECHO Checking in another 1 minute. ECHO. ECHO ****************************************************** ECHO. TIMEOUT /T 30 /NOBREAK > NUL 2>&1 GOTO :LISTENING :DETECTED CLS ECHO ****************************************************** ECHO * Error Detected. Restarting the full suite. Standby * ECHO * Please Wait....................................... * ECHO ****************************************************** ECHO. ECHO %ERROR% ECHO. >> %Log_file% ECHO %Date% %Time% - %ERROR% ************* >> %Log_File% ECHO. >> %Log_file% ECHO. ECHO. TIMEOUT /T 15 /NOBREAK GOTO :START :WAIT CLS ECHO. ECHO It Is Now Time For The Scheduled Bot Stop... ECHO. ECHO Let's wait for %rand% seconds before killing the current run. ECHO %Date% %Time% - Bot is holding %rand% seconds before killing current run. > > %Log_File% ECHO. timeout /t %timer% CLS ECHO. ECHO -------------------------------ECHO Stopping Bot Now... ECHO We Shall Resume Again At %start_hours%:%start_minutes% ECHO -------------------------------ECHO. ECHO. ECHO Killing Diablo TASKKILL /fi "PID eq %D3PID%" /im "%D3Name%" > NUL 2>&1 ECHO %Date% %Time% - Killing Diablo III PID: !D3PID!. >> %Log_File% ECHO. ECHO. ECHO Killing Demonbuddy TASKKILL /fi "PID eq %DBPID%" /im "%DBName%" > NUL 2>&1

ECHO %Date% %Time% - Killing Demonbuddy PID: !DBPID!. >> %Log_File% ECHO. ECHO. ECHO Closing Any Remaining Blizzard Error Windows TASKKILL /f /im "BlizzardError.exe" > NUL 2>&1 ECHO %Date% %Time% - Killing any Blizzard Error windows. >> %Log_File% ECHO. ECHO. ECHO. >> %Log_file% ECHO %Date% %Time% - Scheduled Bot Stop >> %Log_File% ECHO %Date% %Time% - Resuming at %start_hours%:%start_minutes% >> %Log_File% ECHO. >> %Log_file% ECHO Waiting till %start_hours%:%start_minutes% to start D3 and DB again... :WAITCYCLE IF %TIME:~0,2% EQU %start_hours% ( IF %TIME:~3,2% GTR %start_minutes% GOTO :START ) TIMEOUT /T 60 /NOBREAK > NUL 2>&1 GOTO :WAITCYCLE ENDLOCAL :END

S-ar putea să vă placă și