summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/map/storage.conf10
-rw-r--r--npc/functions/bank.txt57
2 files changed, 60 insertions, 7 deletions
diff --git a/conf/map/storage.conf b/conf/map/storage.conf
index f417040e7..089d23d14 100644
--- a/conf/map/storage.conf
+++ b/conf/map/storage.conf
@@ -59,4 +59,14 @@ storage_conf: (
Name: "Fortress Storage"
Capacity: 10
},
+{
+ Id: 4
+ Name: "Premium Storage"
+ Capacity: 300
+},
+{
+ Id: 5
+ Name: "Deluxe Storage"
+ Capacity: 500
+},
)
diff --git a/npc/functions/bank.txt b/npc/functions/bank.txt
index f7650947f..40ff31dbd 100644
--- a/npc/functions/bank.txt
+++ b/npc/functions/bank.txt
@@ -154,18 +154,20 @@ function script BKInfo {
speech S_LAST_NEXT,
l("We organize some auction and we help local merchants to launch their businesses."),
l("We also feature some services like a storage and a bank for members."),
- l("Registration is open to everybody, but newcomers need to pay a fee for all of the paperwork.");
+ l("Registration is open to everybody, but newcomers need to pay a fee for all of the paperwork."),
+ l("If you have... references, we may also be able to offer you... premium storing.");
narrator S_FIRST_BLANK_LINE,
l("The bank and item storage is shared between all characters within a same account."),
l("With it, you can safely move items and funds between your characters."),
- l("To move between characters that are on different accounts, you have to use the Trade function.");
+ l("The Premium and Deluxe Storages are only available for characters which were reborn at least once.");
return;
}
-// name, city, price
+// name, city, price, ID
function script BKReg {
.@price=max(2000, getarg(2)-#BankP);
+ .@id=getarg(3, 1);
@menu=3;
do
{
@@ -180,8 +182,8 @@ function script BKReg {
mes "";
if (@menu == 1) {
Zeny=Zeny-.@price;
- setq General_Banker, 1;
- #BankP=#BankP+rand2(150,400);
+ setq General_Banker, .@id;
+ #BankP=#BankP+(rand2(150,400)*(.@id**2));
mesn getarg(0);
mesq l("Registered! You can now use any banking service, of any town!");
} else if (@menu == 3) {
@@ -206,6 +208,8 @@ function script Banker {
l("I would like to store some items."),
l("I would like to perform money transactions."),
l("Did I received any mail?"),
+ rif(REBIRTH || is_sponsor(), l("I would like to use the Premium Storage.")),
+ rif(REBIRTH, l("I would like to use the Deluxe Storage.")),
l("What is this guild for?"),
l("Bye.");
@@ -228,15 +232,54 @@ function script Banker {
close;
break;
case 4:
+ if (getq(General_Banker) < 2) {
+ mesn;
+ mesq l("The Premium Storage is available to all our sponsors and anyone with... references. Such as yourself!");
+ next;
+ .@price=25000;
+ mesn;
+ mesq l("It will allow you to store %d extra items, with unlimited weight or size limit, for only %s GP! Although premium clients such as yourself... deserve a discount!", 300, fnum(.@price));
+ next;
+ BKReg(getarg(0), getarg(1), .@price, 2);
+ }
+ if (getq(General_Banker) >= 2) {
+ closeclientdialog;
+ openstorage 4;
+ close;
+ }
+ break;
+ case 5:
+ if (getq(General_Banker) < 2) {
+ mesn;
+ mesq l("This option is not yet available for you; Please purchase the Premium Storage first, and then we can get started on the deluxe.");
+ break;
+ }
+ if (getq(General_Banker) < 3) {
+ mesn;
+ mesq l("The Deluxe Storage is available only to our best customers, and how lucky you! YOU are eligible!");
+ next;
+ .@price=100000;
+ mesn;
+ mesq l("It will allow you to store %d extra items, with unlimited weight or size limit, for only %s GP! Although premium clients such as yourself... deserve a discount!", 500, fnum(.@price));
+ next;
+ BKReg(getarg(0), getarg(1), .@price, 3);
+ }
+ if (getq(General_Banker) >= 3) {
+ closeclientdialog;
+ openstorage 5;
+ close;
+ }
+ break;
+ case 6:
mes "";
BKInfo();
break;
}
- if (@menu != 5) {
+ if (@menu != 7) {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT | S_NO_NPC_NAME,
l("Something else?");
}
- } while (@menu != 5);
+ } while (@menu != 7);
}
closedialog;
goodbye;