Bug - Fixed oil of parrrlay is multiusable

xKiv

Active member
Oil of parrlay is marked as not multi-usable in mafia's datafiles (I noticed this by doing , but I calling use(number greater than 1, $item[oil of parrrlay])), but I just confirmed that kol accepts it as multiusable, both from chat (/use 5 oil of parrrlay) and by seeing it in the multi-use dropdown (that can still be accessed with right click on any [multi use] "button").
Looking at the datafiles, I suspect that this is not the only item marked as such .. for example, first thing I tried: potion of the litterbox.
 

Veracity

Developer
Staff member
It would be nice if KoL told us in the description, say, whether it was multiusable, rather than the only way for us to learn this is by having more than one in inventory and seeing a "use multiple" link in the Inventory.

So, you are undoubtably correct that there are other items that we don't have marked correctly, but unless you tell us about each of them specifically - as you did in this report - there is nothing we can do to fix them.
 

xKiv

Active member
Just to be clear ... mafia marks multiusable items by putting "multiple" in the "use" column in items.txt (and singleusable by putting "usable" there)?

I could probably go through most items marked as one of those two, get 2 of each and check (and report) those where kol doesn't agree with mafia.
 

xKiv

Active member
I whipped up a script to ... ehm ... acquire various useable items and check them against output of visit_url('multiuse.php?action=useitem'). That shows IDs of all currently owned multiusable items, in the select's options (I verified that items appear there even if I only have 1).
The bastard script is currently running, and already spent 40M on a small crimbo pressie. An ASH guru is not me.
Obviously, many expensive items will be left untested - but then, most people don't want to use those in quantities anyway.

Slightly later: ahh ... down to almost no meat left :) And just got to around gygax libram items ... hopefully nothing expensive is being pvp-looted from me during this.

Later even: it's now putting items back where it got them, and I have 79 meat x_x

Here are some items that didn't appear in multiuse.php, but mafia has $item[].multi==true (unless I am a completely worthless hack, or something got stolen):
Code:
 > 1/6th Pound Cake: mafiaSingle(false), isInMulti(false)
 > ancient turtle shell: mafiaSingle(false), isInMulti(false)
 > Atomic Comic: mafiaSingle(false), isInMulti(false)
 > Comet Drop: mafiaSingle(false), isInMulti(false)
 > Comet Pop: mafiaSingle(false), isInMulti(false)
 > elderly jawbreaker: mafiaSingle(false), isInMulti(false)
 > Flan in the Moon: mafiaSingle(false), isInMulti(false)
 > fruitfilm: mafiaSingle(false), isInMulti(false)
 > piece of after eight: mafiaSingle(false), isInMulti(false)

