Example #1
0
        public override void OnRead(RiftClient From)
        {
            if (From.Acct == null || From.Rm == null)
            {
                return;
            }

            CharactersMgr Mgr = From.Rm.GetObject <CharactersMgr>();

            if (Mgr.GetCharactersCount(From.Acct.Id) >= 6)
            {
                From.Disconnect();
                return;
            }

            ISerializablePacket Response = new ISerializablePacket();

            Response.Opcode = (int)Opcodes.LobbyCharacterCreateResponse;
            if (Mgr.CharacterExist(Name))
            {
                Response.AddField(0, EPacketFieldType.Unsigned7BitEncoded, (long)CharacterCreateResponses.INVALID_NAME);
            }
            else
            {
                Character Char = new Character();
                Char.AccountId     = From.Acct.Id;
                Char.CharacterName = Name;
                Char.Email         = From.Acct.Email;

                Char.Info              = new CharacterInfo();
                Char.Info.Class        = Class;
                Char.Info.CustomPacket = this.CharacterCustom;
                Char.Info.Level        = Mgr.StartingLevel;
                Char.Info.Race         = Race;
                Char.Info.Sex          = Sex;

                long CharacterID = Mgr.AddCharacter(Char);

                Response.AddField(0, EPacketFieldType.Unsigned7BitEncoded, (long)CharacterCreateResponses.CREATE_OK);
                From.JustCreatedCharacter = CharacterID;
            }

            From.SendSerialized(Response);
        }
Example #2
0
        public override void Deserialize(ref PacketInStream Data)
        {
            long Opcode = Data.ReadEncoded7Bit();
            PacketHandlerDefinition Handler = PacketProcessor.GetPacketHandler(Opcode);
            ISerializablePacket     Packet  = Activator.CreateInstance(Handler.GetClass()) as ISerializablePacket;

            ISerializableField Field = null;

            Log.Debug("Packet", "----------------------> New " + Opcode.ToString("X8"));
            Packet.Opcode = Opcode;

            while ((Field = PacketProcessor.ReadField(ref Data)) != null)
            {
                Log.Debug("Packet", "------> ++T : " + Field.PacketType);
                Packet.AddField(Field.Index, Field);
            }

            Log.Debug("Packet", "----------------------> End ");

            Packet.ApplyToFieldInfo();
            val = Packet;
        }