Пример #1
0
        private static void EventSink_MobileCreated(MobileCreatedEventArgs e)
        {
            if (e.Mobile is PlayerMobile)
            {
                PlayerMobile pm        = (PlayerMobile)e.Mobile;
                Mobile       m_Mobile  = e.Mobile;
                Account      a_Account = ((Account)m_Mobile.Account);
                Container    pack      = m_Mobile.Backpack;
                pack.DropItem(new GoldLooter());
                if (!Convert.ToBoolean(a_Account.GetTag("FirstChar")))
                {
                    Console.WriteLine("Account: {0}", a_Account.Username);
                    if (pack != null)
                    {
                        Spellbook book = new NecromancerSpellbook();
                        book.Content = book.BookCount == 64 ? book.Content = ulong.MaxValue : (1ul << book.BookCount) - 1;
                        pack.DropItem(book);
                        book         = new Spellbook();
                        book.Content = book.BookCount == 64 ? book.Content = ulong.MaxValue : (1ul << book.BookCount) - 1;
                        pack.DropItem(book);
                        book         = new MysticBook();
                        book.Content = book.BookCount == 64 ? book.Content = ulong.MaxValue : (1ul << book.BookCount) - 1;
                        pack.DropItem(book);

                        pack.DropItem(new Runebook(10));
                        pack.DropItem(new MythicCharacterToken());
                        pack.DropItem(new SoulstoneFragmentToken());
                        pack.DropItem(new SoulstoneFragmentToken());
                        a_Account.SetTag("FirstChar", "true");
                    }
                }
            }
        }
Пример #2
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            NecromancerSpellbook book = new NecromancerSpellbook();

            book.Content = (1ul << book.BookCount) - 1;
            c.DropItem(book);
        }
Пример #3
0
        protected override void OnAfterDeath(Container c)
        {
            NecromancerSpellbook book = new NecromancerSpellbook();

            book.Content = (1ul << book.BookCount) - 1;
            c.DropItem(book);

            base.OnAfterDeath(c);
        }
Пример #4
0
        private static Item RandomSpellbook(SuccessRating rating)
        {
            Spellbook item = null;

            switch (Utility.Random(5))
            {
            default: item = new Spellbook(); break;

            case 1: item = new NecromancerSpellbook(); break;

            case 2: item = new BookOfBushido(); break;

            case 3: item = new BookOfChivalry(); break;

            case 4: item = new BookOfNinjitsu(); break;
            }
            if (item == null)
            {
                return(null);
            }
            else
            {
                switch (item.SpellbookType)
                {
                case SpellbookType.Regular:
                {
                    switch (rating)
                    {
                    default:
                    { item.Content = 0xFFFF; break; }

                    case SuccessRating.Success:
                    { item.Content = 0xFFFFFFFF; break; }

                    case SuccessRating.CompleteSuccess:
                    { item.Content = 0xFFFFFFFFFFFF; break; }

                    case SuccessRating.ExceptionalSuccess:
                    { item.Content = ulong.MaxValue; break; }
                    }
                    break;
                }

                default: item.Content = (1ul << item.BookCount) - 1; break;
                }
            }
            return(item);
        }
Пример #5
0
        private static void BaseCaster()
        {
            PackItem(new BagOfReagents(50));
            Spellbook mageBook = new Spellbook((ulong)0x382A8C38);

            mageBook.LootType = LootType.Blessed;
            PackItem(mageBook);

            PackItem(new BagOfNecroReagents(50));
            Spellbook necroBook = new NecromancerSpellbook((ulong)0x8981); // animate dead, evil omen, pain spike, summon familiar, wraith form

            necroBook.LootType = LootType.Blessed;
            PackItem(necroBook);

            EquipItem(new Robe(Utility.RandomOrangeHue()));
            EquipItem(new Sandals(0x8FD));
            BaseItems();
        }