and the reverse case (not marked multiuse in mafia, but appeared in multiuse.php):
Code:
 > A muse-bouche: mafiaSingle(true), isInMulti(true)
 > alphabet gum: mafiaSingle(true), isInMulti(true)
 > antique bottle of cough syrup: mafiaSingle(true), isInMulti(true)
 > bacon bath ball: mafiaSingle(true), isInMulti(true)
 > big bundle of chamoix: mafiaSingle(true), isInMulti(true)
 > blank prescription sheet: mafiaSingle(true), isInMulti(true)
 > blob of acid: mafiaSingle(true), isInMulti(true)
 > Blood 'n' Plenty: mafiaSingle(true), isInMulti(true)
 > booby trap: mafiaSingle(true), isInMulti(true)
 > bottle of black cat tonic: mafiaSingle(true), isInMulti(true)
 > bottle of extra-strength melodramamine: mafiaSingle(true), isInMulti(true)
 > bottle of fire: mafiaSingle(true), isInMulti(true)
 > bottle of melodramamine: mafiaSingle(true), isInMulti(true)
 > bottle of ultravitamins: mafiaSingle(true), isInMulti(true)
 > box of sunshine: mafiaSingle(true), isInMulti(true)
 > BRICKO trunk: mafiaSingle(true), isInMulti(true)
 > brigand brittle: mafiaSingle(true), isInMulti(true)
 > chocolate bath ball: mafiaSingle(true), isInMulti(true)
 > Cloaca-Cola c-rations: mafiaSingle(true), isInMulti(true)
 > cold-filtered water: mafiaSingle(true), isInMulti(true)
 > collection of tiny spooky objects: mafiaSingle(true), isInMulti(true)
 > concentrated garbage juice: mafiaSingle(true), isInMulti(true)
 > creepy ginger ale: mafiaSingle(true), isInMulti(true)
 > cup of hickory chicory: mafiaSingle(true), isInMulti(true)
 > devilish folio: mafiaSingle(true), isInMulti(true)
 > drum of pomade: mafiaSingle(true), isInMulti(true)
 > Dyspepsi-Cola d-rations: mafiaSingle(true), isInMulti(true)
 > eldritch dough: mafiaSingle(true), isInMulti(true)
 > Elvish delight: mafiaSingle(true), isInMulti(true)
 > Enchanted Flyswatter: mafiaSingle(true), isInMulti(true)
 > enchanted muesli: mafiaSingle(true), isInMulti(true)
 > Enchanted Plunger: mafiaSingle(true), isInMulti(true)
 > epic wad: mafiaSingle(true), isInMulti(true)
 > expensive cigar: mafiaSingle(true), isInMulti(true)
 > fireclutch: mafiaSingle(true), isInMulti(true)
 > flask of baconstone juice: mafiaSingle(true), isInMulti(true)
 > flask of hamethyst juice: mafiaSingle(true), isInMulti(true)
 > flask of porquoise juice: mafiaSingle(true), isInMulti(true)
 > flayed mind: mafiaSingle(true), isInMulti(true)
 > floaty inverse geode: mafiaSingle(true), isInMulti(true)
 > Fudgie Roll: mafiaSingle(true), isInMulti(true)
 > Gearhead Goo: mafiaSingle(true), isInMulti(true)
 > giant breath mint: mafiaSingle(true), isInMulti(true)
 > giant green gummi ingot: mafiaSingle(true), isInMulti(true)
 > giant red gummi ingot: mafiaSingle(true), isInMulti(true)
 > giant tube of black lipstick: mafiaSingle(true), isInMulti(true)
 > giant yellow gummi ingot: mafiaSingle(true), isInMulti(true)
 > gilt perfume bottle: mafiaSingle(true), isInMulti(true)
 > glass of gnat milk: mafiaSingle(true), isInMulti(true)
 > glass of warm milk: mafiaSingle(true), isInMulti(true)
 > Gnollish Crossdress: mafiaSingle(true), isInMulti(true)
 > green gummi ingot: mafiaSingle(true), isInMulti(true)
 > Gummy Brains: mafiaSingle(true), isInMulti(true)
 > guy made of bee pollen: mafiaSingle(true), isInMulti(true)
 > hair of the fish: mafiaSingle(true), isInMulti(true)
 > holistic headache remedy: mafiaSingle(true), isInMulti(true)
 > homeopathic healing powder: mafiaSingle(true), isInMulti(true)
 > incense bath ball: mafiaSingle(true), isInMulti(true)
 > Instant Karma: mafiaSingle(true), isInMulti(true)

 > jug of baconstone juice: mafiaSingle(true), isInMulti(true)
 > jug of hamethyst juice: mafiaSingle(true), isInMulti(true)
 > jug of porquoise juice: mafiaSingle(true), isInMulti(true)
 > Knob Goblin Mutagen: mafiaSingle(true), isInMulti(true)
 > Knob Goblin perfume: mafiaSingle(true), isInMulti(true)
 > kobold kibble: mafiaSingle(true), isInMulti(true)
 > licorice root: mafiaSingle(true), isInMulti(true)
 > Missing Eye Simulation Device: mafiaSingle(true), isInMulti(true)
 > Necbro wafers: mafiaSingle(true), isInMulti(true)
 > Oil of Parrrlay: mafiaSingle(true), isInMulti(true)
 > orcish hand lotion: mafiaSingle(true), isInMulti(true)
 > orcish nailing lube: mafiaSingle(true), isInMulti(true)
 > orcish rubber: mafiaSingle(true), isInMulti(true)
 > peppermint twist: mafiaSingle(true), isInMulti(true)
 > perpendicular guano: mafiaSingle(true), isInMulti(true)
 > pixellated moneybag: mafiaSingle(true), isInMulti(true)
 > Pokëmann band-aid: mafiaSingle(true), isInMulti(true)
 > Polysniff Perfume: mafiaSingle(true), isInMulti(true)
 > potion of punctual companionship: mafiaSingle(true), isInMulti(true)
 > potion of the litterbox: mafiaSingle(true), isInMulti(true)
 > pressurized potion of proficiency: mafiaSingle(true), isInMulti(true)
 > probability potion: mafiaSingle(true), isInMulti(true)
 > pygmy dart: mafiaSingle(true), isInMulti(true)
 > pygmy papers: mafiaSingle(true), isInMulti(true)
 > ravenous eye: mafiaSingle(true), isInMulti(true)
 > red gummi ingot: mafiaSingle(true), isInMulti(true)
 > respected companion biscuit: mafiaSingle(true), isInMulti(true)
 > robot reindeer protocol B.L.I.T.Z.E.N.: mafiaSingle(true), isInMulti(true)
 > robot reindeer protocol C.O.M.E.T.: mafiaSingle(true), isInMulti(true)
 > robot reindeer protocol C.U.P.I.D.: mafiaSingle(true), isInMulti(true)
 > robot reindeer protocol D.A.N.C.E.R.: mafiaSingle(true), isInMulti(true)
 > robot reindeer protocol D.A.S.H.E.R.: mafiaSingle(true), isInMulti(true)
 > robot reindeer protocol D.O.N.N.E.R.: mafiaSingle(true), isInMulti(true)
 > robot reindeer protocol P.R.A.N.C.E.R.: mafiaSingle(true), isInMulti(true)
 > robot reindeer protocol R.U.D.O.L.P.H.: mafiaSingle(true), isInMulti(true)
 > robot reindeer protocol V.I.X.E.N.: mafiaSingle(true), isInMulti(true)
 > rusty hedge trimmers: mafiaSingle(true), isInMulti(true)
 > scroll of pasta summoning: mafiaSingle(true), isInMulti(true)
 > seal-brain elixir: mafiaSingle(true), isInMulti(true)
 > secret mummy herbs and spices: mafiaSingle(true), isInMulti(true)
 > Shivering Chèvre: mafiaSingle(true), isInMulti(true)
 > skelelton spine: mafiaSingle(true), isInMulti(true)
 > skeletal banana: mafiaSingle(true), isInMulti(true)
 > slime convention swag bag: mafiaSingle(true), isInMulti(true)
 > smut orc sunglasses: mafiaSingle(true), isInMulti(true)
 > space jam: mafiaSingle(true), isInMulti(true)
 > spooky cosmetics bag: mafiaSingle(true), isInMulti(true)
 > spooky eyeliner: mafiaSingle(true), isInMulti(true)
 > spooky gravy fairy warlock hat: mafiaSingle(true), isInMulti(true)
 > spooky lipstick: mafiaSingle(true), isInMulti(true)
 > stick-on gnome beard: mafiaSingle(true), isInMulti(true)
 > Stone Golem pebbles: mafiaSingle(true), isInMulti(true)
 > Sweet Sword: mafiaSingle(true), isInMulti(true)
 > Tears of the Quiet Healer: mafiaSingle(true), isInMulti(true)
 > temporary tribal tattoo: mafiaSingle(true), isInMulti(true)
 > that gum you like: mafiaSingle(true), isInMulti(true)

 > The Lost Pill Bottle: mafiaSingle(true), isInMulti(true)
 > thermos of brew: mafiaSingle(true), isInMulti(true)
 > tiny canopic jar: mafiaSingle(true), isInMulti(true)
 > toe jam: mafiaSingle(true), isInMulti(true)
 > traffic jam: mafiaSingle(true), isInMulti(true)
 > tube of hair oil: mafiaSingle(true), isInMulti(true)
 > una poca de gracia: mafiaSingle(true), isInMulti(true)
 > unholy water: mafiaSingle(true), isInMulti(true)
 > vial of baconstone juice: mafiaSingle(true), isInMulti(true)
 > vial of hamethyst juice: mafiaSingle(true), isInMulti(true)
 > vial of porquoise juice: mafiaSingle(true), isInMulti(true)
 > vial of The Glistening: mafiaSingle(true), isInMulti(true)
 > voodoo snuff: mafiaSingle(true), isInMulti(true)
 > watered-down Red Minotaur: mafiaSingle(true), isInMulti(true)
 > wet venom duct: mafiaSingle(true), isInMulti(true)
 > White Chocolate Golem Seeds: mafiaSingle(true), isInMulti(true)
 > willyweed: mafiaSingle(true), isInMulti(true)
 > wussiness potion: mafiaSingle(true), isInMulti(true)
 > yellow gummi ingot: mafiaSingle(true), isInMulti(true)
 > yellow snowcone: mafiaSingle(true), isInMulti(true)

