예제 #1
0
        public static CharacterListRequestPacket Read(PacketHeader header, BinaryReader br)
        {
            CharacterListRequestPacket clrp = new CharacterListRequestPacket();

            clrp.AuthKey = Utils.ReadByteString(br, (int)(br.BaseStream.Length - br.BaseStream.Position));
            return(clrp);
        }
예제 #2
0
        void CharacterList_Fetch_Handler(Task t)
        {
            CharacterListRequestPacket clrp = (CharacterListRequestPacket)t.Args;
            int expectedAccount             = _server.GetExpectedConnection(clrp.AuthKey);

            if (expectedAccount <= 0)
            {
                // Unexpected, kill the connection
                t.Client.SendPacket(new ErrorMessagePacket("Unauthorized access attempt. The police have been notified!"));
                t.Client.Disconnect();
            }
            else
            {
                t.Client.AccountID = expectedAccount;
                string sql = string.Format("SELECT * FROM characters WHERE account_id={0};", expectedAccount);
                t.Type = Task.TaskType.CharacterList_Process;
                AddDBQuery(sql, t);

                // Send login response
                t.Client.SendPacket(new LoginResponsePacket(clrp.AuthKey));
            }
        }
예제 #3
0
 private void Client_OnCharacterListRequest(object sender, CharacterListRequestPacket e)
 {
     TaskProcessor.AddTask(new Task(Task.TaskType.CharacterList_Fetch, (Connection)sender, e));
 }
예제 #4
0
 public static CharacterListRequestPacket Read(PacketHeader header, BinaryReader br)
 {
     CharacterListRequestPacket clrp = new CharacterListRequestPacket();
     clrp.AuthKey = Utils.ReadByteString(br, (int)(br.BaseStream.Length - br.BaseStream.Position));
     return clrp;
 }
예제 #5
0
 void CharacterListRequest_Handler(PacketHeader header, BinaryReader br)
 {
     OnCharacterListRequest(this, CharacterListRequestPacket.Read(header, br));
 }
예제 #6
0
 private void Client_OnCharacterListRequest(object sender, CharacterListRequestPacket e)
 {
     TaskProcessor.AddTask(new Task(Task.TaskType.CharacterList_Fetch, (Connection)sender, e));
 }