当前位置: 首页>>代码示例>>C#>>正文


C# Mobile.CriminalAction方法代码示例

本文整理汇总了C#中Mobile.CriminalAction方法的典型用法代码示例。如果您正苦于以下问题:C# Mobile.CriminalAction方法的具体用法?C# Mobile.CriminalAction怎么用?C# Mobile.CriminalAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Mobile的用法示例。


在下文中一共展示了Mobile.CriminalAction方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: OnProfanityDetected

        private static bool OnProfanityDetected(Mobile from)
        {
            switch (Action)
            {
                case ProfanityAction.None:
                    return true;
                case ProfanityAction.Disallow:
                    return false;
                case ProfanityAction.Criminal:
                    from.Criminal = true;
                    return true;
                case ProfanityAction.CriminalAction:
                    from.CriminalAction(false);
                    return true;
                case ProfanityAction.Disconnect:
                {
                    NetState ns = from.NetState;

                    if (ns != null)
                    {
                        ns.Dispose();
                    }

                    return false;
                }
                default:
                case ProfanityAction.Other: // TODO: Provide custom implementation if this is chosen
                {
                    return true;
                }
            }
        }
开发者ID:greeduomacro,项目名称:UO-Forever,代码行数:32,代码来源:ProfanityProtection.cs

示例2: Chop

        public void Chop( Mobile from )
        {
            if ( from.InRange( this.GetWorldLocation(), 1 ) )
            {
                if ( ( chopTimer == null ) || ( !chopTimer.Running ) )
                {
                    if ( ( TreeHelper.TreeOrdinance ) && ( from.AccessLevel == AccessLevel.Player ) )
                    {
                        if ( from.Region is Regions.GuardedRegion )
                            from.CriminalAction( true );
                    }

                    chopTimer = new TreeHelper.ChopAction( from );

                    Point3D pnt = this.Location;
                    Map map =  this.Map;

                    from.Direction = from.GetDirectionTo( this );
                    chopTimer.Start();

                    double lumberValue = from.Skills[SkillName.Lumberjacking].Value / 100;
                    if ( ( lumberValue > .5 ) && ( Utility.RandomDouble() <= lumberValue ) )
                    {
                        Blueberries fruit = new Blueberries( (int)Utility.Random( 13 ) + m_yield );
                        from.AddToBackpack( fruit );

                        int cnt = Utility.Random( (int)( lumberValue * 10 ) + 1 );
                        Log logs = new Log( cnt ); // Fruitwood Logs ??
                        from.AddToBackpack( logs );

                        FruitTreeStump i_stump = new FruitTreeStump( typeof( BlueberryTree ) );
                        Timer poof = new StumpTimer( this, i_stump, from );
                        poof.Start();
                    }
                    else from.SendLocalizedMessage( 500495 ); // You hack at the tree for a while, but fail to produce any useable wood.
                    //PublicOverheadMessage( MessageType.Regular, 0x3BD, false, string.Format( "{0}", lumberValue ));
                }
            }
            else from.SendLocalizedMessage( 500446 );  // That is too far away.
        }
开发者ID:justdanofficial,项目名称:khaeros,代码行数:40,代码来源:BlueberryCrop.cs

示例3: CheckLoot

		private bool CheckLoot( Mobile m, bool criminalAction )
		{
			if ( m_Temporary )
				return false;

			if ( m.AccessLevel >= AccessLevel.GameMaster || m_Owner == null || m == m_Owner )
				return true;

			Party p = Party.Get( m_Owner );

			if ( p != null && p.Contains( m ) )
				return true;

			Map map = Map;

			if ( map != null && (map.Rules & MapRules.HarmfulRestrictions) == 0 )
			{
				if ( criminalAction )
					m.CriminalAction( true );
				else
					m.SendLocalizedMessage( 1010630 ); // Taking someone else's treasure is a criminal offense!

				return true;
			}

			m.SendLocalizedMessage( 1010631 ); // You did not discover this chest!
			return false;
		}
开发者ID:FreeReign,项目名称:imaginenation,代码行数:28,代码来源:TreasureMapChest.cs

示例4: OnCarve


