Пример #1
0
 public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(5);
     Field3 = buffer.ReadInt(2) + (-1);
     if (buffer.ReadBool())
     {
         Field4 = new WorldLocationMessageData();
         Field4.Parse(buffer);
     }
     if (buffer.ReadBool())
     {
         Field5 = new InventoryLocationMessageData();
         Field5.Parse(buffer);
     }
     Field6 = new GBHandle();
     Field6.Parse(buffer);
     Field7 = buffer.ReadInt(32);
     Field8 = buffer.ReadInt(32);
     Field9 = buffer.ReadInt(4) + (-1);
     Field10 = (byte)buffer.ReadInt(8);
     if (buffer.ReadBool())
     {
         Field11 = buffer.ReadInt(32);
     }
     if (buffer.ReadBool())
     {
         Field12 = buffer.ReadInt(32);
     }
     if (buffer.ReadBool())
     {
         Field13 = buffer.ReadInt(32);
     }
 }
Пример #2
0
 public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = new GBHandle();
     Field1.Parse(buffer);
 }
Пример #3
0
        public ACDEnterKnownMessage(string[] Data, int f2)
        {
            Id = 0x003B;
            Field0 = int.Parse(Data[2]);
            Field1 = int.Parse(Data[3]);
            Field2 = int.Parse(Data[4]);
            Field3 = int.Parse(Data[5]);

            Field4 = null;

            if (int.Parse(Data[0]) > 0)
                Field4 = new WorldLocationMessageData()
                             {
                                 Field0 = float.Parse(Data[6], System.Globalization.CultureInfo.InvariantCulture),
                                 Field1 = new PRTransform()
                                              {
                                                  Field0 = new Quaternion()
                                                               {
                                                                   Field0 = float.Parse(Data[10], System.Globalization.CultureInfo.InvariantCulture),
                                                                   Field1 = new Vector3D()
                                                                                {
                                                                                    Field0 = float.Parse(Data[7], System.Globalization.CultureInfo.InvariantCulture),
                                                                                    Field1 = float.Parse(Data[8], System.Globalization.CultureInfo.InvariantCulture),
                                                                                    Field2 = float.Parse(Data[9], System.Globalization.CultureInfo.InvariantCulture),
                                                                                },
                                                               },
                                                  Field1 = new Vector3D()
                                                               {
                                                                   Field0 = float.Parse(Data[11], System.Globalization.CultureInfo.InvariantCulture),
                                                                   Field1 = float.Parse(Data[12], System.Globalization.CultureInfo.InvariantCulture),
                                                                   Field2 = float.Parse(Data[13], System.Globalization.CultureInfo.InvariantCulture),
                                                               },
                                              },
                                 Field2 = f2, //=int.Parse(Data[14]),
                             };

            Field5 = null;
            if (int.Parse(Data[1]) > 0)
            {
                Field5 = new InventoryLocationMessageData()
                             {
                                 Field0 = int.Parse(Data[15]),
                                 Field1 = int.Parse(Data[16]),
                                 Field2 = new IVector2D()
                                              {
                                                  Field0 = int.Parse(Data[17]),
                                                  Field1 = int.Parse(Data[18]),
                                              }
                             };
            }

            Field6 = new GBHandle()
                         {
                             Field0 = int.Parse(Data[19]),
                             Field1 = int.Parse(Data[20]),
                         };
            Field7 = int.Parse(Data[21]);
            Field8 = int.Parse(Data[22]);
            Field9 = int.Parse(Data[23]);
            Field10 = byte.Parse(Data[24]);
        }
Пример #4
0
        public bool ParseFrom(int worldId, string line)
        {
            var data = line.Split(' ');

            if (int.Parse(data[2]) == 0) return false; //skip inventory using items as their use is unknown

            this.WorldId = worldId;
            this.Id = int.Parse(data[4]);
            this.SnoId = int.Parse(data[5]);
            this.Field2 = int.Parse(data[6]);
            this.Field3 = int.Parse(data[7]);

            if (int.Parse(data[2]) > 0)
            {
                this.Scale = float.Parse(data[8], System.Globalization.CultureInfo.InvariantCulture);
                this.RotationAmount = float.Parse(data[12], System.Globalization.CultureInfo.InvariantCulture);
                this.RotationAxis = new Vector3D()
                                        {
                                            X = float.Parse(data[9], System.Globalization.CultureInfo.InvariantCulture),
                                            Y = float.Parse(data[10], System.Globalization.CultureInfo.InvariantCulture),
                                            Z = float.Parse(data[11], System.Globalization.CultureInfo.InvariantCulture),
                                        };

                this.Position = new Vector3D()
                                    {
                                        X = float.Parse(data[13], System.Globalization.CultureInfo.InvariantCulture),
                                        Y = float.Parse(data[14], System.Globalization.CultureInfo.InvariantCulture),
                                        Z = float.Parse(data[15], System.Globalization.CultureInfo.InvariantCulture),
                                    };
            }

            // data[14] = world_id

            if (int.Parse(data[3]) > 0)
            {
                this.InventoryLocationData = new InventoryLocationMessageData()
                {
                    Field0 = int.Parse(data[17]),
                    Field1 = int.Parse(data[18]),
                    Field2 = new IVector2D()
                    {
                        Field0 = int.Parse(data[19]),
                        Field1 = int.Parse(data[20]),
                    }
                };
            }

            this.GBHandle = new GBHandle()
            {
                Field0 = int.Parse(data[21]),
                Field1 = int.Parse(data[22]),
            };

            this.Field7 = int.Parse(data[23]);
            this.Field8 = int.Parse(data[24]);
            this.Field9 = int.Parse(data[25]);
            this.Field10 = byte.Parse(data[26]);

            return true;
        }