Steal & Pick Pockets pseudocode
Pseudocode for stealing and picking pockets is outlined below. The code indicates there is always a chance of failure, regardless of the skill of the creature performing the action.
pick pockets:
r = rand(1,100)
if (r == 100) pp_fail()
diff = actor->mod_pp_skill - target->mod_pp_skill
if (r >= diff) pp_fail()
if (target->mod_pp_skill == 255) pp_fail()
steal in store:
if ((actor->mod_pp_skill < store_steal_rate)
or (store_steal_rate == 100))
diff = 0
else
diff = actor->mod_pp_skill - store_steal_rate
r = rand(1,100)
if (r > diff) steal_fail()