//.........这里部分代码省略.........
				new Blood( 0x122D ).MoveToWorld( corpse.Location, corpse.Map );

				if ( feathers != 0 )
				{
					corpse.AddCarvedItem( new Feather( feathers ), from );
					from.SendLocalizedMessage( 500479 ); // You pluck the bird. The feathers are now on the corpse.
				}

				if ( wool != 0 )
				{
					corpse.AddCarvedItem( new TaintedWool( wool ), from );
					from.SendLocalizedMessage( 500483 ); // You shear it, and the wool is now on the corpse.
				}

				if ( meat != 0 )
				{
					if ( MeatType == MeatType.Ribs )
						corpse.AddCarvedItem( new RawRibs( meat ), from );
					else if ( MeatType == MeatType.Bird )
						corpse.AddCarvedItem( new RawBird( meat ), from );
					else if ( MeatType == MeatType.LambLeg )
						corpse.AddCarvedItem( new RawLambLeg( meat ), from );

					from.SendLocalizedMessage( 500467 ); // You carve some meat, which remains on the corpse.
				}

				if ( hides != 0 )
				{
					Item holding = from.Weapon as Item;
					if ( Core.AOS && ( holding is SkinningKnife /* TODO: || holding is ButcherWarCleaver || with is ButcherWarCleaver */ ) )
					{
						Item leather = null;

						switch ( HideType )
						{
							case HideType.Regular: leather = new Leather( hides ); break;
							case HideType.Spined: leather = new SpinedLeather( hides ); break;
							case HideType.Horned: leather = new HornedLeather( hides ); break;
							case HideType.Barbed: leather = new BarbedLeather( hides ); break;
						}

						if ( leather != null )
						{
							if ( !from.PlaceInBackpack( leather ) )
							{
								corpse.DropItem( leather );
								from.SendLocalizedMessage( 500471 ); // You skin it, and the hides are now in the corpse.
							}
							else
								from.SendLocalizedMessage( 1073555 ); // You skin it and place the cut-up hides in your backpack.
						}
					}
					else
					{
						if ( HideType == HideType.Regular )
							corpse.DropItem( new Hides( hides ) );
						else if ( HideType == HideType.Spined )
							corpse.DropItem( new SpinedHides( hides ) );
						else if ( HideType == HideType.Horned )
							corpse.DropItem( new HornedHides( hides ) );
						else if ( HideType == HideType.Barbed )
							corpse.DropItem( new BarbedHides( hides ) );

						from.SendLocalizedMessage( 500471 ); // You skin it, and the hides are now in the corpse.
					}
				}

				if ( scales != 0 )
				{
					ScaleType sc = this.ScaleType;

					switch ( sc )
					{
						case ScaleType.Red:     corpse.AddCarvedItem( new RedScales( scales ), from ); break;
						case ScaleType.Yellow:  corpse.AddCarvedItem( new YellowScales( scales ), from ); break;
						case ScaleType.Black:   corpse.AddCarvedItem( new BlackScales( scales ), from ); break;
						case ScaleType.Green:   corpse.AddCarvedItem( new GreenScales( scales ), from ); break;
						case ScaleType.White:   corpse.AddCarvedItem( new WhiteScales( scales ), from ); break;
						case ScaleType.Blue:    corpse.AddCarvedItem( new BlueScales( scales ), from ); break;
						case ScaleType.All:
						{
							corpse.AddCarvedItem( new RedScales( scales ), from );
							corpse.AddCarvedItem( new YellowScales( scales ), from );
							corpse.AddCarvedItem( new BlackScales( scales ), from );
							corpse.AddCarvedItem( new GreenScales( scales ), from );
							corpse.AddCarvedItem( new WhiteScales( scales ), from );
							corpse.AddCarvedItem( new BlueScales( scales ), from );
							break;
						}
					}

					from.SendMessage( "You cut away some scales, but they remain on the corpse." );
				}

				corpse.Carved = true;

				if ( corpse.IsCriminalAction( from ) )
					from.CriminalAction( true );
			}
		}
开发者ID:greeduomacro,项目名称:uotitan,代码行数:101,代码来源:BaseCreature.cs

