コード例 #1
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static void PropertyListContent(PacketReader pvSrc)
 {
     int num = pvSrc.ReadUInt16();
     int serial = pvSrc.ReadInt32();
     int num3 = pvSrc.ReadByte();
     int num4 = pvSrc.ReadByte();
     int number = pvSrc.ReadInt32();
     if (((num != 1) || (num3 != 0)) || (num4 != 0))
     {
         pvSrc.Trace();
     }
     ArrayList dataStore = Engine.GetDataStore();
     while (true)
     {
         int num6 = pvSrc.ReadInt32();
         if (num6 == 0)
         {
             break;
         }
         int length = pvSrc.ReadUInt16();
         string arguments = Encoding.Unicode.GetString(pvSrc.ReadBytes(length));
         dataStore.Add(new ObjectProperty(num6, arguments));
     }
     ObjectPropertyList list2 = new ObjectPropertyList(serial, number, (ObjectProperty[]) dataStore.ToArray(typeof(ObjectProperty)));
     Engine.ReleaseDataStore(dataStore);
     Item item = World.FindItem(serial);
     if (item != null)
     {
         item.PropertyID = number;
     }
     Mobile mobile = World.FindMobile(serial);
     if (mobile != null)
     {
         mobile.PropertyID = number;
     }
     if (item != null)
     {
         object parent = item;
         bool flag = false;
         while (parent != null)
         {
             if (!(parent is Item))
             {
                 break;
             }
             Item item2 = (Item) parent;
             if (((item2.Container != null) && (item2.Container.Gump is GContainer)) && ((GContainer) item2.Container.Gump).m_TradeContainer)
             {
                 flag = true;
             }
             if (flag)
             {
                 break;
             }
             parent = item2.Parent;
         }
         if (flag && (parent is Item))
         {
             Item item3 = (Item) parent;
             if ((item3.Container != null) && (item3.Container.Gump.Tooltip is ItemTooltip))
             {
                 GObjectProperties gump = ((ItemTooltip) item3.Container.Gump.Tooltip).Gump as GObjectProperties;
                 if (gump != null)
                 {
                     gump.SetList(0xf9060 + (item3.ID & 0x3fff), item3.PropertyList);
                 }
             }
         }
     }
 }
コード例 #2
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static string BulletinBoard_ReadString(PacketReader pvSrc)
 {
     int length = pvSrc.ReadByte();
     byte[] bytes = pvSrc.ReadBytes(length);
     for (int i = 0; i < length; i++)
     {
         if (bytes[i] == 0)
         {
             length = i;
             break;
         }
     }
     return Encoding.UTF8.GetString(bytes, 0, length);
 }
コード例 #3
0
ファイル: PacketHandlers.cs プロジェクト: Skinny1001/PlayUO
 private static void CustomizedHouseContent(PacketReader pvSrc)
 {
     int compressionType = pvSrc.ReadByte();
     int num2 = pvSrc.ReadByte();
     int serial = pvSrc.ReadInt32();
     int revision = pvSrc.ReadInt32();
     int num5 = pvSrc.ReadUInt16();
     int length = pvSrc.ReadUInt16();
     byte[] buffer = pvSrc.ReadBytes(length);
     Item item = World.FindItem(serial);
     if (((item != null) && (item.Multi != null)) && item.IsMulti)
     {
         CustomMultiLoader.SetCustomMulti(serial, revision, item.Multi, compressionType, buffer);
     }
 }