Script idea/request - quest/tower items

I don't know if requests are allowed here, but I was thinking it might be handy to have something that checked whether or not you had various required/possibly needed items. The tower ones are primarily what I'm thinking of at this point.

Ideally you'd run the script and it would check your inventory, storage if softcore and list what you have, if desired, what you don't have yet, what you're capable of getting and what you can't get yet. Output like the following would be sort of what I'm looking for:

Black pepper (unknown) - NONE, location not unlocked (Black Forest), (13 in storage)
Chaos butterfly (unknown) - 1 (inventory)
Photoprotoneutron torpedo (tower level 4) - NONE, (27 in storage)
Sonar-in-a-biscuit (tower level 2) - NONE, location unlocked (Guano Junction), (0 in storage)

Does this seem easily doable and useful? Output could be tweaked a bit but that's the general idea.
 

mredge73

Member
Mine is designed for HC and is BM friendly, I only ascend HC.
It is designed to keep you from loosing needed items during ascension by mistakenly selling or using the items.
It places all needed NS items that are in the inventory to the closet, it doesn't even consider permanent storage.
 

Theraze

Active member
BM, your closet is gone, your storage is gone, your case is gone, your clan stash is gone... Everything (including familiars) is new every time. Meaning you have to adventure for it, you can't pre-prep it.

Unless I've missed something, in which case I'll be heartily overjoyed. :D And annoyed at myself.
 

Winterbay

Active member
Even in BM you can still put things in your closet that you find while adventuring to avoid using them up my misstake, which is what this script does I think.
 

Theraze

Active member
True... the way I initially read the wording on it was that it put it there for next time.

Still doesn't help though when the torpedo doesn't drop or I don't have any black pepper because my picnic baskets weren't friendly or the like.

Edit: Something sort of like Sandiman's ascensionChecklist, with automatic parsing for telescope items if at that point... At least that one tells you what you have and what you need. Doesn't auto-adventure for you or tell you where to go. Wasn't zarqon working on obtain_item? Thought he said so, but it was going to be a major endeavour.
 
Last edited:

mredge73

Member
Still doesn't help though when the torpedo doesn't drop or I don't have any black pepper because my picnic baskets weren't friendly or the like.
Nope, sure won't.
I am not sure what you are looking for, I don't know of any script that can materialize an item in HC if the rng won't drop them.
ascensionChecklist works well for stocking items in storage pre-softcore ascension but is completely useless in HC.


If you need help finding an item that can be dropped by a monster, this little function by Z and Rinn works great. It does not work for items that can only be obtained from other items (like the black pepper).
Code:
location[monster] find_item_location(item to_find)
 {
   location[monster] locs;
   foreach l in $locations[]
      foreach num,m in get_monsters(l)
         foreach i in item_drops(m)
            if (to_find == i) locs[m] = l;
   print("The following monsters drop "+to_find+":");
   foreach m in locs print(m+" found in "+locs[m]);
   return locs;
}
 

slyz

Developer
I have this aliased to find out where to find an item (I think Zarqon posted it):
Code:
alias wheretofind => ashq location[monster] locs ; foreach l in $locations[] foreach num,m in get_monsters(l) foreach i in item_drops(m) if (i == to_item("%%")) locs[m] = l; print("The following monsters drop "+to_item("%%")+":"); foreach m in locs print(m+" found in "+locs[m]);
 

Theraze

Active member
Interesting... was looking into command line ways to find out what the zapgroups are and there's SORT of a way to do it... get_related is SUPPOSED to work... but never did when I was trying. However, cheapest and expensive will both give you the zapgroup, if you put + on the front...
> expensive + "boris's key lime pie"

Searching for "jarlsberg's key lime pie"...
Searching for "sneaky pete's key lime pie"...
Boris's key lime pie @ 3,700
Jarlsberg's key lime pie @ 3,570
Sneaky Pete's key lime pie @ 2,840
Requests complete.

> expensive +"boris's key lime pie"

Boris's key lime pie @ 3,700
Jarlsberg's key lime pie @ 3,570
Sneaky Pete's key lime pie @ 2,840

> cheapest +"boris's key lime pie"

Sneaky Pete's key lime pie @ 2,840
Jarlsberg's key lime pie @ 3,570
Boris's key lime pie @ 3,700

As you can see, it hits once, then uses cached mall prices... Don't think there's anything (that I can figure out how to make work) besides those two commands to check zapgroups otherwise. Just remember to put the + on front, either with or without a space, with or without the quotation marks.

In the case of black pepper, that can't be found using monster drops directly, you can find its zapgroup with cheapest and then wheretofind on them...
> cheapest +black pepper

black pepper @ 100
ancient spice @ 250
dehydrated caviar @ 385

> wheretofind ancient spice

The following monsters drop ancient spice:

> wheretofind dehydrated caviar

The following monsters drop dehydrated caviar:
Floating Platter of Hors D'Oeuvres found in Haunted Ballroom
 

slyz

Developer
You can also use get_related( item, "zap" ):
Code:
> ashq int [ item ] group = get_related( $item[ black pepper ], "zap" ); foreach it in group print(it);

ancient spice
dehydrated caviar

EDIT: I just saw you mentioned get_related() in your post. What was the problem?

EDIT2: and a little alias of course:
Code:
alias zgroup => ashq int [ item ] group = get_related(to_item( "%%" ), "zap" ); foreach it in group print(it);
alias fgroup => ashq int [ item ] group = get_related(to_item( "%%" ), "fold" ); foreach it in group print(it);
Code:
> zgroup black pepp

ancient spice
dehydrated caviar

> fgroup stinky cheese diaper

Staff of Queso Escusado
stinky cheese diaper
stinky cheese eye
stinky cheese sword
stinky cheese wheel
 
Last edited:

Theraze

Active member
So, I'm trying to combine the two together... This should work...
Code:
alias zfind => ashq location[monster] locs; int [ item ] group = get_related(to_item( "%%" ), "zap" ); foreach l in $locations[] foreach num,m in get_monsters(l) foreach i in item_drops(m) if (i == to_item("%%")) locs[m] = l; print("The following monsters drop "+to_item("%%")+":"); foreach m in locs print(m+" found in "+locs[m]); foreach it in group { foreach l in $locations[] foreach num,m in get_monsters(l) foreach i in item_drops(m) if (i == to_item(it)) locs[m] = l; print("The following monsters drop "+to_item(it)+":"); foreach m in locs print(m+" found in "+locs[m]);}
 
alias ffind => ashq location[monster] locs; int [ item ] group = get_related(to_item( "%%" ), "fold" ); foreach l in $locations[] foreach num,m in get_monsters(l) foreach i in item_drops(m) if (i == to_item("%%")) locs[m] = l; print("The following monsters drop "+to_item("%%")+":"); foreach m in locs print(m+" found in "+locs[m]); foreach it in group { foreach l in $locations[] foreach num,m in get_monsters(l) foreach i in item_drops(m) if (i == to_item(it)) locs[m] = l; print("The following monsters drop "+to_item(it)+":"); foreach m in locs print(m+" found in "+locs[m]);}

> zfind black pepper

The following monsters drop black pepper:
The following monsters drop ancient spice:
The following monsters drop dehydrated caviar:
Floating Platter of Hors D'Oeuvres found in Haunted Ballroom

> ffind stinky cheese diaper

The following monsters drop stinky cheese diaper:
The following monsters drop Staff of Queso Escusado:
The following monsters drop stinky cheese diaper:
The following monsters drop stinky cheese eye:
The following monsters drop stinky cheese sword:
The following monsters drop stinky cheese wheel:
 
Last edited:
Top