Пример #1
0
        public static void CloneMe_OnCommand(CommandEventArgs e)
        {
            BaseCreature m = new BaseCreature(AIType.AI_None, FightMode.None, 10, 1, 0.2, 0.4);
            m.InitStats(10, 10, 10);
            m.SetSkill(SkillName.Cooking, 65, 88);
            m.SetSkill(SkillName.Snooping, 65, 88);
            m.SetSkill(SkillName.Stealing, 65, 88);
            if (m.Female = Utility.RandomBool())
            {
                m.Body = 0x1A6;
                m.Name = NameList.RandomName("female");

            }
            else
            {
                m.Body = 0x1A4;
                m.Name = NameList.RandomName("male");

            }
            e.Mobile.Hidden = true;
            m.Dex = e.Mobile.Dex;
            m.Int = e.Mobile.Int;
            m.Str = e.Mobile.Str;
            m.Fame = e.Mobile.Fame;
            m.Karma = e.Mobile.Karma;
            m.NameHue = e.Mobile.NameHue;
            m.SpeechHue = e.Mobile.SpeechHue;
            m.Criminal = e.Mobile.Criminal;
            m.Name = e.Mobile.Name;
            m.Title = e.Mobile.Title;
            m.Female = e.Mobile.Female;
            m.Body = e.Mobile.Body;
            m.Hue = e.Mobile.Hue;
            m.Hits = e.Mobile.HitsMax;
            m.Mana = e.Mobile.ManaMax;
            m.Stam = e.Mobile.StamMax;
            m.BodyMod = e.Mobile.Body;
            m.Map = e.Mobile.Map;
            m.Location = e.Mobile.Location;
            m.Direction = e.Mobile.Direction;
            m.HairItemID = e.Mobile.HairItemID;
            m.FacialHairItemID = e.Mobile.FacialHairItemID;
            m.HairHue = e.Mobile.HairHue;
            m.FacialHairHue = e.Mobile.FacialHairHue;

            for (int i = 0; i < e.Mobile.Skills.Length; i++)
                m.Skills[i].Base = e.Mobile.Skills[i].Base;

            ArrayList items = new ArrayList(e.Mobile.Items);
            for (int i = 0; i < items.Count; i++)
            {
                Item item = (Item)items[i]; //my favorite line of code, ever.

                if (((item != null) && (item.Parent == e.Mobile) && (item != e.Mobile.Backpack)))
                {
                    Type t = item.GetType();
                    ConstructorInfo c = t.GetConstructor(Type.EmptyTypes);
                    if (c != null)
                    {
                        try
                        {
                            object o = c.Invoke(null);
                            if (o != null && o is Item)
                            {
                                Item newItem = (Item)o;
                                CopyProperties(newItem, item);
                                item.OnAfterDuped(newItem);
                                newItem.Parent = null;
                                m.AddItem(newItem);
                            }
                        }
                        catch
                        {
                        }
                    }
                }
            }
        }