Пример #6
0
        private static void SetSkills(Mobile m, SkillNameValue[] skills, int prof)
        {
            switch (prof)
            {
            case 1:     // Warrior
            {
                skills = new[]
                {
                    new SkillNameValue(SkillName.Anatomy, 30), new SkillNameValue(SkillName.Healing, 30),
                    new SkillNameValue(SkillName.Swords, 30), new SkillNameValue(SkillName.Tactics, 30)
                };

                break;
            }

            case 2:     // Magician
            {
                skills = new[]
                {
                    new SkillNameValue(SkillName.EvalInt, 30), new SkillNameValue(SkillName.Wrestling, 30),
                    new SkillNameValue(SkillName.Magery, 30), new SkillNameValue(SkillName.Meditation, 30)
                };

                break;
            }

            case 3:     // Blacksmith
            {
                skills = new[]
                {
                    new SkillNameValue(SkillName.Mining, 30), new SkillNameValue(SkillName.ArmsLore, 30),
                    new SkillNameValue(SkillName.Blacksmith, 30), new SkillNameValue(SkillName.Tinkering, 30)
                };

                break;
            }

            case 4:     // Necromancer
            {
                skills = new[]
                {
                    new SkillNameValue(SkillName.Necromancy, 30),
                    new SkillNameValue(SkillName.SpiritSpeak, 30), new SkillNameValue(SkillName.Swords, 30),
                    new SkillNameValue(SkillName.Meditation, 20)
                };

                break;
            }

            case 5:     // Paladin
            {
                skills = new[]
                {
                    new SkillNameValue(SkillName.Chivalry, 30), new SkillNameValue(SkillName.Swords, 30),
                    new SkillNameValue(SkillName.Focus, 30), new SkillNameValue(SkillName.Tactics, 30)
                };

                break;
            }

            case 6:     //Samurai
            {
                skills = new[]
                {
                    new SkillNameValue(SkillName.Bushido, 30), new SkillNameValue(SkillName.Swords, 30),
                    new SkillNameValue(SkillName.Anatomy, 30), new SkillNameValue(SkillName.Healing, 30)
                };
                break;
            }

            case 7:     //Ninja
            {
                skills = new[]
                {
                    new SkillNameValue(SkillName.Ninjitsu, 30), new SkillNameValue(SkillName.Hiding, 30),
                    new SkillNameValue(SkillName.Fencing, 30), new SkillNameValue(SkillName.Stealth, 30)
                };
                break;
            }

            default:
            {
                if (!ValidSkills(skills))
                {
                    return;
                }

                break;
            }
            }

            var addSkillItems = true;
            var elf           = (m.Race == Race.Elf);
            var human         = (m.Race == Race.Human);
            var gargoyle      = (m.Race == Race.Gargoyle);

            switch (prof)
            {
            case 1:     // Warrior
            {
                if (elf)
                {
                    EquipItem(new LeafChest());
                }
                else if (human)
                {
                    EquipItem(new LeatherChest());
                }
                else if (gargoyle)
                {
                    EquipItem(new GargishLeatherChest());
                }

                break;
            }

            case 4:     // Necromancer
            {
                Container regs = new BagOfNecroReagents(50);

                if (!Core.AOS)
                {
                    foreach (var item in regs.Items)
                    {
                        item.LootType = LootType.Newbied;
                    }
                }

                PackItem(regs);

                regs.LootType = LootType.Regular;

                if (elf || human)
                {
                    EquipItem(new BoneHelm());
                }

                if (elf)
                {
                    EquipItem(new ElvenMachete());
                    EquipItem(NecroHue(new LeafChest()));
                    EquipItem(NecroHue(new LeafArms()));
                    EquipItem(NecroHue(new LeafGloves()));
                    EquipItem(NecroHue(new LeafGorget()));
                    EquipItem(NecroHue(new LeafGorget()));
                    EquipItem(NecroHue(new ElvenPants()));         //TODO: Verify the pants
                    EquipItem(new ElvenBoots());
                }
                else if (human)
                {
                    EquipItem(new BoneHarvester());
                    EquipItem(NecroHue(new LeatherChest()));
                    EquipItem(NecroHue(new LeatherArms()));
                    EquipItem(NecroHue(new LeatherGloves()));
                    EquipItem(NecroHue(new LeatherGorget()));
                    EquipItem(NecroHue(new LeatherLegs()));
                    EquipItem(NecroHue(new Skirt()));
                    EquipItem(new Sandals(0x8FD));
                }
                else if (gargoyle)
                {
                    EquipItem(new GlassSword());
                    EquipItem(NecroHue(new GargishLeatherChest()));
                    EquipItem(NecroHue(new GargishLeatherArms()));
                    EquipItem(NecroHue(new GargishLeatherLegs()));
                    EquipItem(NecroHue(new GargishLeatherKilt()));
                }

                Spellbook
                    book = new NecromancerSpellbook(
                    (ulong)0x8981);             // animate dead, evil omen, pain spike, summon familiar, wraith form

                PackItem(book);

                book.LootType = LootType.Blessed;

                addSkillItems = false;
                break;
            }

            case 5:     // Paladin
            {
                if (elf)
                {
                    EquipItem(new ElvenMachete());
                    EquipItem(new WingedHelm());
                    EquipItem(new LeafGorget());
                    EquipItem(new LeafArms());
                    EquipItem(new LeafChest());
                    EquipItem(new LeafLegs());
                    EquipItem(new ElvenBoots());         //Verify hue
                }
                else if (human)
                {
                    EquipItem(new Broadsword());
                    EquipItem(new Helmet());
                    EquipItem(new PlateGorget());
                    EquipItem(new RingmailArms());
                    EquipItem(new RingmailChest());
                    EquipItem(new RingmailLegs());
                    EquipItem(new ThighBoots(0x748));
                    EquipItem(new Cloak(0xCF));
                    EquipItem(new BodySash(0xCF));
                }
                else if (gargoyle)
                {
                    EquipItem(new DreadSword());
                    EquipItem(new GargishPlateChest());
                    EquipItem(new GargishPlateArms());
                    EquipItem(new GargishPlateLegs());
                    EquipItem(new GargishPlateKilt());
                }

                Spellbook book = new BookOfChivalry((ulong)0x3FF);
                book.LootType = LootType.Blessed;
                PackItem(book);

                addSkillItems = false;
                break;
            }

            case 6:     // Samurai
            {
                if (elf || human)
                {
                    EquipItem(new HakamaShita(0x2C3));
                    EquipItem(new Hakama(0x2C3));
                    EquipItem(new SamuraiTabi(0x2C3));
                    EquipItem(new TattsukeHakama(0x22D));
                    EquipItem(new Bokuto());

                    if (elf)
                    {
                        EquipItem(new RavenHelm());
                    }
                    else
                    {
                        EquipItem(new LeatherJingasa());
                    }
                }
                else if (gargoyle)
                {
                    EquipItem(new GlassSword());
                    EquipItem(new GargishPlateChest());
                    EquipItem(new GargishPlateArms());
                    EquipItem(new GargishPlateLegs());
                    EquipItem(new GargishPlateKilt());
                }

                PackItem(new Scissors());
                PackItem(new Bandage(50));

                Spellbook book = new BookOfBushido();
                PackItem(book);

                addSkillItems = false;
                break;
            }

            case 7:     // Ninja
            {
                var hues = new[] { 0x1A8, 0xEC, 0x99, 0x90, 0xB5, 0x336, 0x89 };
                //TODO: Verify that's ALL the hues for that above.

                if (elf || human)
                {
                    EquipItem(new Kasa());
                    EquipItem(new TattsukeHakama(hues[Utility.Random(hues.Length)]));
                    EquipItem(new HakamaShita(0x2C3));
                    EquipItem(new NinjaTabi(0x2C3));

                    if (elf)
                    {
                        EquipItem(new AssassinSpike());
                    }
                    else
                    {
                        EquipItem(new Tekagi());
                    }
                }
                else if (gargoyle)
                {
                    EquipItem(new GargishDagger());

                    var hue = hues[Utility.Random(hues.Length)];

                    EquipItem(new GargishClothChestArmor(hue));
                    EquipItem(new GargishClothArmsArmor(hue));
                    EquipItem(new GargishClothLegsArmor(hue));
                    EquipItem(new GargishClothKiltArmor(hue));
                }

                PackItem(new SmokeBomb());

                Spellbook book = new BookOfNinjitsu();
                PackItem(book);

                addSkillItems = false;
                break;
            }
            }

            for (var i = 0; i < skills.Length; ++i)
            {
                var snv = skills[i];

                if (snv.Value > 0 && (snv.Name != SkillName.Stealth || prof == 7) && snv.Name != SkillName.RemoveTrap &&
                    snv.Name != SkillName.Spellweaving)
                {
                    var skill = m.Skills[snv.Name];

                    if (skill != null)
                    {
                        skill.BaseFixedPoint = snv.Value * 10;

                        if (addSkillItems)
                        {
                            AddSkillItems(snv.Name, m);
                        }
                    }
                }
            }
        }
