Esempio n. 1
0
        public static void EventSink_PaperdollRequest(PaperdollRequestEventArgs e)
        {
            Mobile beholder = e.Beholder;
            Mobile beheld   = e.Beheld;

            beholder.Send(new DisplayPaperdoll(beheld, Titles.ComputeTitle(beholder, beheld), beheld.AllowEquipFrom(beholder)));

            for (var index = 0; index < beheld.Items.Count; index++)
            {
                Item item = beheld.Items[index];

                beholder.Send(item.OPLPacket);
            }

            // NOTE: OSI sends MobileUpdate when opening your own paperdoll.
            // It has a very bad rubber-banding affect. What positive affects does it have?
        }
Esempio n. 2
0
        public static void EventSink_PaperdollRequest(Mobile beholder, Mobile beheld)
        {
            beholder.NetState.SendDisplayPaperdoll(
                beheld.Serial,
                Titles.ComputeTitle(beholder, beheld),
                beheld.Warmode,
                beheld.AllowEquipFrom(beholder)
                );

            for (var i = 0; i < beheld.Items.Count; ++i)
            {
                beheld.Items[i].SendOPLPacketTo(beholder.NetState);
            }

            // NOTE: OSI sends MobileUpdate when opening your own paperdoll.
            // It has a very bad rubber-banding affect. What positive affects does it have?
        }
Esempio n. 3
0
        public static void EventSink_PaperdollRequest(Mobile beholder, Mobile beheld)
        {
            beholder.Send(new DisplayPaperdoll(beheld, Titles.ComputeTitle(beholder, beheld), beheld.AllowEquipFrom(beholder)));

            if (ObjectPropertyList.Enabled)
            {
                List <Item> items = beheld.Items;

                for (int i = 0; i < items.Count; ++i)
                {
                    beholder.Send(items[i].OPLPacket);
                }

                // NOTE: OSI sends MobileUpdate when opening your own paperdoll.
                // It has a very bad rubber-banding affect. What positive affects does it have?
            }
        }
Esempio n. 4
0
        public static void EventSink_PaperdollRequest(PaperdollRequestEventArgs e)
        {
            Mobile beholder = e.Beholder;
            Mobile beheld   = e.Beheld;

            beholder.Send(new DisplayPaperdoll(beheld, Titles.ComputeTitle(beholder, beheld), beheld.AllowEquipFrom(beholder)));

            if (ObjectPropertyList.Enabled)
            {
                List <Item> items = beheld.Items;

                for (int i = 0; i < items.Count; ++i)
                {
                    beholder.Send(items[i].OPLPacket);
                }
            }
        }
Esempio n. 5
0
        public static void EventSink_ProfileRequest(ProfileRequestEventArgs e)
        {
            Mobile beholder = e.Beholder;
            Mobile beheld   = e.Beheld;

            if (!beheld.Player)
            {
                return;
            }

            if (beholder.Map != beheld.Map || !beholder.InRange(beheld, 12) || !beholder.CanSee(beheld))
            {
                return;
            }

            string header = Titles.ComputeTitle(beholder, beheld);

            string footer = "";

            if (beheld.ProfileLocked)
            {
                if (beholder == beheld)
                {
                    footer = "Your profile has been locked.";
                }
                else if (beholder.AccessLevel >= AccessLevel.Counselor)
                {
                    footer = "This profile has been locked.";
                }
            }

            if (footer.Length == 0 && beholder == beheld)
            {
                footer = GetAccountDuration(beheld);
            }

            string body = beheld.Profile;

            if (body == null || body.Length <= 0)
            {
                body = "";
            }

            beholder.Send(new DisplayProfile(beholder != beheld || !beheld.ProfileLocked, beheld, header, body, footer));
        }
Esempio n. 6
0
        public static void EventSink_PaperdollRequest(PaperdollRequestEventArgs e)
        {
            Mobile beholder = e.Beholder;
            Mobile beheld   = e.Beheld;

            beholder.Send(new DisplayPaperdoll(beheld, Titles.ComputeTitle(beholder, beheld), beheld.AllowEquipFrom(beholder)));

            if (ObjectPropertyListPacket.Enabled)
            {
                foreach (var item in beheld.GetEquippedItems())
                {
                    beholder.Send(item.OPLPacket);
                }

                // NOTE: OSI sends MobileUpdate when opening your own paperdoll.
                // It has a very bad rubber-banding affect. What positive affects does it have?
            }
        }
