summaryrefslogblamecommitdiff
path: root/npc/functions/banker.txt
blob: 254b4822c834b2bbef83cc85c193b72151cff53c (plain) (tree)


























































































































































































































































                                                                                                                                                         
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;
}