コード例 #1
0
ファイル: Factory.cs プロジェクト: trjate/Infantry
        public PacketBase createPacket(NetworkClient client, ushort typeID, byte[] buffer, int index, int count)
        {
            PacketBase packet = null;

            switch (typeID)
            {
            case CS_Initiate.TypeID:
                packet = new CS_Initiate(typeID, buffer, index, count);
                break;

            case CS_Version.TypeID:
                packet = new CS_Version(typeID, buffer, index, count);
                break;

            case CS_ZoneList.TypeID:
                packet = new CS_ZoneList(typeID, buffer, index, count);
                break;

            case CS_AckZoneList.TypeID:
                packet = new CS_AckZoneList(typeID, buffer, index, count);
                break;

            default:
                //Undefined packet type
                //TODO: Type 7
                packet = new PacketDummy(typeID, buffer, index, count);
                break;
            }

            return(packet);
        }
コード例 #2
0
        /// <summary>
        /// Called after a client gets the first packet of CS_ZoneList()
        /// </summary>
        /// <param name="pkt"></param>
        /// <param name="client"></param>
        public static void Handle_CS_AckZoneList(CS_AckZoneList pkt, DirectoryClient client)
        {
            //Update the zone list first..
            //Program.server.grabZones();

            List <SC_ZoneList> packets = Program.server.ZoneStream.Packets;

            UInt16 frame = pkt.frameReceived;

            // Can we send the next frame?
            if (++frame < packets.Count)
            {
                client.send(packets[frame]);
            }
        }