本文整理匯總了C#中WCell.RealmServer.Entities.Unit.PushFieldUpdateToPlayer方法的典型用法代碼示例。如果您正苦於以下問題:C# Unit.PushFieldUpdateToPlayer方法的具體用法?C# Unit.PushFieldUpdateToPlayer怎麽用?C# Unit.PushFieldUpdateToPlayer使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類WCell.RealmServer.Entities.Unit
的用法示例。
在下文中一共展示了Unit.PushFieldUpdateToPlayer方法的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);
}
}