コード例 #1
0
        public EventStartPacket(byte[] data)
        {
            using (MemoryStream mem = new MemoryStream(data))
            {
                using (BinaryReader binReader = new BinaryReader(mem))
                {
                    try{
                        actorID            = binReader.ReadUInt32();
                        scriptOwnerActorID = binReader.ReadUInt32();
                        val1 = binReader.ReadUInt32();
                        val2 = binReader.ReadUInt32();
                        val3 = binReader.ReadByte();

                        /*
                         * //Lua Error Dump
                         * if (val1 == 0x39800010)
                         * {
                         *  errorIndex = actorID;
                         *  errorNum = scriptOwnerActorID;
                         *  error = ASCIIEncoding.ASCII.GetString(binReader.ReadBytes(0x80)).Replace("\0", "");
                         *
                         *  if (errorIndex == 0)
                         *      Program.Log.Error("LUA ERROR:");
                         *
                         *  return;
                         * }
                         */
                        List <byte> strList = new List <byte>();
                        byte        curByte;
                        while ((curByte = binReader.ReadByte()) != 0)
                        {
                            strList.Add(curByte);
                        }
                        triggerName = Encoding.ASCII.GetString(strList.ToArray());

                        binReader.BaseStream.Seek(0x31, SeekOrigin.Begin);

                        if (binReader.PeekChar() == 0x1)
                        {
                            luaParams = new List <LuaParam>();
                        }
                        else
                        {
                            luaParams = LuaUtils.ReadLuaParams(binReader);
                        }
                    }
                    catch (Exception) {
                        invalidPacket = true;
                    }
                }
            }
        }
コード例 #2
0
 public EventUpdatePacket(byte[] data)
 {
     using (MemoryStream mem = new MemoryStream(data))
     {
         using (BinaryReader binReader = new BinaryReader(mem))
         {
             try{
                 actorID            = binReader.ReadUInt32();
                 scriptOwnerActorID = binReader.ReadUInt32();
                 val1      = binReader.ReadUInt32();
                 val2      = binReader.ReadUInt32();
                 step      = binReader.ReadByte();
                 luaParams = LuaUtils.ReadLuaParams(binReader);
             }
             catch (Exception) {
                 invalidPacket = true;
             }
         }
     }
 }