예제 #1
0
        public override void OnClick()
        {
            if (!Owner.From.CheckAlive())
            {
                return;
            }

            if (Owner.From.Criminal)
            {
                m_Banker.Say(500378);                   // Thou art a criminal and cannot access thy bank box.
            }
            else
            {
                BankBox box = this.Owner.From.BankBox;
                if (box != null)
                {
                    box.GumpID = BaseContainer.BankGump(Owner.From, box);
                    box.Open();
                }
            }
        }
예제 #2
0
        public override void OnSpeech(SpeechEventArgs e)
        {
            if (!e.Handled && e.Mobile.InRange(this.Location, 12))
            {
                for (int i = 0; i < e.Keywords.Length; ++i)
                {
                    int keyword = e.Keywords[i];

                    switch (keyword)
                    {
                    case 0x0000:                             // *withdraw*
                    {
                        e.Handled = true;

                        string[] split = e.Speech.Split(' ');

                        if (split.Length >= 2)
                        {
                            int amount;

                            Container pack = e.Mobile.Backpack;

                            if (!int.TryParse(split[1], out amount))
                            {
                                break;
                            }

                            if ((!Core.ML && amount > 5000) || (Core.ML && amount > 60000))
                            {
                                this.Say(500381);                                           // Thou canst not withdraw so much at one time!
                            }
                            else if (pack == null || pack.Deleted || !(pack.TotalWeight < pack.MaxWeight) || !(pack.TotalItems < pack.MaxItems))
                            {
                                this.Say(1048147);                                         // Your backpack can't hold anything else.
                            }
                            else if (amount > 0)
                            {
                                BankBox box = e.Mobile.FindBankNoCreate();

                                if (box == null || !box.ConsumeTotal(typeof(Gold), amount))
                                {
                                    this.Say(500384);                                             // Ah, art thou trying to fool me? Thou hast not so much gold!
                                }
                                else
                                {
                                    pack.DropItem(new Gold(amount));

                                    Server.Gumps.WealthBar.RefreshWealthBar(e.Mobile);

                                    this.Say(1010005);                                             // Thou hast withdrawn gold from thy account.
                                }
                            }
                        }

                        break;
                    }

                    case 0x0001:                             // *balance*
                    {
                        e.Handled = true;

                        BankBox box = e.Mobile.FindBankNoCreate();

                        if (box != null)
                        {
                            this.Say(1042759, box.TotalGold.ToString());                                       // Thy current bank balance is ~1_AMOUNT~ gold.
                        }
                        else
                        {
                            this.Say(1042759, "0");                                       // Thy current bank balance is ~1_AMOUNT~ gold.
                        }
                        break;
                    }

                    case 0x0002:                             // *bank*
                    {
                        e.Handled = true;

                        BankBox box = e.Mobile.BankBox;
                        if (box != null)
                        {
                            box.GumpID = BaseContainer.BankGump(e.Mobile, box);
                            box.Open();
                        }

                        break;
                    }

                    case 0x0003:                             // *check*
                    {
                        e.Handled = true;

                        string[] split = e.Speech.Split(' ');

                        if (split.Length >= 2)
                        {
                            int amount;

                            if (!int.TryParse(split[1], out amount))
                            {
                                break;
                            }

                            if (amount < 5000)
                            {
                                this.Say(1010006);                                           // We cannot create checks for such a paltry amount of gold!
                            }
                            else if (amount > 1000000)
                            {
                                this.Say(1010007);                                           // Our policies prevent us from creating checks worth that much!
                            }
                            else
                            {
                                BankCheck check = new BankCheck(amount);

                                BankBox box = e.Mobile.BankBox;

                                if (!box.TryDropItem(e.Mobile, check, false))
                                {
                                    this.Say(500386);                                               // There's not enough room in your bankbox for the check!
                                    check.Delete();
                                }
                                else if (!box.ConsumeTotal(typeof(Gold), amount))
                                {
                                    this.Say(500384);                                               // Ah, art thou trying to fool me? Thou hast not so much gold!
                                    check.Delete();
                                }
                                else
                                {
                                    this.Say(1042673, AffixType.Append, amount.ToString(), "");                                               // Into your bank box I have placed a check in the amount of:
                                }
                                Server.Gumps.WealthBar.RefreshWealthBar(e.Mobile);
                            }
                        }

                        break;
                    }
                    }
                }
            }

            base.OnSpeech(e);
        }