public override byte[] WritedData() { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { /* S(62),c,c,c,Q*20 */ writer.Write(BinaryExt.WriteFixedString(_hash, Encoding.Unicode, 62)); writer.Write((byte)0); // usePinCode boolean: 0=no, 1=yes [NA/EU always 0] writer.Write((byte)0); // registerPinCode boolean: 0=request, 1=register [NA/EU always 0] writer.Write((byte)7); // index of correct pin panel number order block to be used/show to user [should not be static] // 20 * 8 bytes pin panel number order writer.Write("D5D68AF200000000".ToBytes()); writer.Write("421F3F0002000000".ToBytes()); writer.Write("622E4A7600000000".ToBytes()); writer.Write("EC329D5E00000000".ToBytes()); writer.Write("26D9A3DD00000000".ToBytes()); writer.Write("BD0D10A900000000".ToBytes()); writer.Write("F6C0FD5201000000".ToBytes()); writer.Write("96C2317101000000".ToBytes()); // correct/used pin panel order writer.Write("232B9C6000000000".ToBytes()); writer.Write("3B135D2601000000".ToBytes()); writer.Write("A766CD8D00000000".ToBytes()); writer.Write("86CC1F0402000000".ToBytes()); writer.Write("D1F4155601000000".ToBytes()); writer.Write("D970D22200000000".ToBytes()); writer.Write("610E617601000000".ToBytes()); writer.Write("0D80FA9200000000".ToBytes()); writer.Write("8F94852C00000000".ToBytes()); writer.Write("6A9D73D401000000".ToBytes()); writer.Write("02ABBD2C02000000".ToBytes()); writer.Write("77B2F20001000000".ToBytes()); return(stream.ToArray()); } }
public override byte[] WritedData() { var rnd = new Random((int)DateTime.Now.Ticks); using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { writer.Write((int)0); writer.Write((long)1457907576); // server started time var realms = NetworkService.WorldServers.Values.ToList(); writer.Write((short)realms.Count); foreach (var realm in realms) { writer.Write((short)realm.ChannelId); // channel id writer.Write((short)realm.Id); // server id writer.Write((short)16384); // test random values writer.Write(BinaryExt.WriteFixedString($"{realm.ChannelName}", Encoding.Unicode, 62)); // channel name writer.Write(BinaryExt.WriteFixedString($"{realm.RealmName}", Encoding.Unicode, 62)); // server name writer.Write((byte)0); writer.Write(BinaryExt.WriteFixedString(realm.RealmIp, Encoding.ASCII, 16)); // ip writer.Write((byte)0); writer.Write(new byte[84]); // padded bytes - possible string inside - never used writer.Write((short)realm.RealmPort); // server port writer.Write((byte)1); // server population status writer.Write((byte)1); // can be joined by public writer.Write((byte)1); // unk writer.Write((byte)AuthProcessor.GetCharacterCount(_accInfo.Id)); // created characters count writer.Write((byte)0); // characters to be delete count writer.Write((short)0); // weird limitation / block writer.Write((long)0); // channel relogin delay time writer.Write((long)0); // last login to channel time writer.Write((byte)0); // exp/drop bonus writer.Write(new byte[13]); // padded bytes - never used writer.Write((byte)0); // medal } return(stream.ToArray()); } }
public override byte[] WritedData() { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { writer.Write(_character.GameSessionId); writer.Write(_character.Uid); writer.WriteD(1); writer.Write(_character.DatabaseCharacterData.AppearanceOptions); writer.Write(BinaryExt.WriteFixedString(_character.DatabaseCharacterData.Surname, Encoding.Unicode, 62)); return(stream.ToArray()); } }
public override byte[] WritedData() { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { // SMSG_RefreshUserBasicCache writer.Write((int)_player.GameSessionId); writer.Write((long)_player.DatabaseCharacterData.AccountId); writer.Write((int)1); // incremental writer.Write(BinaryExt.WriteFixedString(_player.DatabaseCharacterData.Surname, Encoding.Unicode, 62)); writer.Write(new byte [402]); // possibly text string return(stream.ToArray()); } }
public override byte[] WritedData() { using (var stream = new MemoryStream()) { using (var writer = new BinaryWriter(stream)) { writer.Write((byte)_chatType.GetHashCode()); writer.Write((byte)1); writer.Write((int)_sessionId); writer.Write(BinaryExt.WriteFixedString(_characterName, Encoding.Unicode, 62)); writer.Write((byte)1); writer.Write((byte)0); writer.Write((byte)1); writer.Write(Encoding.Unicode.GetBytes(_message)); } return(stream.ToArray()); } }
public override byte[] WritedData() { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { writer.Write((short)_info.ClassType.Ordinal()); writer.Write((long)_info.CharacterId); writer.Write((byte)0); // slot writer.Write(BinaryExt.WriteFixedString(_info.CharacterName, Encoding.Unicode, 62)); writer.Write((int)_info.Level); writer.Write((int)0); for (int i = 0; i < 31; i++) // inventoryEquipSlotsCount = 31 { writer.Write((short)0); // item id writer.Write((short)0); // item enchant writer.Write((long)-2); // item expiration date writer.Write((short)0); // item current endurance for (int x = 0; x < 12; x++) // dye color palette infos = 12 { writer.Write((byte)0xFF); // -1 writer.Write((byte)0xFF); // -1 } writer.Write((byte)0); // unk } writer.Write(_info.AppearancePresets); // 10 bytes writer.WriteC((byte)_info.Zodiac); writer.Write(_info.AppearanceOptions); // 800 bytes writer.Write(BinaryExt.WriteFixedString(_info.Surname, Encoding.Unicode, 62)); // family name writer.Write((long)-1); // character delete date writer.Write((byte)0); // character state writer.Write(new byte[28]); // zeroes writer.Write((long)-1); // character last login date writer.Write("0000000000309F055BF67F0000701ED5DA150000000000000000000000000000FFFFFFFFFFE86FC2A10A".ToBytes()); return(stream.ToArray()); } }
public override byte[] WritedData() { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { // SMSG_RefreshPcBasicCache writer.Write((int)_player.GameSessionId); writer.Write((long)_player.Uid); writer.Write((int)1); // incremental writer.Write(BinaryExt.WriteFixedString(_player.DatabaseCharacterData.CharacterName, Encoding.Unicode, 62)); writer.Write((byte)_player.DatabaseCharacterData.AppearancePresets[0]); // face writer.Write((byte)_player.DatabaseCharacterData.AppearancePresets[1]); // hair writer.Write((byte)_player.DatabaseCharacterData.AppearancePresets[2]); // goatee writer.Write((byte)_player.DatabaseCharacterData.AppearancePresets[3]); // mustache writer.Write((byte)_player.DatabaseCharacterData.AppearancePresets[4]); // sideburns writer.Write((byte)5); // TODO: eyebrows return(stream.ToArray()); } }
public override byte[] WritedData() { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { writer.Write((int)_character.GameSessionId); writer.Write((long)_character.Connection.Account.Id); writer.Write((long)_character.Id); writer.Write((long)0); // utc writer.Write((long)0); // utc writer.Write((short)0); // wp writer.Write((short)0); // cp writer.Write(BinaryExt.WriteFixedString(_character.DatabaseCharacterData.CharacterName, Encoding.Unicode, 62)); writer.Write((int)_character.DatabaseCharacterData.Level); writer.Write((long)-6012); // guild? writer.Write(BinaryExt.WriteFixedString(_character.DatabaseCharacterData.Surname, Encoding.Unicode, 62)); writer.Write((short)0); writer.Write((short)_character.DatabaseCharacterData.ClassType.Ordinal()); return(stream.ToArray()); } }
public override byte[] WritedData() { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { writer.Write("04A4C200".ToBytes()); writer.Write("D309000000000000".ToBytes()); writer.Write("46B2C16FF2862300".ToBytes()); //writer.WriteQ(_character.CharacterId); writer.Write("B1E57656".ToBytes()); //todo - static server date time writer.Skip(12); writer.Write("1E000000".ToBytes()); writer.Write(BinaryExt.WriteFixedString(_character.CharacterName, Encoding.Unicode, 62)); writer.Write(_character.Level); writer.Write("ABE7FFFFFFFFFFFF".ToBytes()); writer.Write(BinaryExt.WriteFixedString(_character.Surname, Encoding.Unicode, 62)); writer.WriteH(4); //unk writer.WriteH(_character.ClassType.Ordinal()); return(stream.ToArray()); } }
public override byte[] WritedData() { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { writer.Write((long)_character.Uid); writer.Write((int)0); writer.Write((short)1); writer.Write((int)_character.GameSessionId); writer.Write((float)_character.Position.Point.X); // x writer.Write((float)_character.Position.Point.Y); // y writer.Write((float)_character.Position.Point.Z); // z writer.Write((float)_character.Position.Cosinus); // cosinus writer.Write((int)0); writer.Write((float)_character.Position.Sinus); // sinus writer.Write((short)_character.DatabaseCharacterData.ClassType.Ordinal()); writer.Write((short)0); writer.Write((float)1); // hp writer.Write((float)150); // hp writer.Write((long)-6012); writer.Write(new byte[8]); writer.Write((long)-6012); writer.Write((byte)2); writer.Write("946DE495".ToBytes()); writer.Write(new byte[16]); writer.Write((byte)3); writer.Write(new byte[12]); writer.Write((int)0); writer.Write((short)0); writer.Write((short)0); writer.Write(new byte[800]); // nulled appearance data? writer.Write((long)0); writer.Write((long)_character.DatabaseCharacterData.AccountId); writer.Write((int)1); // incremental writer.Write((long)_character.Uid); writer.Write((int)1); // incremental writer.Write((int)1); // incremental writer.Write((int)0); // incremental writer.Write((byte)17); writer.Write((byte)0); writer.Write((byte)0); writer.Write((int)0); writer.Write((int)0); writer.Write((short)0); writer.Write((byte)0); // pvp? writer.Write((byte)0); // pvp? writer.Write((short)0); // item - weapon? writer.Write((short)0); writer.Write((int)-1021); writer.Write(new byte[6]); writer.Write((byte)37); writer.Write(new byte[12]); writer.Write((byte)5); writer.Write((int)0); // karma? writer.Write((int)0); writer.Write(new byte[64]); writer.Write((int)-1024); writer.Write((byte)1); // 0 when created or 1 if not new character writer.Write((int)_character.DatabaseCharacterData.Level); writer.Write((int)0); writer.Write((byte)3); writer.Write(new byte[43]); writer.Write((int)-1024); writer.Write(new byte[12]); writer.Write((int)-1024); writer.Write(new byte[12]); writer.Write((int)2); writer.Write(new byte[10]); writer.Write((int)1); // incremental writer.Write(BinaryExt.WriteFixedString(_character.DatabaseCharacterData.Surname, Encoding.Unicode, 62)); writer.Write(new byte [402]); // possible string writer.Write((int)1); // incremental writer.Write(BinaryExt.WriteFixedString(_character.DatabaseCharacterData.CharacterName, Encoding.Unicode, 62)); writer.Write(_character.DatabaseCharacterData.AppearancePresets); // 10 bytes // only broadcasted item data for (int i = 0; i < 19; i++) { writer.Write((short)0); // item id writer.Write((short)0); // item enchant writer.Write((long)-2); // item expiration date writer.Write((short)0); // item current endurance for (int x = 0; x < 12; x++) // dye color palette infos = 12 { writer.Write((byte)0xFF); // -1 writer.Write((byte)0xFF); // -1 } writer.Write((byte)0); // unk } writer.Write(new byte[706]); writer.Write((byte)_character.DatabaseCharacterData.Zodiac.GetHashCode()); writer.Write((int)-1024); writer.Write(new byte[46]); writer.Write((short)-2); writer.Write((byte)0); return(stream.ToArray()); } }
public override byte[] WritedData() { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { writer.Write((int)0); // packet number writer.Write((int)4530); // server version writer.Write((int)14998534); // client session id writer.Write((int)1678849575); // session cookie id writer.Write((long)_account.Id); // account id writer.Write(BinaryExt.WriteFixedString(_account.FamilyName, Encoding.Unicode, 62)); // family name writer.Write((short)-1); writer.Write((short)0); writer.Write((byte)_characters.Count); // equal to characters count writer.Write((byte)0); writer.Write((long)-1); writer.Write((long)0); writer.Write((byte)_characters.Count); // characters count for (int index = 0; index < _characters.Count; index++) { var characterInfo = _characters[index]; var equipment = (EquipmentStorage)characterInfo.EquipmentData; writer.Write((short)characterInfo.ClassType.Ordinal()); // class writer.Write((long)characterInfo.CharacterId); // id writer.Write((byte)0); // slot writer.Write(BinaryExt.WriteFixedString(characterInfo.CharacterName, Encoding.Unicode, 62)); // name writer.Write((int)characterInfo.Level); // level writer.WriteD(0); // item cache related using (equipment) if (equipment.Items.Count != 0) { byte[] equipmentData = equipment.GetEquipmentData(); writer.Write(equipmentData); writer.Skip(107); } else { for (int i = 0; i < 31; i++) // inventoryEquipSlotsCount = 31 { writer.Write((short)0); // item id writer.Write((short)0); // item enchant writer.Write((long)-2); // item expiration date writer.Write((short)0); // item current endurance for (int x = 0; x < 12; x++) // dye color palette infos = 12 { writer.Write((byte)0xFF); // -1 writer.Write((byte)0xFF); // -1 } writer.Write((byte)0); // unk } } writer.Write(characterInfo.AppearancePresets); // 10 bytes writer.Write((byte)characterInfo.Zodiac); writer.Write(characterInfo.AppearanceOptions); // 800 bytes writer.Skip(62); // family name writer.Write((long)-1); // character delete date writer.Write((byte)0); // character state writer.Write((long)-1); // character last login date writer.Write((long)-1); // character creation date writer.Write((float)0); // character location x writer.Write((float)0); // character location y writer.Write((float)0); // character location z writer.Write((long)-1); // character suspended date writer.Write((short)0); // character zone id writer.Write((long)-1); // character unk date writer.Write(new byte [32]); } return(stream.ToArray()); } }