diff options
author | Vincent Petithory <vincent.petithory@gmail.com> | 2012-09-24 21:11:33 +0200 |
---|---|---|
committer | Vincent Petithory <vincent.petithory@gmail.com> | 2012-12-17 19:55:26 +0100 |
commit | 32cbb82b32d4ccbc3b5090ca517ed74feb5c9b5f (patch) | |
tree | f960e08320c2bfec54a3220c16734befea0f606e /world/map/npc/functions/lockpicking.txt | |
parent | a6910cd696eccbef6f056fb0f7f4d0f2b72a2ede (diff) | |
download | serverdata-32cbb82b32d4ccbc3b5090ca517ed74feb5c9b5f.tar.gz serverdata-32cbb82b32d4ccbc3b5090ca517ed74feb5c9b5f.tar.bz2 serverdata-32cbb82b32d4ccbc3b5090ca517ed74feb5c9b5f.tar.xz serverdata-32cbb82b32d4ccbc3b5090ca517ed74feb5c9b5f.zip |
Add Illia quest scripts. Update submodule pointer.
Diffstat (limited to 'world/map/npc/functions/lockpicking.txt')
-rw-r--r-- | world/map/npc/functions/lockpicking.txt | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/world/map/npc/functions/lockpicking.txt b/world/map/npc/functions/lockpicking.txt new file mode 100644 index 00000000..1605431d --- /dev/null +++ b/world/map/npc/functions/lockpicking.txt @@ -0,0 +1,93 @@ +//----------------------------------------------------------------------------- +// Lock picking. +// 3 pins per lock. +// The player has to find the good number of times to hit a pin +//----------------------------------------------------------------------------- + +function|script|LockPicking|{ + + set @lock_picking_success, 0; + setarray @pins, rand(1,3), rand(1,3), rand(1,3); + goto L_StartLockPicking; + +L_NeedLockPickSet: + menu + "Unfortunately, I don't have these tools... Let's look around.", -; + return; + +L_StartLockPicking: + mes "You inspect the lock and notice it isn't sophisticated."; + mes "With regular stuff, you should be able to lock pick it."; + next; + if (countitem ("LockPicks") < 1) + goto L_NeedLockPickSet; + menu + "I can try with these lock picks I just found.", -, + "Maybe later.", L_Return; + delitem "LockPicks", 1; + mes "You insert the hook pick inside the lock, and, without applying any tension, you discover there are only 3 pins to set."; + next; + mes "You will need to set the 3 pins to align them and turn the lock's cylinder."; + mes "A wrong move will make you start over. Remember how you had set the pins!"; + next; + set @pin, 0; + goto L_HandlePin; + +L_NextPinOrEnd: + if (@pin >= 2) + goto L_OpenDoor; + set @pin, @pin + 1; + mes "Click! This pin is set!"; + next; + goto L_HandlePin; + +L_HandlePin: + if (@pin == 0) + mes "What to do with the first pin?"; + if (@pin == 1) + mes "What to do with the second pin?"; + if (@pin == 2) + mes "What to do with the last pin?"; + menu + "Apply a soft pressure.", L_PinSoft, + "Apply a normal pressure.", L_PinNormal, + "Apply a strong pressure.", L_PinHard, + "Give up. I'm in a rush!", L_GiveUp; + return; + +L_GiveUp: + set @lock_picking_success, 0; + set @pin, 0; + cleararray @pins, 0, 3; + set @pin_pressure, 0; + return; + +L_PinSoft: + set @pin_pressure, 1; + goto L_TestPin; + +L_PinNormal: + set @pin_pressure, 2; + goto L_TestPin; + +L_PinHard: + set @pin_pressure, 3; + goto L_TestPin; + +L_TestPin: + if (@pin_pressure == @pins[@pin]) + goto L_NextPinOrEnd; + mes "Nope, that did not work. And the pins are unset now..."; + next; + set @pin, 0; + goto L_HandlePin; + +L_Return: + return; + +L_OpenDoor: + set @lock_picking_success, 1; + mes "The two sets of pins separate. You can now turn the cylinder to open the door!"; + return; + +} |