summaryrefslogtreecommitdiff
path: root/example/scripts/npcs/banker.lua
diff options
context:
space:
mode:
Diffstat (limited to 'example/scripts/npcs/banker.lua')
-rw-r--r--example/scripts/npcs/banker.lua79
1 files changed, 79 insertions, 0 deletions
diff --git a/example/scripts/npcs/banker.lua b/example/scripts/npcs/banker.lua
new file mode 100644
index 00000000..4e048653
--- /dev/null
+++ b/example/scripts/npcs/banker.lua
@@ -0,0 +1,79 @@
+----------------------------------------------------------
+-- Banker Function --
+----------------------------------------------------------------------------------
+-- Copyright 2008 The Mana World Development Team --
+-- --
+-- This file is part of The Mana World. --
+-- --
+-- The Mana World is free software; you can redistribute it and/or modify it --
+-- under the terms of the GNU General Public License as published by the Free --
+-- Software Foundation; either version 2 of the License, or any later version. --
+----------------------------------------------------------------------------------
+
+function Banker(npc, ch)
+ if mana.being_get_gender(ch) == GENDER_MALE then
+ do_message(npc, ch, "Welcome to the bank, sir!")
+ elseif mana.being_get_gender(ch) == GENDER_FEMALE then
+ do_message(npc, ch, "Welcome to the bank, madam!")
+ else
+ do_message(npc, ch, "Welcome to the bank... uhm... person of unspecified gender!")
+ end
+ local account = tonumber(get_quest_var(ch, "BankAccount"))
+ local result = -1
+ do_wait()
+
+ if (account == nil) then --Initial account creation, if needed
+ do_message(npc, ch, "Hello! Would you like to setup a bank account? There is a sign-on bonus right now!")
+ result = do_choice(npc, ch, "Yes", "No")
+ if (result == 1) then
+ mana.chr_set_quest(ch, "BankAccount", 5)
+ do_message(npc, ch, "Your account has been made. Your sign-on bonus is 5GP.")
+ account = 5
+ end
+ end
+
+ if (account ~= nil) then --If the player has an account
+ local money = 0
+ local input = 0
+ result = 1
+ while (result < 3) do --While they've choosen a valid option that isn't "Never mind"
+ account = tonumber(get_quest_var(ch, "BankAccount")) --Why do I need to convert this?
+ do_message(npc, ch, "Your balance: " .. account .. ".\nYour money: " .. mana.chr_money(ch) .. ".")
+ result = do_choice(npc, ch, "Deposit", "Withdraw", "Never mind")
+ if (result == 1) then --Deposit
+ money = mana.chr_money(ch);
+ if (money > 0) then --Make sure they have money to deposit
+ do_message(npc, ch, "How much would you like to deposit? (0 will cancel)")
+ input = do_ask_integer(npc, ch, 0, money, 1)
+ do_wait()
+ money = mana.chr_money(ch)
+ if (input > 0 and input <= money) then --Make sure something weird doesn't happen and they try to deposit more than they have
+ mana.chr_money_change(ch, -input)
+ mana.chr_set_quest(ch, "BankAccount", account + input)
+ do_message(npc, ch, input .. " GP deposited.")
+ elseif (input > money) then --Chosen more than they have
+ do_message(npc, ch, "You don't have that much money. But you just did....")
+ end
+ else
+ do_message(npc, ch, "You don't have any money to deposit!")
+ end
+ elseif (result == 2) then --Withdraw
+ if (account > 0) then --Make sure they have money to withdraw
+ do_message(npc, ch, "How much would you like to withdraw? (0 will cancel)")
+ input = do_ask_integer(npc, ch, 0, account, 1)
+ if (input > 0 and input <= account) then --Make sure something weird doesn't happen and they try to withdraw more than they have
+ mana.chr_money_change(ch, input)
+ mana.chr_set_quest(ch, "BankAccount", account - input)
+ do_message(npc, ch, input .. " GP withdrawn.")
+ elseif (input > account) then --Chosen more than they have
+ do_message(npc, ch, "You don't have that much in your account. But you just did....")
+ end
+ else
+ do_message(npc, ch, "Your account is empty!")
+ end
+ end
+ end --This ends the while loop
+ end
+
+ do_message(npc, ch, "Thank you. Come again!")
+end