示例5: Carve

        public void Carve(Mobile from, Item item)
        {
            if (this.IsCriminalAction(from) && this.Map != null && (this.Map.Rules & MapRules.HarmfulRestrictions) != 0)
            {
                if (this.m_Owner == null || !this.m_Owner.Player)
                    from.SendLocalizedMessage(1005035); // You did not earn the right to loot this creature!
                else
                    from.SendLocalizedMessage(1010049); // You may not loot this corpse.

                return;
            }

            Mobile dead = this.m_Owner;

            if (this.GetFlag(CorpseFlag.Carved) || dead == null)
            {
                from.SendLocalizedMessage(500485); // You see nothing useful to carve from the corpse.
            }
            else if (((Body)this.Amount).IsHuman && this.ItemID == 0x2006)
            {
                new Blood(0x122D).MoveToWorld(this.Location, this.Map);

                new Torso().MoveToWorld(this.Location, this.Map);
                new LeftLeg().MoveToWorld(this.Location, this.Map);
                new LeftArm().MoveToWorld(this.Location, this.Map);
                new RightLeg().MoveToWorld(this.Location, this.Map);
                new RightArm().MoveToWorld(this.Location, this.Map);
                new Head(dead.Name).MoveToWorld(this.Location, this.Map);

                this.SetFlag(CorpseFlag.Carved, true);

                this.ProcessDelta();
                this.SendRemovePacket();
                this.ItemID = Utility.Random(0xECA, 9); // bone graphic
                this.Hue = 0;
                this.ProcessDelta();

                if (this.IsCriminalAction(from))
                    from.CriminalAction(true);
            }
            else if (dead is BaseCreature)
            {
                ((BaseCreature)dead).OnCarve(from, this, item);
            }
            else
            {
                from.SendLocalizedMessage(500485); // You see nothing useful to carve from the corpse.
            }
        }
开发者ID:Drilikath,项目名称:ForkUO,代码行数:49,代码来源:Corpse.cs

示例6: OnItemLifted

        public override void OnItemLifted(Mobile from, Item item)
        {
            base.OnItemLifted(from, item);

            if (item != this && from != this.m_Owner)
                from.RevealingAction();

            if (item != this && this.IsCriminalAction(from))
                from.CriminalAction(true);

            if (!this.m_Looters.Contains(from))
                this.m_Looters.Add(from);

            if (this.m_InstancedItems != null && this.m_InstancedItems.ContainsKey(item))
                this.m_InstancedItems.Remove(item);
        }
开发者ID:Drilikath,项目名称:ForkUO,代码行数:16,代码来源:Corpse.cs

示例7: OnItemUsed

        public override void OnItemUsed( Mobile from, Item item )
        {
            base.OnItemUsed( from, item );

            if ( item is Food )
                from.RevealingAction();

            if ( item != this && IsCriminalAction( from ) )
                from.CriminalAction( true );

            if ( !m_Looters.Contains( from ) )
                m_Looters.Add( from );

            if ( m_InstancedItems != null && m_InstancedItems.ContainsKey( item ) )
                m_InstancedItems.Remove( item );
        }
开发者ID:felladrin,项目名称:last-wish,代码行数:16,代码来源:Corpse.cs

示例8: CRIMINALACTION

			public static void CRIMINALACTION(TriggerObject trigObject, Mobile mob)
			{
				if (mob != null)
				{
					mob.CriminalAction(true);
				}
			}
开发者ID:greeduomacro,项目名称:UO-Forever,代码行数:7,代码来源:UberScriptFunctions.cs

示例9: OnCarve


