' proceedure for starting the connection process
SUB startServices()
LOCAL ListenPort, ModifyCheck AS LONG
LOCAL LaunchParameters, Work AS STRING
' check BotScript.KeepLog
ModifyConnectionStatus %IDR_TRAFFICYELLOW, _
"Initiating connection to the game server.", "Connecting"
' check cfgMultipleClients and set listen port
IF Config.cBoolean(%cfgMultipleClients) THEN
ListenPort = INT(RND(6000, 6999))
ELSE
ListenPort = 6750
END IF
socketListen = ListenSocket(ListenPort, hClientSocket)
IF socketListen = %INVALID_SOCKET THEN
PumpInternalMessage " Failed to create the listening socket, connect aborted."
ModifyConnectionStatus %IDR_TRAFFICRED, _
"Failed Listen Socket Creation.", "Listen Fail"
EXIT SUB
END IF
PumpInternalMessage "Created the listening socket:"& _
HEX$(socketListen, 8) &":"& FORMAT$(ListenPort)
socketClient = %INVALID_SOCKET
socketServer = %INVALID_SOCKET
' mod the settings to bot presets
' mod fails, abort the attempt, dispose of the listening socket
IF ISOBJECT(BotSettings) THEN LET BotSettings = NOTHING
LET BotSettings = CLASS "SettingsClass"
ModifyCheck = BotSettings.LoadSettings(Config.cString(%cfgSettingsFolder))
IF ModifyCheck <> %ERR_NOERROR THEN
closeSocket socketListen
PumpInternalMessage " Failed to load client settings," _
&" connect aborted. " _
& ERROR$(ModifyCheck)
ModifyConnectionStatus %IDR_TRAFFICRED, _
"Failed Settings Load.", "Modify Fail"
EXIT SUB
END IF
ModifyCheck = BotSettings.SoftError
BotSettings.UseProxyOrFirewall = "Yes"
BotSettings.QuitGrcfl = "Yes"
BotSettings.SessionCloseCheck = "No"
' handle logfile system later, ie, bot disables client log
BotSettings.ProxyHost = IIF$(ISTRUE Config.cBoolean(%cfgUseIpAddress), _
Config.cString(%cfgUseIpValue), "localhost")
BotSettings.ProxyPort = FORMAT$(ListenPort)
IF BotSettings.SoftError <> 0 THEN
closeSocket socketListen
PumpInternalMessage " Failed to modify user settings" _
&" for bot connection attempt, connect aborted."
ModifyConnectionStatus %IDR_TRAFFICRED, _
"Failed Settings Modify", "Modify Fail"
EXIT SUB
END IF
' insert the backup functions later
ModifyCheck = BotSettings.SaveSettings(Config.cString(%cfgSettingsFolder))
IF ModifyCheck <> %ERR_NOERROR THEN
closeSocket socketListen
PumpInternalMessage " Failed to save bot settings" _
&" for connect attempt, connect aborted."
ModifyConnectionStatus %IDR_TRAFFICRED, _
"Failed Settings Modify", "Modify NoSave"
EXIT SUB
END IF
' check client start parameters and build the launch string
' check if using embedded name & password, requires botscript driver
' check if using direct path to ini file to use,
' requires botscript driver for testing, using -PICK
CHDRIVE PATHNAME$(PATH, Config.cString(%cfgClientPath))
CHDIR PATHNAME$(PATH, Config.cString(%cfgClientPath))
Work = CURDIR$("")
ClientHwnd = 0
' insert coding to check if bot has a specific alt to use
LaunchParameters = " -pick"
ClientPID = SHELL(Config.cString(%cfgClientPath) & LaunchParameters)
IF ClientPID = 0 THEN
closeSocket socketListen
PumpInternalMessage "Failed to launch client. " _
&"("& FORMAT$(ERR) &") " & ERROR$(ERRCLEAR)
ModifyConnectionStatus %IDR_TRAFFICRED, _
"Client Launch Failure", "Launch Fail"
' client launch failure requires fast restore of settings
addAutomation %axRestoreSettings, 5000, "Restoring user settings."
END IF
END SUB
GeSHi parsed in 0.0605278015137 seconds.
|