From 620e60eebce2c1f35c5c9a82f6ca365b316587f5 Mon Sep 17 00:00:00 2001 From: Valaris Date: Sun, 29 Jan 2006 16:10:48 +0000 Subject: AS OF SVN REV. 5901, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EVERYTHING ELSE GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5094 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/banks/bank.txt | 126 ++++++++++++++++++++++++++++++++++++++++ npc/custom/banks/kafra_bank.txt | 116 ++++++++++++++++++++++++++++++++++++ 2 files changed, 242 insertions(+) create mode 100644 npc/custom/banks/bank.txt create mode 100644 npc/custom/banks/kafra_bank.txt (limited to 'npc/custom/banks') diff --git a/npc/custom/banks/bank.txt b/npc/custom/banks/bank.txt new file mode 100644 index 000000000..67889a139 --- /dev/null +++ b/npc/custom/banks/bank.txt @@ -0,0 +1,126 @@ +//===== eAthena Script ======================================= +//= Banker Script +//===== By: ================================================== +//= Syrus22 (1.0) +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= Any eAthena version with Account variables. +//===== Description: ========================================= +//= An account wide Banker to store Zeny +//===== Additional Comments: ================================= +//= 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. +//============================================================ +prontera.gat,132,217,5 script Banker 109,{ +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: + mes "[Banker]"; + mes "Oh and don't forget there is a " + @cost + " Zeny charge on all transactions."; + 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: + 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; + + Lcostask: + 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; + menu "Yes please.",Lwithtake,"No thank you.",Lcancel; + + Lwithtake: + mes "[Banker]"; + mes "Ok then."; + set @withdrawl,@withdrawl - @cost; + set #bankstorage,#bankstorage - @cost; + set @cost,0; + 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 diff --git a/npc/custom/banks/kafra_bank.txt b/npc/custom/banks/kafra_bank.txt new file mode 100644 index 000000000..941501e88 --- /dev/null +++ b/npc/custom/banks/kafra_bank.txt @@ -0,0 +1,116 @@ +//===== eAthena Script ======================================= +//= The 2nd Bank of Prontera ( with daily 0.01% income! ) +//===== By: ================================================== +//= Lupus (1.0) +//===== Current Version: ===================================== +//= 1.2 +//===== Compatible With: ===================================== +//= eAthena 1.x +//===== Description: ========================================= +//= A bank which has an interest % +//===== Additional Comments: ================================= +// Look for this formula and setup your Bank daily % interest +// #kafrabank/1000 = 0.1% of interest per day +// #kafrabank/100 = 1% of interest per day +// #kafrabank/10 = 10% of interest per day +// +// 1.1 Added log of bank operation -> logmes "some info"; +// 1.2 Set max income to 100,000z. It would help to avoid +// zeny exploits when you change DATE at your server +//============================================================ + +prontera.gat,131,190,1 script Bank Clerk::bankg 833,{ + mes"[Maniss]"; + mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!"; + + set @kb_int,(gettime(6)*31)+gettime(5); //today's number + set @income,0; +//calculate % + if (#kafrabank<=0 || #kb_int>=@kb_int) goto L_NoIncomeToday; + set @income,(#kafrabank/1000)*(@kb_int-#kb_int); //@income == % of the sum +//max income constant: + if (@income>100000) set @income,100000; +L_NoIncomeToday: + set #kb_int,@kb_int; //reset days timer + + if(#kafrabank==0) mes "We could open you an account."; + if(@income>0) mes "Today's income: ^135445" + @income + "^000000 zeny."; + set #kafrabank,#kafrabank+@income; + if(#kafrabank>0) mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; + mes "What would you like?"; + next; + if(#kafrabank==0) menu "-Open an account",-,"-Quit",B_EXIT2; + if(#kafrabank>0) menu "-Deposit money",-,"-Withdraw money",M_WITHDRAW,"-Quit",B_EXIT2; + + mes"[Maniss]"; + mes "Please, tell me how much zeny you would like to deposit."; + next; + input @kafrabank; + + if(@kafrabank<1000) goto L_LESS_1000; + if(@kafrabank>10000000) goto L_TOO_BIG_AMOUNT; + if(@kafrabank>zeny) goto L_NOT_ENOUGH; + set zeny,zeny-@kafrabank; + set #kafrabank,#kafrabank+@kafrabank; + mes"[Maniss]"; + mes "You've made a deposit of ^135445" + @kafrabank + "z^000000."; +//we log these zeny operations into the log db + logmes "Bank %: " + @income +"z, Deposit: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; + goto B_EXIT; + +M_WITHDRAW: + if(#kafrabank==0) goto L_ZERO_ACCOUNT; + mes"[Maniss]"; + mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; + mes "How much zeny would you like to withdraw?"; + next; + input @kafrabank; + + if(@kafrabank<1) goto B_EXIT2; + if(@kafrabank>10000000) goto L_TOO_BIG_AMOUNT; + if(@kafrabank>#kafrabank) goto L_NOT_ENOUGH; + set #kafrabank,#kafrabank-@kafrabank; + set zeny,zeny+@kafrabank; + mes"[Maniss]"; + mes "Here is your ^135445" + @kafrabank + "z^000000, put your sign here..."; +//we log these zeny operations into the log db + logmes "Bank %: " + @income +"z, Withdraw: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; + goto B_EXIT; + +L_NOT_ENOUGH: + mes"[Maniss]"; + mes "You don't have enough zeny for this operation."; + next; + goto B_EXIT2; + +L_ZERO_ACCOUNT: + mes"[Maniss]"; + mes "You don't have any zeny on your account!"; + next; + goto B_EXIT2; + +L_TOO_BIG_AMOUNT: + mes"[Maniss]"; + mes "Sorry. The maximum deposit you can make on a time is 10,000,000 zeny."; + next; + goto B_EXIT2; + +L_LESS_1000: + mes"[Maniss]"; + mes "We're sorry, the minimum amount of zeny you can deposit is 1,000 zeny."; + next; + goto B_EXIT2; + +B_EXIT: + mes "Very well... Come again soon!"; + next; + +B_EXIT2: + mes"[Maniss]"; + mes "Thank you for using our Bank Service. We hope to see you again soon."; + close; +} + +geffen.gat,125,73,3 duplicate(bankg) Bank Clerk#2 833 +izlude.gat,145,107,1 duplicate(bankg) Bank Clerk#3 833 +morocc.gat,147,84,7 duplicate(bankg) Bank Clerk#4 833 -- cgit v1.2.3-70-g09d2