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())); }
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)); }