public virtual Packet Serialize() { var payload = new byte[3]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.EnableLockedClientFeatures.Id); writer.WriteUShort((ushort)Flags); rawPacket = new Packet(PacketDefinitions.EnableLockedClientFeatures.Id, payload); return(rawPacket); }
public AttackRequest(ObjectId targetId) { this.targetId = targetId; var payload = new byte[5]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.AttackRequest.Id); writer.WriteId(targetId); RawPacket = new Packet(PacketDefinitions.AttackRequest.Id, payload); }
public RazorNegotiateResponse(byte responseCode) { ResponseCode = responseCode; var payload = new byte[4]; var writer = new ArrayPacketWriter(payload); writer.WriteByte(0xF0); writer.WriteUShort(4); writer.WriteByte(responseCode); RawPacket = new Packet(0xF0, payload); }
public Packet Serialize() { var payload = new byte[62]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.LoginRequest.Id); writer.WriteString(30, Account); writer.WriteString(30, Password); writer.WriteByte(0xFF); rawPacket = new Packet(PacketDefinitions.LoginRequest.Id, payload); return(rawPacket); }
public SetMapPacket(byte mapId) { MapId = mapId; byte[] payload = new byte[6]; var writer = new ArrayPacketWriter(payload); writer.WriteByte(0xBF); writer.WriteUShort(6); writer.WriteUShort(8); writer.WriteByte(mapId); rawPacket = new Packet(PacketDefinitions.GeneralInformationPacket.Id, payload); }
public Packet Serialize() { var payload = new byte[65]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.GameServerLoginRequest.Id); writer.Write(Key, 0, 4); writer.WriteString(30, AccountName); writer.WriteString(30, Password); rawPacket = new Packet(PacketDefinitions.GameServerLoginRequest.Id, payload); return(rawPacket); }
public GetClientStatusRequest(ObjectId id) { var payload = new byte[10]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.GetClientStatus.Id); writer.WriteUInt(0xedededed); writer.WriteByte(0x04); writer.WriteId(id); this.Id = id; rawPacket = new Packet(PacketDefinitions.GetClientStatus.Id, payload); }
public void PlayerEntersWorld(Location2D location) { var playerId = NewMobileId(); var entersWorldPayload = new byte[37]; var writer = new ArrayPacketWriter(entersWorldPayload); writer.WriteByte(0x1B); // packet writer.WriteId(playerId); // player id writer.WriteInt(0); // unknown writer.WriteModelId(0x190); // body type writer.WriteUShort((ushort)location.X); writer.WriteUShort((ushort)location.Y); writer.WriteByte(0); // unknown writer.WriteByte(0); // zlock writer.WriteByte(0x03); // facing writer.WriteInt(0x00007F00); // unknown writer.WriteInt(0x00061000); // unknown writer.WriteByte(0); // unkwnown writer.WriteUShort(0x0470); // server boundary width - 8 writer.WriteUShort(0x0470); // server boundary height writer.WriteUShort(0x0500); // server boundary height writer.WriteUShort(0x0000); // unknown sendPacket(entersWorldPayload); var drawPlayerPayload = new byte[30]; writer = new ArrayPacketWriter(drawPlayerPayload); writer.WriteByte(0x78); // packet writer.WriteUShort(30); // size writer.WriteId(playerId); // player id writer.WriteUShort(0x190); // graphics id writer.WriteUShort((ushort)location.X); // X writer.WriteUShort((ushort)location.Y); // Y writer.WriteByte(0); // Z writer.WriteByte(0x06); // facing writer.WriteColor((Color)0x0909); // color writer.WriteByte(0x00); // flag writer.WriteByte(0x01); // notoriety var backpackId = NewItemId(); writer.WriteId(backpackId); writer.WriteUShort(0x0E75); writer.WriteByte(0x15); writer.WriteInt(0); sendPacket(drawPlayerPayload); }
public CloseContainerPacket(ObjectId containerId) { byte[] payload = new byte[13]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.GeneralInformationPacket.Id); writer.WriteUShort(13); writer.WriteUShort(0x16); writer.WriteUInt(0x0C); writer.WriteId(containerId); RawPacket = new Packet(PacketDefinitions.GeneralInformationPacket.Id, payload); }
public CloseGenericGumpPacket(GumpTypeId gumpTypeId) { GumpTypeId = gumpTypeId; byte[] payload = new byte[13]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.GeneralInformationPacket.Id); writer.WriteUShort(13); // length writer.WriteUShort(4); // subcommand writer.WriteUInt(gumpTypeId.Value); writer.WriteUInt(0); rawPacket = new Packet(PacketDefinitions.GeneralInformationPacket.Id, payload); }
public QuestArrowPacket(Location2D location, bool active) { Location = location; Active = active; var payload = new byte[6]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.QuestArrow.Id); writer.WriteByte((byte)(active ? 1 : 0)); writer.WriteUShort((ushort)location.X); writer.WriteUShort((ushort)location.Y); rawPacket = new Packet(payload[0], payload); }
public TargetCursorPacket(CursorTarget cursorTarget, CursorId cursorId, CursorType cursorType) { CursorTarget = cursorTarget; CursorId = cursorId; CursorType = cursorType; byte[] payload = new byte[19]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.TargetCursor.Id); writer.WriteByte((byte)cursorTarget); writer.WriteUInt(cursorId.Value); writer.WriteByte((byte)cursorType); rawPacket = new Packet(PacketDefinitions.TargetCursor.Id, payload); }
private Packet Serialize() { byte[] payload = new byte[14]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.DropItem.Id); writer.WriteId(ItemId); writer.WriteUShort((ushort)Location.X); writer.WriteUShort((ushort)Location.Y); writer.WriteSByte((sbyte)Location.Z); writer.WriteId(ContainerId); return(new Packet(PacketDefinitions.DropItem.Id, payload)); }
public PickupItemRequest(ObjectId itemId, ushort count) { ItemId = itemId; Count = count; byte[] payload = new byte[7]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.PickUpItem.Id); writer.WriteId(itemId); writer.WriteUShort(count); RawPacket = new Packet(PacketDefinitions.PickUpItem.Id, payload); }
public RequestWarMode(WarMode flag) { Flag = flag; var payload = new byte[5]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.RequestWarMode.Id); writer.WriteByte((byte)flag); writer.WriteByte(0x00); writer.WriteByte(0x32); writer.WriteByte(0x00); RawPacket = new Packet(PacketDefinitions.RequestWarMode.Id, payload); }
public SkillRequest(Spell spell) { var spellString = spells[spell]; var packetLength = (ushort)(5 + spellString.Length); var payload = new byte[packetLength]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.RequestSkills.Id); writer.WriteUShort(packetLength); writer.WriteByte(0x56); writer.WriteString(spellString); writer.WriteByte(0x00); rawPacket = new Packet(PacketDefinitions.RequestSkills.Id, payload); }
public WearItemRequest(ObjectId itemId, Layer layer, ObjectId playerId) { ItemId = itemId; Layer = layer; PlayerId = playerId; var payload = new byte[10]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.DropWearItem.Id); writer.WriteId(itemId); writer.WriteByte((byte)layer); writer.WriteId(playerId); RawPacket = new Packet(PacketDefinitions.AttackRequest.Id, payload); }
public UpdateCurrentStaminaPacket(ObjectId playerId, ushort currentStamina, ushort maxStamina) { PlayerId = playerId; MaxStamina = maxStamina; CurrentStamina = currentStamina; byte[] payload = new byte[9]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.UpdateCurrentStamina.Id); writer.WriteId(playerId); writer.WriteUShort(maxStamina); writer.WriteUShort(currentStamina); rawPacket = new Packet(PacketDefinitions.UpdateCurrentStamina.Id, payload); }
public CharMoveRejectionPacket(byte sequenceKey, Location3D location, Direction direction) { SequenceKey = sequenceKey; Location = location; Direction = direction; var payload = new byte[8]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.CharMoveRejection.Id); writer.WriteByte(sequenceKey); writer.WriteUShort((ushort)location.X); writer.WriteUShort((ushort)location.Y); writer.WriteByte((byte)direction); writer.WriteByte((byte)location.Z); rawPacket = new Packet(PacketDefinitions.CharMoveRejection.Id, payload); }
public TargetLocationRequest(CursorId cursorId, Location3D location, ModelId tileType, CursorType cursorType) { var payload = new byte[19]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.TargetCursor.Id); writer.WriteByte((byte)CursorTarget.Location); writer.WriteUInt(cursorId.Value); writer.WriteByte((byte)cursorType); writer.WriteInt(0); // clicked on item = 0 (using location click) writer.WriteUShort((ushort)location.X); writer.WriteUShort((ushort)location.Y); writer.WriteByte(0); // unknown writer.WriteSByte((sbyte)location.Z); writer.WriteModelId(tileType); RawPacket = new Packet(PacketDefinitions.TargetCursor.Id, payload); }
public Packet Serialize() { var payload = new byte[21]; var writer = new ArrayPacketWriter(payload); writer.WriteByte(0xEF); writer.Write(Seed, 0, 4); writer.WriteInt(ClientVersion.Major); writer.WriteInt(ClientVersion.Minor); writer.WriteInt(ClientVersion.Build); int revision = ClientVersion.Revision > -1 ? ClientVersion.Revision : 0; writer.WriteInt(revision); rawPacket = new Packet(0xFE, payload); return(rawPacket); }
public ObjectId AddNewItemToContainer(ModelId type, int amount = 1, Location2D?location = null, ObjectId?containerId = null, Color?color = null) { var newObjectId = NewItemId(); var payload = new byte[20]; var writer = new ArrayPacketWriter(payload); writer.WriteByte(0x25); writer.WriteId(newObjectId); writer.WriteUShort(type); writer.WriteByte(0x00); writer.WriteUShort((ushort)amount); if (location.HasValue) { writer.WriteUShort((ushort)location.Value.X); writer.WriteUShort((ushort)location.Value.Y); } else { writer.WriteUShort(0); writer.WriteUShort(0); } if (containerId.HasValue) { writer.WriteId(containerId.Value); } else { writer.WriteInt(0); } if (color.HasValue) { writer.WriteColor(color.Value); } else { writer.WriteUShort(0); } sendPacket(payload); return(newObjectId); }
public ResponseToDialogBoxRequest(uint dialogId, ushort menuId, byte responseIndex, ModelId responseType, Color responseColor) { DialogId = dialogId; MenuId = menuId; ResponseIndex = responseIndex; byte[] payload = new byte[13]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.ResponseToDialogBox.Id); writer.WriteUInt(dialogId); writer.WriteUShort(menuId); writer.WriteUShort(responseIndex); writer.WriteModelId(responseType); writer.WriteColor(responseColor); rawPacket = new Packet(PacketDefinitions.DoubleClick.Id, payload); }
public SendChatMessageRequest(string message, string language) { Message = message; Language = language; ushort length = (ushort)(11 + message.Length * 2); byte[] payload = new byte[length]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.ChatText.Id); writer.WriteUShort(length); writer.WriteString(4, language); writer.WriteUShort(0x61); writer.WriteUnicodeString(message); writer.WriteUShort(0); RawPacket = new Packet(PacketDefinitions.ChatText.Id, payload); }
public ObjectInfoPacket(ObjectId id, ModelId type, Location3D location, Color?color, ushort?amount = null) { Id = id; Type = type; Location = location; ushort packetLength = 15; if (color.HasValue) { packetLength += 2; } if (amount.HasValue) { packetLength += 2; id += 0x80000000; } var payload = new byte[packetLength]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.ObjectInfo.Id); writer.WriteUShort(packetLength); writer.WriteId(id); writer.WriteModelId(type); if (amount.HasValue) { writer.WriteUShort(amount.Value); } writer.WriteUShort((ushort)location.X); ushort y = (ushort)(color.HasValue ? location.Y | 0x8000 : location.Y); writer.WriteUShort(y); writer.WriteSByte((sbyte)location.Z); if (color.HasValue) { writer.WriteColor(color.Value); } rawPacket = new Packet(PacketDefinitions.ObjectInfo.Id, payload); }
public void Serialize() { ushort size = (ushort)(45 + Message.Length); byte[] payload = new byte[size]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.SendSpeech.Id); writer.WriteUShort(size); writer.WriteId(Id); writer.WriteModelId(Model); writer.WriteByte((byte)Type); writer.WriteUShort(Color.Id); writer.WriteUShort(Font); writer.WriteString(30, Name); writer.WriteString(Message); writer.WriteByte(0x00); rawPacket = new Packet(PacketDefinitions.SendSpeech.Id, payload); }
public Packet Serialize() { var payload = new byte[19]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.DrawGamePlayer.Id); writer.WriteId(PlayerId); writer.WriteModelId(BodyType); writer.WriteByte(0); // unknown writer.WriteColor(Color); writer.WriteByte(0); // flag, alway 0 writer.WriteUShort((ushort)Location.X); writer.WriteUShort((ushort)Location.Y); writer.WriteUShort(0); // unknown writer.WriteMovement(Direction, MovementType); writer.WriteSByte((sbyte)Location.Z); rawPacket = new Packet(PacketDefinitions.DrawGamePlayer.Id, payload); return(rawPacket); }
public TargetLocationRequest(CursorId cursorId, ObjectId itemId, CursorType cursorType, Location3D location, ModelId itemType) { var payload = new byte[19]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.TargetCursor.Id); writer.WriteByte((byte)CursorTarget.Object); writer.WriteUInt(cursorId.Value); writer.WriteByte((byte)cursorType); writer.WriteId(itemId); writer.WriteUShort((ushort)location.X); writer.WriteUShort((ushort)location.Y); writer.WriteByte(0); // unknown writer.WriteSByte((sbyte)location.Z); writer.WriteModelId(itemType); RawPacket = new Packet(PacketDefinitions.TargetCursor.Id, payload); }
public Packet Serialize() { var payload = new byte[37]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.CharacterLocaleAndBody.Id); writer.WriteObjectId(PlayerId); writer.WriteUInt(0); writer.WriteModelId(BodyType); writer.WriteUShort((ushort)Location.X); writer.WriteUShort((ushort)Location.Y); writer.WriteByte(0); writer.WriteSByte((sbyte)Location.Z); writer.WriteDirection(Direction, MovementType); writer.WriteByte(0); writer.WriteInt(-1); rawPacket = new Packet(PacketDefinitions.CharacterLocaleAndBody.Id, payload); return(rawPacket); }
public TalkRequest(SpeechType type, Color color, ushort speechFont, string message) { ushort length = (ushort)(message.Length + 8); byte[] payload = new byte[length]; var writer = new ArrayPacketWriter(payload); writer.WriteByte((byte)PacketDefinitions.TalkRequest.Id); writer.WriteUShort(length); writer.WriteByte((byte)type); writer.WriteColor(color); writer.WriteUShort(speechFont); writer.WriteString(message); rawPacket = new Packet(PacketDefinitions.TalkRequest.Id, payload); Type = type; Color = color; SpeechFont = speechFont; Message = message; }