C# 클래스 SagaLib.Packet

Defines the base class of a network packet. Packets are send back and forth between the client and server. Different types of packets are used for different purposes. The general packet structure is: PACKET_SIZE (2 bytes), PACKET_ID (2 bytes), PACKET_DATA (x bytes). The id bytes are considered to be part of the data bytes. The size bytes are unencrypted, but the id bytes and all data following are encrypted.
파일 보기 프로젝트 열기: Willyham/SagaRO2 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
data byte[]
doNotEncryptBuffer bool
isFullheader bool
isGateway bool
offset ushort
size ushort

공개 메소드들

메소드 설명
GetByte ( ) : byte

Get the byte at the current offset.

GetByte ( ushort index ) : byte

Get the byte at the given index.

GetBytes ( ushort count ) : byte[]

Get a certain amount of bytes from the current offset.

GetBytes ( ushort count, ushort index ) : byte[]

Get a set of bytes from a given location.

GetFloat ( ) : float

Get the float at the current offset.

GetFloat ( ushort index ) : float

Get the float at the given index.

GetInt ( ) : int

Get the int at the current offset.

GetInt ( ushort index ) : int

Get the int at the given index.

GetShort ( ) : short

Get the short at the current offset.

GetShort ( ushort index ) : short

Get the short at the given index.

GetString ( ) : string

Get the Unicode string at the current offset.

GetString ( ushort index ) : string

Get the Unicode string starting at index.

GetStringFixedSize ( ushort size ) : string

Get the Unicode string at the current offset.

GetStringFixedSize ( ushort index, ushort size ) : string

Get the Unicode string starting at index.

GetUInt ( ) : uint

Get the uint at the current offset.

GetUInt ( ushort index ) : uint

Get the uint at the given index.

GetUShort ( ) : ushort

Get the ushort at the current offset.

GetUShort ( ushort index ) : ushort

Get the ushort at the given index.

New ( ) : Packet

Create a new instance of this packet.

Packet ( ) : System

Create a new packet with no data bytes at all. The data array has to be initialized manually.

Packet ( byte data ) : System

Create a new packet with the given data bytes. The size and offset are set automatically.

Packet ( short length ) : System

Create a new packet with the given length. The data bytes are initialized to all zeroes.

Parse ( SagaLib.Client client ) : void

Parse this packet (only used for GetPackets)

PutByte ( byte b ) : void

Put the given byte at the current offset.

PutByte ( byte b, ushort index ) : void

Put the given byte at the given index.

PutBytes ( byte bdata ) : void

Put some given bytes at the current offset in the data array.

PutBytes ( byte bdata, ushort index ) : void

Put some given bytes at a given position in the data array.

PutFloat ( float s ) : void

Put the given float at the current offset in the data.

PutFloat ( float s, ushort index ) : void

Put the given float at the given index.

PutInt ( int s ) : void

Put the given int at the current offset in the data.

PutInt ( int s, ushort index ) : void

Put the given int at the given index.

PutShort ( short s ) : void

Put the given short at the current offset.

PutShort ( short s, ushort index ) : void

Put the given short at the given index.

PutStandardItem ( int id, uint u1, uint u2, string name, uint u3, byte clv, bool tradeable, ushort dura, byte stack, uint add1, uint add2, uint add3, byte itemindex, ushort index ) : void
PutString ( string s ) : void

Put a string a the current offset.

PutString ( string s, ushort index ) : void

Put a string at the given index of the data.

PutTradeItem ( int id, uint u1, uint u2, string name, uint u3, byte clv, bool tradeable, ushort dura, byte stack, uint add1, uint add2, uint add3, ushort index ) : void
PutUInt ( uint s ) : void

Put the given uint at the current offset.

PutUInt ( uint s, ushort index ) : void

Put the given uint at the given index.

PutUShort ( ushort s ) : void

Put the given ushort at the current offset.

PutUShort ( ushort s, ushort index ) : void

Put the given ushort at the given index.

SetLength ( ) : void

Write the data length to the first 2 bytes of the packet.

SizeIsOk ( ushort size ) : bool

Check to see if a given size is ok for a certain packet.

isStaticSize ( ) : bool

