diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2024-12-15 14:23:25 +0100 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2024-12-15 14:23:25 +0100 |
commit | a14e88ff4d0d87841a44254e2bff1784da6e8b48 (patch) | |
tree | 0507cb8117da7943805a6479aef4526edb2db4dd /packets/map_server/broadcast_formatted_message_packet.gd | |
parent | ca4d1945598863d0ce297f4272317e5dd5797f88 (diff) |
next commit
Diffstat (limited to 'packets/map_server/broadcast_formatted_message_packet.gd')
-rw-r--r-- | packets/map_server/broadcast_formatted_message_packet.gd | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/packets/map_server/broadcast_formatted_message_packet.gd b/packets/map_server/broadcast_formatted_message_packet.gd new file mode 100644 index 0000000..c66c4f1 --- /dev/null +++ b/packets/map_server/broadcast_formatted_message_packet.gd @@ -0,0 +1,74 @@ +## rAthena References: +## - clif_broadcast2 +class_name BroadcastFormattedMessagePacket +extends Packet + + +const HEADER := 0x01c3 +const BYTE_LENGTH := 0 + + +## Byte Type: u16 +## Byte Length: 2 +var packet_length: int + +## Byte Type: u8 +## Byte Length: 1 +var font_color_r: int + +## Byte Type: u8 +## Byte Length: 1 +var font_color_g: int + +## Byte Type: u8 +## Byte Length: 1 +var font_color_b: int + +## Byte Type: u8 +## Byte Length: 1 +var font_color_a: int + +## Byte Type: u16 +## Byte Length: 2 +var font_type: int + +## Byte Type: u16 +## Byte Length: 2 +var font_size: int + +## Byte Type: u16 +## Byte Length: 2 +var font_alignment: int + +## Byte Type: u16 +## Byte Length: 2 +var font_y: int + +## Byte Length: variable +var message: String + + +func get_font_color() -> Color: + return Color8( + font_color_r, + font_color_g, + font_color_b, + 255 + ) + + +static func from_bytes(bytes: PackedByteArray) -> BroadcastFormattedMessagePacket: + var packet = BroadcastFormattedMessagePacket.new() + + packet.packet_length = bytes.decode_u16(2) + packet.font_color_r = bytes.decode_u8(4) + packet.font_color_g = bytes.decode_u8(5) + packet.font_color_b = bytes.decode_u8(6) + packet.font_color_a = bytes.decode_u8(7) + packet.font_type = bytes.decode_u16(8) + packet.font_size = bytes.decode_u16(10) + packet.font_alignment = bytes.decode_u16(12) + packet.font_y = bytes.decode_u16(14) + packet.message = bytes.slice(16, packet.packet_length).get_string_from_utf8() + + return packet |