示例#1
0
        public static void SubPasswordFind(PacketReader packet, PacketBuilder builder, ClientHandler client, EventHandler events)
        {
            packet.Skip(8);
            var answer = packet.ReadString(16).Trim('\0');

            var syncServer  = client.Metadata["syncServer"] as SyncReceiver;
            var checkAnswer = SubpassManagement.CheckSubPwAnswer(syncServer, client.AccountID, answer);
            var tries       = 0;

            builder.New(0x40E);
            {
                if (checkAnswer)
                {
                    builder += 1;          // success
                    builder += (byte)0x00; // failed times
                    client.Metadata["subTries"] = 0;
                }
                else
                {
                    client.Metadata["subTries"] = (int)client.Metadata["subTries"] + 1;
                    tries    = (int)client.Metadata["subTries"];
                    builder += 0;           // failed
                    builder += (byte)tries; // failed times
                }
                builder += 1;
            }

            client.Send(builder, "SubPasswordFind");

            if ((int)client.Metadata["subTries"] > 3)
            {
                client.Disconnect();
            }
        }