Esempio n. 7
0
        public static void EventSink_PaperdollRequest(PaperdollRequestEventArgs e)
        {
            Mobile beholder = e.Beholder;
            Mobile beheld   = e.Beheld;

            beholder.Send(new DisplayPaperdoll(beheld, Titles.ComputeTitle(beholder, beheld), beheld.AllowEquipFrom(beholder)));

            if (!ObjectPropertyList.Enabled || !beholder.EraAOS)
            {
                return;
            }

            List <Item> items = beheld.Items;

            foreach (Item i in items)
            {
                beholder.Send(i.OPLPacket);
            }

            // NOTE: OSI sends MobileUpdate when opening your own paperdoll.
            // It has a very bad rubber-banding affect. What positive affects does it have?
        }
Esempio n. 8
0
        public static void EventSink_ProfileRequest(Mobile beholder, Mobile beheld)
        {
            if (!beheld.Player)
            {
                return;
            }

            if (beholder.Map != beheld.Map || !beholder.InRange(beheld, 12) || !beholder.CanSee(beheld))
            {
                return;
            }

            var header = Titles.ComputeTitle(beholder, beheld);

            var footer = "";

            if (beheld.ProfileLocked)
            {
                if (beholder == beheld)
                {
                    footer = "Your profile has been locked.";
                }
                else if (beholder.AccessLevel >= AccessLevel.Counselor)
                {
                    footer = "This profile has been locked.";
                }
            }

            if (footer.Length == 0 && beholder == beheld)
            {
                footer = GetAccountDuration(beheld);
            }

            var body   = beheld.Profile ?? "";
            var serial = beholder != beheld || !beheld.ProfileLocked ? beheld.Serial : Serial.Zero;

            beholder.NetState.SendDisplayProfile(serial, header, body, footer);
        }
Esempio n. 9
0
        public static void PayAdventurer(Mobile m)
        {
            string explorer = CharacterDatabase.GetQuestInfo(m, "StandardQuest");

            if (CharacterDatabase.GetQuestState(m, "StandardQuest"))
            {
                string sPCTarget   = "";
                string sPCTitle    = "";
                string sPCName     = "";
                string sPCRegion   = "";
                int    nPCDone     = 0;
                int    nPCFee      = 0;
                string sPCWorld    = "";
                string sPCCategory = "";
                string sPCStory    = "";

                string[] explorers = explorer.Split('#');
                int      nEntry    = 1;
                foreach (string explorerz in explorers)
                {
                    if (nEntry == 1)
                    {
                        sPCTarget = explorerz;
                    }
                    else if (nEntry == 2)
                    {
                        sPCTitle = explorerz;
                    }
                    else if (nEntry == 3)
                    {
                        sPCName = explorerz;
                    }
                    else if (nEntry == 4)
                    {
                        sPCRegion = explorerz;
                    }
                    else if (nEntry == 5)
                    {
                        nPCDone = Convert.ToInt32(explorerz);
                    }
                    else if (nEntry == 6)
                    {
                        nPCFee = Convert.ToInt32(explorerz);
                    }
                    else if (nEntry == 7)
                    {
                        sPCWorld = explorerz;
                    }
                    else if (nEntry == 8)
                    {
                        sPCCategory = explorerz;
                    }
                    else if (nEntry == 9)
                    {
                        sPCStory = explorerz;
                    }

                    nEntry++;
                }

                if (nPCDone > 0 && nPCFee > 0)
                {
                    m.SendSound(0x3D);
                    m.AddToBackpack(new Gold(nPCFee));
                    string sMessage = "Here is " + nPCFee.ToString() + " gold for you.";
                    m.PrivateOverheadMessage(MessageType.Regular, 1150, false, sMessage, m.NetState);
                    StandardQuestFunctions.QuestTimeAllowed(m);

                    Titles.AwardFame(m, ((int)(nPCFee / 100)), true);
                    if (((PlayerMobile)m).KarmaLocked == true)
                    {
                        Titles.AwardKarma(m, -((int)(nPCFee / 100)), true);
                    }
                    else
                    {
                        Titles.AwardKarma(m, ((int)(nPCFee / 100)), true);
                    }
                }
            }
        }
        public static void PayAssassin(Mobile m, Mobile leader)
        {
            string victim = CharacterDatabase.GetQuestInfo(m, "AssassinQuest");

            if (CharacterDatabase.GetQuestState(m, "AssassinQuest"))
            {
                string sAssassinTarget   = "";
                string sAssassinTitle    = "";
                string sAssassinName     = "";
                string sAssassinRegion   = "";
                int    nAssassinDone     = 0;
                int    nAssassinFee      = 0;
                string sAssassinWorld    = "";
                string sAssassinCategory = "";
                string sAssassinStory    = "";

                string[] victims = victim.Split('#');
                int      nEntry  = 1;
                foreach (string victimz in victims)
                {
                    if (nEntry == 1)
                    {
                        sAssassinTarget = victimz;
                    }
                    else if (nEntry == 2)
                    {
                        sAssassinTitle = victimz;
                    }
                    else if (nEntry == 3)
                    {
                        sAssassinName = victimz;
                    }
                    else if (nEntry == 4)
                    {
                        sAssassinRegion = victimz;
                    }
                    else if (nEntry == 5)
                    {
                        nAssassinDone = Convert.ToInt32(victimz);
                    }
                    else if (nEntry == 6)
                    {
                        nAssassinFee = Convert.ToInt32(victimz);
                    }
                    else if (nEntry == 7)
                    {
                        sAssassinWorld = victimz;
                    }
                    else if (nEntry == 8)
                    {
                        sAssassinCategory = victimz;
                    }
                    else if (nEntry == 9)
                    {
                        sAssassinStory = victimz;
                    }

                    nEntry++;
                }

                if (nAssassinDone > 0 && nAssassinFee > 0)
                {
                    m.SendSound(0x3D);
                    m.AddToBackpack(new Gold(nAssassinFee));
                    string sMessage = "";
                    switch (Utility.RandomMinMax(0, 9))
                    {
                    case 0: sMessage = "I assume the death was quick. Here is " + nAssassinFee.ToString() + " gold for you.";               break;

                    case 1: sMessage = "I bet they never seen you coming. Here is " + nAssassinFee.ToString() + " gold for you.";           break;

                    case 2: sMessage = "Was the death swift? Here is " + nAssassinFee.ToString() + " gold for you.";                break;

                    case 3: sMessage = "Were there any witnesses? Here is " + nAssassinFee.ToString() + " gold for you.";           break;

                    case 4: sMessage = "I am impressed. Here is " + nAssassinFee.ToString() + " gold for you.";             break;

                    case 5: sMessage = "Word of your deed already reached my ears. Here is " + nAssassinFee.ToString() + " gold for you.";          break;

                    case 6: sMessage = "How you did that one, I'll never know. Here is " + nAssassinFee.ToString() + " gold for you.";              break;

                    case 7: sMessage = "You are one of my best. Here is " + nAssassinFee.ToString() + " gold for you.";             break;

                    case 8: sMessage = "Did you leave the body behind? Here is " + nAssassinFee.ToString() + " gold for you.";              break;

                    case 9: sMessage = "Next time, strike from the shadows. Here is " + nAssassinFee.ToString() + " gold for you.";         break;
                    }
                    leader.Say(sMessage);

                    int totalKarma = nAssassinFee;
                    if (sAssassinCategory == "Innocent")
                    {
                        totalKarma = nAssassinFee * 2;
                    }                                                                                                    // MORE KARMA LOSS FOR CITIZENS

                    Titles.AwardFame(m, ((int)(totalKarma / 100)), true);
                    Titles.AwardKarma(m, -((int)(totalKarma / 100)), true);

                    AssassinFunctions.QuestTimeAllowed(m);

                    m.Criminal = false;
                    if (sAssassinCategory == "Innocent" && m.Kills > 0)
                    {
                        m.Kills = m.Kills - 1;
                    }                                                                                                   // REMOVE THE KILL FOR THIS CIVILIAN
                }
            }
        }
