kolton / d2bot-with-kolbot

d2bot game manager by D3STROY3R with kolbot libs by kolton for d2bs
345 stars 332 forks source link

stashing items unidentified #2949

Closed Butterz51 closed 3 years ago

Butterz51 commented 3 years ago

Hi I'm having a problem with the bot picking unique items like (rings, amulets & armors), the bot puts them in the stash unidentified so I end up having to identify the items myself and it turns out the items are not on my pickit list or not to my specs, is there a way I can force the identify command before the bot goes to the stash. I have tried [flag] == identified but that seems to not work at all in the .nip file.

Oregon-Snake commented 3 years ago

you need to comment something lik # [strength] == 5 && [fireresist] >= 27 // mara

or [lifeleech] >= 5

the bot would have to identify whatever it is to know if the LL is 5% or if the res on a maras was higher than 27 in these cases, depending on the scripts you have or what you want your bot to keep

Butterz51 commented 3 years ago

this is right out of my nip file. [Type] == amulet && [Quality] == unique # [Strength] == 5 && [ColdResist] <= 30 // Mara's Kaleidoscope it will take the amulet put it in the stash but wont identify it to make sure its the right one most times its not even the Mara's Kaleidoscope amulet its something else.

Nip File. https://pastebin.com/0hpEtZN6

Oregon-Snake commented 3 years ago

Is it rings, amulets, or what that it is stashing?

Butterz51 commented 3 years ago

example: [Type] == ring && [Quality] == unique # [ItemMagicBonus] <= 30 && [attackrate] <= 75 // Nagelring telling bot to pick up all Nagel rings. so bot does pick up a ring thinking its a Nagel ring puts it in the stash unidentified. I have to pause the bot so I can identify the ring. after I identify the ring it shows it as a Manald Heal Ring. so it's the wrong item that could have been found by the bot if it identified the item before stashing it.

This happens with all unique items on the list.

Oregon-Snake commented 3 years ago

Try copy and pasting my scripts, see if that works. My bots identify almost everything. Does it only happen with uniques?

// ==unique== [name] == ring && [quality] == unique # [itemmaxmanapercent] == 25 // soj //[name] == ring && [quality] == unique # [maxstamina] == 50 && [lifeleech] >= 3 // bk //[name] == ring && [quality] == unique # [itemmagicbonus] == 30 // nagel [name] == ring && [quality] == unique # [itemabsorblightpercent] >= 20 || [itemmagicbonus] >= 20 && [itemabsorblightpercent] >= 10 // wisp [name] == ring && [quality] == unique # [dexterity] == 20 && [tohit] == 250 // raven //[name] == ring && [quality] == unique # [maxhp] == 40 && [magicdamagereduction] == 15 // dwarf

// ==unique== [name] == amulet && [quality] == unique # [strength] == 5 && [fireresist] >= 30 // mara //[name] == amulet && [quality] == unique # [lightresist] == 35 // highlord //[name] == amulet && [quality] == unique # [dexterity] == 25 // cat's eye [name] == amulet && [quality] == unique # [tohit] >= 450 && [plusdefense] >= 350 && [fireresist] >= 35 // metalgrid

// ==unique== [name] == duskshroud && [quality] == unique && [flag] != ethereal # [passivecoldmastery] == 15 && [skillblizzard] == 3 //ormus [name] == duskshroud && [quality] == unique && [flag] != ethereal # [passivefiremastery] == 15 && [skillfireball] == 3 //ormus [name] == duskshroud && [quality] == unique && [flag] != ethereal # [passiveltngmastery] == 15 && ([skilllightning] == 3 || [skillnova] == 3) //ormus //[name] == duskshroud && [quality] == unique # [skillenergyshield] == 3 //ormus [name] == wirefleece && [quality] == unique && [flag] == ethereal # [enhanceddefense] >= 200 // gladiator's bane [name] == balrogskin && [quality] == unique && [flag] == ethereal # [itemallskills] == 2 && [enhanceddefense] >= 180 // arkaine's valor [name] == krakenshell && [quality] == unique # [enhanceddefense] >= 200 && [damageresist] == 25 && [plusdefense] == 150 && [strength] == 50 // leviathan [name] == shadowplate && [quality] == unique && [flag] == ethereal # [enhanceddefense] >= 220 && [coldresist] == 60 && [normaldamagereduction] == 14 // steel carapace [name] == sacredarmor && [quality] == unique && [flag] == ethereal # [enhanceddefense] >= 220 // templar's might [name] == sacredarmor && [quality] == unique # [strength] >= 20 // tyrael's might [name] == serpentskinarmor && [quality] == unique # [fireresist] == 35 && [magicdamagereduction] == 13 // skin of the vipermagi [name] == wyrmhide && [quality] == unique # [defense] == 1034 // skin of the vipermagi x1 [name] == demonhidearmor && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 190 // skin of the flayed one eth [name] == linkedmail && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 160 // spirit forge eth [name] == cuirass && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 200 // duriel's shell eth [name] == tigulatedmail && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 180 // crow caw eth [name] == mesharmor && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 220 // shaftstop eth [name] == russetarmor && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 200 // skullder's eth [name] == templarcoat && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 200 // guardian angel eth [name] == sharktootharmor && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 220 // toothrow [name] == krakenshell && [quality] == unique && [flag] == ethereal # [defense] >= 2500 // toothrow x1 [name] == chaosarmor && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 200 // black hades

