示例#1
0
        public static void LauncherValidate(MartialClient c, InPacket p)
        {
            byte pinLength   = p.ReadByte();
            byte uNameLength = p.ReadByte();
            byte passWLength = p.ReadByte();

            p.ReadByte();
            string pin = MiscFunctions.obscureString(p.ReadString(4));
            string uN  = MiscFunctions.obscureString(p.ReadString(16));
            string pW  = MiscFunctions.obscureString(p.ReadString(12));

            Account account = new Account();

            if (account.Load(uN, pW, pin) != Account.AccountLoadErrors.Success)
            {
                c.WriteRawPacket(Constants.accDoesntExist);
                Logger.WriteLog(Logger.LogTypes.HEmi, "Authorization error for [{0} | {1} | {2}]", uN, pW, pin);
                c.Close();
                return;
            }
            Logger.WriteLog(Logger.LogTypes.HEmi, "User passed authorization [{0} | {1} | {2}]", uN, pW, pin);
            account.mClient = c;
            c.setAccount(account);
            account.LoadCharacters();

            if (c.getAccount().characters.Count() > 0)
            {
                c.WriteRawPacket(LoginPacketCreator.initCharacters(c.getAccount(), false).Concat(Constants.emptyAccount).ToArray());
            }
            c.WriteRawPacket(Constants.emptyAccount);
            c.WriteRawPacket(LoginPacketCreator.initAccount(c.getAccount()));
        }
示例#2
0
        public static void ReturnToSelection(MartialClient c, InPacket p)
        {
            if (c.getAccount().activeCharacter == null)
            {
                Logger.LogCheat(Logger.HackTypes.CharacterSelection, c, "Hooked returnToSelection with null of activeCharacter");
                c.Close();
                return;
            }

            c.getAccount().activeCharacter.getInventory().updateInv();
            c.getAccount().activeCharacter.getInventory().saveInv();
            c.getAccount().activeCharacter.getCommunity().relistCommunities();
            CharacterFunctions.quitGameWorld(c);
            c.getAccount().relistCharacters();
            c.WriteRawPacket(LoginPacketCreator.initCharacters(c.getAccount(), true));
        }