Beispiel #1
0
 private static void Book_Open(PacketReader pvSrc)
 {
     int num = pvSrc.ReadInt32();
     bool flag = pvSrc.ReadBoolean();
     bool flag2 = pvSrc.ReadBoolean();
     int num2 = pvSrc.ReadInt16();
     int fixedLength = pvSrc.ReadInt16();
     string str = pvSrc.ReadString(fixedLength);
     int num4 = pvSrc.ReadInt16();
     string str2 = pvSrc.ReadString(num4);
     m_BookTitle = str;
     m_BookAuthor = str2;
     Engine.AddTextMessage("Books are not currently supported.");
 }
Beispiel #2
0
 private static void Command_ExtendedStatus(PacketReader pvSrc)
 {
     int num = pvSrc.ReadByte();
     Mobile mobile = World.FindMobile(pvSrc.ReadInt32());
     if (mobile != null)
     {
         mobile.Bonded = pvSrc.ReadBoolean();
         if (num >= 2)
         {
             int num2 = pvSrc.ReadByte();
             if (num >= 3)
             {
                 pvSrc.Trace();
             }
         }
     }
 }
Beispiel #3
0
 private static void Unk32(PacketReader pvSrc)
 {
     Engine.AddTextMessage(pvSrc.ReadBoolean().ToString());
 }
Beispiel #4
0
 private static void WarmodeStatus(PacketReader pvSrc)
 {
     bool flag = pvSrc.ReadBoolean();
     if (pvSrc.ReadByte() == 0)
     {
         byte num = pvSrc.ReadByte();
         if (((num != 0x20) && (num != 50)) && (num != 0))
         {
             pvSrc.Trace();
         }
         else if (pvSrc.ReadByte() != 0)
         {
             pvSrc.Trace();
         }
     }
     Mobile player = World.Player;
     if (player != null)
     {
         player.Flags[MobileFlag.Warmode] = flag;
         if (!flag)
         {
             Engine.m_Highlight = null;
         }
         if (player.Paperdoll != null)
         {
             Gumps.OpenPaperdoll(player, player.PaperdollName, player.PaperdollCanDrag);
         }
     }
     Gumps.Invalidate();
     Engine.Redraw();
 }
Beispiel #5
0
 private static void SecureTrade_Open(int serial, PacketReader pvSrc)
 {
     string str;
     string str2;
     int num = pvSrc.ReadInt32();
     int num2 = pvSrc.ReadInt32();
     bool flag = pvSrc.ReadBoolean();
     Mobile player = World.Player;
     Mobile mobile2 = World.FindMobile(serial);
     if (((player == null) || ((str = player.Name) == null)) || ((str = str.Trim()).Length <= 0))
     {
         str = "Me";
     }
     if (flag)
     {
         str2 = pvSrc.ReadString();
     }
     else if (((mobile2 == null) || ((str2 = mobile2.Name) == null)) || ((str2 = str2.Trim()).Length <= 0))
     {
         str2 = "Them";
     }
     GSecureTrade toAdd = new GSecureTrade(num, null, str, str2);
     IFont uniFont = Engine.GetUniFont(1);
     IHue hue = Hues.Load(1);
     IHue hue2 = Hues.Load(0);
     Item item = World.WantItem(num);
     GSecureTradeCheck partner = new GSecureTradeCheck(250, 2, null, null);
     GSecureTradeCheck check2 = new GSecureTradeCheck(2, 2, item, partner);
     toAdd.Children.Add(check2);
     toAdd.Children.Add(partner);
     IContainer container = new GContainer(item, 0x52, hue2);
     toAdd.m_Container = container.Gump;
     container.Gump.X = 13;
     container.Gump.Y = 0x21;
     ((GContainer) container).m_TradeContainer = true;
     container.Gump.SetTag("Check1", check2);
     container.Gump.SetTag("Check2", partner);
     toAdd.Children.Add(container.Gump);
     item.Container = container;
     Item item2 = World.WantItem(num2);
     IContainer container2 = new GContainer(item2, 0x52, hue2) {
         Gump = { X = 0x8e, Y = 0x21 }
     };
     container2.Gump.SetTag("Check1", check2);
     container2.Gump.SetTag("Check2", partner);
     ((GContainer) container2).m_HitTest = false;
     ((GContainer) container2).m_TradeContainer = true;
     toAdd.Children.Add(container2.Gump);
     item2.Container = container2;
     if (Engine.Features.AOS)
     {
         toAdd.Tooltip = new ItemTooltip(item2);
     }
     Gumps.Desktop.Children.Add(toAdd);
 }
