Guest
May 20, 2012, 3:23 pm UTCHome arrow Powerbasic arrow Start Services
header image
Start Services
Written by Dream Dancer   
Jul 13, 2010 at 07:43 PM
' 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.
Last Updated ( Jul 13, 2010 at 07:47 PM )
Next>
header image