summaryrefslogblamecommitdiff
path: root/npc/functions/banker.txt
blob: 3c0600717b4b21cf7cca004ebb7e55f3524077a7 (plain) (tree)
1
2
3
4
5
6
7
8


                                 
 
                                                   

        
                                  


                                     

                                 

                                              
                                             
                                                
                                   
 
              
 

                                               
                                                     
                    
                                                  

                     
      
                                  

                                                      
            











                                                
               
 
            
                      
                                              
                                  
                                                                       

                                   

                                         
                               
                   



                                      
                            



                                       
                            



                                       
                            



                                       
                            



                                        
                            



                                        
                            



                                        
                            



                                         
                            



                                   
 
               
                                           
                                 
                                                 
                       
 
       
                                  
                                                       












                                                
               
 
             
                      
                                               
                                  
                                                                       

                                   

                                           
                               
                   








































                                                   
           
                                             
                                  
 
                
                                                   
                                 
                                                 
                       
 
          
                                  
                                              
                                   
                                                 
                     
 
      
                                  

                                
 
          
                                  
                                                                      
                     
 



                                                     

         
                                                                                                                                                             













                                                                                                              
 
//

function	script	Banker	{

	if (BankAccount > 0) callsub S_MoveAccount;

L_Start:
	mes "[" + @npcname$ + "]";
	mes "\"Welcome to the bank!";
	mes "How can I help you?\"";
	next;
	menu
		"Deposit", L_Dep,
		"Withdraw", L_With,
		"Check my balance", L_Balance,
		"Open my storage", L_Storage,
		"Change Bank Options", L_Change,
		"Nevermind", L_Nev;

	close;

// need to close window before opening storage.
L_Storage:
	if (#BankOptions & OPT_STORAGE_CLOSE) close2;
	openstorage;
	if (#BankOptions & OPT_STORAGE_CLOSE) end;
	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", -;
	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", -;
	goto L_Nev;

L_Dep_5k:
	if (zeny<5000) goto L_NoMoney;
	set @Amount, 5000;
	goto L_Dep_Continue;

L_Dep_10k:
	if (zeny<10000) goto L_NoMoney;
	set @Amount, 10000;
	goto L_Dep_Continue;

L_Dep_25k:
	if (zeny<25000) goto L_NoMoney;
	set @Amount, 25000;
	goto L_Dep_Continue;

L_Dep_50k:
	if (zeny<50000) goto L_NoMoney;
	set @Amount, 50000;
	goto L_Dep_Continue;

L_Dep_100k:
	if (zeny<100000) goto L_NoMoney;
	set @Amount, 100000;
	goto L_Dep_Continue;

L_Dep_250k:
	if (zeny<250000) goto L_NoMoney;
	set @Amount, 250000;
	goto L_Dep_Continue;

L_Dep_500k:
	if (zeny<500000) goto L_NoMoney;
	set @Amount, 500000;
	goto L_Dep_Continue;

L_Dep_1kk:
	if (zeny<1000000) goto L_NoMoney;
	set @Amount, 1000000;
	goto L_Dep_Continue;

L_Dep_All:
	if (zeny<1) goto L_NoMoney;
	set @Amount, zeny;

L_Dep_Continue:
	if (zeny < @Amount) goto L_NoMoney;
	set zeny, zeny - @Amount;
	set #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", -;
	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", -;
	goto L_Nev;

L_With_5k:
	if (#BankAccount < 5000) goto L_NoMoney;
	set @Amount, 5000;
	goto L_With_Continue;

L_With_10k:
	if (#BankAccount < 10000) goto L_NoMoney;
	set @Amount, 10000;
	goto L_With_Continue;

L_With_25k:
	if (#BankAccount < 25000) goto L_NoMoney;
	set @Amount, 25000;
	goto L_With_Continue;

L_With_50k:
	if (#BankAccount < 50000) goto L_NoMoney;
	set @Amount, 50000;
	goto L_With_Continue;

L_With_100k:
	if (#BankAccount < 100000) goto L_NoMoney;
	set @Amount, 100000;
	goto L_With_Continue;

L_With_250k:
	if (#BankAccount < 250000) goto L_NoMoney;
	set @Amount, 250000;
	goto L_With_Continue;

L_With_500k:
	if (#BankAccount < 500000) goto L_NoMoney;
	set @Amount, 500000;
	goto L_With_Continue;

L_With_1kk:
	if (#BankAccount < 1000000) goto L_NoMoney;
	set @Amount, 1000000;
	goto L_With_Continue;

L_With_All:
	if (#BankAccount < 0) goto L_NoMoney;
	set @Amount, #BankAccount;

L_With_Continue:
	if (#BankAccount < @Amount) goto L_NoMoney;
	set zeny, zeny + @Amount;
	set #BankAccount, #BankAccount - @Amount;
	goto L_Balance;

L_Balance:
	mes "[" + @npcname$ + "]";
	mes "\"Your current bank balance is:";
	mes #BankAccount + " GP\"";
	if (#BankOptions & OPT_BANK_CLOSE) close;
	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:
	set #BankAccount, #BankAccount + BankAccount;
	set 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:
	set #BankOptions, (#BankOptions ^ OPT_STORAGE_CLOSE);
	goto L_Start;

L_Change_Bank:
	set #BankOptions, (#BankOptions ^ OPT_BANK_CLOSE);
	goto L_Start;
}