Beispiel #6
0
 private static void StringQuery(PacketReader pvSrc)
 {
     GDragable dragable;
     GWrappedLabel label2;
     int num = pvSrc.ReadInt32();
     short num2 = pvSrc.ReadInt16();
     int fixedLength = pvSrc.ReadInt16();
     string text = pvSrc.ReadString(fixedLength);
     bool flag = pvSrc.ReadBoolean();
     byte num4 = pvSrc.ReadByte();
     int num5 = pvSrc.ReadInt32();
     int num6 = pvSrc.ReadInt16();
     string str2 = pvSrc.ReadString(num6);
     dragable = new GDragable(0x474, 0, 0) {
         CanClose = false,
         Modal = true,
         X = (Engine.ScreenWidth - dragable.Width) / 2,
         Y = (Engine.ScreenHeight - dragable.Height) / 2
     };
     GButton toAdd = new GButton(0x47b, 0x47d, 0x47c, 0x75, 190, new OnClick(Engine.StringQueryOkay_OnClick));
     GButton button2 = new GButton(0x478, 0x47a, 0x479, 0xcc, 190, flag ? new OnClick(Engine.StringQueryCancel_OnClick) : null);
     if (!flag)
     {
         button2.Enabled = false;
     }
     GImage image = new GImage(0x477, 60, 0x91);
     GWrappedLabel label = new GWrappedLabel(text, Engine.GetFont(2), Hues.Load(0x455), 60, 0x30, 0x110);
     label2 = new GWrappedLabel(str2, Engine.GetFont(2), Hues.Load(0x455), 60, 0x30, 0x110) {
         Y = image.Y - label2.Height
     };
     GTextBox box = new GTextBox(0, false, 0x44, 140, image.Width - 8, image.Height, "", Engine.GetFont(1), Hues.Load(0x455), Hues.Load(0x455), Hues.Load(0x455));
     box.Focus();
     if (num4 == 1)
     {
         box.MaxChars = num5;
     }
     toAdd.SetTag("Dialog", dragable);
     toAdd.SetTag("Serial", num);
     toAdd.SetTag("Type", num2);
     toAdd.SetTag("Text", box);
     button2.SetTag("Dialog", dragable);
     button2.SetTag("Serial", num);
     button2.SetTag("Type", num2);
     dragable.Children.Add(label);
     dragable.Children.Add(label2);
     dragable.Children.Add(image);
     dragable.Children.Add(box);
     dragable.Children.Add(button2);
     dragable.Children.Add(toAdd);
     dragable.m_CanDrag = true;
     Gumps.Desktop.Children.Add(dragable);
 }
Beispiel #7
0
 private static void QuestArrow(PacketReader pvSrc)
 {
     if (pvSrc.ReadBoolean())
     {
         GQuestArrow.Activate(pvSrc.ReadInt16(), pvSrc.ReadInt16());
     }
     else
     {
         GQuestArrow.Stop();
     }
 }
