What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

[Plugin] AdvancedItemFilter RELOADED !

Status
Not open for further replies.
Blank ....

7qOROTa.png


Not Blank ....


gqtNci0.png


ID Section

9RmsScj.png



Kinda of a silly question, but did you click on the drop down menu?

Lol I appreciate it but its still blank! Yes I clicked drop down menu, and those options are listed. I then clicked ID and the menu is blank. I do not have the option for item is unique/map/rare
 
did u check off, use custom rules (advanced users only) option?

Nope theres no way im an "advanced" user so both those options are unticked. I did not change the "rules" section at all. The weird part is, everything else seems to be running fine. It Id's all rares, keeps the cards/talismans sells everything, keeps uniques. When it does chaos recipe it keeps the rares UNID which is great.

I only changed a couple of item rules manually and that was not in the advanced item filter reloaded editer. But in the normal item filter editor. Set it to pick up quality gems and not regular. Turned off Utility flasks. And think that's about it.
 
IMO you really should look into disabling everything in the ItemFilter plugin, click the "Enable Custom Rules (advanced users only)" in Advanced Item Filter, and set up your loot filters using Advanced Item Filter.

You are kinda using 2 different filters at the same time and hoping they dont collide.

AIF is pretty simple to use. Just for learning i would start simple. Look at the first few rules in regular Item Filter like in the pickup section it lists:

-Currency
-All Rares
-Divination Cards

In AIF you would just click Pickup > then:
item.IsCurrency
item.IsRare
item.IsDivinationCard

You can also use a premade loot filter: https://www.thebuddyforum.com/exile...ghend-looting-profile-advanceditemfilter.html


As for as the IDing uniques. I didnt see anything that should be IDing uniques by default in the standard item filter. So not sure why its IDing.
 
IMO you really should look into disabling everything in the ItemFilter plugin, click the "Enable Custom Rules (advanced users only)" in Advanced Item Filter, and set up your loot filters using Advanced Item Filter.

You are kinda using 2 different filters at the same time and hoping they dont collide.

AIF is pretty simple to use. Just for learning i would start simple. Look at the first few rules in regular Item Filter like in the pickup section it lists:

-Currency
-All Rares
-Divination Cards

In AIF you would just click Pickup > then:
item.IsCurrency
item.IsRare
item.IsDivinationCard

You can also use a premade loot filter: https://www.thebuddyforum.com/exile...ghend-looting-profile-advanceditemfilter.html


As for as the IDing uniques. I didnt see anything that should be IDing uniques by default in the standard item filter. So not sure why its IDing.

Thanks for the help and I will definitely look into it. The basics I pretty much get. The problem was I thought tonyx said that these don't replace the existing loot filters. Ill mess around with it and see if I can get it to work.

Basically Im botting for the following and should not be that hard for me to set up.

- Pick up all quality gems for GCP recipe. (using 12 and under) 13+ I can through manually and keep any good ones to sell.
- Pick up all Talismans
- Pick up all Divination cards
- Pick up all Uniques and keep UNID
- Pick up all maps
- Pick up all rares ID and sell except for chaos/regal recipe
- Pick up and keep all currency

Mostly that's pretty much it. At some point I want to figure out or find an item filter for keeping really GOOD rares. Like high physical bows, good boots with high dual/tri res, move speed life. etc but that's not a major thing or a now thing.
 
Ya all those are super easy. Just make sure when you set this up, you add the rules to each category as needed (Pickup, ID, Keep, Sell). Currency would need to be added to Pickup and Keep, but does not require ID / Sell.
 
Ya all those are super easy. Just make sure when you set this up, you add the rules to each category as needed (Pickup, ID, Keep, Sell). Currency would need to be added to Pickup and Keep, but does not require ID / Sell.

I really appreciate the help, and I took a quick look through tonyx's file for custom item rules and I think I get the main jist. It will take me a bit to write my own up but it shouldn't be to difficult. Just have to triple check to make sure I don't forget something basic like selling 6 socket items.

However after re reading tonyx's post and how it works, I do not think there should be any issues in using the standard item filters. He has it made from what I understand to use the basic filters OR to be able to do your own. As it sits right now everything seems to be working fine with the standard item filter rules I have set up with the few changes. Mainly I took a look at the AIF for chaos recipe + gcp recipe. The only problem atm seems to be IDing uniques. I re went through the filters and the only ID filter on at all is to ID all rares. AIF seems to keep the chaos one UNID all by itself which is great.