Пример #7
0
        private static void AddSkillItems(SkillName skill, Mobile m)
        {
            var elf      = (m.Race == Race.Elf);
            var human    = (m.Race == Race.Human);
            var gargoyle = (m.Race == Race.Gargoyle);

            switch (skill)
            {
            case SkillName.Alchemy:
            {
                PackItem(new EmptyBottle(4));
                PackItem(new MortarPestle());

                var hue = Utility.RandomPinkHue();

                if (elf)
                {
                    if (m.Female)
                    {
                        EquipItem(new FemaleElvenRobe(hue));
                    }
                    else
                    {
                        EquipItem(new MaleElvenRobe(hue));
                    }
                }
                else
                {
                    EquipItem(new Robe(Utility.RandomPinkHue()));
                }
                break;
            }

            case SkillName.Anatomy:
            {
                PackItem(new Bandage(3));

                var hue = Utility.RandomYellowHue();

                if (elf)
                {
                    if (m.Female)
                    {
                        EquipItem(new FemaleElvenRobe(hue));
                    }
                    else
                    {
                        EquipItem(new MaleElvenRobe(hue));
                    }
                }
                else
                {
                    EquipItem(new Robe(hue));
                }
                break;
            }

            case SkillName.AnimalLore:
            {
                var hue = Utility.RandomBlueHue();

                if (elf)
                {
                    EquipItem(new WildStaff());

                    if (m.Female)
                    {
                        EquipItem(new FemaleElvenRobe(hue));
                    }
                    else
                    {
                        EquipItem(new MaleElvenRobe(hue));
                    }
                }
                else
                {
                    EquipItem(new ShepherdsCrook());
                    EquipItem(new Robe(hue));
                }
                break;
            }

            case SkillName.Archery:
            {
                PackItem(new Arrow(25));

                if (elf)
                {
                    EquipItem(new ElvenCompositeLongbow());
                }
                else if (human)
                {
                    EquipItem(new Bow());
                }

                break;
            }

            case SkillName.ArmsLore:
            {
                if (elf)
                {
                    switch (Utility.Random(3))
                    {
                    case 0:
                        EquipItem(new Leafblade());
                        break;

                    case 1:
                        EquipItem(new RuneBlade());
                        break;

                    case 2:
                        EquipItem(new DiamondMace());
                        break;
                    }
                }
                else if (human)
                {
                    switch (Utility.Random(3))
                    {
                    case 0:
                        EquipItem(new Kryss());
                        break;

                    case 1:
                        EquipItem(new Katana());
                        break;

                    case 2:
                        EquipItem(new Club());
                        break;
                    }
                }
                else if (gargoyle)
                {
                    switch (Utility.Random(3))
                    {
                    case 0:
                        EquipItem(new BloodBlade());
                        break;

                    case 1:
                        EquipItem(new GlassSword());
                        break;

                    case 2:
                        EquipItem(new DiscMace());
                        break;
                    }
                }

                break;
            }

            case SkillName.Begging:
            {
                if (elf)
                {
                    EquipItem(new WildStaff());
                }
                else if (human)
                {
                    EquipItem(new GnarledStaff());
                }
                else if (gargoyle)
                {
                    EquipItem(new SerpentStoneStaff());
                }

                break;
            }

            case SkillName.Blacksmith:
            {
                PackItem(new Tongs());
                PackItem(new Pickaxe());
                PackItem(new Pickaxe());
                PackItem(new IronIngot(50));

                if (human || elf)
                {
                    EquipItem(new HalfApron(Utility.RandomYellowHue()));
                }

                break;
            }

            case SkillName.Bushido:
            {
                if (human || elf)
                {
                    EquipItem(new Hakama());
                    EquipItem(new Kasa());
                }

                EquipItem(new BookOfBushido());
                break;
            }

            case SkillName.Fletching:
            {
                PackItem(new Board(14));
                PackItem(new Feather(5));
                PackItem(new Shaft(5));
                break;
            }

            case SkillName.Camping:
            {
                PackItem(new Bedroll());
                PackItem(new Kindling(5));
                break;
            }

            case SkillName.Carpentry:
            {
                PackItem(new Board(10));
                PackItem(new Saw());

                if (human || elf)
                {
                    EquipItem(new HalfApron(Utility.RandomYellowHue()));
                }

                break;
            }

            case SkillName.Cartography:
            {
                PackItem(new BlankMap());
                PackItem(new BlankMap());
                PackItem(new BlankMap());
                PackItem(new BlankMap());
                PackItem(new Sextant());
                break;
            }

            case SkillName.Cooking:
            {
                PackItem(new Kindling(2));
                PackItem(new RawLambLeg());
                PackItem(new RawChickenLeg());
                PackItem(new RawFishSteak());
                PackItem(new SackFlour());
                PackItem(new Pitcher(BeverageType.Water));
                break;
            }

            case SkillName.Chivalry:
            {
                if (Core.ML)
                {
                    PackItem(new BookOfChivalry((ulong)0x3FF));
                }

                break;
            }

            case SkillName.DetectHidden:
            {
                if (human || elf)
                {
                    EquipItem(new Cloak(0x455));
                }

                break;
            }

            case SkillName.Discordance:
            {
                PackInstrument();
                break;
            }

            case SkillName.Fencing:
            {
                if (elf)
                {
                    EquipItem(new Leafblade());
                }
                else if (human)
                {
                    EquipItem(new Kryss());
                }
                else if (gargoyle)
                {
                    EquipItem(new BloodBlade());
                }

                break;
            }

            case SkillName.Fishing:
            {
                EquipItem(new FishingPole());

                var hue = Utility.RandomYellowHue();

                if (elf)
                {
                    Item i = new Circlet();
                    i.Hue = hue;
                    EquipItem(i);
                }
                else if (human)
                {
                    EquipItem(new FloppyHat(hue));
                }

                break;
            }

            case SkillName.Healing:
            {
                PackItem(new Bandage(50));
                PackItem(new Scissors());
                break;
            }

            case SkillName.Herding:
            {
                if (elf)
                {
                    EquipItem(new WildStaff());
                }
                else
                {
                    EquipItem(new ShepherdsCrook());
                }

                break;
            }

            case SkillName.Hiding:
            {
                if (human || elf)
                {
                    EquipItem(new Cloak(0x455));
                }

                break;
            }

            case SkillName.Inscribe:
            {
                PackItem(new BlankScroll(2));
                PackItem(new BlueBook());
                break;
            }

            case SkillName.ItemID:
            {
                if (elf)
                {
                    EquipItem(new WildStaff());
                }
                else if (human)
                {
                    EquipItem(new GnarledStaff());
                }
                else if (gargoyle)
                {
                    EquipItem(new SerpentStoneStaff());
                }

                break;
            }

            case SkillName.Lockpicking:
            {
                PackItem(new Lockpick(20));
                break;
            }

            case SkillName.Lumberjacking:
            {
                if (human || elf)
                {
                    EquipItem(new Hatchet());
                }
                else if (gargoyle)
                {
                    EquipItem(new DualShortAxes());
                }

                break;
            }

            case SkillName.Macing:
            {
                if (elf)
                {
                    EquipItem(new DiamondMace());
                }
                else if (human)
                {
                    EquipItem(new Club());
                }
                else if (gargoyle)
                {
                    EquipItem(new DiscMace());
                }

                break;
            }

            case SkillName.Magery:
            {
                var regs = new BagOfReagents(50);

                if (!Core.AOS)
                {
                    foreach (var item in regs.Items)
                    {
                        item.LootType = LootType.Newbied;
                    }
                }

                PackItem(regs);

                regs.LootType = LootType.Regular;

                PackScroll(0);
                PackScroll(1);
                PackScroll(2);

                var book = new Spellbook((ulong)0x382A8C38);
                book.LootType = LootType.Blessed;
                EquipItem(book);

                if (elf)
                {
                    EquipItem(new Circlet());

                    if (m.Female)
                    {
                        EquipItem(new FemaleElvenRobe(Utility.RandomBlueHue()));
                    }
                    else
                    {
                        EquipItem(new MaleElvenRobe(Utility.RandomBlueHue()));
                    }
                }
                else
                {
                    if (human)
                    {
                        EquipItem(new WizardsHat());
                    }

                    EquipItem(new Robe(Utility.RandomBlueHue()));
                }

                break;
            }

            case SkillName.Mining:
            {
                PackItem(new Pickaxe());
                break;
            }

            case SkillName.Musicianship:
            {
                PackInstrument();
                break;
            }

            case SkillName.Necromancy:
            {
                if (Core.ML)
                {
                    Container regs = new BagOfNecroReagents(50);

                    PackItem(regs);

                    regs.LootType = LootType.Regular;
                }

                Spellbook
                    book = new NecromancerSpellbook(
                    (ulong)0x8981);             // animate dead, evil omen, pain spike, summon familiar, wraith form
                book.LootType = LootType.Blessed;
                PackItem(book);

                break;
            }

            case SkillName.Ninjitsu:
            {
                if (human || elf)
                {
                    EquipItem(new Hakama(0x2C3));         //Only ninjas get the hued one.
                    EquipItem(new Kasa());
                }

                EquipItem(new BookOfNinjitsu());
                break;
            }

            case SkillName.Parry:
            {
                if (human || elf)
                {
                    EquipItem(new WoodenShield());
                }
                else if (gargoyle)
                {
                    EquipItem(new GargishWoodenShield());
                }

                break;
            }

            case SkillName.Peacemaking:
            {
                PackInstrument();
                break;
            }

            case SkillName.Poisoning:
            {
                PackItem(new LesserPoisonPotion());
                PackItem(new LesserPoisonPotion());
                break;
            }

            case SkillName.Provocation:
            {
                PackInstrument();
                break;
            }

            case SkillName.Snooping:
            {
                PackItem(new Lockpick(20));
                break;
            }

            case SkillName.SpiritSpeak:
            {
                if (human || elf)
                {
                    EquipItem(new Cloak(0x455));
                }

                break;
            }

            case SkillName.Stealing:
            {
                PackItem(new Lockpick(20));
                break;
            }

            case SkillName.Swords:
            {
                if (elf)
                {
                    EquipItem(new RuneBlade());
                }
                else if (human)
                {
                    EquipItem(new Katana());
                }
                else if (gargoyle)
                {
                    EquipItem(new GlassSword());
                }

                break;
            }

            case SkillName.Tactics:
            {
                if (elf)
                {
                    EquipItem(new RuneBlade());
                }
                else if (human)
                {
                    EquipItem(new Katana());
                }
                else if (gargoyle)
                {
                    EquipItem(new GlassSword());
                }

                break;
            }

            case SkillName.Tailoring:
            {
                PackItem(new BoltOfCloth());
                PackItem(new SewingKit());
                break;
            }

            case SkillName.Tinkering:
            {
                PackItem(new TinkerTools());
                PackItem(new IronIngot(50));
                PackItem(new Axle());
                PackItem(new AxleGears());
                PackItem(new Springs());
                PackItem(new ClockFrame());
                break;
            }

            case SkillName.Tracking:
            {
                if (human || elf)
                {
                    if (m_Mobile != null)
                    {
                        var shoes = m_Mobile.FindItemOnLayer(Layer.Shoes);

                        if (shoes != null)
                        {
                            shoes.Delete();
                        }
                    }

                    var hue = Utility.RandomYellowHue();

                    if (elf)
                    {
                        EquipItem(new ElvenBoots(hue));
                    }
                    else
                    {
                        EquipItem(new Boots(hue));
                    }

                    EquipItem(new SkinningKnife());
                }
                else if (gargoyle)
                {
                    PackItem(new SkinningKnife());
                }

                break;
            }

            case SkillName.Veterinary:
            {
                PackItem(new Bandage(5));
                PackItem(new Scissors());
                break;
            }

            case SkillName.Wrestling:
            {
                if (elf)
                {
                    EquipItem(new LeafGloves());
                }
                else if (human)
                {
                    EquipItem(new LeatherGloves());
                }
                else if (gargoyle)
                {
                    // Why not give them arm armor?
                    EquipItem(new GargishLeatherArms());
                }

                break;
            }

            case SkillName.Throwing:
            {
                if (gargoyle)
                {
                    EquipItem(new Boomerang());
                }

                break;
            }

            case SkillName.Mysticism:
            {
                PackItem(new MysticBook((ulong)0xAB));
                break;
            }
            }
        }
