コード例 #1
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static void Skills_Delta(PacketReader pvSrc, bool hasCapData)
 {
     Skill skill = Engine.Skills[pvSrc.ReadInt16()];
     if (skill != null)
     {
         float num = ((float) pvSrc.ReadInt16()) / 10f;
         if (skill.Value != num)
         {
             float num2 = num - skill.Value;
             int num3 = Math.Sign(num2);
             Engine.AddTextMessage(string.Format("Your skill in {0} has {1} by {2:F1}. Is it now {3:F1}.", new object[] { skill.Name, (num2 > 0f) ? "increased" : "decreased", Math.Abs(num2), num }), Engine.GetFont(3), Hues.Load(0x59));
             skill.Value = num;
         }
         skill.Real = ((float) pvSrc.ReadInt16()) / 10f;
         skill.Lock = (SkillLock) pvSrc.ReadByte();
         if (hasCapData)
         {
             pvSrc.Seek(2, SeekOrigin.Current);
         }
         if (Engine.m_SkillsOpen && (Engine.m_SkillsGump != null))
         {
             Engine.m_SkillsGump.OnSkillChange(skill);
         }
     }
 }
コード例 #2
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static void ChangeCharacter(PacketReader pvSrc)
 {
     int num = pvSrc.ReadByte();
     int num2 = pvSrc.ReadByte();
     string[] strArray = new string[5];
     for (int i = 0; i < 5; i++)
     {
         strArray[i] = pvSrc.ReadString(30);
         pvSrc.Seek(30, SeekOrigin.Current);
     }
     if (!pvSrc.Finished || (num2 != 0))
     {
         pvSrc.Trace();
     }
     Engine.AddTextMessage("That is not supported.");
 }
コード例 #3
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static void Skills_Absolute(PacketReader pvSrc, bool hasCapData)
 {
     int num;
     Client.Skills skills = Engine.Skills;
     while ((num = pvSrc.ReadInt16()) > 0)
     {
         Skill skill = skills[num - 1];
         if (skill != null)
         {
             skill.Value = ((float) pvSrc.ReadInt16()) / 10f;
             skill.Real = ((float) pvSrc.ReadInt16()) / 10f;
             skill.Lock = (SkillLock) pvSrc.ReadByte();
             if (hasCapData)
             {
                 pvSrc.Seek(2, SeekOrigin.Current);
             }
             if (Engine.m_SkillsOpen && (Engine.m_SkillsGump != null))
             {
                 Engine.m_SkillsGump.OnSkillChange(skill);
             }
         }
     }
 }
コード例 #4
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static void ServerChange(PacketReader pvSrc)
 {
     Engine.Multis.Clear();
     Mobile player = World.Player;
     if (player != null)
     {
         short x = pvSrc.ReadInt16();
         short y = pvSrc.ReadInt16();
         short z = pvSrc.ReadInt16();
         World.SetLocation(x, y, z);
         player.SetLocation(x, y, z);
         player.UpdateReal();
     }
     else
     {
         pvSrc.Seek(6, SeekOrigin.Current);
     }
 }
コード例 #5
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static void Prompt_Unicode(PacketReader pvSrc)
 {
     int serial = pvSrc.ReadInt32();
     int prompt = pvSrc.ReadInt32();
     int num3 = pvSrc.ReadInt32();
     pvSrc.Seek(4, SeekOrigin.Current);
     string text = "";
     if (pvSrc.ReadInt16() != 0)
     {
         pvSrc.Trace();
         pvSrc.Seek(-2, SeekOrigin.Current);
         text = pvSrc.ReadUnicodeLEString();
     }
     Engine.Prompt = new UnicodePrompt(serial, prompt, text);
 }