// ==unique== //[name] == spikedshield && [quality] == unique # [enhanceddefense] == 60 // swordback hold [name] == spikedshield && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 60 // swordback hold eth [name] == monarch && [quality] == unique # [defense] == 148 // stormshield //[name] == trollnest && [quality] == unique && [flag] == ethereal # [sockets] == 3 // head hunter's glory //[name] == defender && [quality] == unique # [enhanceddefense] == 150 // visceratuant [name] == roundshield && [quality] == unique # [enhanceddefense] == 220 // moser [name] == barbedshield && [quality] == unique && [flag] == ethereal # [enhanceddefense] == 120 // lanceguard eth //[name] == grimshield && [quality] == unique # [enhanceddefense] == 130 && [itemmanaafterkill] == 5 // lidless wall

// ==unique== //[name] == sallet && [quality] == unique && [flag] == ethereal # [enhanceddefense] >= 210 // rockstopper [name] == grandcrown && [quality] == unique && [flag] != ethereal # [itemgoldbonus] >= 100 && [enhanceddefense] >= 200 && [lifeleech] >= 12 //crown of thieves [name] == grandcrown && [quality] == unique && [flag] == ethereal # [itemgoldbonus] >= 100 // crown of thieves eth [name] == grimhelm && [quality] == unique && [flag] == ethereal # [lifeleech] == 8 && [manaleech] == 8 && [magicdamagereduction] == 15 && [damageresist] >= 20 // vampgaze eth [name] == shako && [quality] == unique && [flag] != ethereal # [defense] == 141 // harlequin crest [name] == spiredhelm && [quality] == unique # [passivecoldmastery] == 15 // nightwing's veil [name] == demonhead && [quality] == unique && [flag] != ethereal # [strength] == 30 && [enhanceddefense] == 150 // andariel's visage [name] == demonhead && [quality] == unique && [flag] == ethereal // andariel's visage [name] == corona && [quality] == unique // crown of ages //[name] == bonevisage && [quality] == unique # [sockets] == 2 && [strength] == 35 // giant skull

//-------------circlets----------------

// ==white==

// ==unique== [name] == tiara && [quality] == unique # [fireresist] == 70 && [plusdefense] == 120 //kira's guardian [name] == diadem && [quality] == unique // griffon's eye

//----------------boots--------------

// ==white==

// ==unique== //[name] == lightplatedboots && [quality] == unique && [flag] != ethereal # [enhanceddefense] == 60 // goblin toe //[name] == battleboots && [quality] == unique && [flag] == identified // # [defense] == 90 // goblin toe x1 //[name] == mirroredboots && [quality] == unique && [flag] == identified # [defense] == 123 // goblin toe x2 [name] == warboots && [quality] == unique && [flag] != ethereal # [enhanceddefense] == 200 // gore rider [name] == myrmidongreaves && [quality] == unique && [flag] == identified # [defense] == 213 // gore rider x1 [name] == scarabshellboots && [quality] == unique && [flag] == ethereal # [strength]+[vitality] == 30 // sandstorm trek //[name] == boneweaveboots && [quality] == unique && [flag] != ethereal # [strength] == 20 // marrowwalk [name] == myrmidongreaves && [quality] == unique && [flag] != ethereal # [shadowdisciplinesskilltab] == 2 && [dexterity] == 25 // shadow dancer [name] == demonhideboots && [quality] == unique && [flag] != ethereal # [itemgoldbonus] == 70 && [enhanceddefense] == 150 // infernostride [name] == wyrmhideboots && [quality] == unique && [flag] != ethereal # [defense] == 170 // infernostride x1 [name] == sharkskinboots && [quality] == unique && [flag] != ethereal # [maxhp] == 65 && [enhanceddefense] == 210 //waterwalk [name] == scarabshellboots && [quality] == unique && [flag] != ethereal # [maxhp] == 65 && [defense] == 201 // waterwalk x1 [name] == battleboots && [quality] == unique && [flag] != ethereal # [itemmagicbonus] >= 50 || [enhanceddefense] >= 190 //war traveler [name] == boots && [quality] == unique && [flag] != ethereal # [enhanceddefense] == 20 // hotspur [name] == demonhideboots && [quality] == unique && [flag] != ethereal # [enhanceddefense] == 20 // && [defense] == 48 //hotspur x1 [name] == wyrmhideboots && [quality] == unique && [flag] != ethereal # [defense] == 80 // hotspur x2

Butterz51 commented 3 years ago

thats right only with the uniques it happens

Butterz51 commented 3 years ago

cant tell you about charms bc it hasn't found any yet

Oregon-Snake commented 3 years ago

