PEQ Configurator and EQSwitch

Discussion in 'General' started by Aliboo, Jun 4, 2018.

  1. Aliboo

    Aliboo A Griffin

    Tools to ease botting pains. When I update, I'll post change logs here.

    These tools are based on PowerShell tucked behind a GUI. I use Sapien PowerShell Studio for my script editing and GUI creation. The code and binaries are uploaded to GitHub.

    To Do:
    3/26/2020 - PEQ Configurator is eating up way too much processor power. Will work on this as time permits.

    Links:
    Github (Source and Exe) - https://github.com/LotsofTimeSlices/Everquest


    upload_2020-1-22_21-22-53.png

    upload_2019-6-3_13-55-56.png upload_2019-6-3_13-54-9.png


    Change logs:
    4/17/2020 - EQ Switch
    ADD: Added option to point to toons.csv for class grouping and 'Saved Groups.ini' for on-the-fly group changes
    UPD: Updated internal functions for more efficiency
    UPD: Removed group option from toons.csv - now only used for classes
    UPD: Several minor under-the-hood changes and cleanup

    3/9/2020 – EQSwitch

    ADD: Added Tray Icon option
    ADD: Added Always on Top option

    3/08/2020 - EQSwitch
    UPD: Updated source link
    UPD: Changed resize minimum to fit into a compact square
    UPD: Reworked how group sort is referenced and edited. A Toons.CSV file is required.
    ADD: Added Toons.CSV import
    ADD: Added AutoComplete - SuggestAppend option
    ADD: Added a sort option for classes. A Toons.CSV file is required.
    UPD: Updated help for new features and added change log

    3/8/2020 - PEQ Configurator
    UPD: Added Class and Group columns to Sample Toons.csv
    UPD: Updated help dropdown
    UPD: Added Change Log to help

    1/25/2020 - PEQ Configurator
    UPD: Added listview check for kill and restart buttons
    UPD: Enabled legacy item Missing Toons
    UPD: Updated help and tooltips
    UPD: Minor UI and grammar changes
    UPD: Updated version as major to reflect last change since it was mostly a re-write – v2.x
    UPD: Moved Repo on GitHub

    1/22/2020 - PEQ Configurator
    Major update
    UPD: Complete rewrite of process monitor
    UPD: Reworked GUI and moved setup to last tab
    UPD: Added check and reminder to fill out setup tab
    UPD: Removed passwords column in Sample Toons.CSV (manual step)
    UPD: Updated help to reflect changes
    UPD: Added legacy tab and moved old code to it

    1/22/2020 - EQSwitch
    UPD: Updated program icon

    7/24/2019 - PEQ Configurator
    UPD: Updated EQ CPU Affinity to scale with all logical cores instead of 8 (value of 255)

    6/28/2019 - PEQ Configurator

    UPD: Updated Hung EQ Process Monitor. Added a second timeout to reduce false positives.

    6/2/2019 - EQSwitch (QuickSwitch)

    ADD: Added Grouped sort option
    UPD: Added refresh for each sort click
    UPD: Removed sort option none
    UPD: Updated Tools menu order and added separators
    UPD: Moved to multi-form project

    5/31/2019 - PEQ Configurator

    FIX: Corrected issue where Restart Missing Toons button would not enable in Hung/Kicked Processes Window

    5/25/2019 - PEQ Configurator

    UPD: Cleaned up help structure, grammar and moved prereqs to re-usable functions
    UPD: Added shortcut folder and EQBCS file location conditions to hung/kicked process buttons

    5/22/2019 - PEQ Configurator
    ADD: Added manual kicked toons check. For finding toons that have been kicked to login, character select, it's kind of cheesy but works.

    5/16/2019 - EQSwitch (QuickSwitch)
    FIX: Disabled saving size in a minimized window state

    5/13/2019 - EQSwitch (QuickSwitch)

    FIX: Disabled saving position in a minimized window state

    5/12/2019 - EQSwitch (QuickSwitch)
    UPD: Reworked UI - smaller by default and resizable
    UPD: Saved font size will now display correctly in the menu strip
    ADD: Added ability to change and save window size, location, font size, and sort order
    ADD: Added help > About
    FIX: Textbox will now clear on refresh
    Known Issues: EQSwitch only works with unique process names. Please make sure each process is named after your toon.

    4/20/2019 - PEQ Configurator

    UPD: Poll time will now error on spaces as well any non-numeric characters
    UPD: Poll time will no longer reset to 30 if EQ is not running

    4/17/2019 - PEQ Configurator
    UPD: Removed Quick Switch window
    ADD: First run help
    UPD: Added INI save for poll time
    UPD: Rearranged buttons
    UPD: Updated labels, descriptions, tooltips

    2/11/2019 - Private Server Scripts
    NEW: Added another script to sync skills from PEQ to a private server

    2/10/2019 - Private Server Scripts
    ADD: Created a couple of scripts to speed character equipment sync from live emulated server to private server

    1/29/2019 - Quick Switch

    ADD: Added download link for Quick Switch

    1/28/2019 - PEQ Configurator
    UPD: Added better filtering for Flag Check

    1/26/2019
    UPD: Added sort to flag check
    UPD: Grayed out flag check if EQBCS file location is empty

    1/26/2019
    ADD: Flag Check
    ADD: Help topics

    1/25/2019

    ADD: Added process count to Quick Switch
    ADD: Added Clear Output button
    UPD: Minor UI changes

    1/20/2019

    Created EQ process monitor to monitor and notify when an EQ process has become unresponsive. It opens a separate PowerShell window which will poll based time entered or a 30 second default.
    Tweaked UI
    Removed incorrect ToolTip
    upload_2019-1-20_18-59-59.png upload_2019-1-20_19-2-4.png

    1/19/2019
    Added Quick Switch for fast toon switching. (Thanks Glitter for the idea)
    Added Hung/Kicked Process action. Identifies and allows killing of these processes
    upload_2019-1-20_19-0-20.png

    Disclaimer:
    Software is provided as is and without any warranty. Feel free to modify and redistribute the code as desired. Only tested on Windows 10 with base PowerShell 5.1.
     

    Attached Files:

    Last edited: Apr 18, 2020
    • Winner Winner x 1
  2. Aliboo

    Aliboo A Griffin

    Created a small PowerShell GUI to assist with creating Shortcuts, AutoHotKey body, and MQ2AutoLogon body. Built to help the move to my laptop.

    Link for anyone interested: https://github.com/LotsofTimeSlices/Everquest

    Question/comments - drop me a line...
     
    Last edited: Jan 26, 2020
    • Winner Winner x 1
  3. Aliboo

    Aliboo A Griffin

    Added a few more features and converted to an executable for anyone that doesn't want to mess with the script. This is built on the PowerShell v5 engine using PowerShell Studio 2018. Bugs are likely - please let me know.

    Start Missing Toons - needs a populated shortcuts folder. It checks what's running against the (toon-named) shortcuts in the folder. It creates an autohotkey file in your %temp% folder and runs it. The format and pre-reqs are required.

    Save as Default Locations - saves to the two paths to an INI where the script/exe is being run from so it doesn't have to be re-entered upon each launch.
     
    Last edited: Jan 28, 2019
    • Like Like x 1
  4. Aliboo

    Aliboo A Griffin

    Overhauled UI, Added a couple tweaks I found useful.
     
    Last edited: Jan 28, 2019
    • Like Like x 1
  5. Aliboo

    Aliboo A Griffin

    Another update:
    Added a hung/stuck process checker which allows a quick way to find and kill EQ processes that are hung or when a toon gets kicked out of the game.
    Added a feature from Glitter's request for a toon switcher. I'm quite surprised just how fast it is.
    Minor cleanup of help.
     
    Last edited: Jan 28, 2019
  6. Aliboo

    Aliboo A Griffin

    Just got to try out the hung process:
    upload_2019-1-18_22-35-40.png

    Restarting:
    upload_2019-1-18_22-36-10.png
     
    Last edited: Jan 26, 2020
  7. Aliboo

    Aliboo A Griffin

    I finally purchased a personal copy of Powershell Studio so I should be able to crank out updates a bit quicker. Suggestions and feedback are always welcome.
     
  8. Honch

    Honch Orc Centurion

    Looks pretty good - out of curiousity how does the flag check work? Does it look at the last 1000 or so lines of the eqbc log file and check for "Nothing seems to of happened" or whatever the failure measure is for not getting a flag?
     
  9. Aliboo

    Aliboo A Griffin

    Thank you much for the reply. Since there are no time stamps in the log, I parse the entire log and look for anything that matches 'flag', remove all duplicates, and sort. There is some more data massaging that occurs but for the most part that's it. I would like to be able to make it where you didn't have to relaunch EQBCS between flags but without a timestamp that is going to be a big chore. I know jack diddly about C++ or I'd add a timestamp to each line for EQBCS.

    edit -
    Now that I'm thinking about it, I might be able do to something with the actual line count. Save out a variable after all flags are confirmed in one location and continue from that point to the next flagging. Hmm... Thanks for saying 'the last 1000 or so lines' - I'll chew on this for a bit and see if any other ideas form.
     
    Last edited: Apr 25, 2019
  10. Aliboo

    Aliboo A Griffin

    After upgrading my computer to a 12 core Ryzen, I noticed my EQ processes were only attaching to the first 8 logical cores. When I found how to set processor affinity (ages ago), it used 255 for all cores. I found it uses a formula that grows exponentially --> a(n) = 2^n - 1. Something about binary and Mersenne numbers - not a numbers guy here.

    Before:
    upload_2019-7-24_16-42-41.png

    After:
    upload_2019-7-24_16-42-51.png


    Updated PowerShell code which should scale with the number of logical processors:
    Code:
    [int32]$ProcAffinity = [math]::pow(2,((Get-WmiObject -class Win32_processor).NumberOfLogicalProcessors))-1; Get-Process eqgame | ForEach-Object { $_.ProcessorAffinity=$ProcAffinity }
    If you're using the batch file and have more than 4 cores/8 logical, you might want to update your code. I've also included this update in PEQ Configurator.

    **Update**
    I added a script to run and continually check for new EQ processes and apply ProcessorAffinity if not applied. It will automatically close if there are no running EQ processes. Add this to your startup script for set-it-and-forget-it processor affinity.
    https://github.com/LotsofTimeSlices/Everquest/blob/master/Set-ConstantAffinity.ps1
     
    Last edited: Jan 26, 2020
    • Like Like x 1
    • Useful Useful x 1
  11. Aliboo

    Aliboo A Griffin

    I've trimmed down the size of PEQConfig a bit and moved the tabs around. I'm also working on a log monitor for EQBCS that watches for 'has left the server' message for bumped toons. This was pretty tricky to get working but I think it'll be very handy once it's all fleshed out. I never really liked the way the current restart missing toons worked. I think this will be a lot cleaner.

    --> I am looking for any feedback - please let me know. Is there something out there that already reports kicked toons? Doing this in-game with netbots might be a better route (but outside of my comfort zone).
     
    Last edited: Jan 25, 2020
  12. Aliboo

    Aliboo A Griffin

    Updated EQSwitch to use '\E3_RoF2\Macros\e3 Macro Inis\RofSaved Groups.ini'. The program needs to be run as admin for it to restore windows that have been minimized. Although it will work if the window is already in the restored position (without being elevated). I spent a lot of time getting this to work but I think I got it. I can say with 54 boxes I find I use it constantly... way more than PEQ Configurator (which I think needs a name change). Lastly, I have purchased Groupy but haven't installed it just yet. It may very well negate the need for EQSwitch altogether. I'll post back if/when I install and try it out.
     
  13. Neriuni

    Neriuni Orc Pawn

    I love using EQ switch. Thank you for the great tool!
     
    • Like Like x 1
  14. Kaz

    Kaz Orc Pawn

    I'm having an issue getting EQSwitch to work..

    Every time I launch the executable (as an Administrator) it instantly crashes.

    I didn't have an RofSaved Groups.ini file just a Saved Groups.ini file but I copied it and renamed it to RoFSavedGroups.ini (So now I have both .ini files) and EQSwitch still crashes instantly upon launch with an 'EQSwitch has stopped working' error. Below is the details of the error.

    I am on Windows 7 x64 if that makes any difference.

    Any help would be greatly appreciated. The friends I play with use it and they say it's an amazing program.
     
  15. Aliboo

    Aliboo A Griffin

    Hi Kaz. Sorry to hear of the bugs and thanks for the kudos. I assume this has never worked for you?

    I just tested on a Windows 7 box with PowerShell 2 and received the same error. I have locked EQSwitch to PowerShell 5+ because I've never tested it on any OS outside of Windows 10.
    upload_2020-10-4_8-54-20.png

    Download and install PowerShell (Windows Management Framework) 5.1 for Windows 7 SP1:
    https://www.microsoft.com/en-us/download/details.aspx?id=54616

    Alternatively, you can download the full script and run it from the PowerShell ISE but I cannot promise how it will perform on such an old version.
    https://raw.githubusercontent.com/L...master/EQSwitch/PowerShell_Files/EQSwitch.ps1

    If you still have problems please send me a private message or hit me up on Discord.
     
  16. Kaz

    Kaz Orc Pawn

    Hi Aliboo,

    Installing PowerShell (Windows Management Framework) 5.1 for Windows 7 SP1 worked perfectly!

    Thank you so much for the solution, the prompt response and of course the awesome program!
     
    • Like Like x 1