And didn't even take 2 hours to code and run!

Also, I am an idiot and didn't check my put_shop, and everything is sold at 100 meat x_x
Why does put_shop(1,0,item) sell at 100 and not 999999999?
 

roippi

Developer
Can you double-check that list? I for example remember explicitly changing willyweed. Of course, it's the type of thing that TPTB will change under-the-hood silently when someone bug reports it.
 

Catch-22

Active member
oh wow did you lose all your meat doing this

The way I read it, yes. I thought about offering to donate some meat to his cause but then I realized I am poor since I tried to buy all the items I missed out on over crimbo.

Edit: xKiv I have a bunch of SHC drinks if you're interested, just post where you'd like them sent.
 

xKiv

Active member

Interesting that the (int, int, item) version drops exactly the other parameter than I expected ...
Also interesting that inputting a completely invalid price isn't an error.
(also: having to go to the source or the wiki just to learn which parameter is which is ... is exactly the extra step I should have done, but didn't bother, because ... extra step! too hard!)

oh wow did you lose all your meat doing this

Easily. I put in
1) if I don't have it (in inventory, closet or DC), try buying it [and forgot to put in reasonable limits (or even closet most of my meat), so it bought small crimbo pressie (40M), tasteful gifts, and a few other things, and cleaned my meat out]
2) after testing, put everything back where it found it (i.e. if the item was from my DC, put it back in DC; if it was bought from mall, put in in my store), and botched the call (why would I think that *quantity* is a more important parameter than per-day limit?). So it all got gone in seconds, in 100-meat "sales". This step is definitely something I should have separated, at least for the bought stuff. But I was too afraid of pvp item looters :rolleyes:


The way I read it, yes. I thought about offering to donate some meat to his cause but then I realized I am poor since I tried to buy all the items I missed out on over crimbo.

Edit: xKiv I have a bunch of SHC drinks if you're interested, just post where you'd like them sent.

Ah, don't worry about that. I have loads of stuff that wasn't meat, and none of that was lost. Most of my worth is in IotMs anyway (regular donations), and another fair share is in my DC. I will bounce back again (valhallavamp got me down from 50M do 10M, and I got as far up as 100M after that). It was still better spent than the Money Missing Game (where I have a proud grand total of exactly 0). I will just stop spending big on pvp mini buffs every day, sell some of my closely hoarded (and mostly unused) heaps of "emergency" stuff and ... not even change what I was eating until now. I am well-stocked.
 

Theraze

Active member
Might be a worthwhile FReq to request aborting if you try to mallprice below minprice and it isn't 0 (which becomes 999999999). Since that does indeed suck terribly. :(
 

xKiv

Active member
Can you double-check that list? I for example remember explicitly changing willyweed. Of course, it's the type of thing that TPTB will change under-the-hood silently when someone bug reports it.

So, um ... are you saying I did all that for nothing unless I also verify that having <option value=xxxx> in the html of multiuse.php means that item with id xxxx cam actually be multiused?
 

Catch-22

Active member
So, um ... are you saying I did all that for nothing unless I also verify that having <option value=xxxx> in the html of multiuse.php means that item with id xxxx cam actually be multiused?

I'm confused by what you're asking. You visited multiuse.php with a bunch of items in your inventory and checked which items appeared in the dropdown list, right? That's a list of all the multiuse items you have on hand. Willyweed is definitely in the list for me, meaning I can use more than one willyweed at a time.