//.........这里部分代码省略.........
                        else if ( HideType == HideType.Spined )
                            item = new SpinedLeather( hides );
                        else if ( HideType == HideType.Horned )
                            item = new HornedLeather( hides );
                        else if ( HideType == HideType.Barbed )
                            item = new BarbedLeather( hides );

                        if ( item != null )
                        {
                            if ( from.AddToBackpack( item ) )
                            {
                                from.SendLocalizedMessage( 1073555 ); // You skin it and place the cut-up hides in your backpack.
                            }
                            else
                            {
                                corpse.AddCarvedItem( item, from );
                                from.SendLocalizedMessage( 500471 ); // You skin it, and the hides are now in the corpse.
                            }
                        }
                    }
                    else
                    {
                        if ( HideType == HideType.Regular )
                            corpse.AddCarvedItem( new Hides( hides ), from );
                        else if ( HideType == HideType.Spined )
                            corpse.AddCarvedItem( new SpinedHides( hides ), from );
                        else if ( HideType == HideType.Horned )
                            corpse.AddCarvedItem( new HornedHides( hides ), from );
                        else if ( HideType == HideType.Barbed )
                            corpse.AddCarvedItem( new BarbedHides( hides ), from );

                        from.SendLocalizedMessage( 500471 ); // You skin it, and the hides are now in the corpse.
                    }
                }

                if ( scales != 0 )
                {
                    ScaleType sc = this.ScaleType;

                    switch ( sc )
                    {
                        case ScaleType.Red:
                            corpse.AddCarvedItem( new RedScales( scales ), from );
                            break;
                        case ScaleType.Yellow:
                            corpse.AddCarvedItem( new YellowScales( scales ), from );
                            break;
                        case ScaleType.Black:
                            corpse.AddCarvedItem( new BlackScales( scales ), from );
                            break;
                        case ScaleType.Green:
                            corpse.AddCarvedItem( new GreenScales( scales ), from );
                            break;
                        case ScaleType.White:
                            corpse.AddCarvedItem( new WhiteScales( scales ), from );
                            break;
                        case ScaleType.Blue:
                            corpse.AddCarvedItem( new BlueScales( scales ), from );
                            break;
                        case ScaleType.All:
                            {
                                corpse.AddCarvedItem( new RedScales( scales ), from );
                                corpse.AddCarvedItem( new YellowScales( scales ), from );
                                corpse.AddCarvedItem( new BlackScales( scales ), from );
                                corpse.AddCarvedItem( new GreenScales( scales ), from );
                                corpse.AddCarvedItem( new WhiteScales( scales ), from );
                                corpse.AddCarvedItem( new BlueScales( scales ), from );
                                break;
                            }
                    }

                    from.SendLocalizedMessage( 1079284 ); // You cut away some scales, but they remain on the corpse.
                }

                if ( blood != 0 )
                {
                    corpse.AddCarvedItem( new DragonsBlood( blood ), from );
                    from.SendLocalizedMessage( 1094946 ); // Some blood is left on the corpse.
                }

                if ( fur != 0 )
                {
                    if ( FurType == FurType.Green )
                        corpse.AddCarvedItem( new GreenFur( fur ), from );
                    else if ( FurType == FurType.Red )
                        corpse.AddCarvedItem( new RedFur( fur ), from );
                    else if ( FurType == FurType.Yellow )
                        corpse.AddCarvedItem( new YellowFur( fur ), from );
                    else if ( FurType == FurType.DarkGreen )
                        corpse.AddCarvedItem( new DarkGreenFur( fur ), from );

                    from.SendLocalizedMessage( 1112765 ); // You shear it, and the fur is now on the corpse.
                }

                corpse.Carved = true;

                if ( corpse.IsCriminalAction( from ) )
                    from.CriminalAction( true );
            }
        }
开发者ID:Ravenwolfe,项目名称:xrunuo,代码行数:101,代码来源:BaseCreature.cs