Пример #8
0
        public EvilNecromancy() : base(AIType.AI_NecroMage, FightMode.Closest, 16, 1, 0.1, 0.2)
        {
            Body = ((this.Female = Utility.RandomBool()) ? Body = 0x191 : Body = 0x190);
            Name = this.Female ? NameList.RandomName("female") : NameList.RandomName("male");
            //SpeechHue = Utility.RandomDyedHue();
            Hue = Utility.RandomSkinHue();
            Utility.AssignRandomHair(this);
            SetStr(150, 180);
            SetDex(180, 200);
            SetInt(345, 456);
            SetDamage(25, 28);

            SetHits(1000, 1599);
            SetMana(1500, 1600);
            Title = "惡靈法師";
            SetDamageType(ResistanceType.Energy, 100);

            SetResistance(ResistanceType.Physical, 50, 58);
            SetResistance(ResistanceType.Fire, 50, 58);
            SetResistance(ResistanceType.Cold, 40, 50);
            SetResistance(ResistanceType.Poison, 40, 55);
            SetResistance(ResistanceType.Energy, 40, 50);

            SetSkill(SkillName.Archery, 90.0, 120.0);

            SetSkill(SkillName.Anatomy, 80.1, 100.0);
            SetSkill(SkillName.Necromancy, 120.5, 130.0);
            SetSkill(SkillName.SpiritSpeak, 110.0, 120.0);



            SetSkill(SkillName.MagicResist, 120.0, 150.0);
            SetSkill(SkillName.Tactics, 115.0);
            SetSkill(SkillName.Wrestling, 103.0);
            SetSkill(SkillName.DetectHidden, 120.0);
            SetSkill(SkillName.Wrestling, 121.9, 130.6);
            SetSkill(SkillName.Tactics, 114.4, 117.4);
            SetSkill(SkillName.MagicResist, 147.7, 153.0);
            SetSkill(SkillName.Poisoning, 122.8, 124.0);
            SetSkill(SkillName.Magery, 121.8, 127.8);
            SetSkill(SkillName.EvalInt, 103.6, 117.0);
            SetSkill(SkillName.Meditation, 100.0, 110.0);

            Fame  = 15000;
            Karma = -15000;

            VirtualArmor = 55;

            if (this.Female == true)
            {
                AddItem(new PlainDress(Utility.RandomRedHue()));
                AddItem(new FeatheredHat(Utility.RandomRedHue()));
            }

            else
            {
                AddItem(new Robe(Utility.RandomBlueHue()));
                AddItem(new MagicWizardsHat(Utility.RandomBlueHue()));
            }
            m = new Windrunner("御风者");
            //var b = new Bow(); b.Attributes.SpellChanneling = 1;
            var nc = new NecromancerSpellbook();

            AddItem(nc);
            //PackItem(new Arrow(55));
            BaseRing r = new GoldRing();

            r.Attributes.AttackChance = 40;
            r.Movable = false;
            r.Attributes.SpellDamage = 50;
            AddItem(r);

            AddItem(new ThighBoots());
            //AddItem(new NecromancerSpellbook());
            //new Nightmare().Rider = this;
            m.Rider = this;
            //PackReg(200);
            PackGold(1800, 2000);
            if (Utility.RandomDouble() < 0.5)
            {
                PackItem(new TreasureMap(Utility.RandomBool() == true ? 6 : 7, map));
            }
        }
        private static void SetSkills(Mobile m, SkillNameValue[] skills, int prof)
        {
            switch (prof)
            {
            case 1:                     // Warrior
            {
                skills = new SkillNameValue[]
                {
                    new SkillNameValue(SkillName.Anatomy, 30),
                    new SkillNameValue(SkillName.Healing, 45),
                    new SkillNameValue(SkillName.Swords, 35),
                    new SkillNameValue(SkillName.Tactics, 50)
                };

                break;
            }

            case 2:                     // Magician
            {
                skills = new SkillNameValue[]
                {
                    new SkillNameValue(SkillName.EvalInt, 30),
                    new SkillNameValue(SkillName.Wrestling, 30),
                    new SkillNameValue(SkillName.Magery, 50),
                    new SkillNameValue(SkillName.Meditation, 50)
                };

                break;
            }

            case 3:                     // Blacksmith
            {
                skills = new SkillNameValue[]
                {
                    new SkillNameValue(SkillName.Mining, 30),
                    new SkillNameValue(SkillName.ArmsLore, 30),
                    new SkillNameValue(SkillName.Blacksmith, 50),
                    new SkillNameValue(SkillName.Tinkering, 50)
                };

                break;
            }

            case 4:                     // Necromancer
            {
                skills = new SkillNameValue[]
                {
                    new SkillNameValue(SkillName.Necromancy, 50),
                    new SkillNameValue(SkillName.Focus, 30),
                    new SkillNameValue(SkillName.SpiritSpeak, 30),
                    new SkillNameValue(SkillName.Swords, 30),
                    new SkillNameValue(SkillName.Tactics, 20)
                };

                break;
            }

            case 5:                     // Paladin
            {
                skills = new SkillNameValue[]
                {
                    new SkillNameValue(SkillName.Chivalry, 51),
                    new SkillNameValue(SkillName.Swords, 49),
                    new SkillNameValue(SkillName.Focus, 30),
                    new SkillNameValue(SkillName.Tactics, 30)
                };

                break;
            }

            case 6:                     //Samurai
            {
                skills = new SkillNameValue[]
                {
                    new SkillNameValue(SkillName.Bushido, 50),
                    new SkillNameValue(SkillName.Swords, 50),
                    new SkillNameValue(SkillName.Anatomy, 30),
                    new SkillNameValue(SkillName.Healing, 30),
                };
                break;
            }

            case 7:                     //Ninja
            {
                skills = new SkillNameValue[]
                {
                    new SkillNameValue(SkillName.Ninjitsu, 50),
                    new SkillNameValue(SkillName.Hiding, 50),
                    new SkillNameValue(SkillName.Fencing, 30),
                    new SkillNameValue(SkillName.Stealth, 30),
                };
                break;
            }

            default:
            {
                if (!ValidSkills(skills))
                {
                    return;
                }

                break;
            }
            }

            bool addSkillItems = true;

            switch (prof)
            {
            case 1:                     // Warrior
            {
                EquipItem(new LeatherChest());
                break;
            }

            case 4:                     // Necromancer
            {
                Container regs = new BagOfNecroReagents(50);

                if (!Core.AOS)
                {
                    foreach (Item item in regs.Items)
                    {
                        item.LootType = LootType.Newbied;
                    }
                }

                PackItem(regs);

                regs.LootType = LootType.Regular;

                EquipItem(new BoneHarvester());
                EquipItem(new BoneHelm());

                EquipItem(NecroHue(new LeatherChest()));
                EquipItem(NecroHue(new LeatherArms()));
                EquipItem(NecroHue(new LeatherGloves()));
                EquipItem(NecroHue(new LeatherGorget()));
                EquipItem(NecroHue(new LeatherLegs()));
                EquipItem(NecroHue(new Skirt()));
                EquipItem(new Sandals(0x8FD));

                Spellbook book = new NecromancerSpellbook((ulong)0x8981);                           // animate dead, evil omen, pain spike, summon familiar, wraith form

                PackItem(book);

                book.LootType = LootType.Blessed;

                addSkillItems = false;

                break;
            }

            case 5:                     // Paladin
            {
                EquipItem(new Broadsword());
                EquipItem(new Helmet());
                EquipItem(new PlateGorget());
                EquipItem(new RingmailArms());
                EquipItem(new RingmailChest());
                EquipItem(new RingmailLegs());
                EquipItem(new ThighBoots(0x748));
                EquipItem(new Cloak(0xCF));
                EquipItem(new BodySash(0xCF));

                Spellbook book = new BookOfChivalry((ulong)0x3FF);

                PackItem(book);

                book.LootType = LootType.Blessed;

                break;
            }

            case 6:                     // Samurai
            {
                addSkillItems = false;
                EquipItem(new HakamaShita(0x2C3));
                EquipItem(new Hakama(0x2C3));
                EquipItem(new SamuraiTabi(0x2C3));
                EquipItem(new TattsukeHakama(0x22D));
                EquipItem(new Bokuto());
                EquipItem(new LeatherJingasa());
                EquipItem(new Scissors());
                EquipItem(new Bandage(50));

                Spellbook book = new BookOfBushido();
                PackItem(book);

                break;
            }

            case 7:                     // Ninja
            {
                addSkillItems = false;
                EquipItem(new Kasa());

                int[] hues = new int[] { 0x1A8, 0xEC, 0x99, 0x90, 0xB5, 0x336, 0x89 };
                //TODO: Verify that's ALL the hues for that above.

                EquipItem(new TattsukeHakama(hues[Utility.Random(hues.Length)]));

                EquipItem(new HakamaShita(0x2C3));
                EquipItem(new NinjaTabi(0x2C3));
                EquipItem(new Tekagi());
                //EquipItem( new Smokebomb() );

                Spellbook book = new BookOfNinjitsu( );
                PackItem(book);

                break;
            }
            }

            for (int i = 0; i < skills.Length; ++i)
            {
                SkillNameValue snv = skills[i];

                if (snv.Value > 0 && snv.Name != SkillName.Stealth && snv.Name != SkillName.RemoveTrap)
                {
                    Skill skill = m.Skills[snv.Name];

                    if (skill != null)
                    {
                        skill.BaseFixedPoint = snv.Value * 10;

                        if (addSkillItems)
                        {
                            AddSkillItems(snv.Name);
                        }
                    }
                }
            }
        }
