General Info
A failed attempt at stealing results in the storekeeper locking his/her doors against you for a looooong time.
Stealing from monsters gains you XP.
Strategy Recommendations
Your chances of successfully stealing an item will be increased if:
- you have high DEX
- the item you are trying to steal is light in weight
Code-Related Information
The code that checks if you manage to steal something from a store (from store_stole() in store.c):
if (rand_int((40 - p_ptr->stat_ind[A_DEX]) +
((j_ptr->weight * amt) / (5 + get_skill_scale(SKILL_STEALING, 15))) -
(get_skill_scale(SKILL_STEALING, 15))) <= 10)
This means that with no stealing skill whatsoever what you can safely steal from a store depends on your dex thus:
dex |
weight |
examples |
34 |
0.5 lbs |
rings, potions, amulets, scrolls, some cloaks |
35 |
1.0 lbs |
wands |
36 |
1.5 lbs |
rods, rod tips, daggers |
37 |
2.0 lbs |
soft leather boots |
38 |
2.5 lbs |
|
39 |
3.0 lbs |
magic books, cloaks of mimicry, main gauches, whips |
40 |
3.5 lbs |
If we add a maxed out stealing skill the maximum weight is 44 lbs. An adamantite plate mail weighs 42 lbs, for comparison, and a mace of disruption 40. Grond is heavier though (100 lbs).
For stealing from monsters the code is slightly more complex, and includes the monster level and whether or not the monster is sleeping:
chance = 40 - p_ptr->stat_ind[A_DEX]; chance += o_list[item].weight / (get_skill_scale(SKILL_STEALING, 19) + 1); chance += get_skill_scale(SKILL_STEALING, 29) + 1; chance -= (m_ptr->csleep) ? 10 : 0; chance += m_ptr->level; /* Failure check */ if (rand_int(chance) > 1 + get_skill_scale(SKILL_STEALING, 25))
Chatter
PermanentInk: I was wondering if someone who knows a bit about this could write some basic spoily stuff about stealing. Just the basic mechanics of it -- how often does it work, what happens when you fail, etc.
VagaBond: When the items are in a stack, the whole stack weight is counted against your stealing attempt. (It seems trivial, but it doesn't worth to make a shop closed just to be sure about it)
PermanentInk: I just noticed that stealing from monsters gives you XP. Anyone know whether you get more XP for stealing from tougher monsters, or for stealing better items? Do you get XP for stealing from shops? Also, does anyone know the exact length of time that shops stay closed for once they catch you stealing?
VagaBond: Backwards:
- Shops are closed for 500000 + random(500000) turns. The only way I know to check the actual turn is to save and exit. The turn number is displayed on the list of best characters. There must be better ways to do this I guess. A hint: you can make a note about shop closing in the notes, and if you include the turn number, you can calculate with it later.
- As far as I see in the code you don't get xp when you successfully stole sth from a shop.
- The xp you get for stealing from a monster depends on the weight of the object (half of it in 1/10 of pounds) and on the monster level (multiplied by three). The xp is randomized somewhat.
When you fail while stealing from a monster, the monster gets awake and angry (+5 to speed).
ScrawnyCat: Do exploration/tactics settings actually make a difference?
GreyCat: The table above doesn't appear to match the code. Unless I'm misreading it, a DEX index of 31 (a.k.a. 18/13x) gives you 9 for the first term (40-31). Then you add the item's weight divided by 5, which is 0 (integer math truncates) for items under 0.5 pounds... meaning a DEX of 18/130 should be able to steal rings and such with no chance of failure.
In fact, since rand_int(x) returns a number from 0 to x-1, we're even better off than that. We need rand_int()'s argument to be 11 or less in order to get a return value of 10 or less. An object which weighs less than 0.5 pounds adds nothing in the second term, so we just need a DEX index of 29 or higher to steal rings and potions with impunity.
Or am I misreading it?
FeralCat: Looking at the code in store.c (as shown above), there is nothing there or in the rest of the function that has anything to do with tactics/movement. So, ScrawnyCat, I don't think that it does have anything to do with that...
ToME Wiki