本文整理汇总了C#中Server.Targeting.Target类的典型用法代码示例。如果您正苦于以下问题:C# Target类的具体用法?C# Target怎么用?C# Target使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Target类属于Server.Targeting命名空间,在下文中一共展示了Target类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnTarget
public override bool OnTarget( Mobile m, Target t, object o )
{
if ( m.Spell != null && m.Spell is MarkSpell && m.AccessLevel == AccessLevel.Player )
{
m.SendLocalizedMessage( 501800 ); // You cannot mark an object at that location.
return false;
}
return base.OnTarget( m, t, o );
}
示例2: ProcessTarget
private void ProcessTarget( Target targ, NeedDelegate[] func )
{
Mobile toHelp = Find( func );
if ( toHelp != null )
{
if ( targ.Range != -1 && !m_Mobile.InRange( toHelp, targ.Range ) )
{
DoMove( m_Mobile.GetDirectionTo( toHelp ) | Direction.Running );
}
else
{
targ.Invoke( m_Mobile, toHelp );
}
}
else
{
targ.Cancel( m_Mobile, TargetCancelType.Canceled );
}
}
示例3: ClearTarget
public void ClearTarget()
{
m_Target = null;
}
示例4: CheckTarget
public virtual bool CheckTarget( Mobile from, Target targ, object targeted )
{
return true;
}
示例5: CheckTarget
public override bool CheckTarget( Mobile from, Target targ, object targeted )
{
if ( !base.CheckTarget( from, targ, targeted ) )
return false;
object root = this.RootParent;
if ( root is PlayerVendor && ((PlayerVendor)root).IsOwner( from ) )
return true;
return ( targ is PlayerVendor.PVBuyTarget );
}
示例6: ProcessTarget
public override void ProcessTarget(Target targ)
{
bool isDispel = (targ is DispelSpell.InternalTarget);
bool isParalyze = (targ is ParalyzeSpell.InternalTarget);
bool isTeleport = (targ is TeleportSpell.InternalTarget);
bool isCrossHeal = (targ is GreaterHealSpell.InternalTarget);
bool isTrap = (targ is MagicTrapSpell.InternalTarget);
bool teleportAway = false;
bool isReveal = (targ is RevealSpell.InternalTarget || targ is DetectHidden.InternalTarget);
Mobile toTarget = null;
Mobile toHeal = null;
if (isReveal)
{
targ.Invoke(m_Mobile, m_Mobile);
}
if (isTrap)
{
Pouch p = FindPouch(m_Mobile);
if (p != null)
{
targ.Invoke(m_Mobile, p);
}
else
targ.Cancel(m_Mobile, TargetCancelType.Canceled);
}
if (isDispel)
{
toTarget = FindDispelTarget(false);
if (toTarget != null && m_Mobile.InRange(toTarget, 10) && !toTarget.Paralyzed)
RunFrom(toTarget);
}
if (CrossHeals && isCrossHeal)
{
toHeal = FindHealTarget(true);
if (toHeal != null && !m_Mobile.InRange(toHeal, 8))
{
RunTo(toHeal, CanRun);
}
}
else if (isParalyze || isTeleport)
{
toTarget = FindDispelTarget(true);
if (toTarget == null)
{
toTarget = m_Mobile.Combatant;
if (toTarget != null && !m_Mobile.InRange(toTarget, 8))
RunTo(toTarget, CanRun);
}
else if (m_Mobile.InRange(toTarget, 10))
{
RunFrom(toTarget);
teleportAway = true;
}
else
{
teleportAway = true;
}
}
else
{
if (m_Mobile.ControlOrder == OrderType.Come && isTeleport)
{
toTarget = m_Mobile.ControlMaster;
}
else
{
toTarget = m_Mobile.Combatant;
}
if (toTarget != null)
{
RunTo(toTarget, CanRun);
}
}
if ((targ.Flags & TargetFlags.Harmful) != 0 && toTarget != null)
{
if ((m_Mobile.InRange(toTarget, 10)) && m_Mobile.CanSee(toTarget) && m_Mobile.InLOS(toTarget))
{
targ.Invoke(m_Mobile, toTarget);
}
else if (isDispel)
{
targ.Cancel(m_Mobile, TargetCancelType.Canceled);
}
}
//.........这里部分代码省略.........
示例7: CheckTarget
public override bool CheckTarget( Mobile from, Target targ, object targeted )
{
if ( !base.CheckTarget( from, targ, targeted ) )
return false;
if ( from.AccessLevel >= AccessLevel.GameMaster )
return true;
return targ.GetType().IsDefined( typeof( PlayerVendorTargetAttribute ), false );
}
示例8: TimeoutTimer
public TimeoutTimer( Target target, Mobile m, TimeSpan delay )
: base(delay)
{
m_Target = target;
m_Mobile = m;
if ( delay >= ThirtySeconds )
Priority = TimerPriority.FiveSeconds;
else if ( delay >= TenSeconds )
Priority = TimerPriority.OneSecond;
else if ( delay >= OneSecond )
Priority = TimerPriority.TwoFiftyMS;
else
Priority = TimerPriority.TwentyFiveMS;
}
示例9: CheckTarget
//This Wraps the target and resets the targeted ITEM to it's child BASECREATURE
//Unfortunately, there is no accessible Array for a player's followers,
//so we must use the GetMobilesInRage(int range) method for our reference checks!
public override bool CheckTarget( Mobile from, Target targ, object targeted )
{
#region CheckEntity
//Check to see if we have an Entity Link (Child BaseCreature)
//If not, create one!
//(Without Combatant Change, since this is for pets)
PlayerMobile pm = from as PlayerMobile;
if( pm != null )
{
if( m_Child != null && !m_Child.Deleted )
{
m_Child.Update( );
}
else
{
ProvideEntity( );
if( m_Child != null && !m_Child.Deleted )
{
m_Child.Update( );
}
}
}
#endregion
if( targ is AIControlMobileTarget && targeted == this )
{
//Wrap the target
AIControlMobileTarget t = targ as AIControlMobileTarget;
//Get the OrderType
OrderType order = t.Order;
//Search for our controlled pets within screen range
foreach( Mobile m in from.GetMobilesInRange( 16 ) )
{
if( !( m is BaseCreature ) )
continue;
BaseCreature bc = m as BaseCreature;
if( from != null && !from.Deleted && from.Alive )
{
if( bc == null || bc.Deleted || !bc.Alive || !bc.Controlled || bc.ControlMaster != from )
continue;
//Reset the pet's ControlTarget and OrderType.
bc.ControlTarget = m_Child;
bc.ControlOrder = t.Order;
}
}
}
return base.CheckTarget( from, targ, targeted );
}
示例10: ProcessTarget
private void ProcessTarget( Target targ )
{
bool isDispel = ( targ is DispelSpell.InternalTarget );
bool isParalyze = ( targ is ParalyzeSpell.InternalTarget );
Mobile toTarget;
if ( isDispel )
{
toTarget = FindDispelTarget( false );
if ( !SmartAI && toTarget != null )
RunTo( toTarget );
else if ( toTarget != null && m_Mobile.InRange( toTarget, 8 ) )
RunFrom( toTarget );
}
else if ( SmartAI && isParalyze )
{
toTarget = FindDispelTarget( true );
if ( toTarget == null )
{
toTarget = m_Mobile.Combatant;
if ( toTarget != null )
RunTo( toTarget );
}
}
else
{
toTarget = m_Mobile.Combatant;
if ( toTarget != null )
RunTo( toTarget );
}
if ( (targ.Flags & TargetFlags.Harmful) != 0 && toTarget != null )
{
if ( (targ.Range == -1 || m_Mobile.InRange( toTarget, targ.Range )) && m_Mobile.CanSee( toTarget ) && m_Mobile.InLOS( toTarget ) )
{
targ.Invoke( m_Mobile, toTarget );
}
else if ( isDispel )
{
targ.Cancel( m_Mobile, TargetCancelType.Canceled );
}
}
else if ( (targ.Flags & TargetFlags.Beneficial) != 0 )
{
targ.Invoke( m_Mobile, m_Mobile );
}
else
{
targ.Cancel( m_Mobile, TargetCancelType.Canceled );
}
}
示例11: OnTarget
public virtual bool OnTarget( Mobile m, Target t, object o )
{
if ( m_Parent != null )
return m_Parent.OnTarget( m, t, o );
return true;
}
示例12: OnTarget
public override bool OnTarget(Mobile m, Target t, object o)
{
if (!Participant(m))
return false;
return base.OnTarget(m, t, o);
}
示例13: OnTarget
public override bool OnTarget( Mobile m, Target t, object o )
{
if( m_ExistingRegion != null )
{
return m_ExistingRegion.OnTarget(m,t,o);
}
else
{
return base.OnTarget(m,t,o);
}
}
示例14: OnTarget
public virtual bool OnTarget( Mobile m, Target t, object o )
{
return true;
}
示例15: OnTarget
public override bool OnTarget(Mobile m, Target t, object o)
{
if (Battle != null && Battle.State != PvPBattleState.Internal && !Battle.Hidden && !Battle.OnTarget(m, t, o))
{
return false;
}
return base.OnTarget(m, t, o);
}