From aa2ba120465fd265526dac744daf60b8603b4f00 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Tue, 25 Feb 2020 10:56:43 -0300 Subject: Livio Patch's: You can now escape from the cops (max. 40% runaway chance) --- npc/017-3/vault.txt | 13 +++++++++++-- npc/018-2-4/vault.txt | 13 +++++++++++-- npc/functions/lockpicks.txt | 12 ++++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/npc/017-3/vault.txt b/npc/017-3/vault.txt index 9f48bc3be..35434eae9 100644 --- a/npc/017-3/vault.txt +++ b/npc/017-3/vault.txt @@ -15,11 +15,20 @@ mesq l("Booty!"); } else { mesn; - mesq l("Arrested!"); .@inch=(Zeny/100); Zeny-=.@inch; $VAULT_01738039+=.@inch; - atcommand("@jailfor 5mn "+strcharinfo(0)); + if (ArrestedChances()) { + mesc l("Arrested!"); + atcommand("@jailfor 5mn "+strcharinfo(0)); + } else { + if (is_night()) + .@p$=l("The darkness of night gives you cover."); + else + .@p$=l("Your agile legs and sheer luck allows you to outrun the cops."); + mesc l("You run as far as you could. %s", .@p$); + warp "000-1", 22, 22; + } } close; diff --git a/npc/018-2-4/vault.txt b/npc/018-2-4/vault.txt index 541a53645..043504829 100644 --- a/npc/018-2-4/vault.txt +++ b/npc/018-2-4/vault.txt @@ -15,11 +15,20 @@ mesq l("Booty!"); } else { mesn; - mesq l("Arrested!"); .@inch=(Zeny/100); Zeny-=.@inch; $VAULT_01824+=.@inch; - atcommand("@jailfor 5mn "+strcharinfo(0)); + if (ArrestedChances()) { + mesc l("Arrested!"); + atcommand("@jailfor 5mn "+strcharinfo(0)); + } else { + if (is_night()) + .@p$=l("The darkness of night gives you cover."); + else + .@p$=l("Your agile legs and sheer luck allows you to outrun the cops."); + mesc l("You run as far as you could. %s", .@p$); + warp "000-1", 22, 22; + } } close; diff --git a/npc/functions/lockpicks.txt b/npc/functions/lockpicks.txt index 879c3b334..78878eaf6 100644 --- a/npc/functions/lockpicks.txt +++ b/npc/functions/lockpicks.txt @@ -115,3 +115,15 @@ function script LockPicking { THIEF_EXP += 1; return 0; } + +// Script helper to say if you were arrested or not +function script ArrestedChances { + .@runaway=limit(0, readbattleparam(bLuk)+readbattleparam(bAgi), 200); // 20% + .@runaway+=is_night()*125; // 12.5% + .@runaway+=limit(0, THIEF_RANK*15, 100); // real max 7.5% + // Max runaway chance: 40% + if (rand2(1000) < .@runaway) + return false + return true +} + -- cgit v1.2.3-60-g2f50