So it seems like it isnt with the bot identifying items, which is far as I'm aware is by a line by line basis per item, but rather the script isnt telling the bot to identify any uniques. One thing I did when I was first starting, dumb mistake, I would change script and nnot save it so essentially the bot was still running the old script and not identifying to see if a ring was a BK with >= 5 Life Leech for example.

Oregon-Snake commented 3 years ago

you might try this as well to see if there are any Syntax problems

https://github.com/blizzhackers/pickits/tree/master/nipcheck#nipcheck

Butterz51 commented 3 years ago

Script has been saved and bot restarted but no change I'm thinking maybe pickit.js or town.js I have done the NIP Checker 0 errors it said.

Oregon-Snake commented 3 years ago

Config.PickitFiles.push("kolton.nip"); Config.PickitFiles.push("LLD.nip");

you may want to replace LLD.nip with Unique.nip found here (download into your pickit folder)

https://github.com/blizzhackers/pickits/tree/master/d2nt/normal

or copy the scripts line by line to replace Unique lines in your kolton.nip file

Oregon-Snake commented 3 years ago

I dont have a pickit.js, or not one Im seeing in the pickit folder, it is using kolton.nip to decide what to keep or sell/toss

Butterz51 commented 3 years ago

ill give it a shot but I don't think it will solve the problem. "https://github.com/blizzhackers/pickits/tree/master/d2nt/normal"

Butterz51 commented 3 years ago

hasn't changed even with the script you linked to.

Butterz51 commented 3 years ago

this is from my config: // Item identification settings Config.CainID.Enable = true; // Identify items at Cain Config.CainID.Drop = false; // drop items identified at Cain Config.CainID.MinGold = 0; // Minimum gold (stash + character) to have in order to use Cain. Config.CainID.MinUnids = 1; // Minimum number of unid items in order to use Cain. Config.FieldID = false; // Identify items in the field instead of going to town. Config.DroppedItemsAnnounce.Enable = false; // Announce Dropped Items to in-game newbs Config.DroppedItemsAnnounce.Quality = []; // Quality of item to announce. See NTItemAlias.dbl for values. Example: Config.DroppedItemsAnnounce.Quality = [6, 7, 8];

Oregon-Snake commented 3 years ago

It may not be identifying them because it is set to ID with cain. Why it isnt IDing with cain I dont know. try changing that to false

Oregon-Snake commented 3 years ago

try using my kolton.nip

kolton.zip

just replace your kolton.nip in your pickit folder

Butterz51 commented 3 years ago

trying the first option since i have tried different pickits

Butterz51 commented 3 years ago

so been looking in the town.js file and found: // Do town chores doChores: function (repair = false) { if (!me.inTown) { this.goToTown(); }

    var i,
        cancelFlags = [0x01, 0x02, 0x04, 0x08, 0x14, 0x16, 0x0c, 0x0f, 0x19, 0x1a];

    Attack.weaponSwitch(Attack.getPrimarySlot());

    this.heal();
    this.identify();
    this.shopItems();
    this.fillTome(518);

    if (Config.FieldID) {
        this.fillTome(519);
    }

    this.buyPotions();
    this.clearInventory();
    Item.autoEquip();
    this.buyKeys();
    this.repair(repair);
    this.gamble();
    this.reviveMerc();
    Cubing.doCubing();
    Runewords.makeRunewords();
    this.stash(true);
    this.clearScrolls();

maybe where it says " this.identify(); " It needs a true added in " this.identify(true); "

Oregon-Snake commented 3 years ago

first of all, is it buying town pown portals or potions? cause neither of those say true. Second, I doubt that is it because my bots identify everything just fine and this is my section of the safe file:

doChores: function (repair = true) { if (!me.inTown) { this.goToTown(); }

    var i,
        cancelFlags = [0x01, 0x02, 0x04, 0x08, 0x14, 0x16, 0x0c, 0x0f, 0x19, 0x1a];

    Attack.weaponSwitch(Attack.getPrimarySlot());

    this.heal();
    this.identify();
    this.shopItems();
    this.fillTome(518);

    if (Config.FieldID) {
        this.fillTome(519);
    }

    this.buyPotions();
    this.clearInventory();
    Item.autoEquip();
    this.buyKeys();
    this.repair(repair);
    this.gamble();
    this.reviveMerc();
    Cubing.doCubing();
    Runewords.makeRunewords();
    this.stash(true);
Butterz51 commented 3 years ago

well, I'm just looking for a solution to it! not sure why this is only doing it to unique items.

Oregon-Snake commented 3 years ago

I would delete your folder and redownload it and start from scratch. Not ideal, but it may be the only way I know of

Oregon-Snake commented 3 years ago

did you fix the issue?

Butterz51 commented 3 years ago

no, I haven't I want to try and fix it though so I guess harder google searches will be a thing.

Oregon-Snake commented 3 years ago

did you re-download the bot files to start from scratch?

Butterz51 commented 3 years ago

so here is an update on the status it is now identifying the items I made no changes to any files!. this is weird the only thing I did was restart my pc but every time I made a change with the pickits I restarted the bot. so I don't get it at all! just weird

Oregon-Snake commented 3 years ago

I seriously wont if the changes you had made were fine, but the file was never changed, regardless, glad it's working now