Пример #10
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (targeted is Mobile)
                {
                    Mobile targ = (Mobile)targeted;
                    if (from != targ)
                    {
                        from.SendMessage("You may only set your own body to GM style.");
                    }

                    else
                    {
                        m_Mobile = from;

                        CommandLogging.WriteLine(from, "{0} {1} is assuming a GM body", from.AccessLevel, CommandLogging.Format(from));

                        Container pack = from.Backpack;

                        ArrayList ItemsToDelete = new ArrayList();

                        foreach (Item item in from.Items)
                        {
                            if (item.Layer != Layer.Bank && item.Layer != Layer.Hair && item.Layer != Layer.FacialHair && item.Layer != Layer.Mount && item.Layer != Layer.Backpack)
                            {
                                ItemsToDelete.Add(item);
                            }
                        }
                        foreach (Item item in ItemsToDelete)
                        {
                            item.Delete();
                        }

                        if (pack == null)
                        {
                            pack         = new Backpack();
                            pack.Movable = false;

                            from.AddItem(pack);
                        }
                        else
                        {
                            pack.Delete();
                            pack         = new Backpack();
                            pack.Movable = false;

                            from.AddItem(pack);
                        }

                        from.Hunger  = 20;
                        from.Thirst  = 20;
                        from.Fame    = 0;
                        from.Karma   = 0;
                        from.Kills   = 0;
                        from.Hidden  = true;
                        from.Blessed = true;
                        from.Hits    = from.HitsMax;
                        from.Mana    = from.ManaMax;
                        from.Stam    = from.StamMax;

                        if (from.AccessLevel >= AccessLevel.Counselor)
                        {
                            EquipItem(new StaffRing());
                            Spellbook book1 = new Spellbook((ulong)18446744073709551615);
                            Spellbook book2 = new NecromancerSpellbook((ulong)0xffff);
                            Spellbook book3 = new BookOfChivalry();
                            Spellbook book4 = new BookOfBushido();
                            Spellbook book5 = new BookOfNinjitsu();

                            PackItem(new GMHidingStone());

                            PackItem(book1);
                            PackItem(book2);
                            PackItem(book3);
                            PackItem(book4);
                            PackItem(book5);
                            from.RawStr = 100;
                            from.RawDex = 100;
                            from.RawInt = 100;
                            from.Hits   = from.HitsMax;
                            from.Mana   = from.ManaMax;
                            from.Stam   = from.StamMax;

                            for (int i = 0; i < targ.Skills.Length; ++i)
                            {
                                targ.Skills[i].Base = 120;
                            }
                        }

                        if (from.AccessLevel == AccessLevel.Counselor)
                        {
                            EquipItem(new CounselorRobe());
                            EquipItem(new ThighBoots(3));
                            from.Title = "[Counselor]";
                        }

                        if (from.AccessLevel == AccessLevel.GameMaster)
                        {
                            EquipItem(new GMRobe());
                            EquipItem(new ThighBoots(39));
                            from.Title = "[GM]";
                        }

                        if (from.AccessLevel == AccessLevel.Seer)
                        {
                            EquipItem(new SeerRobe());
                            EquipItem(new ThighBoots(467));
                            from.Title = "[Seer]";
                        }

                        if (from.AccessLevel == AccessLevel.Administrator)
                        {
                            EquipItem(new AdminRobe());
                            EquipItem(new ThighBoots(1001));
                            from.Title = "[Admin]";
                        }

                        if (from.AccessLevel == AccessLevel.Developer)
                        {
                            EquipItem(new AdminRobe());
                            EquipItem(new ThighBoots(1001));
                            from.Title = "[Developer]";
                        }

                        if (from.AccessLevel == AccessLevel.Owner)
                        {
                            EquipItem(new AdminRobe());
                            EquipItem(new ThighBoots(1001));
                            from.Title = "[Owner]";
                        }
                    }
                }
            }
