-
I have not tested this out yet, but I use the original wingman and it looks like you made some nice improvements over that judging by the description so good job with that.
However I will say that my pickup method gives you as much control as you want to have, if you don't feel that way you are not using it properly. The interface for yours sounds nice but any mods can be checked with a lootfilter and accomplished the same way with my pickup method, you just put in a whole lot of extra work to accomplish the same thing :P
I will leave a better review with some suggestions once I test it out.
-
Contributor
Originally Posted by
naut333
I have not tested this out yet, but I use the original wingman and it looks like you made some nice improvements over that judging by the description so good job with that.
However I will say that my pickup method gives you as much control as you want to have, if you don't feel that way you are not using it properly. The interface for yours sounds nice but any mods can be checked with a lootfilter and accomplished the same way with my pickup method, you just put in a whole lot of extra work to accomplish the same thing :P
I will leave a better review with some suggestions once I test it out.
Our pickup method is done in two different ways. Your is searching the screen for a special color (single) you need to have set in your loot filter, while mine is searching the mouse location for loot colors (plural). Both have their merits, but neither is perfect. I used your code as the inspiration for my own rendition of the function. So big props!
In my method you can selectively pick up items within a large clump of junk... Since nearly every single item I have given a black or white background you can use it to pick up whatever is there that you actively mouse over while holding the bind.
In your method it looks as though you have the user assign the color of their "Auto loot" items and the rest they grab themselves when they want to. Correct me if I'm wrong. Scanning the whole screen, I'm assuming the scan picks up items going from top left to bottom right. You said you can filter the mods with a loot filter, but that means the items would need to be identified to see their mods.
That's where I decided it's more fun to be in control of the looting, half the game is running around and getting the shiney loot. My method is more of an active looting aid, rather than an Auto looter. Like I said, each has it's merits.
Look forward to hearing your opinions on the script 
Patchnotes for this small bugfix patch, fixes an persistant issue with hotkeys keeping the script from continuing to call the rest of its functions.
Code:
Version .06.08 October/23/2019
--------------------------------------------------------------------------------
Fix for issue while holding down attack keys not letting main flask logic run
Inserted main flask logic into the attack key timers
Adjusted the main flask logic to allow true/false for doing GuiStatus
This allows other functions to do their own GuiStatus and call the flask routine
Main and Secondary attack timers moved inside their respective Functions
this allows them to share static variables with each other
Reverted the MaximumThreads line
caused the game to hang as logged out if you pressed one of the flask hotkeys AND hit logout
Last edited by thebbandit; 10-22-2019 at 05:53 PM.
-
Knight
please add option to auto enable Auto flask and Auto quit when you open the script
I made a hugh mistake today, my HC char died because i forgot to enable the auto flask and auto quit and i thought its already enabled
-
Contributor
Originally Posted by
hacker143
please add option to auto enable Auto flask and Auto quit when you open the script
I made a hugh mistake today, my HC char died because i forgot to enable the auto flask and auto quit and i thought its already enabled
That is already part of the script
AutoHotkey_BJMWNwgeQ4.png
Last edited by thebbandit; 10-23-2019 at 07:33 PM.
-
Knight
Originally Posted by
thebbandit
thank you, i made a huge mistake and my HC char worth 30ex is dead.
-
Contributor
Originally Posted by
hacker143
thank you, i made a huge mistake and my HC char worth 30ex is dead.
wingman is perfect for early days but after some time u will hav eto move to HuD. Its much faster for potions/logout and has other stuff (stashie to sort shit, inventory analyze to filter 95% strash rare, delve wall for 100% coverage and so on)
-
Member
Originally Posted by
dlr5668
wingman is perfect for early days but after some time u will hav eto move to HuD. Its much faster for potions/logout and has other stuff (stashie to sort shit, inventory analyze to filter 95% strash rare, delve wall for 100% coverage and so on)
speed isnt the issue. Dont get me wrong faster is better, but after playing HC for the last few leagues its clear that what the issue is
Unless you are willing to spam a crazy amount of flasks in a short period of time (I'd call that an easily detected red flag if they cared)
even then, if you are even close to any reasonable chicken setting, you're in one hit territory on all but the most tanky high ehp builds with every layer of defense possible.
Fast accurate flask usage doesn't keep you out of that danger zone because of RNG and damage bursts.
Worse, its easy to get a false sense of safety until rng kicks you in the nuts. I dont know what huds reaction time is, but even if its 1ms, many times that wont matter. Open the wrong stongbox and too many mobs hit simultaneously one moment you are dead,
Just your ping would be enough to ensure death. having automated defenses that operate faster than your ping isn't as good as it would seem. Often you dont get one hit, but functionally thats what happened if you only register the damage after you are dead.
This makes automated flasks/chicken more of a lazy QOL than a reliable thing when the shit hits the fan.
Even very impractical/inefficient/paranoid are insufficient. On less tanky characters I usually run with chicken at 40%, might seem absurd, but the idea is if I'm going to go below that, the situation is out of control. IMO 95% of saying alive is not doing stupid things. Unfortunately I do too many stupid things. No suffix exists for immunity to stupid.
You need to know every dangerous boss etc.
-
Member
Dumb question, but no way to make this run on a 800x600 potato pc right? Just want a decent auto loot.
-
Contributor
Originally Posted by
redpepsi
Dumb question, but no way to make this run on a 800x600 potato pc right? Just want a decent auto loot.
quicklooks is set up for 800x600 resolution by default I beleive. If you want to add your resolution to the script I would need your resolution samples. 800x600 is the last one to be added to the script, unfortunately the page I created to do the samples is a little outdated. The information still applies, just use the more recent data points from the library instead. Here they are for your reference:
Code:
If (ResolutionScale="Standard") {
; Item Inventory Grid
Global InventoryGridX := [ Round(A_ScreenWidth/(1920/1274))
, Round(A_ScreenWidth/(1920/1326))
, Round(A_ScreenWidth/(1920/1379))
, Round(A_ScreenWidth/(1920/1432))
, Round(A_ScreenWidth/(1920/1484))
, Round(A_ScreenWidth/(1920/1537))
, Round(A_ScreenWidth/(1920/1590))
, Round(A_ScreenWidth/(1920/1642))
, Round(A_ScreenWidth/(1920/1695))
, Round(A_ScreenWidth/(1920/1748))
, Round(A_ScreenWidth/(1920/1800))
, Round(A_ScreenWidth/(1920/1853)) ]
Global InventoryGridY := [ Round(A_ScreenHeight/(1080/638))
, Round(A_ScreenHeight/(1080/690))
, Round(A_ScreenHeight/(1080/743))
, Round(A_ScreenHeight/(1080/796))
, Round(A_ScreenHeight/(1080/848)) ]
;Detonate Mines
Global DetonateDelveX:=X + Round(A_ScreenWidth/(1920/1542))
Global DetonateX:=X + Round(A_ScreenWidth/(1920/1658))
Global DetonateY:=Y + Round(A_ScreenHeight/(1080/901))
;Scrolls in currency tab
Global WisdomStockX:=X + Round(A_ScreenWidth/(1920/125))
Global PortalStockX:=X + Round(A_ScreenWidth/(1920/175))
Global WPStockY:=Y + Round(A_ScreenHeight/(1080/262))
;Status Check OnHideout
global vX_OnHideout:=X + Round(A_ScreenWidth / (1920 / 1178))
global vY_OnHideout:=Y + Round(A_ScreenHeight / (1080 / 930))
global vY_OnHideoutMin:=Y + Round(A_ScreenHeight / (1080 / 1053))
;Status Check OnMenu
global vX_OnMenu:=X + Round(A_ScreenWidth / 2)
global vY_OnMenu:=Y + Round(A_ScreenHeight / (1080 / 54))
;Status Check OnChar
global vX_OnChar:=X + Round(A_ScreenWidth / (1920 / 41))
global vY_OnChar:=Y + Round(A_ScreenHeight / ( 1080 / 915))
;Status Check OnChat
global vX_OnChat:=X + Round(A_ScreenWidth / (1920 / 0))
global vY_OnChat:=Y + Round(A_ScreenHeight / ( 1080 / 653))
;Status Check OnInventory
global vX_OnInventory:=X + Round(A_ScreenWidth / (1920 / 1583))
global vY_OnInventory:=Y + Round(A_ScreenHeight / ( 1080 / 36))
;Status Check OnStash
global vX_OnStash:=X + Round(A_ScreenWidth / (1920 / 336))
global vY_OnStash:=Y + Round(A_ScreenHeight / ( 1080 / 32))
;Status Check OnVendor
global vX_OnVendor:=X + Round(A_ScreenWidth / (1920 / 618))
global vY_OnVendor:=Y + Round(A_ScreenHeight / ( 1080 / 88))
;Status Check OnDiv
global vX_OnDiv:=X + Round(A_ScreenWidth / (1920 / 618))
global vY_OnDiv:=Y + Round(A_ScreenHeight / ( 1080 / 135))
;Life %'s
global vX_Life:=X + Round(A_ScreenWidth / (1920 / 95))
global vY_Life20:=Y + Round(A_ScreenHeight / ( 1080 / 1034))
global vY_Life30:=Y + Round(A_ScreenHeight / ( 1080 / 1014))
global vY_Life40:=Y + Round(A_ScreenHeight / ( 1080 / 994))
global vY_Life50:=Y + Round(A_ScreenHeight / ( 1080 / 974))
global vY_Life60:=Y + Round(A_ScreenHeight / ( 1080 / 954))
global vY_Life70:=Y + Round(A_ScreenHeight / ( 1080 / 934))
global vY_Life80:=Y + Round(A_ScreenHeight / ( 1080 / 914))
global vY_Life90:=Y + Round(A_ScreenHeight / ( 1080 / 894))
;ES %'s
If YesEldritchBattery
global vX_ES:=X + Round(A_ScreenWidth / (1920 / 1740))
Else
global vX_ES:=X + Round(A_ScreenWidth / (1920 / 180))
global vY_ES20:=Y + Round(A_ScreenHeight / ( 1080 / 1034))
global vY_ES30:=Y + Round(A_ScreenHeight / ( 1080 / 1014))
global vY_ES40:=Y + Round(A_ScreenHeight / ( 1080 / 994))
global vY_ES50:=Y + Round(A_ScreenHeight / ( 1080 / 974))
global vY_ES60:=Y + Round(A_ScreenHeight / ( 1080 / 954))
global vY_ES70:=Y + Round(A_ScreenHeight / ( 1080 / 934))
global vY_ES80:=Y + Round(A_ScreenHeight / ( 1080 / 914))
global vY_ES90:=Y + Round(A_ScreenHeight / ( 1080 / 894))
;Mana
global vX_Mana:=X + Round(A_ScreenWidth / (1920 / 1825))
global vY_Mana10:=Y + Round(A_ScreenHeight / (1080 / 1054))
global vY_Mana90:=Y + Round(A_ScreenHeight / (1080 / 876))
Global vH_ManaBar:= vY_Mana10 - vY_Mana90
Global vY_ManaThreshold:=vY_Mana10 - Round(vH_ManaBar * (ManaThreshold / 100))
;GUI overlay
global GuiX:=X + Round(A_ScreenWidth / (1920 / -10))
global GuiY:=Y + Round(A_ScreenHeight / (1080 / 1027))
;Divination Y locations
Global vY_DivTrade:=Y + Round(A_ScreenHeight / (1080 / 736))
Global vY_DivItem:=Y + Round(A_ScreenHeight / (1080 / 605))
;Stash tabs menu button
global vX_StashTabMenu := X + Round(A_ScreenWidth / (1920 / 640))
global vY_StashTabMenu := Y + Round(A_ScreenHeight / ( 1080 / 146))
;Stash tabs menu list
global vX_StashTabList := X + Round(A_ScreenWidth / (1920 / 706))
global vY_StashTabList := Y + Round(A_ScreenHeight / ( 1080 / 120))
;calculate the height of each tab
global vY_StashTabSize := Round(A_ScreenHeight / ( 1080 / 22))
}
Its not that difficult to gather these data points, once you do I will add them to the script and that will pretty much make it support nearly all of the stardard resolutions out there.
Other than that, I have been slowly working on improvements to the Loot Vacuum, I have taken into consideration the alternate stance of having it be more like an auto-looter. With that said, I have allowed the script to have an AreaScale of 0-500 pixels around the mouse. At 500 pixels its pretty much anything on the screen will get grabbed if its nearby the mouse, around 200 pixels its a good middle ground, and at 30-100 pixels it behaves more like a "Loot near my mouse", then at 0 its more of an active looting aid and will just click on items under the cursor.
That part is working pretty damn good, especially with the new colors I have modified the black and white backgrounds to. With +60 red in black and -60 red from white it makes them rather distinct colors from the background. But that is not far enough IMO, they need to be able to assign your own colors! So I have started to design a menu that shows visually which colors are assigned to the loot filter. I have written a few new functions that are made especially for converting the scripts BGR color hex over to RGB color hex values, and also for storing the Hex values as a string that is unadulterated by the formating of the AHK language. (meaning all hex values must stay as 0x000000 instead of truncating the 00's like 0x0 which would be the equivalent truncated version of 0x000000).
I am finding little bits of time here and there to do the modifications, but will probably take me another day or so to get the GUI put together and allow for resampling the colors and storing the values in the Settings.ini for later use. This should make it so that anyone can set up the loot vacuum to use their own colors, as long as the background is NOT TRANSPARENT. To quickly replace your background colors and replace the transparency you can use this regex search:
SetBackgroundColor (\d{1,3}) (\d{1,3}) (\d{1,3}) \d{1,3}
Replace with :
SetBackgroundColor $1 $2 $3 255
Stay tuned for the next auto update patch!
Last edited by thebbandit; 10-25-2019 at 10:37 PM.
-
Member
Originally Posted by
thebbandit
quicklooks is set up for 800x600 resolution by default I beleive. If you want to add your resolution to the script I would need your resolution samples. 800x600 is the last one to be added to the script, unfortunately the page I created to do the samples is a little outdated. The information still applies, just use the more recent data points from the library instead. Here they are for your reference:
Stay tuned for the next auto update patch!

I've tried giving quicklooks a try but you can't customize anything by editing the file, thus disabling any other features like random clicks besides looting is annoying. Plus it fails looting a lot of time.
Also what do you mean by resolution sample? Haven't given your script yet so I gotta look what to change to make it work.
-
Contributor
Originally Posted by
redpepsi
I've tried giving quicklooks a try but you can't customize anything by editing the file, thus disabling any other features like random clicks besides looting is annoying. Plus it fails looting a lot of time.
Also what do you mean by resolution sample? Haven't given your script yet so I gotta look what to change to make it work.
it means that the locations of the samples are different for each resolution. Mostly its adjusting the x values, but since you are not using 1440 x 1080 you would also need to adjust the y values. this creates a scaling value for that specific resolution, and will allow anyone with 4:3 ratio to use the script, regardless of the actual resolution itself. So for example, I am on a 1920 x 1080 resolution but these samples will work for someone who is using 3840 x 2160 to use the same "standard" samples since it is the same 16:9 ratio.
If it is too difficult, I may just find a way to take the 1440 x 1080 samples myself so that its easier to see the differences because the y values can stay the same. I cannot give you a timeframe that I would be able to do that, it may be quite some time.
-
Contributor
Loot Vacuum patch is a go!
I hope you guys enjoy this new version of the vacuum, it has been designed to be very flexible in the way that it functions. It can be used like before with a setting of 0 AreaScale and behaves like a looting aid, picking up items you have moused over. I have improved the speed that it clicks on items as well, so a setting of 0 is actually very functional. But the real juicy addition is that the areascale can go all the way up to 500 pixels in all directions from the mouse. This will find and click on any item near the cursor, and suports unhighlighted color as well as moused over. It is surprisingly fast as well!
I was not expecting this to work so well with such a large area.
Grab the new filters Here
Code:
Version .06.09 October/25/2019
--------------------------------------------------------------------------------
Major improvements to the Loot Vacuum
AreaScale is now able to go much larger than before
Can now detect Un-Highlighted Loot backgrounds
from a value of 0 to 500 for nearly the screen size
When set to 0 is like before and active mousing over
when above 0 it scans the area around the mouse +- areascale
with high areascale it now speed clicks on items across the screen
AreaScale setting has been moved into the new GUI for Loot Vacuum
New GUI for Loot Vacuum Settings, find it on the Configuration tab
Check the box to enable or disable the loot vacuum
Click the button to assign loot colors and adjust the AreaScale
Can support more or less colors than default, adjust your INI file
It is not recommended, but add or remove entries in groups of 2
There are 4 default colors, remove 2 to only search for 1 background
Or add 2 more to search for a third background, etc...
Find them in the settings.ini by searching for [Loot Colors]
First entry is Highlighted color second is non-highlighted
Once you add or remove entries, hit load and go to loot vacuum settings
It will now reflect the number of entries from your INI file
To reset them to default just delete the [Loot Colors] section
Loot filter colors have been adjusted to make them slightly off white/black
black has +60 red and white has -60 red
update the loot filter files in your Documents
This doesn't auto-update, grab the newest FilterBlade.zip file from github
https://github.com/BanditTech/WingmanReloaded/raw/master/FilterBlade.zip
New functions in library hexArrToStr, toRGBfromBGR and hexGRBtoRGB
this is for the ability to save and view the colors in the GUI
Last edited by thebbandit; 10-26-2019 at 12:07 AM.
-
Post Thanks / Like - 1 Thanks
dlr5668 (1 members gave Thanks to thebbandit for this useful post)
-
Knight
bug report:
invite command is not inviting the latest player the message you
BTW, lutbot works perfectly and this is the command for lutbot
BlockInput On
Send ^{Enter}{Home}{Delete}/invite {Enter}
BlockInput Off
-
Contributor
Originally Posted by
hacker143
bug report:
invite command is not inviting the latest player the message you
BTW, lutbot works perfectly and this is the command for lutbot
BlockInput On
Send ^{Enter}{Home}{Delete}/invite {Enter}
BlockInput Off
It may not be very well explained, but only the reply whisper hotkeys capture the last player to whisper you, the command hotkeys do not. If you want to invite the last person who whispered you, then put the command inside the reply whisper section. from the dropdown menu choose /invite RecipientName, or if you have responded to the player with an earlier reply like : "hey be with you in a second" it will save the name of the person you whispered, and you can use any of the command hotkeys to send the invite without recapturing the name. This is set up this way so that several people can be whispering you and it will save the one you responded to.
The chat hotkey section is kind of a mess, I plan to eventually rework that and impliment some improvements. But as for now its at very low priority. I like the simplicity of the method you mention though, I will take it into consideration once I finally get around to doing that rework. But as I said, its between working on delve health detection or working on hotkey shit, and I feel the delve thing is more important. I found working code to do the overhead healthbar but just need time to make a function out of it for the script. I have been sitting on it for some time now since its a rather complex system of offsets, and there will need to be some way of detecting the players camera zoom in or out.
So for reference:
Rework for the Chat hotkeys is planned for later date.
Will redisign the entire chat hotkey section and combine into one tab
Each hotkey can have a checkbox for altering the command to either be a Ctrl+Enter or just Enter
Each hotkey will have a checkbox to additionally perform functions like capture the name of the whisperer, Invite the player, Kick the player, Kick self
Each hotkey will now be allowed its own modifier, I found a useful library file in the PoE-Trade macro that is called AdvancedHotkeys for this purpose
so as you can see it will require quite a bit of work to get it up to snuff with how I feel it should function. but its working for now, just not exactly well explained.
-
Post Thanks / Like - 1 Thanks
hacker143 (1 members gave Thanks to thebbandit for this useful post)
-
Member
Tried giving it a try to use Window Spy but I'm too dumb to make it work. Don't even know what to edit and where. Am I supposed to edit Library.ahk?