本文整理汇总了C#中WCell.RealmServer.Entities.Unit.Mount方法的典型用法代码示例。如果您正苦于以下问题:C# Unit.Mount方法的具体用法?C# Unit.Mount怎么用?C# Unit.Mount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WCell.RealmServer.Entities.Unit
的用法示例。
在下文中一共展示了Unit.Mount方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FlyUnit
public static void FlyUnit(Unit unit, bool startFlight, LinkedListNode<PathVertex> startNode)
{
if (unit.TaxiPaths.Count < 1)
{
throw new InvalidOperationException("Tried to fly Unit without Path given.");
}
var path = unit.TaxiPaths.Peek();
// Stop combat
unit.IsInCombat = false;
// Cannot be invisible when flying
unit.Stealthed = 0;
if (startFlight)
{
// Regulators, Mount Up!
var mount = NPCMgr.GetEntry(unit.Faction.IsAlliance ? path.From.AllianceMountId : path.From.HordeMountId);
if (mount != null)
{
var mountId = mount.GetRandomModel().DisplayId;
unit.Mount(mountId);
if (unit is Character)
{
unit.PushFieldUpdateToPlayer((Character)unit, UnitFields.MOUNTDISPLAYID, mountId);
}
}
unit.OnTaxiStart();
}
unit.LatestTaxiPathNode = startNode ?? path.Nodes.First;
//var next = unit.LatestPathNode.Next.Value;
if (unit.LatestTaxiPathNode == path.Nodes.First)
{
// new flight
unit.taxiTime = 0;
MovementHandler.SendMoveToPacket(unit, path.PathTime, MonsterMoveFlags.Fly, path.Nodes);
}
else
{
// continue:
// set time to the amount that it takes to get this far along the path
// ReSharper disable PossibleNullReferenceException
unit.taxiTime = startNode.Previous.Value.TimeFromStart +
(int)((1000 * startNode.Value.Pos.GetDistance(unit.Position)) / AirSpeed);
// ReSharper restore PossibleNullReferenceException
MovementHandler.SendMoveToPacket(unit, AirSpeed, MonsterMoveFlags.Fly, startNode);
}
}