public AddExpPacket(D2gsPacket packet) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); switch (id) { case 0x1A: Experience = reader.ReadByte(); break; case 0x1B: Experience = reader.ReadUInt16(); break; case 0x1C: Experience = reader.ReadUInt32(); break; default: throw new D2GSPacketException("Unexpected packet id"); } reader.Close(); Log.Verbose($"(0x{id,2:X2}) Add Experience:\n" + $"\tExperience: {Experience}"); }
public BaseAttributePacket(D2gsPacket packet) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); Attribute = (Attribute)reader.ReadByte(); switch (id) { case 0x1D: Value = reader.ReadByte(); break; case 0x1E: Value = reader.ReadInt16(); break; case 0x1F: Value = reader.ReadInt32(); break; default: throw new D2GSPacketException("Unexpected packet id"); } reader.Close(); Log.Verbose($"(0x{id,2:X2}) Base Attribute:\n" + $"\tAttribute: {Attribute}:" + $"\t{Value}"); }
public SetItemSkillPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); _ = reader.ReadUInt16(); UnitId = reader.ReadUInt32(); Skill = (Skill)reader.ReadUInt16(); switch (id) { case 0x21: BaseLevel = reader.ReadByte(); goto case 0x22; case 0x22: Amount = reader.ReadByte(); break; default: throw new D2GSPacketException("Invalid packet id"); } reader.Close(); Log.Verbose($"(0x{packet.Raw[0],2:X2}) Set Item Skill:\n" + $"\tUnit ID: {UnitId}\n" + $"\tSkill: {Skill}\n" + $"\tAmount: {Amount}"); }
public BaseAttributePacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); Attribute = (Attribute)reader.ReadByte(); switch ((InComingPacket)id) { case InComingPacket.AddAttributeByte: Value = reader.ReadByte(); break; case InComingPacket.AddAttributeWord: Value = reader.ReadInt16(); break; case InComingPacket.AddAttributeDword: Value = reader.ReadInt32(); break; default: throw new D2GSPacketException($"Invalid Packet Id {id}"); } reader.Close(); }
public AddExpPacket(D2gsPacket packet) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); switch ((InComingPacket)id) { case InComingPacket.AddExperienceByte: Experience = reader.ReadByte(); break; case InComingPacket.AddExperienceWord: Experience = reader.ReadUInt16(); break; case InComingPacket.AddExperienceDword: Experience = reader.ReadUInt32(); break; default: throw new D2GSPacketException($"Invalid Packet Id {id}"); } reader.Close(); Log.Verbose($"(0x{id,2:X2}) Add Experience:\n" + $"\tExperience: {Experience}"); }
internal void SendPacket(D2gsPacket packet) { if (IsInGame()) { Connection.WritePacket(packet); } }
public ButtonActionPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); if ((InComingPacket)reader.ReadByte() != InComingPacket.ButtonAction) { throw new D2GSPacketException("Expected Packet Type Not Found"); } Action = (ButtonAction)reader.ReadByte(); }
public GameHandshakePacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if (InComingPacket.GameHandshake != (InComingPacket)id) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } }
public PartyAutomapInfoPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); if ((InComingPacket)reader.ReadByte() != InComingPacket.PartyAutomapInfo) { throw new D2GSPacketException("Expected Packet Type Not Found"); } Id = reader.ReadUInt32(); Location = new Point((ushort)reader.ReadInt32(), (ushort)reader.ReadInt32()); }
public ParseItemPacket(D2gsPacket packet) : base(packet.Raw) { Item = Parse(Raw.ToList()); Log.Verbose($"{BitConverter.ToString(Raw)}"); Log.Verbose($"(0x{packet.Type,2:X2}) Parse Item Packet:\n" + $"\tLevel {Item.Level}, {Item.Quality}" + $" { (Item.Ethereal ? "Ethereal" : "")}" + $"\t{ (Item.HasSockets ? $"Sockets: {Item.Sockets}" : "")}\n" + $"\t[{Item.Type}] " + $"{ (Item.IsIdentified ? "" : "Unidentified")} " + $"{Item.Name}\n" + $"\tItem ID: {Item.Id}\n" + $"\tAction: {Item.Action}\n" + $"\tContainer: {Item.Container}"); }
public PlayerLeftGamePacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if (InComingPacket.PlayerLeftGame != (InComingPacket)id) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } Id = reader.ReadUInt32(); }
public CorpseAssignPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); if ((InComingPacket)reader.ReadByte() != InComingPacket.CorpseAssign) { throw new D2GSPacketException("Expected Packet Type Not Found"); } CorpseAdded = reader.ReadBoolean(); PlayerId = reader.ReadUInt32(); CorpseId = reader.ReadUInt32(); }
public RemoveObjectPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if (InComingPacket.RemoveObject != (InComingPacket)id) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } EntityType = (EntityType)reader.ReadByte(); EntityId = reader.ReadUInt32(); reader.Close(); }
private void HandleChatMessageEvent(Client client, D2gsPacket obj) { var packet = new ChatPacket(obj); if (packet.ChatType != 0x04) { Log.Debug(packet.RenderText()); if (packet.CharacterName != client.Game.Me?.Name) { SendMessage($"To {client.LoggedInUserName()} :" + packet.RenderText()).Wait(); } } }
public PlayerInGamePacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if (InComingPacket.PlayerInGame != (InComingPacket)id) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } reader.ReadUInt16(); // packet length Id = reader.ReadUInt32(); Class = (CharacterClass)reader.ReadByte(); Name = reader.ReadNullTerminatedString(); }
public MapRevealPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if ((InComingPacket)id != InComingPacket.MapReveal) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } X = reader.ReadUInt16(); Y = reader.ReadUInt16(); Area = (Area)reader.ReadByte(); reader.Close(); }
public TownPortalStatePacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if ((InComingPacket)id != InComingPacket.TownPortalState) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } reader.ReadByte(); Area = (Act.Area)reader.ReadByte(); TeleportId = reader.ReadUInt32(); reader.Close(); }
public EventNotifyPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if ((InComingPacket)id != InComingPacket.EventMessage) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } EventType = (EventType)reader.ReadByte(); Action = reader.ReadByte(); EntityId = reader.ReadUInt32(); PlayerRelationType = (PlayerRelationType)reader.ReadByte(); }
public ObjectStatePacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if (InComingPacket.ObjectState != (InComingPacket)id) { throw new D2GSPacketException("Invalid Packet Id"); } ObjectType = reader.ReadByte(); ObjectId = reader.ReadUInt32(); reader.ReadByte(); reader.ReadByte(); State = (EntityState)reader.ReadUInt32(); }
public ReassignPlayerPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if ((InComingPacket)id != InComingPacket.ReassignPlayer) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } UnitType = (EntityType)reader.ReadByte(); UnitId = reader.ReadUInt32(); Location = new Point(reader.ReadUInt16(), reader.ReadUInt16()); _ = reader.ReadByte(); reader.Close(); }
public NpcHitPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if ((InComingPacket)id != InComingPacket.NPCHit) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } EntityType = (EntityType)reader.ReadByte(); EntityId = reader.ReadUInt32(); EntityState = (EntityState)reader.ReadByte(); reader.ReadByte(); LifePercentage = reader.ReadByte(); }
public NPCStopPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if ((InComingPacket)id != InComingPacket.NPCStop) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } EntityId = reader.ReadUInt32(); var x = reader.ReadUInt16(); var y = reader.ReadUInt16(); Location = new Point(x, y); }
public PlayerStopPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if (InComingPacket.PlayerStop != (InComingPacket)id) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } EntityType = (EntityType)reader.ReadByte(); EntityId = reader.ReadUInt32(); EntityEffect = (EntityEffect)reader.ReadByte(); Location = new Point(reader.ReadUInt16(), reader.ReadUInt16()); reader.ReadByte(); reader.ReadByte(); }
public AssignObjectPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if (InComingPacket.AssignObject != (InComingPacket)id) { throw new D2GSPacketException($"Invalid Packet Id {id}"); } EntityType = (EntityType)reader.ReadByte(); EntityId = reader.ReadUInt32(); ObjectCode = (EntityCode)reader.ReadUInt16(); Location = new Point(reader.ReadUInt16(), reader.ReadUInt16()); State = (EntityState)reader.ReadByte(); InteractionType = reader.ReadByte(); reader.Close(); }
public GameQuestInfoPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(Raw), Encoding.ASCII); var id = reader.ReadByte(); if (id != 0x29) { throw new D2GSPacketException("Invalid packet id found"); } for (int i = 0; i < 96; i++) { Quests[i] = reader.ReadByte(); } Log.Verbose($"(0x{id,2:X2}) Game Quest Info:\n" + $"\tQuests: {Quests.Aggregate("", (s, i) => s + "," + $"{i,2:X2}")}"); }
public AssignPlayerPacket(D2gsPacket packet) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); if (reader.ReadByte() != 0x59) { throw new D2GSPacketException("Expected Packet Type Not Found"); } Id = reader.ReadUInt32(); Class = (CharacterClass)reader.ReadByte(); Name = D2NG.Packet.ReadString(reader); Location = new Point(reader.ReadUInt16(), reader.ReadUInt16()); Log.Verbose($"(0x{packet.Raw[0], 2:X2}) Assigning Player:\n" + $"\tName: {Name}\n" + $"\tClass: {Class}\n" + $"\tId: {Id}\n" + $"\tLocation: {Location}\n"); }
public UpdateEntityEffectsPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BitReader(packet.Raw); if ((InComingPacket)reader.ReadByte() != InComingPacket.UpdateEntityEffects) { throw new D2GSPacketException("Expected Packet Type Not Found"); } EntityType = (EntityType)reader.ReadByte(); EntityId = reader.ReadUInt32(); for (int i = 0; i < 160; i++) { if (reader.ReadBit()) { EntityEffects.Add((EntityEffect)i); } } }
public MapRevealPacket(D2gsPacket packet) : base(packet.Raw) { var reader = new BinaryReader(new MemoryStream(packet.Raw), Encoding.ASCII); var id = reader.ReadByte(); if (id != 0x07) { throw new D2GSPacketException("Invalid Packet Id"); } X = reader.ReadUInt16(); Y = reader.ReadUInt16(); Area = (Area)reader.ReadByte(); reader.Close(); Log.Verbose($"(0x{ id,2:X2}) Map Reveal:\n" + $"\tLocation: ({X}, {Y})\n" + $"\tArea: {Area}"); }