示例#1
0
        public static int parseSetField(Script script, Packet packet)
        {
            int mapID, portal;

            packet.ReadBytes(23);
            bool  bCharacterData = packet.ReadBool();
            short notifierCheck  = packet.ReadShort();

            if (notifierCheck > 0)
            {
                packet.ReadString();
                for (int i = 0; i < notifierCheck; i++)
                {
                    packet.ReadString();
                }
            }
            if (bCharacterData)
            {
                packet.ReadBytes(12);            // damage calc
                long dbFlag = packet.ReadLong(); // dbFlag
                packet.ReadByte();               //combat orders
                packet.ReadBytes(13);            // pet active skill cooltime

                int count = packet.ReadByte();
                for (int i = 0; i < count; i++)
                {
                    packet.ReadInt();
                }
                count = packet.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    packet.ReadInt();
                    packet.ReadLong();
                }
                bool read = packet.ReadBool();
                if (read)
                {
                    packet.ReadByte();
                    count = packet.ReadInt();
                    for (int i = 0; i < count; i++)
                    {
                        packet.ReadLong();
                    }
                }
                packet.ReadBytes(42);
                int jobID = packet.ReadShort();
                packet.ReadBytes(26);
                if (Util.isExtendSPJob(jobID))
                {
                    int size = packet.ReadByte();
                    packet.ReadBytes(size * 5);
                }
                else
                {
                    packet.ReadShort();
                }
                packet.ReadBytes(20);
                mapID  = packet.ReadInt();
                portal = packet.ReadByte();
            }
            else
            {
                packet.ReadByte();
                mapID  = packet.ReadInt();
                portal = packet.ReadByte();
            }
            if (Parser.MAP_ID != 0 && Parser.getActiveScript().GetScriptType() != ScriptType.None)
            {
                Parser.getActiveScript().addLine(String.Format("sm.warp({0}, {1})", mapID, portal));
            }
            return(mapID);
        }