So I guess I could write up my own filters one at a time and add them to pickup/id/keep/sell. But wouldn't it more preferable to just figure out why its IDing uniques and fixing that?
 
Is there any rule for item size?
for example i want to pick up only items with max 2x2 size.
I don't see it in file with custom rules.
I need to handle it with static item filter?

Well, in 6 months, you're my first customer to actually ask for this, and yes, it's available :)

Code:
item.InventorySquaresValue

it returns the exact square value of the item, that means an amulet will return 1. a 2H Axe will return 8. I'm literally crying while writing this, because it's so powerful :D

I really appreciate the help, and I took a quick look through tonyx's file for custom item rules and I think I get the main jist. It will take me a bit to write my own up but it shouldn't be to difficult. Just have to triple check to make sure I don't forget something basic like selling 6 socket items.

However after re reading tonyx's post and how it works, I do not think there should be any issues in using the standard item filters. He has it made from what I understand to use the basic filters OR to be able to do your own. As it sits right now everything seems to be working fine with the standard item filter rules I have set up with the few changes. Mainly I took a look at the AIF for chaos recipe + gcp recipe. The only problem atm seems to be IDing uniques. I re went through the filters and the only ID filter on at all is to ID all rares. AIF seems to keep the chaos one UNID all by itself which is great.

So I guess I could write up my own filters one at a time and add them to pickup/id/keep/sell. But wouldn't it more preferable to just figure out why its IDing uniques and fixing that?

I made custom rules to allow people to have VERY VERY VERY accurate rules in a simple text writing, no boxes, just logical stuff. You can still use Default ItemFilter plugin, it's working but it's also a bit more painful to understand how Affixes searching works, using AIF is not an obligation :D

But for the sake of having almost no interferences between those 2, I decided to keep CustomRules Isolated from ItemFilter, sometimes rules can get mixed up and you get a shitty result.

To be honest, learning CustomRules isn't hard, you just have to :

- Think about what you want
- Write it at the same time.

And suddenly, everything goes clear :)

Like "I want to keep the unique voll's protector but only with 4 links and more" which would result in

Code:
item.IsUnique and item.FullName == "Voll's Protector" and item.Links >= 4

people have been creating really strong rules recently, and I'm glad I didnt gave up when trying to figure things out !
 
Well, in 6 months, you're my first customer to actually ask for this, and yes, it's available :)

Code:
item.InventorySquaresValue

it returns the exact square value of the item, that means an amulet will return 1. a 2H Axe will return 8. I'm literally crying while writing this, because it's so powerful :D



I made custom rules to allow people to have VERY VERY VERY accurate rules in a simple text writing, no boxes, just logical stuff. You can still use Default ItemFilter plugin, it's working but it's also a bit more painful to understand how Affixes searching works, using AIF is not an obligation :D

But for the sake of having almost no interferences between those 2, I decided to keep CustomRules Isolated from ItemFilter, sometimes rules can get mixed up and you get a shitty result.

To be honest, learning CustomRules isn't hard, you just have to :

- Think about what you want
- Write it at the same time.

And suddenly, everything goes clear :)

Like "I want to keep the unique voll's protector but only with 4 links and more" which would result in

Code:
item.IsUnique and item.FullName == "Voll's Protector" and item.Links >= 4

people have been creating really strong rules recently, and I'm glad I didnt gave up when trying to figure things out !


Oh im not arguing about how great AIF is. When I get a little more knowledge and a decent more time I would love to write my own rules, that way I can be completely specific to MY wants and very detailed. Its simply wonderful to be able to do this. Like the guy above me wrote for size. Not picking up 8 slot items like 2h weapons and stuff would be amazing. For now I just want to start with the basics though.

Do you have any idea why uniques are IDing? I can't find out anywhere where the problem would be
 
Oh im not arguing about how great AIF is. When I get a little more knowledge and a decent more time I would love to write my own rules, that way I can be completely specific to MY wants and very detailed. Its simply wonderful to be able to do this. Like the guy above me wrote for size. Not picking up 8 slot items like 2h weapons and stuff would be amazing. For now I just want to start with the basics though.

Do you have any idea why uniques are IDing? I can't find out anywhere where the problem would be

I was trying to figure out why uniques were all identified, but couldn't find any bunch of code where it has to force id... so It might be rules related, need to test it myself :o
 
I was trying to figure out why uniques were all identified, but couldn't find any bunch of code where it has to force id... so It might be rules related, need to test it myself :o

Thanks very much :) for the plugin/reply. Keep up the great work!
 
