Example #1
0
        public override bool OnDragDrop(Mobile from, Item dropped)
        {
            int val = 0;

            if (dropped is BankCheck)
            {
                val = ((BankCheck)dropped).Worth;
            }
            if (dropped is Gold)
            {
                val = ((Gold)dropped).Amount;
            }

            if (m_UnpaidEntries.ContainsKey(from))
            {
                TownCrierEntry tce = (TownCrierEntry)m_UnpaidEntries[from];
                if (val >= tce.CalculateCost())
                {
                    LogHelper Logger = new LogHelper("TownCrier.log", false, true);
                    Logger.Log(LogType.Mobile, from);
                    foreach (string s in tce.Lines)
                    {
                        Logger.Log(s);
                    }
                    Logger.Finish();
                    SayTo(from, "Thankee! I will tell the others of thy message.");
                    foreach (NetState state in NetState.Instances)
                    {
                        Mobile m = state.Mobile;

                        if (m != null && m.AccessLevel >= AccessLevel.Counselor)
                        {
                            m.SendMessage("{0}, {1} has posted the following message to the Town Criers:", from.Name, from.Serial);
                            foreach (string s in tce.Lines)
                            {
                                m.SendMessage(s);
                            }
                            m.SendMessage("This message will run for {0}.", ((TimeSpan)(tce.ExpireTime - DateTime.Now)).ToString());
                        }
                    }

                    GlobalTownCrierEntryList.Instance.AddEntry(tce);
                    m_UnpaidEntries.Remove(from);
                    dropped.Delete();
                    return(true);
                }
                else
                {
                    SayTo(from, "Dost thou attempt to cheat me? {0} gold is my price.", tce.CalculateCost());
                    return(false);
                }
            }

            return(base.OnDragDrop(from, dropped));
        }
Example #2
0
        public override void OnCancel(Mobile from)
        {
            if (m_Entry != null)
            {
                try
                {
                    if (from.AccessLevel < AccessLevel.GameMaster)
                    {
                        from.SendMessage("A partial refund was delivered to your bank account.");
                        from.BankBox.DropItem(new Gold(m_Entry.CalculateCost()));
                    }
                }
                catch
                {
                    from.SendMessage("An error occurred while trying to put a refund in your bank account. Contact a Game Master immediately.");
                }

                m_Owner.RemoveEntry(m_Entry);
            }

            if (m_Lines.Count > 0)
            {
                if (from.AccessLevel < AccessLevel.GameMaster)
                {
                    TownCrierEntry tce = new TownCrierEntry((string[])m_Lines.ToArray(typeof(string)), m_Duration, from.Serial);
                    TownCrier.AddUnpaidEntry(from, tce);

                    from.SendMessage("This message will cost {0}gp. Drag gold or a check onto a Town Crier to pay.", tce.CalculateCost());
                }
                else
                {
                    m_Owner.AddEntry(new TownCrierEntry((string[])m_Lines.ToArray(typeof(string)), m_Duration, from.Serial));
                    from.SendMessage("Message has been set.");
                }
            }
            else
            {
                if (m_Entry != null)
                {
                    from.SendMessage("Message deleted.");
                }
                else
                {
                    from.SendLocalizedMessage(502980);                       // Message entry cancelled.
                }
            }

            from.SendGump(new TownCrierGump(from, m_Owner));
        }
Example #3
0
		public override void OnCancel( Mobile from )
		{
			if ( m_Entry != null )
			{
				try 
				{
					if (from.AccessLevel < AccessLevel.GameMaster)
					{
						from.SendMessage("A partial refund was delivered to your bank account.");
						from.BankBox.DropItem(new Gold(m_Entry.CalculateCost()));
					}
				}
				catch
				{
					from.SendMessage("An error occurred while trying to put a refund in your bank account. Contact a Game Master immediately.");
				}

				m_Owner.RemoveEntry( m_Entry );
			}

			if ( m_Lines.Count > 0 )
			{
				if (from.AccessLevel < AccessLevel.GameMaster)
				{
					TownCrierEntry tce = new TownCrierEntry((string[])m_Lines.ToArray( typeof( string ) ), m_Duration, from.Serial );
					TownCrier.AddUnpaidEntry(from, tce);
					
					from.SendMessage("This message will cost {0}gp. Drag gold or a check onto a Town Crier to pay.", tce.CalculateCost());
				}
				else
				{
					m_Owner.AddEntry( new TownCrierEntry((string[])m_Lines.ToArray(typeof(string)), m_Duration, from.Serial) );
					from.SendMessage( "Message has been set." );                   
				}
			}
			else
			{
				if ( m_Entry != null )
					from.SendMessage( "Message deleted." );
				else
					from.SendLocalizedMessage( 502980 ); // Message entry cancelled.
			}

			from.SendGump( new TownCrierGump( from, m_Owner ) );
		}