Пример #11
0
        private static void     AddSkillItems(SkillName skill, Mobile m)
        {
            bool elf = (m.Race == Race.Elf);

            switch (skill)
            {
            case SkillName.Alchemy:
            {
                PackItem(new Bottle(4));
                PackItem(new MortarPestle());

                int hue = Utility.RandomPinkHue();

                if (elf)
                {
                    if (m.Female)
                    {
                        EquipItem(new FemaleElvenRobe(hue));
                    }
                    else
                    {
                        EquipItem(new MaleElvenRobe(hue));
                    }
                }
                else
                {
                    EquipItem(new Robe(Utility.RandomPinkHue()));
                }
                break;
            }

            case SkillName.Anatomy:
            {
                PackItem(new Bandage(3));

                int hue = Utility.RandomYellowHue();

                if (elf)
                {
                    if (m.Female)
                    {
                        EquipItem(new FemaleElvenRobe(hue));
                    }
                    else
                    {
                        EquipItem(new MaleElvenRobe(hue));
                    }
                }
                else
                {
                    EquipItem(new Robe(Utility.RandomPinkHue()));
                }
                break;
            }

            case SkillName.AnimalLore:
            {
                int hue = Utility.RandomBlueHue();

                if (elf)
                {
                    EquipItem(new WildStaff());

                    if (m.Female)
                    {
                        EquipItem(new FemaleElvenRobe(hue));
                    }
                    else
                    {
                        EquipItem(new MaleElvenRobe(hue));
                    }
                }
                else
                {
                    EquipItem(new ShepherdsCrook());
                    EquipItem(new Robe(hue));
                }
                break;
            }

            case SkillName.Archery:
            {
                PackItem(new Arrow(25));

                if (elf)
                {
                    EquipItem(new ElvenCompositeLongbow());
                }
                else
                {
                    EquipItem(new Bow());
                }

                break;
            }

            case SkillName.ArmsLore:
            {
                if (elf)
                {
                    switch (Utility.Random(3))
                    {
                    case 0: EquipItem(new Leafblade()); break;

                    case 1: EquipItem(new RuneBlade()); break;

                    case 2: EquipItem(new DiamondMace()); break;
                    }
                }
                else
                {
                    switch (Utility.Random(3))
                    {
                    case 0: EquipItem(new Kryss()); break;

                    case 1: EquipItem(new Katana()); break;

                    case 2: EquipItem(new Club()); break;
                    }
                }

                break;
            }

            case SkillName.Begging:
            {
                if (elf)
                {
                    EquipItem(new WildStaff());
                }
                else
                {
                    EquipItem(new GnarledStaff());
                }
                break;
            }

            case SkillName.Blacksmith:
            {
                PackItem(new Tongs());
                PackItem(new Pickaxe());
                PackItem(new Pickaxe());
                PackItem(new IronIngot(50));
                EquipItem(new HalfApron(Utility.RandomYellowHue()));
                break;
            }

            case SkillName.Bushido:
            {
                EquipItem(new Hakama());
                EquipItem(new Kasa());
                EquipItem(new BookOfBushido());
                break;
            }

            case SkillName.Fletching:
            {
                PackItem(new Board(14));
                PackItem(new Feather(5));
                PackItem(new Shaft(5));
                break;
            }

            case SkillName.Camping:
            {
                PackItem(new Bedroll());
                PackItem(new Kindling(5));
                break;
            }

            case SkillName.Carpentry:
            {
                PackItem(new Board(10));
                PackItem(new Saw());
                EquipItem(new HalfApron(Utility.RandomYellowHue()));
                break;
            }

            case SkillName.Cartography:
            {
                PackItem(new BlankMap());
                PackItem(new BlankMap());
                PackItem(new BlankMap());
                PackItem(new BlankMap());
                PackItem(new Sextant());
                break;
            }

            case SkillName.Cooking:
            {
                PackItem(new Kindling(2));
                PackItem(new RawLambLeg());
                PackItem(new RawChickenLeg());
                PackItem(new RawFishSteak());
                PackItem(new SackFlour());
                PackItem(new Pitcher(BeverageType.Water));
                break;
            }

            case SkillName.Chivalry:
            {
                if (Core.ML)
                {
                    PackItem(new BookOfChivalry((ulong)0x3FF));
                }

                break;
            }

            case SkillName.DetectHidden:
            {
                EquipItem(new Cloak(0x455));
                break;
            }

            case SkillName.Discordance:
            {
                PackInstrument();
                break;
            }

            case SkillName.Fencing:
            {
                if (elf)
                {
                    EquipItem(new Leafblade());
                }
                else
                {
                    EquipItem(new Kryss());
                }

                break;
            }

            case SkillName.Fishing:
            {
                EquipItem(new FishingPole());

                int hue = Utility.RandomYellowHue();

                if (elf)
                {
                    Item i = new Circlet();
                    i.Hue = hue;
                    EquipItem(i);
                }
                else
                {
                    EquipItem(new FloppyHat(Utility.RandomYellowHue()));
                }

                break;
            }

            case SkillName.Healing:
            {
                PackItem(new Bandage(50));
                PackItem(new Scissors());
                break;
            }

            case SkillName.Herding:
            {
                if (elf)
                {
                    EquipItem(new WildStaff());
                }
                else
                {
                    EquipItem(new ShepherdsCrook());
                }

                break;
            }

            case SkillName.Hiding:
            {
                EquipItem(new Cloak(0x455));
                break;
            }

            case SkillName.Inscribe:
            {
                PackItem(new BlankScroll(2));
                PackItem(new BlueBook());
                break;
            }

            case SkillName.ItemID:
            {
                if (elf)
                {
                    EquipItem(new WildStaff());
                }
                else
                {
                    EquipItem(new GnarledStaff());
                }
                break;
            }

            case SkillName.Lockpicking:
            {
                PackItem(new Lockpick(20));
                break;
            }

            case SkillName.Lumberjacking:
            {
                EquipItem(new Hatchet());
                break;
            }

            case SkillName.Macing:
            {
                if (elf)
                {
                    EquipItem(new DiamondMace());
                }
                else
                {
                    EquipItem(new Club());
                }

                break;
            }

            case SkillName.Magery:
            {
                BagOfReagents regs = new BagOfReagents(30);

/*
 *                                      if ( !Core.AOS )
 *                                              foreach ( Item item in regs.Items )
 *                                                      item.LootType = LootType.Newbied;
 */

                PackItem(regs);

                regs.LootType = LootType.Regular;

                PackScroll(0);
                PackScroll(1);
                PackScroll(2);

                Spellbook book = new Spellbook((ulong)0x382A8C38);

                EquipItem(book);

                //book.LootType = LootType.Blessed;

                if (elf)
                {
                    EquipItem(new Circlet());

                    if (m.Female)
                    {
                        EquipItem(new FemaleElvenRobe(Utility.RandomBlueHue()));
                    }
                    else
                    {
                        EquipItem(new MaleElvenRobe(Utility.RandomBlueHue()));
                    }
                }
                else
                {
                    EquipItem(new WizardsHat());
                    EquipItem(new Robe(Utility.RandomBlueHue()));
                }

                break;
            }

            case SkillName.Mining:
            {
                PackItem(new Pickaxe());
                break;
            }

            case SkillName.Musicianship:
            {
                PackInstrument();
                break;
            }

            case SkillName.Necromancy:
            {
                Container regs = new BagOfNecroReagents(50);

                PackItem(regs);

                regs.LootType = LootType.Regular;
                Spellbook book = new NecromancerSpellbook((ulong)0x1CFFF);                           // Silver: All except VE/VS
                PackItem(book);

                break;
            }

            case SkillName.Ninjitsu:
            {
                EquipItem(new Hakama(0x2C3));                                   //Only ninjas get the hued one.
                EquipItem(new Kasa());
                EquipItem(new BookOfNinjitsu());
                break;
            }

            case SkillName.Parry:
            {
                EquipItem(new WoodenShield());
                break;
            }

            case SkillName.Peacemaking:
            {
                PackInstrument();
                break;
            }

            case SkillName.Poisoning:
            {
                PackItem(new LesserPoisonPotion());
                PackItem(new LesserPoisonPotion());
                break;
            }

            case SkillName.Provocation:
            {
                PackInstrument();
                break;
            }

            case SkillName.Snooping:
            {
                PackItem(new Lockpick(20));
                break;
            }

            case SkillName.SpiritSpeak:
            {
                EquipItem(new Cloak(0x455));
                break;
            }

            case SkillName.Stealing:
            {
                PackItem(new Lockpick(20));
                break;
            }

            case SkillName.Swords:
            {
                if (elf)
                {
                    EquipItem(new RuneBlade());
                }
                else
                {
                    EquipItem(new Katana());
                }

                break;
            }

            case SkillName.Tactics:
            {
                if (elf)
                {
                    EquipItem(new RuneBlade());
                }
                else
                {
                    EquipItem(new Katana());
                }

                break;
            }

            case SkillName.Tailoring:
            {
                PackItem(new BoltOfCloth());
                PackItem(new SewingKit());
                break;
            }

            case SkillName.Tracking:
            {
                if (m_Mobile != null)
                {
                    Item shoes = m_Mobile.FindItemOnLayer(Layer.Shoes);

                    if (shoes != null)
                    {
                        shoes.Delete();
                    }
                }

                int hue = Utility.RandomYellowHue();

                if (elf)
                {
                    EquipItem(new ElvenBoots(hue));
                }
                else
                {
                    EquipItem(new Boots(hue));
                }

                EquipItem(new SkinningKnife());
                break;
            }

            case SkillName.Veterinary:
            {
                PackItem(new Bandage(5));
                PackItem(new Scissors());
                break;
            }

            case SkillName.Wrestling:
            {
                if (elf)
                {
                    EquipItem(new LeafGloves());
                }
                else
                {
                    EquipItem(new LeatherGloves());
                }

                break;
            }
            }
        }