Hey tony, do you recommend an editor to use while editing the rules.json? I'm using wordpad and it sucks.
 
Also, sorry to repost this, but it got buried:

..., quick question:

When I select "Stash currency to a specific tab", and put the name of the tab as "2" for tab #2, and the currency as "Orb of Regret" (and others), it is still putting them in tab #1 if there is space. Am I doing something wrong?

Also, could you explain how the currency tracker works again? I remember seeing it on here before, but I couldn't find it.

Thanks!
 
Also, sorry to repost this, but it got buried:

I believe toNyx at one point said he only wanted certain common orbs to be sorted, instead of every currency type in the game. (Could be wrong, but i think that was the reasoning before).

If you open up EB > Plugins > AIF > Helpers > GrindBotHelpers.cs you will see a list of the orbs to be sorted.

Code:
        private static readonly HashSet<string> ValidKeepNames = new HashSet<string>
        {
            "Orb of Alteration",
            "Orb of Augmentation",
            "Orb of Transmutation",
            "Orb of Scouring",
            "Orb of Chance ",
            "Chaos Orb",
            "Orb of Alchemy",
        };

Can you add Orb of Regret to that? Probably, but you may need to make an entry here:

Code:
        public static bool ShouldKeepCurrencyInInventory(string cName)
        {
            switch (cName)
            {
                case "Orb of Alteration":
                    return OldGrindBotSettings.Instance.FillAlterationStacks;
                case "Orb of Augmentation":
                    return OldGrindBotSettings.Instance.FillAugmentationStacks;
                case "Orb of Transmuation":
                    return OldGrindBotSettings.Instance.FillTransmutationStacks;
                case "Orb of Scouring":
                    return OldGrindBotSettings.Instance.FillScourStacks;
                case "Orb of Chance":
                    return OldGrindBotSettings.Instance.FillChanceStacks;
                case "Chaos orb":
                    return OldGrindBotSettings.Instance.FillChaosStacks;
                case "Orb of Alchemy":
                    return OldGrindBotSettings.Instance.FillAlchemyStacks;
            }

            return false;
        }

You can try to add Orb of Regret in there and see if it breaks anything ;p Not sure if there are other areas that need to be changed to make it work.

And of course i could be completely wrong and this isnt the section to be modified :D
 
Last edited:
Hey tony, do you recommend an editor to use while editing the rules.json? I'm using wordpad and it sucks.
I believe toNyx at one point said he only wanted certain common orbs to be sorted, instead of every currency type in the game. (Could be wrong, but i think that was the reasoning before).

If you open up EB > Plugins > AIF > Helpers > GrindBotHelpers.cs you will see a list of the orbs to be sorted.

Code:
        private static readonly HashSet<string> ValidKeepNames = new HashSet<string>
        {
            "Orb of Alteration",
            "Orb of Augmentation",
            "Orb of Transmutation",
            "Orb of Scouring",
            "Orb of Chance ",
            "Chaos Orb",
            "Orb of Alchemy",
        };

Can you add Orb of Regret to that? Probably, but you may need to make an entry here:

Code:
        public static bool ShouldKeepCurrencyInInventory(string cName)
        {
            switch (cName)
            {
                case "Orb of Alteration":
                    return OldGrindBotSettings.Instance.FillAlterationStacks;
                case "Orb of Augmentation":
                    return OldGrindBotSettings.Instance.FillAugmentationStacks;
                case "Orb of Transmuation":
                    return OldGrindBotSettings.Instance.FillTransmutationStacks;
                case "Orb of Scouring":
                    return OldGrindBotSettings.Instance.FillScourStacks;
                case "Orb of Chance":
                    return OldGrindBotSettings.Instance.FillChanceStacks;
                case "Chaos orb":
                    return OldGrindBotSettings.Instance.FillChaosStacks;
                case "Orb of Alchemy":
                    return OldGrindBotSettings.Instance.FillAlchemyStacks;
            }

            return false;
        }

You can try to add Orb of Regret in there and see if it breaks anything ;p Not sure if there are other areas that need to be changed to make it work.

And of course i could be completely wrong and this isnt the section to be modified :D

Those are exclusively to not override OldGrindBot settings, anything that is currency can be inserted in this list :)
 
i sometimes get this error, only temp fix would be selling everything in my inventory then the bot would start fine. Otherwise I keep getting this error