示例10: Carve

		public void Carve( Mobile from, Item item )
		{
            if (IsCriminalAction(from) && this.Map != null && (this.Map.Rules & MapRules.HarmfulRestrictions) != 0)
            {
                if (m_Owner == null || !m_Owner.Player)
                    from.SendLocalizedMessage(1005035); // You did not earn the right to loot this creature!
                else
                    from.SendLocalizedMessage(1010049); // You may not loot this corpse.

                return;
            }

            //Taran: Had to add this or you could carve corpses with an axe without range or los checks
            //Couldn't find the range/los checks for daggers, they should be removed.
            if (!from.InRange(GetWorldLocation(), 3) || !from.InLOS(this))
            {
                from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
                return;
            }

            if (from.Region is CustomRegion && !((CustomRegion)from.Region).Controller.CanCutCorpse)
            {
                from.SendAsciiMessage("You can't cut corpses here.");
                return;
            }

		    Mobile dead = m_Owner;

            if (GetFlag(CorpseFlag.Carved) || dead == null)
            {
				from.SendLocalizedMessage( 500485 ); // You see nothing useful to carve from the corpse.
			}
			else if ( ((Body)Amount).IsHuman && (ItemID == 0x2006 || dead is PlayerMobile) )
			{
                if (from.Mounted)
                    from.Animate(28, 5, 1, true, false, 1);
                else
                    from.Animate(32, 5, 1, true, false, 1);

                from.PublicOverheadMessage(MessageType.Regular, 906, true, "*Chop Chop*");

                if (IsCriminalAction(from))
                    from.CriminalAction(true);

                new Blood(0x122D).MoveToWorld(Location, Map);

                Head head = new Head {Name = string.Format("head of {0}", dead.Name), PlayerName = Owner.Name, Owner = dead, Fame = (int)(dead.Fame / 0.9)};
			    head.MoveToWorld(Location, Map);

                Heart heart = new Heart {Name = string.Format("heart of {0}", dead.Name), Owner = dead};
			    heart.MoveToWorld(Location, Map);

                LeftLeg ll = new LeftLeg {Name = string.Format("leg of {0}", dead.Name), Owner = dead};
			    ll.MoveToWorld(Location, Map);

                LeftArm la = new LeftArm {Name = string.Format("arm of {0}", dead.Name), Owner = dead};
			    la.MoveToWorld(Location, Map);

                RightLeg rl = new RightLeg {Name = string.Format("leg of {0}", dead.Name), Owner = dead};
			    rl.MoveToWorld(Location, Map);

                RightArm ra = new RightArm {Name = string.Format("arm of {0}", dead.Name), Owner = dead};
			    ra.MoveToWorld(Location, Map);

                //bounty system here
                if (m_Killer is PlayerMobile)
                {
                    head.Owner = m_Owner;
                    head.Killer = m_Killer;
                    head.CreationTime = DateTime.Now;
                    head.IsPlayer = true;
                }
                //end bounty sytem
                
                new RawRibs(2).MoveToWorld(Location, Map);

                SetFlag(CorpseFlag.Carved, true);

                ProcessDelta();
                SendRemovePacket();
                ItemID = Utility.Random(0xECA, 9); // bone graphic
                Hue = 0;
                ProcessDelta();
            }
			else if ( dead is BaseCreature )
			{
                ((BaseCreature)dead).OnCarve(from, this, item);
            }
			else
			{
				from.SendLocalizedMessage( 500485 ); // You see nothing useful to carve from the corpse.
			}
		}
开发者ID:FreeReign,项目名称:imaginenation,代码行数:93,代码来源:Corpse.cs

示例11: OnItemLifted

		public override void OnItemLifted( Mobile from, Item item )
		{
			base.OnItemLifted( from, item );

			//if ( item != this && from != m_Owner )
			//	from.RevealingAction();

		    if ( item != this && IsCriminalAction( from ) )
				from.CriminalAction( true );

			if ( !m_Looters.Contains( from ) )
				m_Looters.Add( from );

            if (m_InstancedItems != null && m_InstancedItems.ContainsKey(item))
                m_InstancedItems.Remove(item);

            //Taran: Corpse is in water
            if ( InDeepWater )
            {
                //start sink timer after last item is looted
                if (TotalItems == 1)
                    new SinkTimer(this).Start();
            }
		}
开发者ID:FreeReign,项目名称:imaginenation,代码行数:24,代码来源:Corpse.cs

示例12: OnProfanityDetected

        private static bool OnProfanityDetected(Mobile from, string speech)
        {
            switch (Action)
            {
                case ProfanityAction.None:
                    return true;
                case ProfanityAction.Disallow:
                    {
                        if (from.AccessLevel == AccessLevel.Player)
                        {
                            from.SendAsciiMessage("Harassing and cursing is not allowed! Repeated offences will get you jailed!");
                            return false;
                        }
                        from.SendAsciiMessage("You are staff so you can swear, but please try not to.");
                        return true;
                    }
                case ProfanityAction.Criminal:
                    from.Criminal = true;
                    return true;
                case ProfanityAction.CriminalAction:
                    from.CriminalAction(false);
                    return true;
                case ProfanityAction.Disconnect:
                    {
                        NetState ns = from.NetState;

                        if (ns != null)
                            ns.Dispose();

                        return false;
                    }
                default:
                case ProfanityAction.Other: // TODO: Provide custom implementation if this is chosen
                    {
                        return true;
                    }
            }
        }