Пример #12
0
        private static void SetSkills(Mobile m, SkillNameValue[] skills, int prof)
        {
            bool addSkillItems = true;

            switch (prof)
            {
            case 1:                     // Warrior
            {
                EquipItem(new LeatherChest());
                break;
            }

            case 4:                     // Necromancer
            {
                Container regs = new BagOfNecroReagents(50);

                PackItem(regs);

                regs.LootType = LootType.Regular;

                EquipItem(new BoneHelm());

                EquipItem(new BoneHarvester());
                EquipItem(NecroHue(new LeatherChest()));
                EquipItem(NecroHue(new LeatherArms()));
                EquipItem(NecroHue(new LeatherGloves()));
                EquipItem(NecroHue(new LeatherGorget()));
                EquipItem(NecroHue(new LeatherLegs()));
                EquipItem(NecroHue(new Skirt()));
                EquipItem(new Sandals(0x8FD));

                Spellbook book = new NecromancerSpellbook((ulong)0x8981);                           // animate dead, evil omen, pain spike, summon familiar, wraith form

                PackItem(book);

                addSkillItems = false;

                break;
            }

            case 5:                     // Paladin
            {
                EquipItem(new Broadsword());
                EquipItem(new Helmet());
                EquipItem(new PlateGorget());
                EquipItem(new RingmailArms());
                EquipItem(new RingmailChest());
                EquipItem(new RingmailLegs());
                EquipItem(new ThighBoots(0x748));
                EquipItem(new Cloak(0xCF));
                EquipItem(new BodySash(0xCF));

                Spellbook book = new BookOfChivalry((ulong)0x3FF);

                PackItem(book);

                addSkillItems = false;

                break;
            }
            }

            for (int i = 0; i < skills.Length; ++i)
            {
                SkillNameValue snv = skills[i];

                if (snv.Value > 0 && (snv.Name != SkillName.Stealth || prof == 7) && snv.Name != SkillName.RemoveTrap && snv.Name != SkillName.Spellweaving)
                {
                    Skill skill = m.Skills[snv.Name];

                    if (skill != null)
                    {
                        //skill.BaseFixedPoint = snv.Value * 10;

                        if (addSkillItems)
                        {
                            AddSkillItems(snv.Name, m);
                        }
                    }
                }
            }
        }
