Close
Showing results 1 to 10 of 16

Hybrid View

  1. #1

    Default

    Autohotkey Update

    Figured out how to use autohotkey over local network.

    First, you need a shared map on both pc's with full permissions. (So that is a local map on both PC's that is shared with the other PC.)

    Then in my case as I run one instance on my main PC and two on my secondary, these are the scripts I run. (two scripts running on both PC's)


    Main PC script 1:
    After starting the script I have 2 seconds to make the diablo II instance active, then it stores its ID in a variable. Because I only have to initialize one instance on this PC, the script is running after that. (I might figure out a way to avoid having to initialize the windows, but I had some trouble getting autohotkey to target diablo without this more forceful method)

    For the test I have only used the c key which is the inventory key in my case for testing purposes. It checks to see if I am currently active in the game window, if I am it writes two files, one locally and one on the other PC's shared folder.

    Code:
    #NoEnv
    
    sleep 2000
    WinGet, diablo1_id, ID, A
    MsgBox, First instance set ("%diablo1_id%").
    
    $c::
        IfWinActive, ahk_id %diablo1_id%
        {
            keypress := "c"
            FileAppend, %keypress%`n, commandPC1.txt
            FileAppend, %keypress%`n, \\SECONDPC\shared\commandPC2.txt
        } else {
            Send c
        }
    return

    Main PC script 2:
    Again, initializing the window by activating the game window two seconds after starting the script. The rest is just a loop checking to see if anything needs done. (For example, if winactive and c is pressed, the first script makes a file and then this one executes the keypress.

    When I wasn't saving these txt files locally for this script, it was lagging and barely working. That's why you need a local folder on both pc's that are shared with full permissions.

    Code:
    #NoEnv
    
    sleep 2000
    WinGet, diablo1_id, ID, A
    MsgBox, First instance set ("%diablo1_id%").
    
    Loop {
        commandline := ""
        if FileExist("commandPC1.txt") {
            FileReadLine, commandline, commandPC1.txt, 1
            if (commandline != "") {    
                ControlSend,, %commandline%, ahk_id %diablo1_id%
                FileDelete, commandPC1.txt
            }
        }
    }

    Second PC script 1:

    This time I have to initialize two windows. (I run both of these instances of diablo in Sandboxie in two seperate sandboxes named diablobox1 and diablobox2, I have the settings of these sandboxes to show sandbox name in title. This isn't needed for this script, but it is needed for windowed borderless gaming.)

    The script much like main pc script 1 is pretty much the same.



    Code:
    #NoEnv
    
    sleep 2000
    WinGet, diablo2_id, ID, A
    MsgBox, Second instance set ("%diablo2_id%").
    sleep 2000
    WinGet, diablo3_id, ID, A
    MsgBox, Third instance set ("%diablo3_id%").
    
    $c::
        IfWinActive, ahk_id %diablo2_id% 
        {
            keypress := "c"
            FileAppend, %keypress%`n, \\FIRSTPC\shared\commandPC1.txt
            FileAppend, %keypress%`n, commandPC2.txt
        } 
        else IfWinActive, ahk_id %diablo3_id% 
        {
            keypress := "c"
            FileAppend, %keypress%`n, \\FIRSTPC\shared\commandPC1.txt
            FileAppend, %keypress%`n, commandPC2.txt
        } else {
            send c
        }
    return
    Second PC script 2:

    And again like the main PC script, except double initialization and an extra controlsend to send the key to both instances.

    Code:
    #NoEnv
    
    sleep 2000
    WinGet, diablo2_id, ID, A
    MsgBox, Second instance set ("%diablo2_id%").
    sleep 2000
    WinGet, diablo3_id, ID, A
    MsgBox, Third instance set ("%diablo3_id%").
    
    Loop {
        commandline := ""
        if FileExist("commandPC2.txt") {
            FileReadLine, commandline, commandPC2.txt, 1
            if (commandline != "") {    
                ControlSend,, %commandline%, ahk_id %diablo2_id%
                ControlSend,, %commandline%, ahk_id %diablo3_id%
                FileDelete, commandPC2.txt
            }
        }
    }

    This is running lagfree for me now. Although at the moment it just opens inventory on all three instances across pc's. With a little work it will be copying skills.

    This is it for me today and tomorrow is beta so not sure yet what I want to do with sending mouse clicks.



    Inventory spam in action:

    Last edited by Kaynin : 08-12-2021 at 01:16 PM
    Slowly crawling back towards the experience that is Multiboxing Mayhem

  2. #2

    Default

    I'm thinking about it (D2R). I'm boxing D3 atm, season 24 just trying to get the transmogs before it's too late. I use ISBoxer on one pc for 4 accounts and it's the easiest boxing setup i have ever done. It took less then 5 minutes from "fresh start to ready" with the setup wizard, being an experienced user.

    As for multi-pc, i havent done this yet, but everyone i've seen talk about multi-pc setup says it's ridiculously easy to do.

    Weird group comp you picked. Pally is such a good support with auras you should consider one or two. Conviction is the ultimate group aura.
    Last edited by Purpleflavor : 08-13-2021 at 10:15 PM

  3. #3

    Default

    The best solution I have found so far is to run the second account on my laptop and remote access it on my other monitor. Teamviewer seems to be the client with the least frame drop for this in my experience. I was unable to find any VM that support Direct X12 3D acceleration, so it seems that for any VM solution, while it may launch, the game would run extremely laggy as it would not be able to fully (or at all) utilize your graphics card.

Tags for this Thread

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •