本文整理汇总了C#中Framework.ObjectDefines.ObjectMovementValues类的典型用法代码示例。如果您正苦于以下问题:C# ObjectMovementValues类的具体用法?C# ObjectMovementValues怎么用?C# ObjectMovementValues使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ObjectMovementValues类属于Framework.ObjectDefines命名空间,在下文中一共展示了ObjectMovementValues类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HandleMoveUpdate
public static void HandleMoveUpdate(ulong guid, ObjectMovementValues movementValues, Vector4 vector)
{
PacketWriter moveUpdate = new PacketWriter(ServerMessage.MoveUpdate);
BitPack BitPack = new BitPack(moveUpdate, guid);
moveUpdate.WriteFloat(vector.Y);
moveUpdate.WriteFloat(vector.Z);
moveUpdate.WriteFloat(vector.X);
BitPack.WriteGuidMask(5);
BitPack.Write(0);
BitPack.WriteGuidMask(3);
BitPack.Write(0);
BitPack.Write(1);
BitPack.Write(!movementValues.HasMovementFlags2);
BitPack.WriteGuidMask(0);
BitPack.Write(1);
BitPack.Write(!movementValues.HasRotation);
BitPack.WriteGuidMask(7);
BitPack.Write(movementValues.IsTransport);
BitPack.Write(0);
BitPack.Write(movementValues.Time == 0);
BitPack.Write(!movementValues.HasMovementFlags);
BitPack.WriteGuidMask(2);
BitPack.Write(1);
BitPack.Write(movementValues.IsFallingOrJumping);
BitPack.WriteGuidMask(1, 6);
BitPack.Write<uint>(0, 22);
BitPack.WriteGuidMask(4);
if (movementValues.IsFallingOrJumping)
BitPack.Write(movementValues.HasJumpData);
if (movementValues.HasMovementFlags)
BitPack.Write((uint)movementValues.MovementFlags, 30);
if (movementValues.HasMovementFlags2)
BitPack.Write((uint)movementValues.MovementFlags2, 13);
BitPack.Flush();
if (movementValues.IsFallingOrJumping)
{
if (movementValues.HasJumpData)
{
moveUpdate.WriteFloat(movementValues.CurrentSpeed);
moveUpdate.WriteFloat(movementValues.Sin);
moveUpdate.WriteFloat(movementValues.Cos);
}
moveUpdate.WriteFloat(movementValues.JumpVelocity);
moveUpdate.WriteUInt32(movementValues.FallTime);
}
BitPack.WriteGuidBytes(1, 0, 4, 5, 7, 2);
if (movementValues.Time != 0)
moveUpdate.WriteUInt32(movementValues.Time);
if (movementValues.HasRotation)
moveUpdate.WriteFloat(vector.O);
BitPack.WriteGuidBytes(6, 3);
var session = WorldMgr.GetSession(guid);
if (session != null)
{
Character pChar = session.Character;
ObjectMgr.SetPosition(ref pChar, vector, false);
WorldMgr.SendToInRangeCharacter(pChar, moveUpdate);
}
}
示例2: HandleMoveSetFly
public static void HandleMoveSetFly(ref PacketReader packet, WorldClass session)
{
ObjectMovementValues movementValues = new ObjectMovementValues();
BitUnpack BitUnpack = new BitUnpack(packet);
var guidMask = new bool[8];
var guidBytes = new byte[8];
Vector4 vector = new Vector4()
{
Y = packet.Read<float>(),
X = packet.Read<float>(),
Z = packet.Read<float>(),
};
movementValues.IsFallingOrJumping = BitUnpack.GetBit();
guidMask[0] = BitUnpack.GetBit();
movementValues.HasMovementFlags2 = !BitUnpack.GetBit();
guidMask[6] = BitUnpack.GetBit();
movementValues.HasMovementFlags = !BitUnpack.GetBit();
var Unknown = BitUnpack.GetBit();
guidMask[2] = BitUnpack.GetBit();
movementValues.HasRotation = !BitUnpack.GetBit();
var Unknown2 = !BitUnpack.GetBit();
var HasSplineElevation = !BitUnpack.GetBit();
movementValues.IsTransport = BitUnpack.GetBit();
guidMask[1] = BitUnpack.GetBit();
guidMask[5] = BitUnpack.GetBit();
var HasPitch = !BitUnpack.GetBit();
var Unknown4 = BitUnpack.GetBit();
guidMask[4] = BitUnpack.GetBit();
var HasTime = !BitUnpack.GetBit();
var counter = BitUnpack.GetBits<uint>(22);
var Unknown3 = BitUnpack.GetBit();
guidMask[7] = BitUnpack.GetBit();
guidMask[3] = BitUnpack.GetBit();
if (movementValues.IsFallingOrJumping)
movementValues.HasJumpData = BitUnpack.GetBit();
if (movementValues.HasMovementFlags)
movementValues.MovementFlags = (MovementFlag)BitUnpack.GetBits<uint>(30);
if (movementValues.HasMovementFlags2)
movementValues.MovementFlags2 = (MovementFlag2)BitUnpack.GetBits<uint>(13);
for (int i = 0; i < counter; i++)
packet.Read<uint>();
if (guidMask[4])
guidBytes[4] = (byte)(packet.Read<byte>() ^ 1);
if (guidMask[2])
guidBytes[2] = (byte)(packet.Read<byte>() ^ 1);
if (guidMask[6])
guidBytes[6] = (byte)(packet.Read<byte>() ^ 1);
if (guidMask[3])
guidBytes[3] = (byte)(packet.Read<byte>() ^ 1);
if (guidMask[0])
guidBytes[0] = (byte)(packet.Read<byte>() ^ 1);
if (guidMask[7])
guidBytes[7] = (byte)(packet.Read<byte>() ^ 1);
if (guidMask[1])
guidBytes[1] = (byte)(packet.Read<byte>() ^ 1);
if (guidMask[5])
guidBytes[5] = (byte)(packet.Read<byte>() ^ 1);
if (Unknown2)
packet.Read<uint>();
if (movementValues.IsFallingOrJumping)
{
if (movementValues.HasJumpData)
{
//.........这里部分代码省略.........
示例3: HandleMoveUpdate
public static void HandleMoveUpdate(ulong guid, ObjectMovementValues movementValues, Vector4 vector)
{
PacketWriter moveUpdate = new PacketWriter(JAMCMessage.MoveUpdate);
BitPack BitPack = new BitPack(moveUpdate, guid);
BitPack.WriteGuidMask(0);
BitPack.Write(!movementValues.HasMovementFlags);
BitPack.Write(!movementValues.HasRotation);
BitPack.WriteGuidMask(2, 6);
BitPack.Write(!movementValues.HasMovementFlags2);
BitPack.WriteGuidMask(7);
BitPack.Write<uint>(0, 24);
BitPack.WriteGuidMask(1);
if (movementValues.HasMovementFlags)
BitPack.Write((uint)movementValues.MovementFlags, 30);
BitPack.WriteGuidMask(4);
BitPack.Write(!movementValues.IsAlive);
BitPack.Write(0);
if (movementValues.HasMovementFlags2)
BitPack.Write((uint)movementValues.MovementFlags2, 13);
BitPack.Write(0);
BitPack.WriteGuidMask(5);
BitPack.Write(true);
BitPack.Write(0);
BitPack.Write(movementValues.IsInterpolated);
BitPack.Write(0);
BitPack.Write(true);
BitPack.WriteGuidMask(3);
BitPack.Write(true);
if (movementValues.IsInterpolated)
BitPack.Write(movementValues.IsInterpolated2);
BitPack.Flush();
if (movementValues.IsInterpolated)
{
moveUpdate.WriteUInt32(0);
if (movementValues.IsInterpolated2)
{
moveUpdate.WriteFloat(0);
moveUpdate.WriteFloat(0);
moveUpdate.WriteFloat(0);
}
moveUpdate.WriteFloat(0);
}
if (movementValues.IsAlive)
moveUpdate.WriteUInt32(movementValues.Time);
BitPack.WriteGuidBytes(5, 7);
moveUpdate.WriteFloat(vector.Z);
BitPack.WriteGuidBytes(4, 3, 2, 6, 0);
moveUpdate.WriteFloat(vector.X);
if (movementValues.HasRotation)
moveUpdate.WriteFloat(vector.W);
moveUpdate.WriteFloat(vector.Y);
Character pChar = WorldMgr.GetSession(guid).Character;
ObjectMgr.SetPosition(ref pChar, vector, false);
WorldMgr.SendToAllInZone(guid, moveUpdate);
}
示例4: HandleMoveStopTurn
public static void HandleMoveStopTurn(ref PacketReader packet, ref WorldClass session)
{
ObjectMovementValues movementValues = new ObjectMovementValues();
BitUnpack BitUnpack = new BitUnpack(packet);
bool[] guidMask = new bool[8];
byte[] guidBytes = new byte[8];
Vector4 vector = new Vector4()
{
X = packet.ReadFloat(),
Z = packet.ReadFloat(),
Y = packet.ReadFloat()
};
bool HasTime = !BitUnpack.GetBit();
guidMask[5] = BitUnpack.GetBit();
bool Unknown = BitUnpack.GetBit();
movementValues.IsTransport = BitUnpack.GetBit();
bool Unknown2 = BitUnpack.GetBit();
guidMask[3] = BitUnpack.GetBit();
bool HasSplineElevation = !BitUnpack.GetBit();
guidMask[0] = BitUnpack.GetBit();
bool HasPitch = !BitUnpack.GetBit();
uint counter = BitUnpack.GetBits<uint>(24);
guidMask[1] = BitUnpack.GetBit();
guidMask[7] = BitUnpack.GetBit();
movementValues.HasMovementFlags = !BitUnpack.GetBit();
movementValues.IsAlive = !BitUnpack.GetBit();
guidMask[2] = BitUnpack.GetBit();
guidMask[6] = BitUnpack.GetBit();
movementValues.HasRotation = !BitUnpack.GetBit();
bool Unknown3 = BitUnpack.GetBit();
movementValues.HasMovementFlags2 = !BitUnpack.GetBit();
bool Unknown4 = BitUnpack.GetBit();
guidMask[4] = BitUnpack.GetBit();
/*if (movementValues.IsTransport)
{
}
if (IsInterpolated)
{
}*/
if (movementValues.HasMovementFlags)
movementValues.MovementFlags = (MovementFlag)BitUnpack.GetBits<uint>(30);
if (movementValues.HasMovementFlags2)
movementValues.MovementFlags2 = (MovementFlag2)BitUnpack.GetBits<uint>(13);
if (guidMask[6]) guidBytes[6] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[0]) guidBytes[0] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[5]) guidBytes[5] = (byte)(packet.ReadUInt8() ^ 1);
for (int i = 0; i < counter; i++)
packet.ReadUInt32();
if (guidMask[1]) guidBytes[1] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[7]) guidBytes[7] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[3]) guidBytes[3] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[4]) guidBytes[4] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[2]) guidBytes[2] = (byte)(packet.ReadUInt8() ^ 1);
/*if (movementValues.IsTransport)
{
}*/
if (movementValues.HasRotation)
vector.W = packet.ReadFloat();
if (movementValues.IsAlive)
movementValues.Time = packet.ReadUInt32();
/*if (IsInterpolated)
{
}*/
if (HasPitch)
//.........这里部分代码省略.........
示例5: HandleMoveUpdate
public static void HandleMoveUpdate(ulong guid, ObjectMovementValues movementValues, Vector4 vector)
{
PacketWriter moveUpdate = new PacketWriter(ServerMessage.MoveUpdate);
BitPack BitPack = new BitPack(moveUpdate, guid);
BitPack.WriteGuidMask(2);
BitPack.Write(0);
BitPack.WriteGuidMask(1);
BitPack.Write(!movementValues.HasMovementFlags2);
BitPack.Write(true);
BitPack.Write(true);
BitPack.Write<uint>(0, 22);
BitPack.WriteGuidMask(3);
BitPack.Write(!movementValues.IsAlive);
BitPack.Write(!movementValues.HasMovementFlags);
BitPack.WriteGuidMask(6);
if (movementValues.HasMovementFlags2)
BitPack.Write((uint)movementValues.MovementFlags2, 13);
BitPack.WriteGuidMask(4, 7);
BitPack.Write(movementValues.IsInterpolated);
BitPack.Write(0);
if (movementValues.HasMovementFlags)
BitPack.Write((uint)movementValues.MovementFlags, 30);
BitPack.Write(!movementValues.HasRotation);
BitPack.Write(movementValues.IsTransport);
BitPack.WriteGuidMask(5);
if (movementValues.IsInterpolated)
BitPack.Write(movementValues.IsInterpolated2);
BitPack.Write(true);
BitPack.Write(0);
BitPack.WriteGuidMask(0);
BitPack.Flush();
moveUpdate.WriteFloat(vector.Z);
BitPack.WriteGuidBytes(3);
moveUpdate.WriteFloat(vector.X);
BitPack.WriteGuidBytes(0, 7);
moveUpdate.WriteFloat(vector.Y);
BitPack.WriteGuidBytes(5);
if (movementValues.IsInterpolated)
{
moveUpdate.WriteFloat(0);
if (movementValues.IsInterpolated2)
{
moveUpdate.WriteFloat(0);
moveUpdate.WriteFloat(0);
moveUpdate.WriteFloat(0);
}
moveUpdate.WriteUInt32(0);
}
BitPack.WriteGuidBytes(6, 2);
if (movementValues.IsAlive)
moveUpdate.WriteUInt32(movementValues.Time);
BitPack.WriteGuidBytes(1, 4);
if (movementValues.HasRotation)
moveUpdate.WriteFloat(vector.O);
var session = WorldMgr.GetSession(guid);
if (session != null)
{
Character pChar = session.Character;
ObjectMgr.SetPosition(ref pChar, vector, false);
WorldMgr.SendToInRangeCharacter(pChar, moveUpdate);
}
}
示例6: HandleMoveFallLand
public static void HandleMoveFallLand(ref PacketReader packet, ref WorldClass session)
{
ObjectMovementValues movementValues = new ObjectMovementValues();
BitUnpack BitUnpack = new BitUnpack(packet);
bool[] guidMask = new bool[8];
byte[] guidBytes = new byte[8];
Vector4 vector = new Vector4()
{
Y = packet.ReadFloat(),
X = packet.ReadFloat(),
Z = packet.ReadFloat()
};
uint counter = BitUnpack.GetBits<uint>(24);
guidMask[2] = BitUnpack.GetBit();
bool HasTime = !BitUnpack.GetBit();
bool HasSplineElevation = !BitUnpack.GetBit();
guidMask[6] = BitUnpack.GetBit();
guidMask[0] = BitUnpack.GetBit();
movementValues.IsTransport = BitUnpack.GetBit();
bool Unknown3 = BitUnpack.GetBit();
bool Unknown = BitUnpack.GetBit();
guidMask[4] = BitUnpack.GetBit();
movementValues.HasMovementFlags2 = !BitUnpack.GetBit();
bool HasPitch = !BitUnpack.GetBit();
movementValues.HasRotation = !BitUnpack.GetBit();
bool Unknown2 = BitUnpack.GetBit();
guidMask[1] = BitUnpack.GetBit();
movementValues.IsAlive = !BitUnpack.GetBit();
movementValues.HasMovementFlags = !BitUnpack.GetBit();
guidMask[5] = BitUnpack.GetBit();
guidMask[7] = BitUnpack.GetBit();
guidMask[3] = BitUnpack.GetBit();
bool Unknown4 = BitUnpack.GetBit();
/*if (movementValues.IsTransport)
{
vehicleGuidMask[4] = BitUnpack.GetBit();
vehicleGuidMask[1] = BitUnpack.GetBit();
bool vehicleUnknown2 = BitUnpack.GetBit();
vehicleGuidMask[2] = BitUnpack.GetBit();
vehicleGuidMask[3] = BitUnpack.GetBit();
vehicleGuidMask[7] = BitUnpack.GetBit();
vehicleGuidMask[0] = BitUnpack.GetBit();
bool vehicleUnknown1 = BitUnpack.GetBit();
vehicleGuidMask[5] = BitUnpack.GetBit();
vehicleGuidMask[6] = BitUnpack.GetBit();
}
if (movementValues.IsInterpolated)
movementValues.IsInterpolated2 = BitUnpack.GetBit();*/
if (movementValues.HasMovementFlags2)
movementValues.MovementFlags2 = (MovementFlag2)BitUnpack.GetBits<uint>(13);
if (movementValues.HasMovementFlags)
movementValues.MovementFlags = (MovementFlag)BitUnpack.GetBits<uint>(30);
if (guidMask[0]) guidBytes[0] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[2]) guidBytes[2] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[1]) guidBytes[1] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[4]) guidBytes[4] = (byte)(packet.ReadUInt8() ^ 1);
for (int i = 0; i < counter; i++)
packet.ReadUInt32();
if (guidMask[6]) guidBytes[6] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[5]) guidBytes[5] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[7]) guidBytes[7] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[3]) guidBytes[3] = (byte)(packet.ReadUInt8() ^ 1);
/*if (movementValues.IsTransport)
{
Vector4 vehiclevector = new Vector4();
vehiclevector.X = packet.ReadFloat();
if (vehicleGuidMask[0]) vehicleGuidBytes[0] = (byte)(packet.ReadUInt8() ^ 1);
if ( vehicleUnknown1 ) uint _25 = packet.ReadUInt32();
if (vehicleGuidMask[4]) vehicleGuidBytes[4] = (byte)(packet.ReadUInt8() ^ 1);
if (vehicleGuidMask[5]) vehicleGuidBytes[5] = (byte)(packet.ReadUInt8() ^ 1);
if (vehicleGuidMask[3]) vehicleGuidBytes[3] = (byte)(packet.ReadUInt8() ^ 1);
byte _88 = packet.ReadUInt8();
if (vehicleGuidMask[7]) vehicleGuidBytes[7] = (byte)(packet.ReadUInt8() ^ 1);
vehiclevector.O = packet.ReadFloat();
//.........这里部分代码省略.........
示例7: HandleForceWalkSpeedChangeAck
public static void HandleForceWalkSpeedChangeAck(ref PacketReader packet, ref WorldClass session)
{
ObjectMovementValues movementValues = new ObjectMovementValues();
BitUnpack BitUnpack = new BitUnpack(packet);
bool[] guidMask = new bool[8];
byte[] guidBytes = new byte[8];
Vector4 vector = new Vector4()
{
Y = packet.ReadFloat(),
Z = packet.ReadFloat(),
X = packet.ReadFloat()
};
uint zeroes = packet.ReadUInt32();
float walkspeed = packet.ReadFloat();
bool Unknown2 = BitUnpack.GetBit();
guidMask[6] = BitUnpack.GetBit();
bool HasPitch = !BitUnpack.GetBit();
movementValues.IsTransport = BitUnpack.GetBit();
bool Unknown3 = BitUnpack.GetBit();
guidMask[1] = BitUnpack.GetBit();
guidMask[2] = BitUnpack.GetBit();
movementValues.IsAlive = !BitUnpack.GetBit();
bool HasTime = !BitUnpack.GetBit();
uint counter = BitUnpack.GetBits<uint>(24);
guidMask[0] = BitUnpack.GetBit();
movementValues.HasMovementFlags = !BitUnpack.GetBit();
guidMask[5] = BitUnpack.GetBit();
bool Unknown4 = BitUnpack.GetBit();
bool HasSplineElevation = !BitUnpack.GetBit();
guidMask[3] = BitUnpack.GetBit();
movementValues.HasRotation = !BitUnpack.GetBit();
movementValues.HasMovementFlags2 = !BitUnpack.GetBit();
guidMask[7] = BitUnpack.GetBit();
guidMask[4] = BitUnpack.GetBit();
bool Unknown = BitUnpack.GetBit();
/*if (movementValues.IsTransport)
{
vehicleGuidMask[2] = BitUnpack.GetBit();
vehicleGuidMask[5] = BitUnpack.GetBit();
vehicleGuidMask[4] = BitUnpack.GetBit();
vehicleGuidMask[1] = BitUnpack.GetBit();
vehicleGuidMask[0] = BitUnpack.GetBit();
vehicleGuidMask[3] = BitUnpack.GetBit();
vehicleGuidMask[7] = BitUnpack.GetBit();
vehicleGuidMask[6] = BitUnpack.GetBit();
bool vehicleUnknown1 = BitUnpack.GetBit();
bool vehicleUnknown2 = BitUnpack.GetBit();
}*/
if (movementValues.HasMovementFlags)
movementValues.MovementFlags = (MovementFlag)BitUnpack.GetBits<uint>(30);
/*if (movementValues.IsInterpolated)
movementValues.IsInterpolated2 = BitUnpack.GetBit();*/
if (movementValues.HasMovementFlags2)
movementValues.MovementFlags2 = (MovementFlag2)BitUnpack.GetBits<uint>(13);
if (guidMask[3]) guidBytes[3] = (byte)(packet.ReadUInt8() ^ 1);
for (int i = 0; i < counter; i++)
packet.ReadUInt32();
if (guidMask[0]) guidBytes[0] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[4]) guidBytes[4] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[1]) guidBytes[1] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[2]) guidBytes[2] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[7]) guidBytes[7] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[6]) guidBytes[6] = (byte)(packet.ReadUInt8() ^ 1);
if (guidMask[5]) guidBytes[5] = (byte)(packet.ReadUInt8() ^ 1);
/*if (movementValues.IsTransport)
{
Vector4 vehiclevector = new Vector4();
if (vehicleGuidMask[7]) vehicleGuidBytes[7] = (byte)(packet.ReadUInt8() ^ 1);
if (vehicleGuidMask[5]) vehicleGuidBytes[5] = (byte)(packet.ReadUInt8() ^ 1);
vehiclevector.Z = packet.ReadFloat();
if (vehicleGuidMask[3]) vehicleGuidBytes[3] = (byte)(packet.ReadUInt8() ^ 1);
byte _88 = packet.ReadUInt8(); // (BYTE)DATA[88]
if (vehicleGuidMask[1]) vehicleGuidBytes[1] = (byte)(packet.ReadUInt8() ^ 1);
if (vehicleGuidMask[0]) vehicleGuidBytes[0] = (byte)(packet.ReadUInt8() ^ 1);
vehiclevector.X = packet.ReadFloat();
//.........这里部分代码省略.........