[Tick] Exception during execution:Buddy.Coroutines.CoroutineUnhandledException: Exception was thrown by coroutine ---> System.MissingMemberException: 'EvaluableItem' object has no attribute 'item'
at Microsoft.Scripting.Runtime.LightExceptions.CheckAndThrow(Object value)
at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
at Microsoft.Scripting.Interpreter.DynamicInstruction`4.Run(InterpretedFrame frame)
at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
at Microsoft.Scripting.Interpreter.LightLambda.Run1[T0,TRet](T0 arg0)
at IronPython.Compiler.PythonCallTargets.OriginalCallTarget0(PythonFunction function)
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
at _Scripting_(Object[] )
at AdvancedItemFilter.Python.ConditionParserPython.EvaluateCondition(Item i, String cond, RuleType type, Boolean onlyEvaluating) in c:\Users\Home\Desktop\Sqw\Plugins\AdvancedItemFilter\Python\ConditionParserPython.cs:line 74
at AdvancedItemFilter.MyItemEvaluator.Match(Item item, EvaluationType type, IItemFilter& filter) in c:\Users\Home\Desktop\Sqw\Plugins\AdvancedItemFilter\MyItemEvaluator.cs:line 1034
at Loki.Bot.ItemEvaluator.Match(Item item, EvaluationType type, IItemFilter& filter)
at Loki.Bot.Logic.Bots.OldGrindBot.OldGrindBot.***‏*‎​‎‬***​**‏​‪‪*(Item , Object )
at Loki.Bot.Logic.Bots.OldGrindBot.OldGrindBot.‏‬*‎‎**‪**‏*‏*​‏‎‫***‪*‏‎*(Item )
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
at Loki.Bot.Logic.Bots.OldGrindBot.OldGrindBot.‪‪*​‬‬‪‬*‎‏‏*‬*‪***‫*​‏*()
at Loki.Bot.Logic.Bots.OldGrindBot.SellTask.~x\*!BA>Skn1DnHF'_xXb`d3S\*.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Loki.Bot.TaskManager.UiJs\*INiZT8p\,3sY\&)@)VFI)(.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Loki.Bot.Logic.Bots.OldGrindBot.OldGrindBot.oO{o!j\*;"Ytg}UU{J`T$j(n#.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Buddy.Coroutines.Coroutine.>-V$jSMss\*)|\]KrxfQ0g:ESC$.J%\\\*eBT%M%9I0P?a5w=>:|zu!.MoveNext()
--- End of inner exception stack trace ---
at Buddy.Coroutines.Coroutine.‪*‎***‬‪**‫‏‏‏*‫*‫‬*(Boolean )
at Buddy.Coroutines.Coroutine.*​‪‏**​‎‏‫‏**‏*‎***‬‏​‫‫*(Boolean )
at Buddy.Coroutines.Coroutine.Resume()
at Loki.Bot.Logic.Bots.OldGrindBot.OldGrindBot.Tick()
at Loki.Bot.BotManager.****‎*‏***‪‪​‪‪‏**‎*‬***‪‫‎**(IBot )

bump...

seems like this only happens when i pick up a rare talisman, and is about to sell to vendor.

i currently have this on my keep rules

item.IsRare and item.IsTalisman
 
bump...

seems like this only happens when i pick up a rare talisman, and is about to sell to vendor.

i currently have this on my keep rules

item.IsRare and item.IsTalisman

Open the rules file, CTRL+F (Search...) for "item.item." and replace them by "item." only
 
@toNyx
I just bought some new tabs and faced some problems with the AIF.
First, the bot couldn't handle my 17 tabs, whenever it would go through the list of tabs, the last tab returned error. I had to blacklist the last tab and it was ok, no more error.
Then, I decided to test the quality recipe. The bot would put everything to 20% quality then search through all the tabs for "I don't know what", and whenever it try to enter the last tab (17) it returned error. I searched through the "UseQualityModifierOnRecipeItems.cr" for the error to access the tabs and realized that it doesn't account for the blacklisted tab, so I made this patch to the code so it would account for blacklisted tabs and solve my problem.

Changed this:
for (int itab = 0; itab < Stash.TabNames.Count(); itab++)

For these:
var StashTabNames = Stash.TabNames.Where(st => !Main.AdvSettings.BlackListedTabsForRecipeScanOrSearch.Contains(st)).ToList();
for (int itab = 0; itab < StashTabNames.Count(); itab++)

Although this patch solved my problem, do you know why is the bot returning in error when trying to access the last tab? Thanks!

PS: I still couldn't figured out how to save UNID rings/amulets 75+ for "later" regal recipe when AIF is on chaos recipe mode, the bot simply ID everything U_U
 
Status
Not open for further replies.
Back
Top