Esempio n. 11
0
        public static void WellTheyDied(Mobile m, BaseCreature b)
        {
            if (m.EmoteHue == 505)
            {
                Mobile killer = m.LastKiller;
                if (killer != null)
                {
                    if (killer is BaseCreature)
                    {
                        killer = ((BaseCreature)killer).GetMaster();
                    }

                    if (!(killer is PlayerMobile))
                    {
                        killer = m.FindMostRecentDamager(true);

                        if (killer != null)
                        {
                            if (killer is BaseCreature)
                            {
                                killer = ((BaseCreature)killer).GetMaster();
                            }
                        }
                    }
                }

                Map map = m.Map;

                if (map != null)
                {
                    for (int x = -12; x <= 12; ++x)
                    {
                        for (int y = -12; y <= 12; ++y)
                        {
                            double dist = Math.Sqrt(x * x + y * y);

                            if (dist <= 12)
                            {
                                new GoodiesTimer(map, m.X + x, m.Y + y).Start();
                            }
                        }
                    }

                    SummonChest MyChest = new SummonChest(killer);
                    MyChest.Prisoner = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase((m.Name).ToLower());

                    string myName = GetFirstName(m.Name);
                    int    myHue  = m.Hue;

                    Item        reward     = new SummonReward();
                    List <Item> belongings = new List <Item>();
                    foreach (Item i in m.Backpack.Items)
                    {
                        if (i is SummonPrison)
                        {
                            SummonPrison prison = (SummonPrison)i;
                            reward.Hue    = prison.RewardHue;
                            reward.ItemID = prison.RewardID;
                            reward.Name   = prison.RewardName;
                            MyChest.AddItem(reward);

                            if (prison.PrisonerFullNameUsed > 0)
                            {
                                myName = m.Name;
                            }
                            if (prison.PrisonerClothColorUsed > 0)
                            {
                                for (int c = 0; c < m.Items.Count; ++c)
                                {
                                    Item item = m.Items[c];

                                    if (!(item is Cloak) && !(item is BaseWeapon) && !(item is WornHumanDeco))
                                    {
                                        myHue = item.Hue;
                                    }
                                }

                                if (myHue == 0)
                                {
                                    myHue = prison.RewardHue;
                                }
                            }
                        }
                    }

                    if (killer is PlayerMobile)
                    {
                        Party p = Engines.PartySystem.Party.Get(killer);
                        if (p != null)
                        {
                            foreach (PartyMemberInfo pmi in p.Members)
                            {
                                if (pmi.Mobile is PlayerMobile && pmi.Mobile.InRange(m.Location, 20))
                                {
                                    LoggingFunctions.LogSlayingLord(pmi.Mobile, m.Name + " from the Magical Prison");
                                    Titles.AwardFame(pmi.Mobile, 300, true);
                                    if (((PlayerMobile)(pmi.Mobile)).KarmaLocked == true)
                                    {
                                        Titles.AwardKarma(pmi.Mobile, -300, true);
                                    }
                                    else
                                    {
                                        Titles.AwardKarma(pmi.Mobile, 300, true);
                                    }

                                    ManualOfItems book = new ManualOfItems();
                                    book.Hue        = myHue;
                                    book.Name       = "Tome of " + myName + " Relics";
                                    book.m_Charges  = 1;
                                    book.m_Skill_1  = 99;
                                    book.m_Skill_2  = 0;
                                    book.m_Skill_3  = 0;
                                    book.m_Skill_4  = 0;
                                    book.m_Skill_5  = 0;
                                    book.m_Value_1  = 10.0;
                                    book.m_Value_2  = 0.0;
                                    book.m_Value_3  = 0.0;
                                    book.m_Value_4  = 0.0;
                                    book.m_Value_5  = 0.0;
                                    book.m_Slayer_1 = 5;
                                    book.m_Slayer_2 = 0;
                                    book.m_Owner    = pmi.Mobile;
                                    book.m_Extra    = "of " + myName;
                                    book.m_FromWho  = "From " + m.Name;
                                    book.m_HowGiven = "Won by";
                                    book.m_Points   = 300;
                                    book.m_Hue      = myHue;
                                    MyChest.AddItem(book);
                                }
                            }
                        }
                        else
                        {
                            LoggingFunctions.LogSlayingLord(killer, m.Name + " from the Magical Prison");
                            Titles.AwardFame(killer, 300, true);
                            if (((PlayerMobile)killer).KarmaLocked == true)
                            {
                                Titles.AwardKarma(killer, -300, true);
                            }
                            else
                            {
                                Titles.AwardKarma(killer, 300, true);
                            }

                            ManualOfItems book = new ManualOfItems();
                            book.Hue        = myHue;
                            book.Name       = "Tome of " + myName + " Relics";
                            book.m_Charges  = 1;
                            book.m_Skill_1  = 99;
                            book.m_Skill_2  = 0;
                            book.m_Skill_3  = 0;
                            book.m_Skill_4  = 0;
                            book.m_Skill_5  = 0;
                            book.m_Value_1  = 10.0;
                            book.m_Value_2  = 0.0;
                            book.m_Value_3  = 0.0;
                            book.m_Value_4  = 0.0;
                            book.m_Value_5  = 0.0;
                            book.m_Slayer_1 = 5;
                            book.m_Slayer_2 = 0;
                            book.m_Owner    = killer;
                            book.m_Extra    = "of " + myName;
                            book.m_FromWho  = "From " + m.Name;
                            book.m_HowGiven = "Won by";
                            book.m_Points   = 300;
                            book.m_Hue      = myHue;
                            MyChest.AddItem(book);
                        }
                    }

                    MyChest.MoveToWorld(m.Location, m.Map);
                }

                if (!(m is PlayerMobile))
                {
                    Server.Misc.IntelligentAction.BurnAway(m);
                    m.Delete();
                }
            }
        }
Esempio n. 12
0
 public static void EventSink_PaperdollRequest(Mobile beholder, Mobile beheld)
 {
     beholder.NetState.SendDisplayPaperdoll(beheld.Serial, Titles.ComputeTitle(beholder, beheld), beheld.Warmode, beheld.AllowEquipFrom(beholder));
 }
Esempio n. 13
0
 public static void EventSink_PaperdollRequest(PaperdollRequestEventArgs e)
 {
     e.Beholder.Send(new DisplayPaperdoll(e.Beheld, Titles.ComputeTitle(e.Beholder, e.Beheld), e.Beheld.AllowEquipFrom(e.Beholder)));
 }