示例#1
0
        public ChangePasswordMessage(string PasswordOld, string PasswordNew)
            : base(MessageTypeGameMode.ChangePassword)
        {
            byte[] md5hashOld = MeridianMD5.ComputeMD5(PasswordOld);
            byte[] md5hashNew = MeridianMD5.ComputeMD5(PasswordNew);

            Hash128Bit pwHashOld = new Hash128Bit();

            pwHashOld.HASH1 = BitConverter.ToUInt32(md5hashOld, 0);
            pwHashOld.HASH2 = BitConverter.ToUInt32(md5hashOld, 4);
            pwHashOld.HASH3 = BitConverter.ToUInt32(md5hashOld, 8);
            pwHashOld.HASH4 = BitConverter.ToUInt32(md5hashOld, 12);

            Hash128Bit pwHashNew = new Hash128Bit();

            pwHashNew.HASH1 = BitConverter.ToUInt32(md5hashNew, 0);
            pwHashNew.HASH2 = BitConverter.ToUInt32(md5hashNew, 4);
            pwHashNew.HASH3 = BitConverter.ToUInt32(md5hashNew, 8);
            pwHashNew.HASH4 = BitConverter.ToUInt32(md5hashNew, 12);

            this.PasswordHashOld = pwHashOld;
            this.PasswordHashNew = pwHashNew;
        }
示例#2
0
        /// <summary>
        /// Clears and reloads the strings from another dictionary file within the strings folder,
        /// which was previously initialized during Init()
        /// </summary>
        /// <param name="RsbFile">Plain filename, like rsc0000.rsb</param>
        /// <param name="Language"></param>
        public void SelectStringDictionary(string RsbFile, LanguageCode Language)
        {
            // clear old entries
            StringResources.Clear();

            // set preferred language
            StringResources.Language = Language;

            // Save the MD5 hash of this rsb file as our RsbHash.
            byte[]     rsbMD5Hash = MeridianMD5.ComputeGenericFileMD5(StringsFolder + "/" + RsbFile);
            Hash128Bit rsbHash    = new Hash128Bit();

            rsbHash.HASH1 = BitConverter.ToUInt32(rsbMD5Hash, 0);
            rsbHash.HASH2 = BitConverter.ToUInt32(rsbMD5Hash, 4);
            rsbHash.HASH3 = BitConverter.ToUInt32(rsbMD5Hash, 8);
            rsbHash.HASH4 = BitConverter.ToUInt32(rsbMD5Hash, 12);
            RsbHash       = rsbHash;

            // try get the dictionary for argument
            RsbFile file = GetStringDictionary(RsbFile);

            // load strings of the rsbfile to use
            // into the multithreaded dictionary
            if (file != null)
            {
                foreach (RsbResourceID res in file.StringResources)
                {
                    StringResources.TryAdd(res.ID, res.Text, res.Language);
                }
            }

            // raise event
            if (StringDictionarySelected != null)
            {
                StringDictionarySelected(this, new EventArgs());
            }
        }