Beispiel #8
0
 private static void Mobile_Status(PacketReader pvSrc)
 {
     Mobile mobile = World.WantMobile(pvSrc.ReadInt32());
     if (mobile != null)
     {
         mobile.Refresh = true;
         mobile.Name = pvSrc.ReadString(30);
         mobile.HPCur = pvSrc.ReadUInt16();
         mobile.HPMax = pvSrc.ReadUInt16();
         mobile.IsPet = pvSrc.ReadBoolean();
         byte num = pvSrc.ReadByte();
         if (num >= 1)
         {
             mobile.Gender = pvSrc.ReadByte();
             mobile.Str = pvSrc.ReadUInt16();
             mobile.Dex = pvSrc.ReadUInt16();
             mobile.Int = pvSrc.ReadUInt16();
             mobile.StamCur = pvSrc.ReadUInt16();
             mobile.StamMax = pvSrc.ReadUInt16();
             mobile.ManaCur = pvSrc.ReadUInt16();
             mobile.ManaMax = pvSrc.ReadUInt16();
             mobile.Gold = pvSrc.ReadInt32();
             mobile.Armor = pvSrc.ReadUInt16();
             mobile.Weight = pvSrc.ReadUInt16();
             if (num >= 2)
             {
                 mobile.StatCap = pvSrc.ReadUInt16();
                 if (num >= 3)
                 {
                     mobile.FollowersCur = pvSrc.ReadByte();
                     mobile.FollowersMax = pvSrc.ReadByte();
                     if (num >= 4)
                     {
                         mobile.FireResist = pvSrc.ReadInt16();
                         mobile.ColdResist = pvSrc.ReadInt16();
                         mobile.PoisonResist = pvSrc.ReadInt16();
                         mobile.EnergyResist = pvSrc.ReadInt16();
                         mobile.Luck = pvSrc.ReadUInt16();
                         mobile.DamageMin = pvSrc.ReadUInt16();
                         mobile.DamageMax = pvSrc.ReadUInt16();
                         mobile.TithingPoints = pvSrc.ReadInt32();
                         if (num > 4)
                         {
                             pvSrc.Trace();
                         }
                     }
                     else
                     {
                         mobile.FireResist = 0;
                         mobile.ColdResist = 0;
                         mobile.PoisonResist = 0;
                         mobile.EnergyResist = 0;
                         mobile.Luck = 0;
                         mobile.DamageMin = 0;
                         mobile.DamageMax = 0;
                     }
                 }
                 else
                 {
                     mobile.FollowersCur = 0;
                     mobile.FollowersMax = 5;
                 }
             }
             else
             {
                 mobile.StatCap = 0xe1;
             }
         }
         mobile.Refresh = false;
     }
 }
Beispiel #9
0
        private static void Mobile_Animation(PacketReader pvSrc)
        {
            int num;
            int num3;
            bool flag;
            bool flag2;
            int num4;
            int num5;
            Mobile mobile = World.FindMobile(pvSrc.ReadInt32());
            if (mobile != null)
            {
                num = pvSrc.ReadInt16();
                int num2 = pvSrc.ReadInt16();
                num3 = pvSrc.ReadInt16();
                flag = !pvSrc.ReadBoolean();
                flag2 = pvSrc.ReadBoolean();
                num4 = pvSrc.ReadByte();
                switch (Engine.m_Animations.GetBodyType(mobile.Body))
                {
                    case BodyType.Monster:
                        num = num % 0x16;
                        goto Label_00D9;

                    case BodyType.Sea:
                    case BodyType.Animal:
                    {
                        object obj2 = Engine.m_Animations.ActionDef1[num];
                        if (obj2 != null)
                        {
                            num = (int) obj2;
                        }
                        num = num % 13;
                        goto Label_00D9;
                    }
                    case BodyType.Human:
                    case BodyType.Equipment:
                    {
                        object obj3 = Engine.m_Animations.ActionDef2[num];
                        if (obj3 != null)
                        {
                            num = (int) obj3;
                        }
                        num = num % 0x23;
                        goto Label_00D9;
                    }
                }
            }
            return;
            Label_00D9:
            num5 = Engine.GetAnimDirection(mobile.Direction) & 7;
            if (Engine.m_Animations.IsValid(mobile.Body, num, num5))
            {
                Animation animation = new Animation {
                    Action = num,
                    RepeatCount = num3,
                    Forward = flag,
                    Repeat = flag2,
                    Delay = num4
                };
                mobile.Animation = animation;
                animation.Run();
            }
        }
