Research:Security and Crime: Difference between revisions

From OpenMW Wiki
Jump to navigation Jump to search
(Migrated Security and Pickpocketing from Formulae page.)
 
No edit summary
Line 4: Line 4:
|On lockpicking and probing
|On lockpicking and probing
|Affects doors and containers.
|Affects doors and containers.
|
|{{StatusCol|orange|Requires regression testing}}
|{{StatusCol|green|Verified}}}}
|{{StatusCol|green|Verified}}}}


Line 33: Line 33:
|On pickpocket (activate while sneaking)
|On pickpocket (activate while sneaking)
|
|
|
|{{StatusCol|orange|Requires regression testing}}
|{{StatusCol|orange|Mechanic is broken and shouldn't be used as it is, but verified}}}}
|{{StatusCol|orange|Mechanic is broken and shouldn't be used as it is, but verified}}}}
Pickpocketing is a multi-stage process. Not all items in the NPC's inventory are available, depending on the initial rolls. There are checks on a steal attempt, and when the window is closed.
Pickpocketing is a multi-stage process. Not all items in the NPC's inventory are available, depending on the initial rolls. There are checks on a steal attempt, and when the window is closed.

Revision as of 10:03, 4 September 2012

Security

Actions affected On lockpicking and probing
Description Affects doors and containers.
Implementation status Requires regression testing
Analysis status Verified

On picking a lock

x = 0.2 * pcAgility + 0.1 * pcLuck + securitySkill
x *= pickQuality * fatigueTerm
x += fPickLockMult * lockStrength

if x <= 0: fail and report impossible
roll 100, if roll <= x then open lock else report failure


On probing a trap

x = 0.2 * pcAgility + 0.1 * pcLuck + securitySkill
x += fTrapCostMult * trapSpellPoints
x *= probeQuality * fatigueTerm

if x <= 0: fail and report impossible
roll 100, if roll <= x then untrap else report failure


Pickpocketing

Actions affected On pickpocket (activate while sneaking)
Description
Implementation status Requires regression testing
Analysis status Mechanic is broken and shouldn't be used as it is, but verified

Pickpocketing is a multi-stage process. Not all items in the NPC's inventory are available, depending on the initial rolls. There are checks on a steal attempt, and when the window is closed.


On initiating

for each item stack:
    roll 100, stack is visible if roll <= pcSneak


On picking an item

fatigueTerm = fFatigueBase - fFatigueMult*(1 - normalisedFatigue)
#where normalisedFatigue is a function of fatigue. empty fatigue bar -> 0.0, full fatigue bar -> 1.0
#note fatigueTerm is normally 1.25 at full fatigue.

#checks the whole stack no matter how many you try to take
#note: filled soulgems have the value of an empty soulgem due to a missing calculation
stackValue = itemValue * itemsInStack
valueTerm = 10 * fPickPocketMod * stackValue

x = (0.2 * pcAgility + 0.1 * pcLuck + pcSneak) * fatigueTerm
y = (valueTerm + npcSneak + 0.2 * npcAgilityTerm + 0.1 * npcLuckTerm) * npcFatigueTerm
t = x - y + x  # yes, that is what it does

if t < pcSneak / iPickMinChance:
    roll 100, win if roll <= int(pcSneak / iPickMinChance)
else:
    t = min(iPickMaxChance, t)
    roll 100, win if roll <= int(t)


On closing the pickpocket window

Same calculation as taking an item, but with valueTerm = 0.


Comments

The stealing process is highly broken for most items; any item or stack of items worth over 100 septims has such a negative result that it is picked at minimum chance, and this is at maximum all stats. A player with stats around 50 is picking at minimum for anything valuable. The available items window is not reset after every successful steal, only when you close the window and retry the pickpocket.


Bounties and Reporting

Bounties

Thieves Guild Reductions

Prison

Prison time is proportional to the bounty. Skills can be lost during time spent in prison, except Security which can improve.