Server.Mobiles.Banker.OnSpeech C# (CSharp) Méthode

OnSpeech() public méthode

public OnSpeech ( SpeechEventArgs e ) : void
e SpeechEventArgs
Résultat void
        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;

                            if ( e.Mobile.Criminal )
                            {
                                this.Say( 500389 ); // I will not do business with a criminal!
                                break;
                            }

                            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 || !Withdraw(e.Mobile, amount))
                                    {
                                        this.Say(500384); // Ah, art thou trying to fool me? Thou hast not so much gold!
                                    }
                                    else
                                    {
                                        pack.DropItem(new Gold(amount));

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

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

                            if ( e.Mobile.Criminal )
                            {
                                this.Say( 500389 ); // I will not do business with a criminal!
                                break;
                            }

                            if ( AccountGold.Enabled && e.Mobile.Account != null )
                            {
                                this.Say( 1155855, String.Format("{0:#,0}\t{1:#,0}", e.Mobile.Account.TotalPlat, e.Mobile.Account.TotalGold) ); // Thy current bank balance is ~1_AMOUNT~ platinum and ~2_AMOUNT~ gold.
                            }
                            else
                            {
                                this.Say( 1042759, GetBalance(e.Mobile).ToString("#,0") ); // Thy current bank balance is ~1_AMOUNT~ gold.
                            }

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

                            if ( e.Mobile.Criminal )
                            {
                                this.Say( 500378 ); // Thou art a criminal and cannot access thy bank box.
                                break;
                            }

                            e.Mobile.BankBox.Open();

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

                            if ( AccountGold.Enabled )
                                break;

                            if ( e.Mobile.Criminal )
                            {
                                this.Say( 500389 ); // I will not do business with a criminal!
                                break;
                            }

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

                            break;
                        }
                    }
                }
            }

            base.OnSpeech( e );
        }