diff options
author | Jesusaves <cpntb1@ymail.com> | 2018-09-09 16:10:17 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2018-09-09 16:10:17 -0300 |
commit | 73f268e83c278b735d8f6613a2a74f56bb5a7d62 (patch) | |
tree | fa7272759e1642e825ef799e7060c6c4196aefcd | |
parent | ee3ad796031ac328496bf2ebe1616aa7c0f7621e (diff) | |
download | serverdata-73f268e83c278b735d8f6613a2a74f56bb5a7d62.tar.gz serverdata-73f268e83c278b735d8f6613a2a74f56bb5a7d62.tar.bz2 serverdata-73f268e83c278b735d8f6613a2a74f56bb5a7d62.tar.xz serverdata-73f268e83c278b735d8f6613a2a74f56bb5a7d62.zip |
Placeholder for r7
-rw-r--r-- | npc/017-3/vault.txt | 20 | ||||
-rw-r--r-- | npc/functions/TODO.txt | 96 | ||||
-rw-r--r-- | npc/scripts.conf | 1 |
3 files changed, 117 insertions, 0 deletions
diff --git a/npc/017-3/vault.txt b/npc/017-3/vault.txt index 13e13b068..06f048efc 100644 --- a/npc/017-3/vault.txt +++ b/npc/017-3/vault.txt @@ -5,6 +5,7 @@ // Based on BenB idea. 017-3,80,39,0 script Vault NPC_NO_SPRITE,{ + if (MERC_RANK) goto L_Debug; mesn; mesq l("There's a shiny safe here. How much money is inside? Nobody is looking at you, great!"); // 2*3 = 6 possibilities, 5 attempts @@ -23,6 +24,25 @@ } close; +// TODO: And remove from here. +L_Debug: + mesn; + mesq l("Thiefs frequently attack this vault, and locking it again is a pain. If you break the lock you'll need to pay 100 GP."); + if (Zeny < 100) + close; + // 2*3 = 6 possibilities, 5 attempts + if (ToDoMerc(2, 3)) { + getexp 20, 0; + $VAULT_01738039+=2; + mesn; + mesq l("Safe again! You've gained some experience for your hard work!"); + } else { + mesn; + mesq l("Dargh, you broke the lock!!"); + Zeny-=100; + } + close; + OnInit: .distance=3; end; diff --git a/npc/functions/TODO.txt b/npc/functions/TODO.txt new file mode 100644 index 000000000..2cacec81b --- /dev/null +++ b/npc/functions/TODO.txt @@ -0,0 +1,96 @@ +// TMW2/LoF Script +// Author: +// Jesusalva +// Description: +// ToDo - Please disregard for now + +// Important variables: +// MERC_EXP +// Experience on Thief Tree +// MERC_RANK +// Position on the Thief Tree + +// ToDoMerc(num_pins, max_pins) +// Returns 0 upon failure, 1 upon success +// Closes script if an error happen or if you give up / cannot try. +// +// The 'next' is upon script responsability +// Maximum pin number is infinite. Maximum Pin Positiors range from 2~5. +// If you fail, you can end up having to start again. If you fail too much, +// you'll be caught! +function script ToDoMerc { + // If you don't have a LockPick, you can't do this (useless) + if (!countitem(Lockpicks)) { + mesc l("You need a @@ to try this.", getitemlink(Lockpicks)), 1; + close; + } + + .@d=getarg(0,1); + .@m=getarg(1,3); + + // Invalid Argument (kill script) + if (.@d < 1 || .@m < 2 || .@m > 5) + end; + + // You must be rank (number of locks - 1) to try + if (MERC_RANK+1 < .@d) { + mesc l("This lock is beyond your current capacity."), 1; + close; + } + + // Create @pins array (the answer) + for (.@i=0; .@i < .@d;.@i++) + @pins[.@i] = rand(1,.@m); + + // Check if you'll try to open it. + mesc l("I'm not sure exactly what we are trying to do, but you seem to need to resolve this puzzle."); + mesc l("Will you try to unlock it?"); + if (askyesno() == ASK_NO) + close; + + // Setup your attempt + delitem Lockpicks, 1; + @pos=0; + mesc l("There are only @@ pins to set.", .@d); + + // You have as many attempts as pins and appliable strenghts. + // Each merc rank grants you an extra attempt. + // Each pin takes one attempt. + // It's not multiplied, so 3 pins with 3 positions: 6 chances, 9 possibilities. + // There's no penalty, but the attempt is counted working or not! + // Remember if you fail, all previous pins will be cleared (@pos) + for (.@i=0; .@i < (.@d+.@m+MERC_RANK) ; .@i++) { + mesc l("You are trying to lock the @@th pin. What will to do?", @pos+1); + + menuint + rif(.@m >= 4, l("Apply no pressure")), 4, + rif(.@m >= 2, l("Apply soft pressure")), 2, + rif(.@m >= 1, l("Apply normal pressure")), 1, + rif(.@m >= 3, l("Apply strong pressure")), 3, + rif(.@m >= 5, l("Apply very strong pressure")), 5, + l("Give up!"), 0; + + if (!@menuret) + close; + + // Is your guess correct? + if (@pins[@pos] == @menuret) { + mesc l("*click*"); + @pos+=1; + } else { + mesc l("This didn't work. All pins are now unlocked!"); + @pos=0; + // We don't need to clear console, each successful attempt IS counted. + // Therefore, unsetting 3 pins means you must do 3 new attempts!! + // The biggie is that you're running against time, here!!! + } + + if (@pos >= .@d) { + MERC_EXP += .@d*.@m; + return 1; + } + } + + MERC_EXP += 1; + return 0; +} diff --git a/npc/scripts.conf b/npc/scripts.conf index ca94600dd..4fbe83ec1 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -36,6 +36,7 @@ "npc/functions/fishing.txt", "npc/functions/hammocks.txt", "npc/functions/lockpicks.txt", +"npc/functions/TODO.txt", "npc/functions/marriage.txt", "npc/functions/mobpoint.txt", "npc/functions/mobhunter.txt", |