summaryrefslogtreecommitdiff
path: root/npc/custom/banks
diff options
context:
space:
mode:
Diffstat (limited to 'npc/custom/banks')
-rw-r--r--npc/custom/banks/bank.txt190
1 files changed, 91 insertions, 99 deletions
diff --git a/npc/custom/banks/bank.txt b/npc/custom/banks/bank.txt
index 00a33b67f..7c610ec13 100644
--- a/npc/custom/banks/bank.txt
+++ b/npc/custom/banks/bank.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Syrus22 (1.0)
//===== Current Version: =====================================
-//= 1.0
+//= 2.0
//===== Compatible With: =====================================
//= Any rAthena version with Account variables.
//===== Description: =========================================
@@ -12,6 +12,7 @@
//= Syrus22 - There's an optional transaction fee at the top of
//= the script. To use it simply change the first set command
//= to set the cost variable to whatever you want the fee to be.
+//= Version 2.0: Optimized and brought the script up to standard. [Jguy]
//============================================================
prontera,132,217,5 script Banker 109,{
@@ -19,109 +20,100 @@ set @cost,500;
mes "[Banker]";
mes "Welcome to the First Bank of Prontera. How can I help you today?";
next;
-menu "I'd like to make a deposit.",Ldeposit,"I'd like to make a withdrawl.",Lwithdrawl,"What's my current balance?",Lbalance,"Cancel",Lcancel;
-
-Ldeposit:
- mes "[Banker]";
- mes "Very well... How much would you like to deposit? The maximum you can deposit at once is 999,999 Zeny.";
- next;
- if (@cost > 0) goto Ldepocost;
- goto Ldepocont;
-
- Ldepocost:
+switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's my current balance?:Cancel")) {
+ case 1:
mes "[Banker]";
- mes "Oh and don't forget there is a " + @cost + " Zeny charge on all transactions.";
+ mes "Very well... How much would you like to deposit? The maximum you can deposit at once is 999,999 Zeny.";
next;
- goto Ldepocont;
-
-Ldepocont:
- input @deposit;
- if (@deposit < 1) goto Lrealamount;
- if (@deposit > Zeny) goto Lneedzeny;
- if (@deposit > (Zeny - @cost)) goto Lneedzeny2;
- set Zeny,Zeny - @deposit;
- set Zeny,Zeny - @cost;
- set #bankstorage,#bankstorage + @deposit;
- mes "[Banker]";
- mes "Thank you very much... Your zeny is in good hands.";
- close;
-
-Lwithdrawl:
- mes "[Banker]";
- mes "Very well... How much would you like to withdraw? The maximum you can withdraw at one time is 999,999 Zeny";
- next;
- if (@cost > 0) goto Lwithcost;
- goto Lwithcont;
-
- Lwithcost:
+ if (@cost > 0) {
+ mes "[Banker]";
+ mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!";
+ next;
+ }
+ input @deposit;
+ if (@deposit < 1) {
+ mes "Make sure you ask me to deposit a real amount.";
+ close;
+ }
+ else if (@deposit > Zeny) {
+ mes "It does not appear like you have the amount of zeny you're trying to deposit!";
+ close;
+ }
+ else if (@deposit > (Zeny - @cost)) {
+ mes "You need " + @cost + " Zeny to cover the transaction fee!";
+ close;
+ }
+ else {
+ set Zeny,Zeny - @deposit;
+ set Zeny,Zeny - @cost;
+ set #bankstorage,#bankstorage + @deposit;
mes "[Banker]";
- mes "Oh and don't forget there is a " + @cost + " Zeny charge on all transactions.";
- next;
- goto Lwithcont;
-
-Lwithcont:
- input @withdrawl;
- if (@withdrawl < 1) goto Lrealamount;
- if (@withdrawl > #bankstorage) goto Lneedzeny3;
- if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) goto Lcostask;
- if (@cost > Zeny) goto Lneedzeny2;
- goto Lwithcont2;
+ mes "Thank you very much... Your zeny is in good hands.";
+ close;
+ }
- Lcostask:
+ case 2:
mes "[Banker]";
- mes "You don't have the Zeny for the transaction fee right now. Would you like me to take the fee directly from your withdrawl?";
+ mes "Very well... How much would you like to withdraw? The maximum you can withdraw at one time is 999,999 Zeny";
next;
- menu "Yes please.",Lwithtake,"No thank you.",Lcancel;
-
- Lwithtake:
+ if (@cost > 0) {
+ mes "[Banker]";
+ mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!";
+ next;
+ }
+ input @withdrawl;
+ if (@withdrawl < 1) {
+ mes "Please don't play games. I need a real amount to withdraw.";
+ close;
+ }
+ else if (@withdrawl > #bankstorage) {
+ mes "I show you only have ^00FF00" + #bankstorage +"^000000 zeny in your account!";
+ close;
+ }
+ else if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) {
+ mes "[Banker]";
+ mes "You don't have the Zeny for the transaction fee right now. Would you like me to take the fee directly from your withdrawl?";
+ next;
+ switch(select("Yes please.:No, Thanks")){
+ case 1:
+ mes "[Banker]";
+ mes "Removing " + @cost + " from your withdrawl to cover the deposit fee...";
+ set @withdrawl,@withdrawl - @cost;
+ set #bankstorage,#bankstorage - @cost;
+ set @cost,0;
+ next;
+ set Zeny,Zeny - @cost;
+ set Zeny,Zeny + @withdrawl;
+ set #bankstorage,#bankstorage - @withdrawl;
+ mes "[Banker]";
+ mes "There's your Zeny. Have a good day.";
+ close;
+ case 2:
+ mes "[Banker]";
+ mes "Very well... come again soon.";
+ close;
+ }
+ }
+ else {
+ set Zeny,Zeny - @cost;
+ set Zeny,Zeny + @withdrawl;
+ set #bankstorage,#bankstorage - @withdrawl;
+ mes "[Banker]";
+ mes "There's your Zeny. Have a good day.";
+ close;
+ }
+ case 3:
mes "[Banker]";
- mes "Ok then.";
- set @withdrawl,@withdrawl - @cost;
- set #bankstorage,#bankstorage - @cost;
- set @cost,0;
+ mes "Hmmmm let me check some paper work.";
next;
- goto Lwithcont2;
-
-Lwithcont2:
- set Zeny,Zeny - @cost;
- set Zeny,Zeny + @withdrawl;
- set #bankstorage,#bankstorage - @withdrawl;
- mes "[Banker]";
- mes "There's your Zeny. Have a good day.";
- close;
-
-Lbalance:
- mes "[Banker]";
- mes "Hmmmm lemme check the paper work.";
- next;
- mes "*Rustle, Rustle*";
- next;
- mes "[Banker]";
- mes "You currently have " + #bankstorage + " Zeny in your account.";
- close;
-
-Lrealamount:
- mes "[Banker]";
- mes "Don't play jokes with me please. Next time ask for a real amount.";
- close;
-
-Lneedzeny:
- mes "[Banker]";
- mes "You don't have enough Zeny to make that deposit.";
- close;
-
-Lneedzeny2:
- mes "[Banker]";
- mes "You don't have enough Zeny to cover the transaction fee.";
- close;
-
-Lneedzeny3:
- mes "[Banker]";
- mes "You don't have enough Zeny in your account.";
- close;
-
-Lcancel:
- mes "[Banker]";
- mes "Very well... come again soon.";
- close;
-} \ No newline at end of file
+ mes "*Rustle, Rustle*";
+ next;
+ mes "[Banker]";
+ mes "You currently have " + #bankstorage + " Zeny in your account.";
+ close;
+ case 4:
+ mes "[Banker]";
+ mes "Very well... come again soon.";
+ close;
+ }
+} // EOF \ No newline at end of file