コード例 #6
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static void MultiTarget(PacketReader pvSrc)
 {
     pvSrc.ReadByte();
     Engine.m_MultiPreview = true;
     Engine.m_MultiSerial = pvSrc.ReadInt32();
     Engine.TargetHandler = new MultiTargetHandler(Engine.m_MultiSerial);
     pvSrc.Seek(12, SeekOrigin.Current);
     Engine.m_MultiID = pvSrc.ReadInt16();
     Engine.m_xMultiOffset = pvSrc.ReadInt16();
     Engine.m_yMultiOffset = pvSrc.ReadInt16();
     Engine.m_zMultiOffset = pvSrc.ReadInt16();
     ArrayList list = new ArrayList(Engine.Multis.Load(Engine.m_MultiID));
     int count = list.Count;
     int x = 0x3e8;
     int y = 0x3e8;
     int num4 = -1000;
     int num5 = -1000;
     for (int i = 0; i < count; i++)
     {
         MultiItem item = (MultiItem) list[i];
         if (item.X < x)
         {
             x = item.X;
         }
         if (item.X > num4)
         {
             num4 = item.X;
         }
         if (item.Y < y)
         {
             y = item.Y;
         }
         if (item.Y > num5)
         {
             num5 = item.Y;
         }
     }
     Engine.m_MultiMinX = x;
     Engine.m_MultiMinY = y;
     Engine.m_MultiMaxX = num4;
     Engine.m_MultiMaxY = num5;
     ArrayList list2 = new ArrayList(list.Count);
     for (int j = x; j <= num4; j++)
     {
         for (int k = y; k <= num5; k++)
         {
             ArrayList list3 = new ArrayList(8);
             count = list.Count;
             int index = 0;
             while (index < count)
             {
                 MultiItem item2 = (MultiItem) list[index];
                 if ((item2.X == j) && (item2.Y == k))
                 {
                     list3.Add(StaticItem.Instantiate(item2.ItemID, (sbyte) item2.Z, item2.Flags));
                     list.RemoveAt(index);
                     count--;
                 }
                 else
                 {
                     index++;
                 }
             }
             list3.Sort(TileSorter.Comparer);
             count = list3.Count;
             for (index = 0; index < count; index++)
             {
                 StaticItem item3 = (StaticItem) list3[index];
                 MultiItem item4 = new MultiItem {
                     X = (short) j,
                     Y = (short) k,
                     Z = item3.Z,
                     ItemID = (short) ((item3.ID & 0x3fff) | 0x4000),
                     Flags = item3.Serial
                 };
                 list2.Add(item4);
             }
         }
     }
     Engine.m_MultiList = list2;
 }
コード例 #7
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static void Mobile_Moving(PacketReader pvSrc)
 {
     Mobile m = World.FindMobile(pvSrc.ReadInt32());
     if (m != null)
     {
         bool flag = false;
         m.Body = pvSrc.ReadInt16();
         if (!m.Player)
         {
             int x = pvSrc.ReadInt16();
             int y = pvSrc.ReadInt16();
             int z = pvSrc.ReadSByte();
             int dir = pvSrc.ReadByte();
             m.Walking.Enqueue(WalkAnimation.PoolInstance(m, x, y, z, dir));
             if (m.Walking.Count > 4)
             {
                 WalkAnimation animation = (WalkAnimation) m.Walking.Dequeue();
                 m.SetLocation((short) animation.NewX, (short) animation.NewY, (short) animation.NewZ);
                 animation.Dispose();
                 flag = true;
             }
             ((WalkAnimation) m.Walking.Peek()).Start();
             m.SetReal(x, y, z);
         }
         else
         {
             pvSrc.Seek(6, SeekOrigin.Current);
         }
         m.Hue = pvSrc.ReadInt16();
         m.Flags.Value = pvSrc.ReadByte();
         m.Notoriety = (Notoriety) pvSrc.ReadByte();
         m.IsMoving = !m.Player || Engine.amMoving;
         if (!m.Visible)
         {
             m.Visible = true;
             m.Update();
         }
         else if (flag)
         {
             m.Update();
         }
         if (m.Paperdoll != null)
         {
             Gumps.OpenPaperdoll(m, m.PaperdollName, m.PaperdollCanDrag);
         }
     }
 }