public override bool OnDragDrop(Mobile from, Item dropped)
		{
			// trigger returns true if returnoverride
			if (XmlScript.HasTrigger(this, TriggerName.onDragDrop) &&
				UberScriptTriggers.Trigger(this, from, TriggerName.onDragDrop, dropped))
			{
				return true;
			}

			bool bReturn = false;

			if (dropped is Head2)
			{
				var h = (Head2)dropped;

				if (h.Player == null || h.Player.Deleted)
				{
					Say("This belonged to a nobody!");
					h.Delete();
					return true;
				}

				if (h.Player != null)
				{
					Mobile mob = h.Player;

					from.CloseGump(typeof(HeadNegotiateGump));
					mob.CloseGump(typeof(HeadOwnerListGump));

					if (mob.Kills >= 5 && !h.Expired)
					{
						if (!h.Player.InStat)
						{
							LoggingCustom.Log("MurdererNegotiate.txt", DateTime.Now + "\t" + mob + "\t" + "STATTED by " + from.Name);

						    if (CentralGump.EnsureProfile(mob as PlayerMobile).BuyHead)
						    {
						        if (PendingStatloss == null)
						        {
						            PendingStatloss = new List<HeadTurnInObj>();
						        }

						        if (PendingStatlossTimer == null || !PendingStatlossTimer.Running)
						        {
						            PendingStatlossTimer = new InternalTimer();
                                    PendingStatlossTimer.Start();
						        }

						        if (!PendingStatloss.Exists(x => x.HeadOwner == mob as PlayerMobile))
						        {
						            var headobject = new HeadTurnInObj(DateTime.UtcNow + TimeSpan.FromMinutes(5), from as PlayerMobile, mob as PlayerMobile);
                                    PendingStatloss.Add(headobject);

                                    Conquests.CheckProgress<ItemConquest>(from as PlayerMobile, h, "turnin");
                                    bReturn = true;
                                    h.Delete();
						        }
                                else
						        {
						            from.SendMessage(61,
						                "This player is currently pending statloss.  Try to turn the head in again in 5 minutes.");
						        }
						    }
						    else
						    {
                                Conquests.CheckProgress<ItemConquest>(from as PlayerMobile, h, "turnin");
                                bReturn = true;
                                BeginSkillLoss(mob);
                                h.Delete();
						    }

							if (mob.Kills <= 10)
							{
								Say("My thanks for slaying this vile person.");
							}

							if (mob.Kills > 10 && mob.Kills < 25)
							{
								Say("Thank you for ridding Brittania of this evil fiend.");
							}

							if (mob.Kills >= 25)
							{
								Say("Thank you for destroying " + mob.Name + ", Britannia is a much safer place with that scum gone.");
							}
						}
						else //Owner of head is currently in statloss
						{
							Say("Begone.  This murderer has already met justice!");
							Say("I'll take that head, you just run along now.");
							bReturn = true;
							h.Delete();
						}
					}
					else if (h.Expired) //if head is decayed, set to true and change hue
					{
						Say("Why are you trying to give me this decayed piece of trash?");
						h.Expire();
					}
					else
					{
						Say("You disgusting miscreant!  Why are you giving me an innocent person's head?");
					}
				}
				else
				{
					Say("I suspect treachery....");
					Say("I'll take that head, you just run along now.");
					bReturn = true;
					h.Delete();
				}
			}

			return bReturn;
		}
Beispiel #2
0
        public override bool OnDragDrop(Mobile from, Item dropped)
        {
            // trigger returns true if returnoverride
            if (XmlScript.HasTrigger(this, TriggerName.onDragDrop) &&
                UberScriptTriggers.Trigger(this, from, TriggerName.onDragDrop, dropped))
            {
                return(true);
            }

            bool bReturn = false;

            if (dropped is Head2)
            {
                var h = (Head2)dropped;

                if (h.Player == null || h.Player.Deleted)
                {
                    Say("This belonged to a nobody!");
                    h.Delete();
                    return(true);
                }

                if (h.Player != null)
                {
                    Mobile mob = h.Player;

                    from.CloseGump(typeof(HeadNegotiateGump));
                    mob.CloseGump(typeof(HeadOwnerListGump));

                    if (mob.Kills >= 5 && !h.Expired)
                    {
                        if (!h.Player.InStat)
                        {
                            LoggingCustom.Log("MurdererNegotiate.txt", DateTime.Now + "\t" + mob + "\t" + "STATTED by " + from.Name);

                            if (CentralGump.EnsureProfile(mob as PlayerMobile).BuyHead)
                            {
                                if (PendingStatloss == null)
                                {
                                    PendingStatloss = new List <HeadTurnInObj>();
                                }

                                if (PendingStatlossTimer == null || !PendingStatlossTimer.Running)
                                {
                                    PendingStatlossTimer = new InternalTimer();
                                    PendingStatlossTimer.Start();
                                }

                                if (!PendingStatloss.Exists(x => x.HeadOwner == mob as PlayerMobile))
                                {
                                    var headobject = new HeadTurnInObj(DateTime.UtcNow + TimeSpan.FromMinutes(5), from as PlayerMobile, mob as PlayerMobile);
                                    PendingStatloss.Add(headobject);

                                    Conquests.CheckProgress <ItemConquest>(from as PlayerMobile, h, "turnin");
                                    bReturn = true;
                                    h.Delete();
                                }
                                else
                                {
                                    from.SendMessage(61,
                                                     "This player is currently pending statloss.  Try to turn the head in again in 5 minutes.");
                                }
                            }
                            else
                            {
                                Conquests.CheckProgress <ItemConquest>(from as PlayerMobile, h, "turnin");
                                bReturn = true;
                                BeginSkillLoss(mob);
                                h.Delete();
                            }

                            if (mob.Kills <= 10)
                            {
                                Say("My thanks for slaying this vile person.");
                            }

                            if (mob.Kills > 10 && mob.Kills < 25)
                            {
                                Say("Thank you for ridding Brittania of this evil fiend.");
                            }

                            if (mob.Kills >= 25)
                            {
                                Say("Thank you for destroying " + mob.Name + ", Britannia is a much safer place with that scum gone.");
                            }
                        }
                        else                         //Owner of head is currently in statloss
                        {
                            Say("Begone.  This murderer has already met justice!");
                            Say("I'll take that head, you just run along now.");
                            bReturn = true;
                            h.Delete();
                        }
                    }
                    else if (h.Expired)                     //if head is decayed, set to true and change hue
                    {
                        Say("Why are you trying to give me this decayed piece of trash?");
                        h.Expire();
                    }
                    else
                    {
                        Say("You disgusting miscreant!  Why are you giving me an innocent person's head?");
                    }
                }
                else
                {
                    Say("I suspect treachery....");
                    Say("I'll take that head, you just run along now.");
                    bReturn = true;
                    h.Delete();
                }
            }

            return(bReturn);
        }