Is there a disambiguation between multiusable items and items that you use multiple of to create things? eg. peppermint sprouts
 
Last edited:

xKiv

Active member
I'm confused by what you're asking. You visited multiuse.php with a bunch of items in your inventory and checked which items appeared in the dropdown list, right? That's a list of all the multiuse items you have on hand. Willyweed is definitely in the list for me, meaning I can use more than one willyweed at a time.

I am asking if roippi requires double-checking on everything in that list before any datafile changes.
I am asking because I sometimes feel invisible.

Is there a disambiguation between multiusable items and items that you use multiple of to create things? eg. peppermint sprouts

The second group is a subset of the first group, but there's no disambiguation in kol's interface, afaik (until you make the thing and get the recipe, then you can find the recipe in your discoveries).
In mafia, the second group has (known) recipes in concoctions.txt, with creation type MUSE (multiuse).
 

Catch-22

Active member
I am asking because I sometimes feel invisible.

Well you're not the only one, sometimes devs are just busy and other times it's not something that they feel is a priority or worthwhile.

Edit: Also as someone who has provided large patches to data files before, editing them can be pretty tedious work. I'd say there is a good chance that someone fully intends to make the changes, they just haven't gathered up the motivation to do so yet.

In mafia, the second group has (known) recipes in concoctions.txt, with creation type MUSE (multiuse).

Well if you're talking about multiuse items, and not MUSE items, then yeah I can see the data isn't right, any dev can check this for themselves against their own inventory and probably find items that don't match. I am assuming you used something similar to this:

Code:
matcher multiuse = create_matcher("<option value=(\\d+)>", visit_url("multiuse.php"));
while (multiuse.find()) {
	item it = to_item(multiuse.group(1).to_int());
	if (!it.multi) {
		print(it);
	}
}

Even on my own, non-bankrolled inventory, I get a bunch of hits:

Code:
Blatantly Canadian
blue pixel potion
bottle of black cat tonic
bottle of fire
bottle of Monsieur Bubble
bottle of Vangoghbitussin
box of sunshine
BURT
carbonated soy milk
carbonated water lily
cast
Cloaca-Cola
cold-filtered water
cotton candy cone
cotton candy pillow
creepy ginger ale
delicious shimmering moth
Doc Galaktik's Ailment Ointment
Dyspepsi-Cola
elven medi-pack
filthy poultice
forest tears
gauze garter
green gummi ingot
guy made of bee pollen
honey-dipped locust
Knob Goblin seltzer
Knob Goblin superseltzer
licorice root
Monstar energy beverage
Mountain Stream soda
Nardz energy beverage
natural fennel soda
Notes from the Elfpocalypse, Chapter I
Notes from the Elfpocalypse, Chapter II
Notes from the Elfpocalypse, Chapter III
Notes from the Elfpocalypse, Chapter IV
Notes from the Elfpocalypse, Chapter V
Notes from the Elfpocalypse, Chapter VI
Oil of Parrrlay
Okee-Dokee soda
orcish hand lotion
orcish nailing lube
orcish rubber
palm-frond fan
phonics down
plump juicy grub
Polysniff Perfume
potion of punctual companionship
probability potion
procrastination potion
red gummi ingot
red pixel potion
Regular Cloaca Cola
scroll of pasta summoning
spooky eyeliner
spooky lipstick
sugar shard
tiny house
unrefined Mountain Stream syrup
vial of The Glistening
watered-down Red Minotaur
wet venom duct
willyweed
wussiness potion
yellow gummi ingot

So you're not wrong. I am actually really surprised there are some pretty common items not flagged as multiusable (phonics down, cloaca cola, etc.), so unless there has been some huge misunderstanding of what the multi record is used for, the data is out of date.
 
Last edited:

Rinn

Developer
I think there may be some special handling for restorers somewhere because I just used two cloaca-colas and they were multi-used.
 

Catch-22

Active member
I think there may be some special handling for restorers somewhere because I just used two cloaca-colas and they were multi-used.

I recall similar happening, I could've sworn I had multi-used phonics down before, so I thought my script was wrong. I did ash $item[phonics down] in the CLI and clearly saw it was not coming up as multi. I think you're probably right about there being special handling, but I wonder why.
 
Top