summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2018-09-09 16:10:17 -0300
committerJesusaves <cpntb1@ymail.com>2018-09-09 16:10:17 -0300
commit73f268e83c278b735d8f6613a2a74f56bb5a7d62 (patch)
treefa7272759e1642e825ef799e7060c6c4196aefcd
parentee3ad796031ac328496bf2ebe1616aa7c0f7621e (diff)
downloadserverdata-73f268e83c278b735d8f6613a2a74f56bb5a7d62.tar.gz
serverdata-73f268e83c278b735d8f6613a2a74f56bb5a7d62.tar.bz2
serverdata-73f268e83c278b735d8f6613a2a74f56bb5a7d62.tar.xz
serverdata-73f268e83c278b735d8f6613a2a74f56bb5a7d62.zip
Placeholder for r7
-rw-r--r--npc/017-3/vault.txt20
-rw-r--r--npc/functions/TODO.txt96
-rw-r--r--npc/scripts.conf1
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",