fix login issue*
This commit is contained in:
@@ -68,6 +68,18 @@ defmodule Odinsea.Net.Packet.Out do
|
||||
%__MODULE__{data: [data | <<length::signed-integer-little-16, value::binary>>]}
|
||||
end
|
||||
|
||||
@doc """
|
||||
Encodes a fixed-length MapleStory ASCII string.
|
||||
Format: [2-byte length][ASCII bytes][padding to fixed length]
|
||||
The third argument specifies the fixed field length.
|
||||
"""
|
||||
@spec encode_string(t(), String.t(), non_neg_integer()) :: t()
|
||||
def encode_string(%__MODULE__{data: data}, value, fixed_length) when is_binary(value) and is_integer(fixed_length) and fixed_length > 0 do
|
||||
length = byte_size(value)
|
||||
padding = max(0, fixed_length - length)
|
||||
%__MODULE__{data: [data | <<length::signed-integer-little-16, value::binary, 0::size(padding * 8)>>]}
|
||||
end
|
||||
|
||||
@doc """
|
||||
Encodes a boolean (1 byte, 0 = false, 1 = true).
|
||||
"""
|
||||
@@ -88,6 +100,12 @@ defmodule Odinsea.Net.Packet.Out do
|
||||
%__MODULE__{data: [data | buffer]}
|
||||
end
|
||||
|
||||
@doc """
|
||||
Alias for encode_buffer/2.
|
||||
"""
|
||||
@spec encode_bytes(t(), binary()) :: t()
|
||||
def encode_bytes(packet, data), do: encode_buffer(packet, data)
|
||||
|
||||
@doc """
|
||||
Encodes a fixed-size buffer, padding with zeros if necessary.
|
||||
"""
|
||||
@@ -172,6 +190,12 @@ defmodule Odinsea.Net.Packet.Out do
|
||||
data
|
||||
end
|
||||
|
||||
@doc """
|
||||
Alias for to_iodata/1.
|
||||
"""
|
||||
@spec to_data(t()) :: iodata()
|
||||
def to_data(packet), do: to_iodata(packet)
|
||||
|
||||
@doc """
|
||||
Converts the packet to a hex string for debugging.
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user