What does "no-sell" mean in mafia?

fronobulax

Developer
Staff member
Not sure this is the best or right place for the question/discussion but...

Mafia marks items as "no-sell". What is the basis for that characterization? I know, for example, that I have bought an item from the mall and had it appear marked as "no-sell" in the Recent Items display so there is more going on than just the ability to buy or sell the item.

Some items are clearly "no-sell" by KoL rules. They cannot be placed in the Mall. I believe new items discovered by mafia but not in the mafia's database are also marked "no-sell". I suspect there is some interaction between the no-sell tag and memento and junk item handling but since those are features I have not figured out how to use, I really don't know. I also seem to recall that some high value items are marked no-sell to prevent a player from inadvertently "mall selling" them. So what does it really mean when mafia marks an item as "no-sell"? Where are the characterizations stored (which data files?) in case different behavior is desired?

This leads to a related question. Does the ash function is_tradeable() take into account any of the mafia rules or is it strictly based on KoL's definition? Is the data source the game itself or a mafia data file?

For context, my current obsession in KoL is level grinding. ("There are 238 players more powerful than you"). My secondary obsession is my Display Case with the ultimate goal of amassing one of everything that I can get without ascending and is not in the "you had to be there" category. If there is more than one of an item in my DC it either means that I am collecting it and making a shot at a leader board or it cannot be sold. I am considering reorganizing my DC into three shelves: Collecting, Can't Sell and One of Everything Else but the expanded definition of "no-sell' makes this a little difficult to organize using the mafia GUI.

Finally, and I note that this is completely off topic, are there ash functions to manipulate items and shelves?

I envision a script that iterates through all items in the display case and moves them to specific shelves.
Code:
...
If (display_amount(item) == 1) then
   Move to shelf "One of Everything Else"
else
   If (is_tradeable(item)) then
      Move to shelf "Collecting"
   else
      Move to shelf "Can't Sell"
   endif
endif
Thanks.
 

jasonharper

Developer
"no-sell" simply means that the item can't be autosold; it has nothing at all to do with mall selling (but "no-sell" does prevent automatic mall buying, unless the item is on a list of specific exceptions). The only restrictions on mall selling, and explicit mall buying, should be the ones the game itself imposes.

The no-sell status, is_tradeable() result, and other such values come from mafia data files, so that they can be retrieved without a server hit for each item. However, the data should exactly match the game, barring data entry errors or changes in the game that nobody's noticed yet.

ASH can move items to and from your display case, but can't specify which shelf to use. It should be possible to find out what URL and parameters are used by the in-game display case management feature, and use that with visit_url() - possibly someone has done something along these lines already.
 

Veracity

Developer
Staff member
Mafia marks items as "no-sell". What is the basis for that characterization? I know, for example, that I have bought an item from the mall and had it appear marked as "no-sell" in the Recent Items display so there is more going on than just the ability to buy or sell the item.
"no-sell" means it has an autosell price of 0 and you cannot autosell it.

Some items are clearly "no-sell" by KoL rules. They cannot be placed in the Mall.
In KoL terminology, those are marked "cannot be traded".

I believe new items discovered by mafia but not in the mafia's database are also marked "no-sell".
Before my "adaptive learning of items and effects" project last month, yes, that was true. Now, however, it looks at the item description and gets the autosell price.

I also seem to recall that some high value items are marked no-sell to prevent a player from inadvertently "mall selling" them. So what does it really mean when mafia marks an item as "no-sell"? Where are the characterizations stored (which data files?) in case different behavior is desired?
It is 100% based on what KoL lists the auto-sell price at. If it is 0, the item is "no-sell". If it is greater than 0, it is not "no-sell"

This leads to a related question. Does the ash function is_tradeable() take into account any of the mafia rules or is it strictly based on KoL's definition? Is the data source the game itself or a mafia data file?
It is 100% based on what KoL says in the item description. I don't know what other "rules" you think KoLmafia follows.
 

fronobulax

Developer
Staff member
Thank you. It it is always interesting, and sometimes embarrassing, to ask a series of related questions that are ultimately founded on incorrect assumptions and understanding.

To step back and regroup, then...

First, I only want to consider items that can be displayed. If it can't be put in a display case then I don't care about it. The ash function is_displayable() will tell me that.

Next I want items that can be obtained by purchase. These would be is_tradeable() || is_npc_item().

Finally I want items that can be obtained through interaction with other players but not by purchase. These would be (is_giftable() && ~is_tradeable()) && ~is_npc_item().

I believe there are displayable items in the game that are not included in any of the above, although I am not certain. The Anniversary items come immediately to mind.

Laying it out like this, it seems like the no-sell characteristic is not relevant.

I asked about which data files because I have, in the past, found cases where I thought mafia, the game or the wiki had conflicting information about an item. Knowing that the information comes from a data file gives me reason to track an error down if one is suspected.

The question about is_tradable() and "other rules" was based upon a misconception.

I suspect part of my confusion comes from the fact that mafia reports the status of "no-sell" but not, to my recollection "no trade" and as a consequence I was expecting "no-sell" to mean more than it actually does.

Back to obsess about my display case. I suspect which_shelf and move_to shelf are going to require some thought :)

Thank you.
 

lostcalpolydude

Developer
Staff member
but "no-sell" does prevent automatic mall buying, unless the item is on a list of specific exceptions

This would prevent semi-rares from being purchased when you use the acquire command then? I could never figure out why "acquire 2 cyclops eyedrop" would fail to do anything.
 
Top