Пример #13
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (targeted is Mobile)
                {
                    Mobile targ = (Mobile)targeted;
                    if (from != targ)
                    {
                        from.SendMessage("You may only set your own body to GM style.");
                    }

                    else
                    {
                        m_Mobile = from;

                        CommandLogging.WriteLine(from, "{0} {1} is assuming a GM body", from.AccessLevel, CommandLogging.Format(from));

                        Container pack = from.Backpack;

                        if (pack == null)
                        {
                            pack         = new Backpack();
                            pack.Movable = false;

                            from.AddItem(pack);
                        }

                        from.Body   = 0x190;
                        from.Fame   = 0;
                        from.Karma  = 0;
                        from.Kills  = 0;
                        from.Hidden = true;
                        from.Hits   = from.HitsMax;
                        from.Mana   = from.ManaMax;
                        from.Stam   = from.StamMax;

                        if (from.AccessLevel >= AccessLevel.GameMaster)
                        {
                            EquipItem(new StaffRing());
                            Spellbook book1 = new Spellbook((ulong)18446744073709551615);
                            Spellbook book2 = new NecromancerSpellbook((ulong)0xffff);
                            Spellbook book3 = new BookOfChivalry();

                            PackItem(book1);
                            PackItem(book2);
                            PackItem(book3);
                            PackItem(new EtherealHorse());

                            from.RawStr = 100;
                            from.RawDex = 100;
                            from.RawInt = 100;
                            from.Hits   = from.HitsMax;
                            from.Mana   = from.ManaMax;
                            from.Stam   = from.StamMax;

                            for (int i = 0; i < targ.Skills.Length; ++i)
                            {
                                targ.Skills[i].Base = 120;
                            }
                        }

                        if (from.AccessLevel == AccessLevel.Counselor)
                        {
                            EquipItem(new CounselorRobe());
                            EquipItem(new ThighBoots(3));
                            PackItem(new CounselorHide());
                            from.Title = "[Counselor]";
                            from.AddItem(new ShortHair(3));
                            from.AddItem(new Vandyke(3));
                        }

                        if (from.AccessLevel == AccessLevel.GameMaster)
                        {
                            EquipItem(new GMRobe());
                            EquipItem(new ThighBoots(39));
                            PackItem(new SeerHide(39));
                            from.Title = "[GM]";
                            from.AddItem(new ShortHair(39));
                            from.AddItem(new Vandyke(39));
                        }

                        if (from.AccessLevel == AccessLevel.Seer)
                        {
                            EquipItem(new SeerRobe());
                            EquipItem(new ThighBoots(467));
                            PackItem(new SeerHide());
                            from.Title = "[Seer]";
                            from.AddItem(new ShortHair(467));
                            from.AddItem(new Vandyke(467));
                        }

                        if (from.AccessLevel == AccessLevel.Administrator)
                        {
                            EquipItem(new AdminRobe());
                            EquipItem(new ThighBoots(1001));
                            PackItem(new AdminHide());
                            from.Title = "[Admin]";
                            from.AddItem(new ShortHair(1001));
                            from.AddItem(new Vandyke(1001));
                        }
                    }
                }
            }