本文整理汇总了C#中WowPacketParser.Misc.WowGuid.HasEntry方法的典型用法代码示例。如果您正苦于以下问题:C# WowGuid.HasEntry方法的具体用法?C# WowGuid.HasEntry怎么用?C# WowGuid.HasEntry使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WowPacketParser.Misc.WowGuid
的用法示例。
在下文中一共展示了WowGuid.HasEntry方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckFilter
public static bool CheckFilter(WowGuid guid)
{
var result = true;
if (guid.HasEntry())
result = CheckFilter(Utilities.ObjectTypeToStore(guid.GetObjectType()), (int)guid.GetEntry());
return result;
}
示例2: ReadCreateObjectBlock
private static void ReadCreateObjectBlock(Packet packet, WowGuid guid, uint map, object index)
{
var objType = packet.ReadByteE<ObjectType>("Object Type", index);
var moves = ReadMovementUpdateBlock(packet, guid, index);
var updates = CoreParsers.UpdateHandler.ReadValuesUpdateBlock(packet, objType, index, true);
WoWObject obj;
switch (objType)
{
case ObjectType.Unit:
obj = new Unit();
break;
case ObjectType.GameObject:
obj = new GameObject();
break;
case ObjectType.Item:
obj = new Item();
break;
case ObjectType.Player:
obj = new Player();
break;
default:
obj = new WoWObject();
break;
}
obj.Type = objType;
obj.Movement = moves;
obj.UpdateFields = updates;
obj.Map = map;
obj.Area = CoreParsers.WorldStateHandler.CurrentAreaId;
obj.PhaseMask = (uint)CoreParsers.MovementHandler.CurrentPhaseMask;
obj.Phases = new HashSet<ushort>(CoreParsers.MovementHandler.ActivePhases);
// If this is the second time we see the same object (same guid,
// same position) update its phasemask
if (Storage.Objects.ContainsKey(guid))
{
var existObj = Storage.Objects[guid].Item1;
CoreParsers.UpdateHandler.ProcessExistingObject(ref existObj, obj, guid); // can't do "ref Storage.Objects[guid].Item1 directly
}
else
Storage.Objects.Add(guid, obj, packet.TimeSpan);
if (guid.HasEntry() && (objType == ObjectType.Unit || objType == ObjectType.GameObject))
packet.AddSniffData(Utilities.ObjectTypeToStore(objType), (int)guid.GetEntry(), "SPAWN");
}
示例3: ReadMovementUpdateBlock
//.........这里部分代码省略.........
packet.ReadSingle("Fly Speed", index);
packet.ReadXORByte(guid1, 6);
packet.ReadSingle("Fly Back Speed", index);
if (hasTransportData)
{
packet.ReadXORByte(transportGuid, 7);
packet.ReadXORByte(transportGuid, 4);
if (hasTransportTime3)
packet.ReadUInt32("Transport Time 3", index);
packet.ReadUInt32("Transport Time", index);
if (hasTransportTime2)
packet.ReadUInt32("Transport Time 2", index);
moveInfo.TransportOffset.O = packet.ReadSingle();
moveInfo.TransportOffset.X = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 6);
packet.ReadXORByte(transportGuid, 3);
packet.ReadXORByte(transportGuid, 2);
moveInfo.TransportOffset.Z = packet.ReadSingle();
moveInfo.TransportOffset.Y = packet.ReadSingle();
var seat = packet.ReadSByte("Transport Seat", index);
packet.ReadXORByte(transportGuid, 1);
packet.ReadXORByte(transportGuid, 0);
packet.ReadXORByte(transportGuid, 5);
moveInfo.TransportGuid = new WowGuid64(BitConverter.ToUInt64(transportGuid, 0));
packet.AddValue("Transport GUID", moveInfo.TransportGuid, index);
packet.AddValue("Transport Position", moveInfo.TransportOffset, index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature)
{
var vehicleAccessory = new VehicleTemplateAccessory
{
AccessoryEntry = guid.GetEntry(),
SeatId = seat
};
Storage.VehicleTemplateAccessorys.Add(moveInfo.TransportGuid.GetEntry(), vehicleAccessory, packet.TimeSpan);
}
}
moveInfo.Position.X = packet.ReadSingle();
packet.AddValue("Position", moveInfo.Position, index);
packet.ReadXORByte(guid1, 2);
if (hasPitch)
packet.ReadSingle("Pitch", index);
packet.ReadSingle("Swim Speed", index);
packet.ReadXORByte(guid1, 1);
packet.ReadSingle("Run Back Speed", index);
packet.ReadSingle("Swim Back Speed", index);
packet.ReadXORByte(guid1, 5);
if (hasSplineElevation)
packet.ReadSingle("Spline Elevation", index);
if (bitA8)
packet.ReadInt32("IntA8", index);
packet.ReadSingle("Turn Speed", index);
示例4: ReadMovementUpdateBlock
//.........这里部分代码省略.........
packet.ReadSingle("Jump Velocity", index);
packet.ReadSingle("Jump Sin", index);
packet.ReadSingle("Jump Cos", index);
}
packet.ReadUInt32("Time Fallen", index);
packet.ReadSingle("Fall Start Velocity", index);
}
if (hasTransportData)
{
packet.ReadXORByte(transportGuid, 5);
var seat = packet.ReadByte("Transport Seat", index);
packet.ReadXORByte(transportGuid, 2);
moveInfo.TransportOffset.O = packet.ReadSingle();
packet.ReadXORBytes(transportGuid, 4, 7);
if (hasTransportTime2)
packet.ReadUInt32("Transport Time 2", index);
packet.ReadUInt32("Transport Time", index);
moveInfo.TransportOffset.Y = packet.ReadSingle();
packet.ReadXORBytes(transportGuid, 3, 6);
moveInfo.TransportOffset.X = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 0);
if (hasTransportTime3)
packet.ReadUInt32("Transport Time 3", index);
packet.ReadXORByte(transportGuid, 1);
moveInfo.TransportOffset.Z = packet.ReadSingle();
moveInfo.TransportGuid = new WowGuid64(BitConverter.ToUInt64(transportGuid, 0));
packet.AddValue("Transport GUID", moveInfo.TransportGuid, index);
packet.AddValue("Transport Position", moveInfo.TransportOffset, index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature)
{
var vehicleAccessory = new VehicleTemplateAccessory();
vehicleAccessory.AccessoryEntry = guid.GetEntry();
vehicleAccessory.SeatId = seat;
Storage.VehicleTemplateAccessorys.Add(moveInfo.TransportGuid.GetEntry(), vehicleAccessory, packet.TimeSpan);
}
}
packet.ReadXORByte(guid1, 5);
if (hasTimestamp)
packet.ReadUInt32("Time", index);
for (var i = 0; i < bits90; ++i)
packet.ReadInt32("Int8C", index, i);
if (bitA0)
packet.ReadInt32("Int98", index);
packet.ReadXORByte(guid1, 1);
packet.ReadSingle("FloatB0", index);
packet.ReadSingle("FloatC0", index);
packet.ReadXORByte(guid1, 6);
packet.ReadSingle("FloatC4", index);
for (var i = 0; i < bits160; ++i)
{
packet.ReadSingle("Float16C+3", index, i);
packet.ReadSingle("Float16C+5", index, i);
packet.ReadSingle("Float16C+1", index, i);
packet.ReadInt32("Int16C+0", index, i);
示例5: ReadMovementUpdateBlock
//.........这里部分代码省略.........
}*/
if (isLiving)
{
if (hasTransportData) //96
{
packet.ReadXORByte(transportGuid, 7);
moveInfo.TransportOffset.X = packet.ReadSingle();
if (hasTransportTime3)
packet.ReadUInt32("Transport Time 3", index);
moveInfo.TransportOffset.O = packet.ReadSingle();
moveInfo.TransportOffset.Y = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 4);
packet.ReadXORByte(transportGuid, 1);
packet.ReadXORByte(transportGuid, 3);
moveInfo.TransportOffset.Z = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 5);
if (hasTransportTime2)
packet.ReadUInt32("Transport Time 2", index);
packet.ReadXORByte(transportGuid, 0);
var seat = packet.ReadSByte("Transport Seat", index); //72
packet.ReadXORByte(transportGuid, 6);
packet.ReadXORByte(transportGuid, 2);
packet.ReadUInt32("Transport Time", index); //76
moveInfo.TransportGuid = new WowGuid(BitConverter.ToUInt64(transportGuid, 0));
packet.AddValue("Transport GUID", moveInfo.TransportGuid, index);
packet.AddValue("Transport Position", moveInfo.TransportOffset, index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Unit)
{
var vehicleAccessory = new VehicleTemplateAccessory();
vehicleAccessory.AccessoryEntry = guid.GetEntry();
vehicleAccessory.SeatId = seat;
Storage.VehicleTemplateAccessorys.Add(moveInfo.TransportGuid.GetEntry(), vehicleAccessory, packet.TimeSpan);
}
}
packet.ReadXORByte(guid1, 4);
/*for (var i = 0; i < 10; ++i)
packet.ReadSingle("unk float");
if (bits98 > 0)
packet.ReadBits((int)bits98);*/
//for (var i = 0; i < bits98; ++i)
// packet.ReadInt32("Int9C", index, i);
if (moveInfo.HasSplineData) //344
{
if (hasFullSpline) //336
{
packet.ReadUInt32("Spline Time", index); //232
packet.ReadSingle("Duration Mod Next", index); //244
// NYI block here
packet.ReadSingle("Duration Mod", index); //240
for (uint i = 0; i < splineCount; i++)
{
Vector3 v = new Vector3();
v.X = packet.ReadSingle(); //0
示例6: ReadMovementUpdateBlock434
//.........这里部分代码省略.........
moveInfo.Position.Z = packet.ReadSingle();
packet.ReadXORByte(guid2, 5);
if (hasTransportData)
{
packet.ReadXORByte(transportGuid, 5);
packet.ReadXORByte(transportGuid, 7);
packet.ReadUInt32("Transport Time", index);
moveInfo.TransportOffset.O = packet.ReadSingle();
if (hasTransportTime2)
packet.ReadUInt32("Transport Time 2", index);
moveInfo.TransportOffset.Y = packet.ReadSingle();
moveInfo.TransportOffset.X = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 3);
moveInfo.TransportOffset.Z = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 0);
if (hasTransportTime3)
packet.ReadUInt32("Transport Time 3", index);
var seat = packet.ReadSByte("Transport Seat", index);
packet.ReadXORByte(transportGuid, 1);
packet.ReadXORByte(transportGuid, 6);
packet.ReadXORByte(transportGuid, 2);
packet.ReadXORByte(transportGuid, 4);
moveInfo.TransportGuid = new WowGuid64(BitConverter.ToUInt64(transportGuid, 0));
packet.AddValue("Transport GUID", moveInfo.TransportGuid, index);
packet.AddValue("Transport Position", moveInfo.TransportOffset, index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature)
{
var vehicleAccessory = new VehicleTemplateAccessory();
vehicleAccessory.AccessoryEntry = guid.GetEntry();
vehicleAccessory.SeatId = seat;
Storage.VehicleTemplateAccessorys.Add(moveInfo.TransportGuid.GetEntry(), vehicleAccessory, packet.TimeSpan);
}
}
moveInfo.Position.X = packet.ReadSingle();
packet.ReadSingle("Pitch Speed", index);
packet.ReadXORByte(guid2, 3);
packet.ReadXORByte(guid2, 0);
packet.ReadSingle("Swim Speed", index);
moveInfo.Position.Y = packet.ReadSingle();
packet.ReadXORByte(guid2, 7);
packet.ReadXORByte(guid2, 1);
packet.ReadXORByte(guid2, 2);
moveInfo.WalkSpeed = packet.ReadSingle("Walk Speed", index) / 2.5f;
if (hasTimestamp)
packet.ReadUInt32("Time", index);
packet.ReadSingle("FlyBack Speed", index);
packet.ReadXORByte(guid2, 6);
packet.ReadSingle("Turn Speed", index);
if (hasOrientation)
moveInfo.Orientation = packet.ReadSingle();
moveInfo.RunSpeed = packet.ReadSingle("Run Speed", index) / 7.0f;
示例7: ReadMovementUpdateBlock432
//.........这里部分代码省略.........
X = packet.ReadSingle()
};
packet.AddValue("Spline Endpoint", endPoint, index);
}
if (hasTransportData)
{
packet.ReadXORByte(transportGuid, 6);
if (hasTransportTime2)
packet.ReadInt32("Transport Time 2", index);
var seat = packet.ReadByte("Transport Seat", index);
moveInfo.TransportOffset.O = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 7);
moveInfo.TransportOffset.Y = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 3);
if (hasTransportTime3)
packet.ReadInt32("Transport Time 3", index);
packet.ReadInt32("Transport Time", index);
packet.ReadXORByte(transportGuid, 0);
packet.ReadXORByte(transportGuid, 1);
moveInfo.TransportOffset.X = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 4);
moveInfo.TransportOffset.Z = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 5);
packet.ReadXORByte(transportGuid, 2);
moveInfo.TransportGuid = new WowGuid64(BitConverter.ToUInt64(transportGuid, 0));
packet.AddValue("Transport GUID", moveInfo.TransportGuid, index);
packet.AddValue("Transport Position", moveInfo.TransportOffset, index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature)
{
VehicleTemplateAccessory vehicleAccessory = new VehicleTemplateAccessory
{
Entry = moveInfo.TransportGuid.GetEntry(),
AccessoryEntry = guid.GetEntry(),
SeatId = seat
};
Storage.VehicleTemplateAccessories.Add(vehicleAccessory, packet.TimeSpan);
}
}
moveInfo.Position = new Vector3 {Z = packet.ReadSingle()};
packet.ReadSingle("FlyBack Speed", index);
moveInfo.Position.Y = packet.ReadSingle();
packet.ReadXORByte(guid2, 4);
packet.ReadXORByte(guid2, 0);
moveInfo.Position.X = packet.ReadSingle();
if (hasFallData)
{
packet.ReadInt32("Time Fallen", index);
if (hasFallDirection)
{
packet.ReadSingle("Jump Sin", index);
packet.ReadSingle("Jump Velocity", index);
packet.ReadSingle("Jump Cos", index);
}
packet.ReadSingle("Fall Start Velocity", index);
}
if (hasOrientation)
示例8: ReadMovementUpdateBlock510
//.........这里部分代码省略.........
packet.ReadSingle("Jump Sin", index);
}
packet.ReadSingle("Fall Start Velocity", index);
packet.ReadInt32("Time Fallen", index);
}
if (hasTransportData)
{
moveInfo.TransportOffset.Z = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 4);
moveInfo.TransportOffset.X = packet.ReadSingle();
if (hasTransportTime3)
packet.ReadUInt32("Transport Time 3", index);
packet.ReadXORByte(transportGuid, 6);
packet.ReadXORByte(transportGuid, 5);
packet.ReadXORByte(transportGuid, 1);
moveInfo.TransportOffset.O = packet.ReadSingle();
moveInfo.TransportOffset.Y = packet.ReadSingle();
var seat = packet.ReadSByte("Transport Seat", index);
packet.ReadXORByte(transportGuid, 7);
if (hasTransportTime2)
packet.ReadUInt32("Transport Time 2", index);
packet.ReadUInt32("Transport Time", index);
packet.ReadXORByte(transportGuid, 0);
packet.ReadXORByte(transportGuid, 2);
packet.ReadXORByte(transportGuid, 3);
moveInfo.TransportGuid = packet.WriteGuid("Transport GUID", transportGuid, index);
packet.AddValue("Transport Position", moveInfo.TransportOffset, index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature)
{
VehicleTemplateAccessory vehicleAccessory = new VehicleTemplateAccessory
{
Entry = moveInfo.TransportGuid.GetEntry(),
AccessoryEntry = guid.GetEntry(),
SeatId = seat
};
Storage.VehicleTemplateAccessories.Add(vehicleAccessory, packet.TimeSpan);
}
}
packet.ReadXORByte(guid2, 1);
packet.ReadSingle("Turn Speed", index);
moveInfo.Position.Y = packet.ReadSingle();
packet.ReadXORByte(guid2, 3);
moveInfo.Position.Z = packet.ReadSingle();
if (hasOrientation)
moveInfo.Orientation = packet.ReadSingle();
packet.ReadSingle("Run Back Speed", index);
if (hasSplineElevation)
packet.ReadSingle("Spline Elevation", index);
packet.ReadXORByte(guid2, 0);
packet.ReadXORByte(guid2, 6);
for (var i = 0u; i < unkLoopCounter2; ++i)
packet.ReadUInt32("Unk2 UInt32", index, (int)i);
moveInfo.Position.X = packet.ReadSingle();
if (hasTimestamp)
示例9: ReadMovementUpdateBlock
//.........这里部分代码省略.........
packet.ReadSingle("Out", index, i);
}
if (ClientVersion.AddedInVersion(ClientVersionBuild.V6_2_0_20173))
packet.ResetBitReader();
packet.ReadBits("FilterFlags", 2, index);
}
for (var i = 0; i < pointsCount; ++i)
packet.ReadVector3("Points", index, i);
}
}
}
if (hasMovementTransport) // 456
{
moveInfo.TransportGuid = packet.ReadPackedGuid128("TransportGUID", index);
moveInfo.TransportOffset = packet.ReadVector4("TransportPosition", index);
var seat = packet.ReadByte("VehicleSeatIndex", index);
packet.ReadUInt32("MoveTime", index);
packet.ResetBitReader();
var hasPrevMoveTime = packet.ReadBit("HasPrevMoveTime", index);
var hasVehicleRecID = packet.ReadBit("HasVehicleRecID", index);
if (hasPrevMoveTime)
packet.ReadUInt32("PrevMoveTime", index);
if (hasVehicleRecID)
packet.ReadInt32("VehicleRecID", index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature)
{
var vehicleAccessory = new VehicleTemplateAccessory
{
AccessoryEntry = guid.GetEntry(),
SeatId = seat
};
Storage.VehicleTemplateAccessorys.Add(moveInfo.TransportGuid.GetEntry(), vehicleAccessory, packet.TimeSpan);
}
}
if (hasStationaryPosition) // 480
{
moveInfo.Position = packet.ReadVector3();
moveInfo.Orientation = packet.ReadSingle();
packet.AddValue("Stationary Position", moveInfo.Position, index);
packet.AddValue("Stationary Orientation", moveInfo.Orientation, index);
}
if (hasCombatVictim) // 504
packet.ReadPackedGuid128("CombatVictim Guid", index);
if (hasServerTime) // 516
packet.ReadUInt32("ServerTime", index);
if (hasVehicleCreate) // 528
{
moveInfo.VehicleId = packet.ReadUInt32("RecID", index);
packet.ReadSingle("InitialRawFacing", index);
}
示例10: ReadMovementUpdateBlock
//.........这里部分代码省略.........
packet.ReadSingle("InitialRawFacing", index);
}
if (hasAnimKitCreate)
{
packet.ReadUInt16("AiID", index);
packet.ReadUInt16("MovementID", index);
packet.ReadUInt16("MeleeID", index);
}
if (hasRotation)
moveInfo.Rotation = packet.ReadPackedQuaternion("GameObject Rotation", index);
for (var i = 0; i < pauseTimesCount; ++i)
packet.ReadInt32("PauseTimes", index, i);
if (hasMovementTransport)
{
packet.ResetBitReader();
moveInfo.TransportGuid = packet.ReadPackedGuid128("TransportGUID", index);
moveInfo.TransportOffset = packet.ReadVector4("TransportPosition", index);
var seat = packet.ReadByte("VehicleSeatIndex", index);
packet.ReadUInt32("MoveTime", index);
var hasPrevMoveTime = packet.ReadBit("HasPrevMoveTime", index);
var hasVehicleRecID = packet.ReadBit("HasVehicleRecID", index);
if (hasPrevMoveTime)
packet.ReadUInt32("PrevMoveTime", index);
if (hasVehicleRecID)
packet.ReadInt32("VehicleRecID", index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature)
{
VehicleTemplateAccessory vehicleAccessory = new VehicleTemplateAccessory
{
Entry = moveInfo.TransportGuid.GetEntry(),
AccessoryEntry = guid.GetEntry(),
SeatId = seat
};
Storage.VehicleTemplateAccessories.Add(vehicleAccessory, packet.TimeSpan);
}
}
if (hasAreaTrigger)
{
packet.ResetBitReader();
// CliAreaTrigger
packet.ReadInt32("ElapsedMs", index);
packet.ReadVector3("RollPitchYaw1", index);
packet.ReadBit("HasAbsoluteOrientation", index);
packet.ReadBit("HasDynamicShape", index);
packet.ReadBit("HasAttached", index);
packet.ReadBit("HasFaceMovementDir", index);
packet.ReadBit("HasFollowsTerrain", index);
packet.ReadBit("Unk bit WoD62x", index);
var hasTargetRollPitchYaw = packet.ReadBit("HasTargetRollPitchYaw", index);
var hasScaleCurveID = packet.ReadBit("HasScaleCurveID", index);
var hasMorphCurveID = packet.ReadBit("HasMorphCurveID", index);
var hasFacingCurveID = packet.ReadBit("HasFacingCurveID", index);
示例11: ReadMovementUpdateBlock504
//.........这里部分代码省略.........
packet.AddValue("Spline Endpoint", endPoint, index);
}
for (var i = 0; i < field9C; ++i)
packet.ReadUInt32();
moveInfo.WalkSpeed = packet.ReadSingle("Walk Speed", index) / 2.5f;
if (hasTransportData)
{
packet.ReadXORByte(transportGuid, 4);
packet.ReadXORByte(transportGuid, 0);
moveInfo.TransportOffset.Y = packet.ReadSingle();
moveInfo.TransportOffset.X = packet.ReadSingle();
var seat = packet.ReadSByte("Transport Seat", index);
packet.ReadXORByte(transportGuid, 7);
packet.ReadXORByte(transportGuid, 3);
if (hasTransportTime3)
packet.ReadUInt32("Transport Time 3", index);
packet.ReadXORByte(transportGuid, 6);
moveInfo.TransportOffset.O = packet.ReadSingle();
packet.ReadUInt32("Transport Time", index);
packet.ReadXORByte(transportGuid, 2);
packet.ReadXORByte(transportGuid, 1);
moveInfo.TransportOffset.Z = packet.ReadSingle();
packet.ReadXORByte(transportGuid, 5);
if (hasTransportTime2)
packet.ReadUInt32("Transport Time 2", index);
moveInfo.TransportGuid = new WowGuid(BitConverter.ToUInt64(transportGuid, 0));
packet.AddValue("Transport GUID", moveInfo.TransportGuid, index);
packet.AddValue("Transport Position", moveInfo.TransportOffset, index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Unit)
{
var vehicleAccessory = new VehicleTemplateAccessory();
vehicleAccessory.AccessoryEntry = guid.GetEntry();
vehicleAccessory.SeatId = seat;
Storage.VehicleTemplateAccessorys.Add(moveInfo.TransportGuid.GetEntry(), vehicleAccessory, packet.TimeSpan);
}
}
packet.ReadXORByte(guid2, 2);
if (hasFallData)
{
packet.ReadInt32("Time Fallen", index);
if (hasFallDirection)
{
packet.ReadSingle("Jump Sin", index);
packet.ReadSingle("Jump Cos", index);
packet.ReadSingle("Jump Velocity", index);
}
packet.ReadSingle("Fall Start Velocity", index);
}
packet.ReadXORByte(guid2, 7);
if (hasTimestamp)
packet.ReadUInt32("Time", index);
packet.ReadSingle("Fly Speed", index);
moveInfo.Position.X = packet.ReadSingle();
if (hasFieldA8)
packet.ReadUInt32();
示例12: ReadMovementUpdateBlock
//.........这里部分代码省略.........
}
packet.ReadInt32("Spline Full Time", index);
}
moveInfo.Position.Y = packet.ReadSingle();
moveInfo.Position.Z = packet.ReadSingle();
packet.ReadInt32("Spline Id", index);
moveInfo.Position.X = packet.ReadSingle();
}
if (hasTransportData)
{
packet.ReadXORByte(transportGuid, 4);
moveInfo.TransportOffset.Z = packet.ReadSingle();
moveInfo.TransportOffset.Y = packet.ReadSingle();
packet.ReadUInt32("Transport Time", index);
var seat = packet.ReadByte("Transport Seat", index);
packet.ReadXORBytes(transportGuid, 3, 1, 6);
if (hasTransportTime2)
packet.ReadUInt32("Transport Time 2", index);
packet.ReadXORByte(transportGuid, 5);
moveInfo.TransportOffset.O = packet.ReadSingle();
moveInfo.TransportOffset.X = packet.ReadSingle();
packet.ReadXORBytes(transportGuid, 2, 0, 7);
if (hasTransportTime3)
packet.ReadUInt32("Transport Time 3", index);
moveInfo.TransportGuid = new WowGuid(BitConverter.ToUInt64(transportGuid, 0));
packet.AddValue("Transport GUID", moveInfo.TransportGuid, index);
packet.AddValue("Transport Position", moveInfo.TransportOffset, index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Unit)
{
var vehicleAccessory = new VehicleTemplateAccessory();
vehicleAccessory.AccessoryEntry = guid.GetEntry();
vehicleAccessory.SeatId = seat;
Storage.VehicleTemplateAccessorys.Add(moveInfo.TransportGuid.GetEntry(), vehicleAccessory, packet.TimeSpan);
}
}
packet.ReadXORBytes(guid1, 2, 1);
packet.ReadSingle("RunBack Speed", index);
packet.ReadSingle("Fly Speed", index);
packet.ReadXORBytes(guid1, 0, 3);
packet.ReadSingle("SwimBack Speed", index);
if (hasFallData)
{
if (hasFallDirection)
{
packet.ReadSingle("Jump Sin", index);
packet.ReadSingle("Jump Velocity", index);
packet.ReadSingle("Jump Cos", index);
}
packet.ReadSingle("Fall Start Velocity", index);
packet.ReadUInt32("Time Fallen", index);
}
packet.ReadSingle("Turn Speed", index);
packet.ReadXORByte(guid1, 5);
moveInfo.Position.Z = packet.ReadSingle();
if (hasOrientation)
moveInfo.Orientation = packet.ReadSingle();
示例13: ReadMovementUpdateBlock548
//.........这里部分代码省略.........
}
if (hasLiving) // 368
{
if (hasTransport) // 96
{
packet.ReadXORByte(transportGuid, 7); // 55
moveInfo.TransportOffset.X = packet.ReadSingle(); // 56
if (hasTransportTime3) // 92
packet.ReadUInt32("Transport Time 3", index); // 88
moveInfo.TransportOffset.O = packet.ReadSingle(); // 68
moveInfo.TransportOffset.Y = packet.ReadSingle(); // 60
packet.ReadXORByte(transportGuid, 4); // 52
packet.ReadXORByte(transportGuid, 1); // 49
packet.ReadXORByte(transportGuid, 3); // 51
moveInfo.TransportOffset.Z = packet.ReadSingle(); // 64
packet.ReadXORByte(transportGuid, 5); // 53
if (hasTransportTime2) // 84
packet.ReadUInt32("Transport Time 2", index); // 80
packet.ReadXORByte(transportGuid, 0); // 48
var seat = packet.ReadSByte("Transport Seat", index); // 72
packet.ReadXORByte(transportGuid, 6); // 54
packet.ReadXORByte(transportGuid, 2); // 50
packet.ReadUInt32("Transport Time", index); // 76
moveInfo.TransportGuid = new WowGuid64(BitConverter.ToUInt64(transportGuid, 0));
packet.AddValue("Transport GUID", moveInfo.TransportGuid, index);
packet.AddValue("Transport Position", moveInfo.TransportOffset, index);
if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle &&
guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature)
{
VehicleTemplateAccessory vehicleAccessory = new VehicleTemplateAccessory
{
Entry = moveInfo.TransportGuid.GetEntry(),
AccessoryEntry = guid.GetEntry(),
SeatId = seat
};
Storage.VehicleTemplateAccessories.Add(vehicleAccessory, packet.TimeSpan);
}
}
packet.ReadXORByte(guid1, 4); // 12
for (var i = 0; i < loopcnt; i++ ) // 352
{
packet.ReadSingle("Single364", index); // 364
packet.ReadSingle("Single368", index); // 368
packet.ReadSingle("Single360", index); // 360
packet.ReadInt32("Int356", index); // 356
packet.ReadInt32("Int372", index); // 372
packet.ReadSingle("Single376", index); // 376
}
if (moveInfo.HasSplineData) // 344
{
if (bit336) // 336
{
packet.ReadUInt32("Spline Time", index); // 232
packet.ReadSingle("Spline Duration Multiplier Next", index); // 244
示例14: TestHasEntry
public void TestHasEntry()
{
var guid1 = new WowGuid(0xF130005C0500105F);
var guid2 = new WowGuid(0x600000002B2D7C9);
var guid3 = new WowGuid(0);
Assert.IsTrue(guid1.HasEntry());
Assert.IsFalse(guid2.HasEntry());
Assert.IsFalse(guid3.HasEntry());
}