本文整理汇总了C#中MyUtils.ByteStream.Length方法的典型用法代码示例。如果您正苦于以下问题:C# ByteStream.Length方法的具体用法?C# ByteStream.Length怎么用?C# ByteStream.Length使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MyUtils.ByteStream
的用法示例。
在下文中一共展示了ByteStream.Length方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExplorePlayerProfile
//.........这里部分代码省略.........
{
Buffer.ReadString(false);
Buffer.SkipBytes(8);
}
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadInt32());
OutputStream.WriteLine("{0, -5}: Item HP Total? {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Endurance Total? {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Mana Total? {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Expansion Count {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32());
UInt32 NameLength = Buffer.ReadUInt32();
OutputStream.WriteLine("{0, -5}: Name Length: {1}", Buffer.GetPosition() - 4, NameLength);
int CurrentPosition = Buffer.GetPosition();
OutputStream.WriteLine("{0, -5}: Name: {1}", Buffer.GetPosition(), Buffer.ReadString(false));
Buffer.SetPosition(CurrentPosition + (int)NameLength);
UInt32 LastNameLength = Buffer.ReadUInt32();
OutputStream.WriteLine("{0, -5}: LastName Length: {1}", Buffer.GetPosition() - 4, LastNameLength);
CurrentPosition = Buffer.GetPosition();
OutputStream.WriteLine("{0, -5}: Last Name: {1}", Buffer.GetPosition(), Buffer.ReadString(false));
Buffer.SetPosition(CurrentPosition + (int)LastNameLength);
OutputStream.WriteLine("{0, -5}: Birthday {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Account Start Date {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Last Login Date {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Time Played Minutes {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Time Entitled On Account {1}", Buffer.GetPosition(), Buffer.ReadUInt32());
OutputStream.WriteLine("{0, -5}: Expansions {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32());
UInt32 LanguageCount = Buffer.ReadUInt32();
OutputStream.WriteLine("{0, -5}: Language Count = {1}", Buffer.GetPosition() - 4, LanguageCount);
for (int i = 0; i < LanguageCount; ++i)
{
Buffer.SkipBytes(1);
}
OutputStream.WriteLine("{0, -5}: Zone ID {1}", Buffer.GetPosition(), Buffer.ReadUInt16());
示例2: ExploreInventory
public void ExploreInventory(StreamWriter OutputStream, ByteStream Buffer, PacketDirection Direction)
{
if (Buffer.Length() < 4)
return;
UInt32 Count = Buffer.ReadUInt32();
for (int i = 0; i < Count; ++i)
{
try
{
DecodeItemPacket(OutputStream, Buffer, Direction);
}
catch
{
return;
}
}
}
示例3: ExploreZoneEntry
//.........这里部分代码省略.........
Buffer.SkipBytes(5);
UInt32 GuildID = Buffer.ReadUInt32();
UInt32 GuildRank = Buffer.ReadUInt32();
Buffer.SkipBytes(5);
OutputStream.WriteLine("GuildID: {0}, Guild Rank: {1}", GuildID, GuildRank);
Buffer.ReadString(false);
Buffer.SkipBytes(35);
if ((IsNPC == 0) || NPCType.IsPlayableRace(Race))
{
for (int ColourSlot = 0; ColourSlot < 9; ++ColourSlot)
OutputStream.WriteLine("Color {0} is {1}", ColourSlot, Buffer.ReadUInt32());
for (int i = 0; i < 9; ++i)
{
UInt32 Equip3 = Buffer.ReadUInt32();
UInt32 Equipx = Buffer.ReadUInt32();
UInt32 Equip2 = Buffer.ReadUInt32();
UInt32 Equip1 = Buffer.ReadUInt32();
UInt32 Equip0 = Buffer.ReadUInt32();
OutputStream.WriteLine("Equip slot {0}: 0,1,2,x,3 is {1}, {2}, {3}, {4}, {5}", i,
Equip0, Equip1, Equip2, Equipx, Equip3);
}
}
else
{
// Non playable race
// Melee Texture 1 is 20 bytes in
// Melee Texture 1 is 40 bytes in
// This whole segment is 28 + 24 + 8 = 60
// Skip 20, Read m1, skip 16, read m2, skip 16
/*
OutputStream.WriteLine("None playable race, offset now {0}", Buffer.GetPosition());
Buffer.SkipBytes(28);
UInt32 MeleeTexture1 = Buffer.ReadUInt32();
Buffer.SkipBytes(12);
UInt32 MeleeTexture2 = Buffer.ReadUInt32();
Buffer.SkipBytes(12);
*/
OutputStream.WriteLine("None playable race, offset now {0}", Buffer.GetPosition());
Buffer.SkipBytes(20);
UInt32 MeleeTexture1 = Buffer.ReadUInt32();
Buffer.SkipBytes(16);
UInt32 MeleeTexture2 = Buffer.ReadUInt32();
Buffer.SkipBytes(16);
}
OutputStream.WriteLine("Position starts at offset {0}", Buffer.GetPosition());
UInt32 Position1 = Buffer.ReadUInt32();
UInt32 Position2 = Buffer.ReadUInt32();
UInt32 Position3 = Buffer.ReadUInt32();
UInt32 Position4 = Buffer.ReadUInt32();
UInt32 Position5 = Buffer.ReadUInt32();
float YPos = Utils.EQ19ToFloat((Int32)(Position1 >> 12));
float ZPos = Utils.EQ19ToFloat((Int32)(Position3 >> 13) & 0x7FFFF);
float XPos = Utils.EQ19ToFloat((Int32)(Position4) & 0x7FFFF);
float Heading = Utils.EQ19ToFloat((Int32)(Position5) & 0x7FFFF);
OutputStream.WriteLine("(X,Y,Z) = {0}, {1}, {2}, Heading = {3}", XPos, YPos, ZPos, Heading);
if((OtherData & 16) > 1)
OutputStream.WriteLine("Title: {0}", Buffer.ReadString(false));
if ((OtherData & 32) > 1)
OutputStream.WriteLine("Suffix: {0}", Buffer.ReadString(false));
Buffer.SkipBytes(8);
byte IsMerc = Buffer.ReadByte();
OutputStream.WriteLine("IsMerc: {0}", IsMerc);
Buffer.SkipBytes(54);
OutputStream.WriteLine("Buffer Length: {0}, Current Position: {1}", Buffer.Length(), Buffer.GetPosition());
if (Buffer.Length() != Buffer.GetPosition())
OutputStream.WriteLine("PARSE ERROR");
OutputStream.WriteLine("");
}
示例4: GetSpawns
//.........这里部分代码省略.........
for (int ColourSlot = 0; ColourSlot < 9; ++ColourSlot)
NewSpawn.SlotColour[ColourSlot] = Buffer.ReadUInt32();
for (int i = 0; i < 9; ++i)
{
NewSpawn.Equipment[i] = Buffer.ReadUInt32();
UInt32 Equip3 = Buffer.ReadUInt32();
UInt32 Equip2 = Buffer.ReadUInt32();
UInt32 Equip1 = Buffer.ReadUInt32();
UInt32 Equip0 = Buffer.ReadUInt32();
}
if (NewSpawn.Equipment[Constants.MATERIAL_CHEST] > 0)
{
NewSpawn.EquipChest2 = (byte)NewSpawn.Equipment[Constants.MATERIAL_CHEST];
}
NewSpawn.ArmorTintRed = (byte)((NewSpawn.SlotColour[Constants.MATERIAL_CHEST] >> 16) & 0xff);
NewSpawn.ArmorTintGreen = (byte)((NewSpawn.SlotColour[Constants.MATERIAL_CHEST] >> 8) & 0xff);
NewSpawn.ArmorTintBlue = (byte)(NewSpawn.SlotColour[Constants.MATERIAL_CHEST] & 0xff);
if (NewSpawn.Equipment[Constants.MATERIAL_PRIMARY] > 0)
NewSpawn.MeleeTexture1 = NewSpawn.Equipment[Constants.MATERIAL_PRIMARY];
if (NewSpawn.Equipment[Constants.MATERIAL_SECONDARY] > 0)
NewSpawn.MeleeTexture2 = NewSpawn.Equipment[Constants.MATERIAL_SECONDARY];
if (UseWorn)
NewSpawn.Helm = (byte)NewSpawn.Equipment[Constants.MATERIAL_HEAD];
else
NewSpawn.Helm = 0;
}
else
{
// Non playable race
Buffer.SkipBytes(20);
NewSpawn.MeleeTexture1 = Buffer.ReadUInt32();
Buffer.SkipBytes(16);
NewSpawn.MeleeTexture2 = Buffer.ReadUInt32();
Buffer.SkipBytes(16);
}
if (NewSpawn.EquipChest2 == 255)
NewSpawn.EquipChest2 = 0;
if (NewSpawn.Helm == 255)
NewSpawn.Helm = 0;
UInt32 Position1 = Buffer.ReadUInt32();
UInt32 Position2 = Buffer.ReadUInt32();
UInt32 Position3 = Buffer.ReadUInt32();
UInt32 Position4 = Buffer.ReadUInt32();
UInt32 Position5 = Buffer.ReadUInt32();
NewSpawn.YPos = Utils.EQ19ToFloat((Int32)(Position1 >> 12));
NewSpawn.ZPos = Utils.EQ19ToFloat((Int32)(Position3 >> 13) & 0x7FFFF);
NewSpawn.XPos = Utils.EQ19ToFloat((Int32)(Position4) & 0x7FFFF);
NewSpawn.Heading = Utils.EQ19ToFloat((Int32)(Position5) & 0x7FFFF);
if ((OtherData & 16) > 0)
{
NewSpawn.Title = Buffer.ReadString(false);
}
if ((OtherData & 32) > 0)
{
NewSpawn.Suffix = Buffer.ReadString(false);
}
// unknowns
Buffer.SkipBytes(8);
NewSpawn.IsMercenary = Buffer.ReadByte();
Buffer.SkipBytes(54);
Debug.Assert(Buffer.GetPosition() == Buffer.Length(), "Length mismatch while parsing zone spawns");
ZoneSpawns.Add(NewSpawn);
}
return ZoneSpawns;
}
示例5: ExploreSpawnDoor
public void ExploreSpawnDoor(StreamWriter OutputStream, ByteStream Buffer, PacketDirection Direction)
{
uint DoorCount = Buffer.Length() / 96;
OutputStream.WriteLine("Door Count: {0}", DoorCount);
for (int d = 0; d < DoorCount; ++d)
{
string DoorName = Buffer.ReadFixedLengthString(32, false);
float YPos = Buffer.ReadSingle();
float XPos = Buffer.ReadSingle();
float ZPos = Buffer.ReadSingle();
float Heading = Buffer.ReadSingle();
UInt32 Incline = Buffer.ReadUInt32();
Int32 Size = Buffer.ReadInt32();
Buffer.SkipBytes(4); // Skip Unknown
Byte DoorID = Buffer.ReadByte();
Byte OpenType = Buffer.ReadByte();
Byte StateAtSpawn = Buffer.ReadByte();
Byte InvertState = Buffer.ReadByte();
Int32 DoorParam = Buffer.ReadInt32();
OutputStream.WriteLine(" Name: {0} ID: {1} OT: {2} SAS: {3} IS: {4} DP: {5}",
DoorName, DoorID, OpenType, StateAtSpawn, InvertState, DoorParam);
// Skip past the trailing unknowns in the door struct, moving to the next door in the packet.
Buffer.SkipBytes(28);
}
}
示例6: ExploreNPCMoveUpdate
public void ExploreNPCMoveUpdate(StreamWriter OutputStream, ByteStream Buffer, PacketDirection Direction)
{
BitStream bs = new BitStream(Buffer.Buffer, Buffer.Length());
UInt32 SpawnID = bs.readUInt(16);
UInt32 Unknown = bs.readUInt(16);
UInt32 VFlags = bs.readUInt(6);
float y = (float)bs.readInt(19) / (float)(1 << 3);
float x = (float)bs.readInt(19) / (float)(1 << 3);
float z = (float)bs.readInt(19) / (float)(1 << 3);
float heading = (float)bs.readInt(12) / (float)(1 << 3);
OutputStream.WriteLine("Spawn: {0} Flags: {1}, XYZ: {2}, {3}, {4}, Heading: {5}", SpawnID, VFlags, x, y, z, heading);
}