From a14e88ff4d0d87841a44254e2bff1784da6e8b48 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Sun, 15 Dec 2024 14:23:25 +0100 Subject: next commit --- .../broadcast_formatted_message_packet.gd | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 packets/map_server/broadcast_formatted_message_packet.gd (limited to 'packets/map_server/broadcast_formatted_message_packet.gd') 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 -- cgit v1.2.3