From cf18ce071c79ae37e14ea38943e0b1d88da70a7b Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 9 Apr 2021 13:33:57 -0300 Subject: Override --- npc/functions/banker.txt | 251 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100755 npc/functions/banker.txt (limited to 'npc/functions/banker.txt') diff --git a/npc/functions/banker.txt b/npc/functions/banker.txt new file mode 100755 index 00000000..254b4822 --- /dev/null +++ b/npc/functions/banker.txt @@ -0,0 +1,251 @@ + +function script Banker { + if (BankAccount == 0) + goto L_Start; + callsub S_MoveAccount; + goto L_Start; + +L_Start: + if(@npcname$ == "") set @npcname$, strnpcinfo(1); + mes "[" + @npcname$ + "]"; + mes "\"Welcome to the bank!"; + mes "How can I help you?\""; + next; + menu + "Open my storage", L_Storage, + "Deposit", L_Dep, + "Withdraw", L_With, + "Check my balance", L_Balance, + "Change Bank Options", L_Change, + "Nevermind", L_Nev; + +L_Storage: + if (#BankOptions & OPT_STORAGE_CLOSE) close2; + openstorage; + if (#BankOptions & OPT_STORAGE_CLOSE) goto L_Return; + goto L_Start; + +L_Dep: + mes "[" + @npcname$ + "]"; + mes "\"How much would you like to deposit?\""; + next; + menu + "Other", L_Dep_Input, + "5,000 GP", L_Dep_5k, + "10,000 GP", L_Dep_10k, + "25,000 GP", L_Dep_25k, + "50,000 GP", L_Dep_50k, + "100,000 GP", L_Dep_100k, + "250,000 GP", L_Dep_250k, + "500,000 GP", L_Dep_500k, + "1,000,000 GP", L_Dep_1kk, + "All of my money", L_Dep_All, + "I've changed my mind", L_Start, + "Quit", L_Return; + +L_Dep_Input: + input @Amount; + if (@Amount >= 0) + goto L_Dep_Continue; + mes "[" + @npcname$ + "]"; + mes "\"I need a positive amount. What would you like to do?\""; + menu + "Go back", L_Start, + "Try again", L_Dep_Input, + "Deposit all", L_Dep_All, + "Nevermind", L_Nev; + +L_Dep_5k: + if (Zeny<5000) + goto L_NoMoney; + @Amount = 5000; + goto L_Dep_Continue; + +L_Dep_10k: + if (Zeny<10000) + goto L_NoMoney; + @Amount = 10000; + goto L_Dep_Continue; + +L_Dep_25k: + if (Zeny<25000) + goto L_NoMoney; + @Amount = 25000; + goto L_Dep_Continue; + +L_Dep_50k: + if (Zeny<50000) + goto L_NoMoney; + @Amount = 50000; + goto L_Dep_Continue; + +L_Dep_100k: + if (Zeny<100000) + goto L_NoMoney; + @Amount = 100000; + goto L_Dep_Continue; + +L_Dep_250k: + if (Zeny<250000) + goto L_NoMoney; + @Amount = 250000; + goto L_Dep_Continue; + +L_Dep_500k: + if (Zeny<500000) + goto L_NoMoney; + @Amount = 500000; + goto L_Dep_Continue; + +L_Dep_1kk: + if (Zeny<1000000) + goto L_NoMoney; + @Amount = 1000000; + goto L_Dep_Continue; + +L_Dep_All: + if (Zeny<1) + goto L_NoMoney; + @Amount = Zeny; + goto L_Dep_Continue; + +L_Dep_Continue: + if (Zeny < @Amount) + goto L_NoMoney; + Zeny = Zeny - @Amount; + #BankAccount = #BankAccount + @Amount; + goto L_Balance; + +L_With: + mes "[" + @npcname$ + "]"; + mes "\"How much would you like to withdraw?\""; + menu + "Other", L_With_Input, + "5,000 GP", L_With_5k, + "10,000 GP", L_With_10k, + "25,000 GP", L_With_25k, + "50,000 GP", L_With_50k, + "100,000 GP", L_With_100k, + "250,000 GP", L_With_250k, + "500,000 GP", L_With_500k, + "1,000,000 GP", L_With_1kk, + "All of my money", L_With_All, + "I've changed my mind", L_Start, + "Quit", L_Return; + +L_With_Input: + input @Amount; + if (@Amount >= 0) + goto L_With_Continue; + mes "[" + @npcname$ + "]"; + mes "\"I need a positive amount. What would you like to do?\""; + menu + "Go back", L_Start, + "Try again", L_With_Input, + "Withdraw all", L_With_All, + "Nevermind", L_Nev; + +L_With_5k: + if (#BankAccount < 5000) + goto L_NoMoney; + @Amount = 5000; + goto L_With_Continue; + +L_With_10k: + if (#BankAccount < 10000) + goto L_NoMoney; + @Amount = 10000; + goto L_With_Continue; + +L_With_25k: + if (#BankAccount < 25000) + goto L_NoMoney; + @Amount = 25000; + goto L_With_Continue; + +L_With_50k: + if (#BankAccount < 50000) + goto L_NoMoney; + @Amount = 50000; + goto L_With_Continue; + +L_With_100k: + if (#BankAccount < 100000) + goto L_NoMoney; + @Amount = 100000; + goto L_With_Continue; + +L_With_250k: + if (#BankAccount < 250000) + goto L_NoMoney; + @Amount = 250000; + goto L_With_Continue; + +L_With_500k: + if (#BankAccount < 500000) + goto L_NoMoney; + @Amount = 500000; + goto L_With_Continue; + +L_With_1kk: + if (#BankAccount < 1000000) + goto L_NoMoney; + @Amount = 1000000; + goto L_With_Continue; + +L_With_All: + if (#BankAccount < 0) + goto L_NoMoney; + @Amount = #BankAccount; + goto L_With_Continue; + +L_With_Continue: + if (#BankAccount < @Amount) + goto L_NoMoney; + Zeny = Zeny + @Amount; + #BankAccount = #BankAccount - @Amount; + goto L_Balance; + +L_Balance: + mes "[" + @npcname$ + "]"; + mes "\"Your current bank balance is:"; + mes #BankAccount + " GP\""; + if (#BankOptions & OPT_BANK_CLOSE) goto L_Return; + goto L_Start; + +L_Nev: + mes "[" + @npcname$ + "]"; + mes "\"Goodbye then.\""; + return; + +L_NoMoney: + mes "[" + @npcname$ + "]"; + mes "\"Oh dear, it seems that you don't have enough money.\""; + goto L_Start; + +S_MoveAccount: + #BankAccount = #BankAccount + BankAccount; + BankAccount = 0; + return; + +L_Change: + setarray @menuitems$, "Keep the current settings", "Close NPC dialog after selecting storage option", "Close NPC dialog after checking your balance"; + if (#BankOptions & OPT_STORAGE_CLOSE) set @menuitems$[1], "Return to main menu after leaving storage"; + if (#BankOptions & OPT_BANK_CLOSE) set @menuitems$[2], "Return to main menu after leaving bank"; + menu + @menuitems$[0], L_Start, + @menuitems$[1], L_Change_Storage, + @menuitems$[2], L_Change_Bank; + +L_Change_Storage: + #BankOptions = (#BankOptions ^ OPT_STORAGE_CLOSE); + goto L_Start; + +L_Change_Bank: + #BankOptions = (#BankOptions ^ OPT_BANK_CLOSE); + goto L_Start; + +L_Return: + @npcname$ = ""; + return; +} -- cgit v1.2.3-70-g09d2