Beispiel #10
0
 private static void MapCommand(PacketReader pvSrc)
 {
     int num = pvSrc.ReadInt32();
     int num2 = pvSrc.ReadByte();
     bool flag = pvSrc.ReadBoolean();
     int num3 = pvSrc.ReadInt16();
     int num4 = pvSrc.ReadInt16();
     switch (num2)
     {
         case 1:
         {
             GMapTracker.MapX = m_xMapLeft + ((int) ((m_xMapRight - m_xMapLeft) * (((double) num3) / ((double) m_xMapWidth))));
             GMapTracker.MapY = m_yMapTop + ((int) ((m_yMapBottom - m_yMapTop) * (((double) num4) / ((double) m_yMapHeight))));
             GRadar.AddTag(GMapTracker.MapX, GMapTracker.MapY, "Treasure Map");
             Engine.AddTextMessage(string.Format("Map: ({0}, {1})", GMapTracker.MapX, GMapTracker.MapY));
         }
     }
 }
Beispiel #11
0
        private static void Effect(PacketReader pvSrc, bool hasHueData, bool hasParticleData)
        {
            Client.Effect effect;
            int num = pvSrc.ReadByte();
            int source = pvSrc.ReadInt32();
            int target = pvSrc.ReadInt32();
            int itemID = pvSrc.ReadInt16();
            int xSource = pvSrc.ReadInt16();
            int ySource = pvSrc.ReadInt16();
            int zSource = pvSrc.ReadSByte();
            int xTarget = pvSrc.ReadInt16();
            int yTarget = pvSrc.ReadInt16();
            int zTarget = pvSrc.ReadSByte();
            int num11 = pvSrc.ReadByte();
            int duration = pvSrc.ReadByte();
            int num13 = pvSrc.ReadByte();
            int num14 = pvSrc.ReadByte();
            bool flag = !pvSrc.ReadBoolean();
            bool flag2 = pvSrc.ReadBoolean();
            int hue = hasHueData ? pvSrc.ReadInt32() : 0;
            int num16 = hasHueData ? pvSrc.ReadInt32() : 0;
            int num17 = hasParticleData ? pvSrc.ReadInt16() : 0;
            int num18 = hasParticleData ? pvSrc.ReadInt16() : 0;
            int num19 = hasParticleData ? pvSrc.ReadInt16() : 0;
            int num20 = hasParticleData ? pvSrc.ReadInt32() : 0;
            EffectLayer layer = hasParticleData ? ((EffectLayer) pvSrc.ReadByte()) : EffectLayer.Head;
            int num21 = hasParticleData ? pvSrc.ReadInt16() : 0;
            if ((((((num17 == 0x139d) || (num17 == 0x13bc)) || ((num17 == 0x13b4) || (num17 == 0xbe3))) || (((num17 == 0x251e) || (num17 == 0x1395)) || ((num == 1) || (num17 == 0xbbe)))) || (num17 == 0x13ae)) || (itemID == 0x113a))
            {
                m_EffectTime = DateTime.Now;
            }
            if ((itemID & 0x3fff) > 1)
            {
                if ((num13 > 1) || (num14 != 0))
                {
                    pvSrc.Trace();
                }
                if (hue > 0)
                {
                    hue++;
                }
                switch (num)
                {
                    case 0:
                        effect = new MovingEffect(source, target, xSource, ySource, zSource, xTarget, yTarget, zTarget, itemID, Hues.GetItemHue(itemID, hue));
                        ((MovingEffect) effect).m_RenderMode = num16;
                        if (flag2)
                        {
                            effect.Children.Add(new AnimatedItemEffect(target, xTarget, yTarget, zTarget, 0x36cb, Hues.GetItemHue(0x36cb, hue), duration));
                        }
                        goto Label_0274;

                    case 1:
                        effect = new LightningEffect(source, xSource, ySource, zSource, Hues.Load(hue ^ 0x8000));
                        goto Label_0274;

                    case 2:
                        effect = new AnimatedItemEffect(xSource, ySource, zSource, itemID, Hues.GetItemHue(itemID, hue), duration);
                        ((AnimatedItemEffect) effect).m_RenderMode = num16;
                        goto Label_0274;

                    case 3:
                        effect = new AnimatedItemEffect(source, xSource, ySource, zSource, itemID, Hues.GetItemHue(itemID, hue), duration);
                        ((AnimatedItemEffect) effect).m_RenderMode = num16;
                        goto Label_0274;
                }
                pvSrc.Trace();
            }
            return;
            Label_0274:
            Engine.Effects.Add(effect);
        }