kolton / d2bot-with-kolbot

d2bot game manager by D3STROY3R with kolbot libs by kolton for d2bs
346 stars 333 forks source link

Do i have to specify ethereal in my pickit code? #877

Open Jakfox91 opened 5 years ago

Jakfox91 commented 5 years ago

So there are lines like the example here: [Name] == Demonhead && [Quality] == unique && [Flag] == ethereal # [EnhancedDefense] >= 100 && [LifeLeech] >= 8 && [Strength] >= 25 // Andariel's Visage

And then there are other lines like:

[Name] == Shako && [Quality] == unique # [Defense] >= 98 // Harlequin Crest

So my question lies in the: ''[Flag] == ethereal'' part. I know that the code uses the code == for it to BE etheareal to pick it up. And that you will have to write != for it to NOT be etheareal to be picked up.

But in the example of shako it doesnt specify anything, will any shako no matter it being ethereal or not be picked up then?

DarkHorseDre commented 5 years ago

any shako no matter it being ethereal or not will be picked up

justinpees commented 5 years ago

So there are lines like the example here: [Name] == Demonhead && [Quality] == unique && [Flag] == ethereal # [EnhancedDefense] >= 100 && [LifeLeech] >= 8 && [Strength] >= 25 // Andariel's Visage

And then there are other lines like:

[Name] == Shako && [Quality] == unique # [Defense] >= 98 // Harlequin Crest

So my question lies in the: ''[Flag] == ethereal'' part. I know that the code uses the code == for it to BE etheareal to pick it up. And that you will have to write != for it to NOT be etheareal to be picked up.

But in the example of shako it doesnt specify anything, will any shako no matter it being ethereal or not be picked up then?

in a nutshell, its best to assume that the default value is [flag] != ethereal which is why you never pick up random eth uniques.

i think whats important is whether you are keeping all shakos unid. If you are, then i believe you must specify both using two different pickit lines like below:

[name] == shako && [quality] == unique [name] == shako && [quality] == unique && [flag] == ethereal

i think its always best practice to do it like this. Someone plz correct me if im wrong or if this is a bad habit of mine.

i always had a feeling that if "[flag] == ethereal" is NOT mentioned at all, then by default it would ignore eth items. Meaning that if [flag] is not mentioned at all then by default it would use: [flag] !=ethereal. Which makes sense since you never pick up any ethereal uniques like gores or wtv even tho the [flag] isnt specified

Tubs557 commented 5 years ago

I am also wondering about. I always assumed what DarkHorseDre said but can any confirm it?

DarkHorseDre commented 5 years ago

yes, [flag] != ethereal will not save ethereal items.

The pickit tests each line explicitly and matches upon what it finds and nothing else.

so if you have both lines: [name] == shako && [quality] == unique [name] == shako && [quality] == unique && [flag] == ethereal pickit will store both. But equally, you can have 1 line to accomplish both: [name] == shako && [quality] == unique

Ethereal is a value of parameter flag. unid is/was a parameter but I cannot access my files from where i am and do not see any references online for it atm. ultimately, if you can store an item based upon base stats without id'ing, then bot wont id. usually you specify item type or name and quality type and bot will keep them all.

So, if you want to shako that has a certain value against a parameter which is only known when id'd, then bot will id to ascertain the value. example: [Name] == Shako && [Quality] == unique # [Defense] >= 98 to know that the defense is >= 98, it needs to be id'd, and will be every-time.

To pick unid shako, *simply specify the base item and nothing else. bot will store what it finds (item named shako and quality unique - both known without id'ing): [Name] == Shako && [Quality] == unique

so, if you specify [flag] == ethereal then you're telling the bot to save items which are ethereal. non eth will not be saved (and vice versa for [flag] != ethereal

*I swear there was a parameter for unid but cant find right now and may be prior to koltot. it doesn't matter as what I said above works.

BabyStewStew commented 4 years ago

So forgive my ignorance but does the ! cause it to not pick up ethereal items or to pick up both eth and non eth? I am trying to pickit Vortex shields both eth and non eth.

DarkHorseDre commented 4 years ago

'!=' means 'not equal to

if you want to pickup both, don't mention eth and it will pick both

e.g. '[Name] == Shako && [Quality] == unique' both eth and non-eth will be selected as nothing in that line mentions that flag.

BabyStewStew commented 4 years ago

Ok, thanks! I wanted to avoid any bot confusion so listed it as such: [name] == vortexshield && [quality] <= superior # [sockets] == 4 # [maxquantity] == 2. That should do the trick I would assume?

DarkHorseDre commented 4 years ago

yes - will pick eth and non-eth vortex shields superior or less with 4 sox (will also pick vortex with or without any res or any other stat as you havent listed it)

BabyStewStew commented 4 years ago

Perfect, thanks for breaking it down Barney style for me!

DarkHorseDre commented 4 years ago

lol nah it's not that mate - just helping you get the fundamentals. once you get that you can expand it and build your own pickits as it's not code, just notation/logic. GL!