메소드 상세

GetByte() 공개 메소드

Get the byte at the current offset.
public GetByte ( ) : byte
리턴 byte

GetByte() 공개 메소드

Get the byte at the given index.
public GetByte ( ushort index ) : byte
index ushort Index of the byte.
리턴 byte

GetBytes() 공개 메소드

Get a certain amount of bytes from the current offset.
public GetBytes ( ushort count ) : byte[]
count ushort Number of bytes to read.
리턴 byte[]

GetBytes() 공개 메소드

Get a set of bytes from a given location.
public GetBytes ( ushort count, ushort index ) : byte[]
count ushort Number of bytes to get.
index ushort Indec from where to get bytes.
리턴 byte[]

GetFloat() 공개 메소드

Get the float at the current offset.
public GetFloat ( ) : float
리턴 float

GetFloat() 공개 메소드

Get the float at the given index.
public GetFloat ( ushort index ) : float
index ushort Index of the float.
리턴 float

GetInt() 공개 메소드

Get the int at the current offset.
public GetInt ( ) : int
리턴 int

GetInt() 공개 메소드

Get the int at the given index.
public GetInt ( ushort index ) : int
index ushort Index of the int.
리턴 int

GetShort() 공개 메소드

Get the short at the current offset.
public GetShort ( ) : short
리턴 short

GetShort() 공개 메소드

Get the short at the given index.
public GetShort ( ushort index ) : short
index ushort Index of the short.
리턴 short

GetString() 공개 메소드

Get the Unicode string at the current offset.
public GetString ( ) : string
리턴 string

GetString() 공개 메소드

Get the Unicode string starting at index.
public GetString ( ushort index ) : string
index ushort Index of the string.
리턴 string

GetStringFixedSize() 공개 메소드

Get the Unicode string at the current offset.
public GetStringFixedSize ( ushort size ) : string
size ushort
리턴 string

GetStringFixedSize() 공개 메소드

Get the Unicode string starting at index.
public GetStringFixedSize ( ushort index, ushort size ) : string
index ushort Index of the string.
size ushort
리턴 string

GetUInt() 공개 메소드

Get the uint at the current offset.
public GetUInt ( ) : uint
리턴 uint

GetUInt() 공개 메소드

Get the uint at the given index.
public GetUInt ( ushort index ) : uint
index ushort Index of the uint.
리턴 uint

GetUShort() 공개 메소드

Get the ushort at the current offset.
public GetUShort ( ) : ushort
리턴 ushort

GetUShort() 공개 메소드

Get the ushort at the given index.
public GetUShort ( ushort index ) : ushort
index ushort Index of the ushort.
리턴 ushort

New() 공개 메소드

Create a new instance of this packet.
public New ( ) : Packet
리턴 Packet

Packet() 공개 메소드

Create a new packet with no data bytes at all. The data array has to be initialized manually.
public Packet ( ) : System
리턴 System

Packet() 공개 메소드

Create a new packet with the given data bytes. The size and offset are set automatically.
public Packet ( byte data ) : System
data byte The (unencrypted) data bytes
리턴 System

Packet() 공개 메소드

Create a new packet with the given length. The data bytes are initialized to all zeroes.
public Packet ( short length ) : System
length short Length of the data bytes.
리턴 System

Parse() 공개 메소드

Parse this packet (only used for GetPackets)
public Parse ( SagaLib.Client client ) : void
client SagaLib.Client
리턴 void

PutByte() 공개 메소드

Put the given byte at the current offset.
public PutByte ( byte b ) : void
b byte Byte to insert.
리턴 void

PutByte() 공개 메소드

Put the given byte at the given index.
public PutByte ( byte b, ushort index ) : void
b byte Byte to insert.
index ushort Index to insert at.
리턴 void

PutBytes() 공개 메소드

Put some given bytes at the current offset in the data array.
public PutBytes ( byte bdata ) : void
bdata byte bytes to add to the data array
리턴 void

PutBytes() 공개 메소드

Put some given bytes at a given position in the data array.
public PutBytes ( byte bdata, ushort index ) : void
bdata byte bytes to add to the data array
index ushort position to add the bytes to
리턴 void

