Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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));
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 22
0
        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);
        }
Ejemplo n.º 23
0
        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);
        }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 25
0
        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);
        }
Ejemplo n.º 26
0
        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);
        }
Ejemplo n.º 27
0
        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);
        }
Ejemplo n.º 28
0
        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);
        }
Ejemplo n.º 29
0
        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);
        }
Ejemplo n.º 30
0
        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;
        }