开发者ID:FreeReign,项目名称:imaginenation,代码行数:38,代码来源:ProfanityProtection.cs

示例13: OnCarve

		public virtual void OnCarve( Mobile from, Corpse corpse, Item with )
		{
			int feathers = Feathers;
			int wool = Wool;
			int meat = Meat;
			int hides = Hides;

			if ( ( feathers == 0 && wool == 0 && meat == 0 && hides == 0 ) || Summoned || IsBonded || corpse.Animated )
			{
				if ( corpse.Animated )
					corpse.SendLocalizedMessageTo( from, 500464 ); // Use this on corpses to carve away meat and hide
				else
					from.SendLocalizedMessage( 500485 ); // You see nothing useful to carve from the corpse.
			}
			else
			{
				if ( corpse.Map == Map.Felucca )
				{
					feathers *= 2;
					wool *= 2;
					hides *= 2;
				}

				new Blood( 0x122D ).MoveToWorld( corpse.Location, corpse.Map );

				if ( feathers != 0 )
				{
					corpse.AddCarvedItem( new Feather( feathers ), from );
					from.SendLocalizedMessage( 500479 ); // You pluck the bird. The feathers are now on the corpse.
				}

				if ( wool != 0 )
				{
					corpse.AddCarvedItem( new TaintedWool( wool ), from );
					from.SendLocalizedMessage( 500483 ); // You shear it, and the wool is now on the corpse.
				}

				if ( meat != 0 )
				{
					if ( MeatType == MeatType.Ribs )
						corpse.AddCarvedItem( new RawRibs( meat ), from );
					else if ( MeatType == MeatType.Bird )
						corpse.AddCarvedItem( new RawBird( meat ), from );
					else if ( MeatType == MeatType.LambLeg )
						corpse.AddCarvedItem( new RawLambLeg( meat ), from );

					from.SendLocalizedMessage( 500467 ); // You carve some meat, which remains on the corpse.
				}

				if ( hides != 0 )
				{
					Item holding = from.Weapon as Item;

					if ( false && ( holding is SkinningKnife /* TODO: || holding is ButcherWarCleaver || with is ButcherWarCleaver */ ) )
					{
						Item leather = null;

						switch ( HideType )
						{
							case HideType.Regular: leather = new Leather( hides ); break;
							case HideType.Spined: leather = new SpinedLeather( hides ); break;
							case HideType.Horned: leather = new HornedLeather( hides ); break;
							case HideType.Barbed: leather = new BarbedLeather( hides ); break;
						}

						if ( leather != null )
						{
							if ( !from.PlaceInBackpack( leather ) )
							{
								corpse.DropItem( leather );
								from.SendLocalizedMessage( 500471 ); // You skin it, and the hides are now in the corpse.
							}
							else
							{
								from.SendLocalizedMessage( 1073555 ); // You skin it and place the cut-up hides in your backpack.
							}
						}
					}
					else
					{
						if ( HideType == HideType.Regular )
							corpse.DropItem( new Hides( hides ) );
						else if ( HideType == HideType.Spined )
							corpse.DropItem( new SpinedHides( hides ) );
						else if ( HideType == HideType.Horned )
							corpse.DropItem( new HornedHides( hides ) );
						else if ( HideType == HideType.Barbed )
							corpse.DropItem( new BarbedHides( hides ) );

						from.SendLocalizedMessage( 500471 ); // You skin it, and the hides are now in the corpse.
					}
				}

				corpse.Carved = true;

				if ( corpse.IsCriminalAction( from ) )
					from.CriminalAction( true );
			}
		}
开发者ID:Grimoric,项目名称:RunUO.T2A,代码行数:99,代码来源:BaseCreature.cs