PutFloat() 공개 메소드

Put the given float at the current offset in the data.
public PutFloat ( float s ) : void
s float Float to insert.
리턴 void

PutFloat() 공개 메소드

Put the given float at the given index.
public PutFloat ( float s, ushort index ) : void
s float Float to insert.
index ushort Index to insert at.
리턴 void

PutInt() 공개 메소드

Put the given int at the current offset in the data.
public PutInt ( int s ) : void
s int Int to insert.
리턴 void

PutInt() 공개 메소드

Put the given int at the given index.
public PutInt ( int s, ushort index ) : void
s int Int to insert.
index ushort Index to insert at.
리턴 void

PutShort() 공개 메소드

Put the given short at the current offset.
public PutShort ( short s ) : void
s short Short to insert.
리턴 void

PutShort() 공개 메소드

Put the given short at the given index.
public PutShort ( short s, ushort index ) : void
s short Short to insert.
index ushort Index to insert at.
리턴 void

PutStandardItem() 공개 메소드

public PutStandardItem ( int id, uint u1, uint u2, string name, uint u3, byte clv, bool tradeable, ushort dura, byte stack, uint add1, uint add2, uint add3, byte itemindex, ushort index ) : void
id int
u1 uint
u2 uint
name string
u3 uint
clv byte
tradeable bool
dura ushort
stack byte
add1 uint
add2 uint
add3 uint
itemindex byte
index ushort
리턴 void

PutString() 공개 메소드

Put a string a the current offset.
public PutString ( string s ) : void
s string String to insert.
리턴 void

PutString() 공개 메소드

Put a string at the given index of the data.
public PutString ( string s, ushort index ) : void
s string String to insert.
index ushort Index at which to insert.
리턴 void

PutTradeItem() 공개 메소드

public PutTradeItem ( int id, uint u1, uint u2, string name, uint u3, byte clv, bool tradeable, ushort dura, byte stack, uint add1, uint add2, uint add3, ushort index ) : void
id int
u1 uint
u2 uint
name string
u3 uint
clv byte
tradeable bool
dura ushort
stack byte
add1 uint
add2 uint
add3 uint
index ushort
리턴 void

PutUInt() 공개 메소드

Put the given uint at the current offset.
public PutUInt ( uint s ) : void
s uint uint to insert
리턴 void

PutUInt() 공개 메소드

Put the given uint at the given index.
public PutUInt ( uint s, ushort index ) : void
s uint uint to insert.
index ushort Index to insert at.
리턴 void

PutUShort() 공개 메소드

Put the given ushort at the current offset.
public PutUShort ( ushort s ) : void
s ushort
리턴 void

PutUShort() 공개 메소드

Put the given ushort at the given index.
public PutUShort ( ushort s, ushort index ) : void
s ushort Ushort to insert.
index ushort Index to insert at.
리턴 void

SetLength() 공개 메소드

Write the data length to the first 2 bytes of the packet.
public SetLength ( ) : void
리턴 void

SizeIsOk() 공개 메소드

Check to see if a given size is ok for a certain packet.
public SizeIsOk ( ushort size ) : bool
size ushort Size to compare with.
리턴 bool

isStaticSize() 공개 메소드

public isStaticSize ( ) : bool
리턴 bool

프로퍼티 상세

data 공개적으로 프로퍼티

The data bytes (note: these include the id bytes and the size bytes)
public byte[] data
리턴 byte[]

doNotEncryptBuffer 공개적으로 프로퍼티

If true, the data byte array will be cloned before it gets encrypted. Set it to "true" if you want to send the packet multiple times.
public bool doNotEncryptBuffer
리턴 bool

isFullheader 공개적으로 프로퍼티

public bool isFullheader
리턴 bool

isGateway 공개적으로 프로퍼티

public bool isGateway
리턴 bool

offset 공개적으로 프로퍼티

Our current offset in the data array. After creation this will be set to 4 (the first non ID data byte)
public ushort offset
리턴 ushort

size 공개적으로 프로퍼티

The size of the packet is equal to the number of data bytes plus 2 bytes for the message id plus 2 bytes for the size.
public ushort size
리턴 ushort