示例14: Carve

		public virtual void Carve(Mobile from, Item item)
		{
			if (from == null)
			{
				return;
			}

			if (DoesNotDecay)
			{
				from.SendMessage("A mystical force prevents you from carving the corpse!");
				return;
			}

			var region1 = from.Region as CustomRegion;
			var captureZone = from.Region as CaptureZoneRegion;

			if ((region1 != null && !region1.AllowCutCorpse()) || (captureZone != null && !captureZone.Czone.NoCorpseCarving))
			{
				from.SendMessage("A mystical force prevents you from carving the corpse!");
				return;
			}

			if (IsCriminalAction(from) && Map != null && (Map.Rules & MapRules.HarmfulRestrictions) != 0)
			{
				if (m_Owner == null || !m_Owner.Player)
				{
					from.SendLocalizedMessage(1005035); // You did not earn the right to loot this creature!
				}
				else
				{
					from.SendLocalizedMessage(1010049); // You may not loot this corpse.
				}

				return;
			}

			if (region1 != null && region1.PlayingGame(from))
			{
				from.SendMessage(32, "You cannot carve this corpse while an event is taking place!");
				return;
			}

		    Faction faction = Faction.Find(m_Owner);

            if (faction != null && Region.Find(Location, Map) is TownRegion)
			{
				from.SendMessage(32, "You cannot carve faction member corpses in town!");
				return;
			}

            var p = m_Owner as PlayerMobile;
            if (FactionObelisks.Obelisks != null && p != null && p.FactionPlayerState != null && !(Region.Find(Location, Map) is DungeonRegion))
            {
                var acct = p.Account as Account;
                foreach (var obelisk in FactionObelisks.Obelisks)
                {
                    if (obelisk.ObeliskType == ObeliskType.Bloodshed && !String.IsNullOrEmpty(obelisk.OwningFaction) && acct != null)
                    {
                        if (obelisk.ObeliskUsers != null && obelisk.ObeliskUsers.ContainsKey(acct))
                        {
                            from.SendMessage(61, "This player's body is protected by the point of bloodshed.");
                            return;
                        }
                    }
                }
            }

			Mobile dead = m_Owner;

			if (GetFlag(CorpseFlag.Carved) || dead == null)
			{
				from.SendLocalizedMessage(500485); // You see nothing useful to carve from the corpse.
			}
			else if (((Body)Amount).IsHuman && ItemID == 0x2006)
			{
				if (m_BloodHue > -1)
				{
					new Blood(0x122D, m_BloodHue).MoveToWorld(Location, Map);
				}

				if (dead is PlayerMobile)
				{
					new Head2((PlayerMobile)dead, dead.Region).MoveToWorld(Location, Map);
					new Torso().MoveToWorld(Location, Map);
					new LeftLeg().MoveToWorld(Location, Map);
					new LeftArm().MoveToWorld(Location, Map);
					new RightLeg().MoveToWorld(Location, Map);
					new RightArm().MoveToWorld(Location, Map);
                    new RawHumanFlesh(2, dead).MoveToWorld(Location, Map);
                    new RawHumanBrain(1, dead).MoveToWorld(Location, Map);
				}
				else
				{
					new Torso().MoveToWorld(Location, Map);
					new LeftLeg().MoveToWorld(Location, Map);
					new LeftArm().MoveToWorld(Location, Map);
					new RightLeg().MoveToWorld(Location, Map);
					new RightArm().MoveToWorld(Location, Map);
					new Head2(dead.RawName).MoveToWorld(Location, Map);
                    new RawHumanFlesh(2, dead).MoveToWorld(Location, Map);
//.........这里部分代码省略.........
开发者ID:greeduomacro,项目名称:UO-Forever,代码行数:101,代码来源:Corpse.cs

示例15: OnItemLifted

        public override void OnItemLifted( Mobile from, Item item )
        {
            base.OnItemLifted(from, item);

            if( item != this && from != m_Owner )
                from.RevealingAction();

            if( item != this && IsCriminalAction(from) )
                from.CriminalAction(true);

            if( !m_Looters.Contains(from) )
                m_Looters.Add(from);

            if( m_InstancedItems != null && m_InstancedItems.ContainsKey(item) )
                m_InstancedItems.Remove(item);

            if( from.Player && from != m_Owner )
            {
                EventDispatcher.InvokeCorpseAction(new CorpseActionEventArgs((Player)from, this, CorpseActionEventArgs.CorpseAction.Looted));
            }
        }
开发者ID:greeduomacro,项目名称:hubroot,代码行数:21,代码来源:Corpse.cs


注:本文中的Mobile.CriminalAction方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。