Example #1
0
 public override void OnUpdate()
 {
     if (WorldUtils.CalculateDistance(personalAI.client.UserChar, targetSpot) < PersonalAI.MOVE_TO_SPOT_DISTANCE)
     {
         personalAI.SwitchToPreviousInStack();
     }
     else if (DateTime.Now - lastSend >= TimeSpan.FromMilliseconds(1000))
     {
         client.SendMoveToCommand(targetSpot.x, targetSpot.y, targetSpot.z);
         lastSend = DateTime.Now;
     }
 }
Example #2
0
    public override void OnUpdate()
    {
        if (DateTime.Now - lastSend < TimeSpan.FromMilliseconds(1000))
        {
            return;
        }

        if (WorldUtils.CalculateDistance(personalAI.client.UserChar, target.live) > PersonalAI.MOVE_TO_TARGET_DISTANCE)
        {
            client.SendMoveToCommand(target.live.X, target.live.Y, target.live.Z);
            lastSend = DateTime.Now;
        }
    }
Example #3
0
    /// <summary>
    /// Looks for a valid target to attack in range.
    /// </summary>
    /// <returns>Actor that is in rage of attack.</returns>
    public ActorScript LookForTarget(int range)
    {
        var query = from npc in SM.npcActorManager.npcProperties
                    let dist = WorldUtils.CalculateDistance(actor.live, npc.Key)
                               where dist <= SEARCH_TARGET_DISTANCE && !npc.Key.Dead && npc.Key.Attackable
                               orderby dist
                               select new
        {
            npc.Value.actorScript,
            dist
        };
        var closest = query.FirstOrDefault();

        return(closest?.actorScript);
    }
Example #4
0
    public override void OnUpdate()
    {
        // check for attackers or look for target
        if (DateTime.Now - lastCheck > checkInterval)
        {
            lastCheck = DateTime.Now;
            if (CheckForTargetsAndSwitch())
            {
                return;
            }
        }

        // check for destination
        if (WorldUtils.CalculateDistance(personalAI.client.UserChar, targetSpot) < PersonalAI.MOVE_TO_SPOT_DISTANCE)
        {
            personalAI.SwitchToPreviousInStack();
        }
        else if (DateTime.Now - lastSend >= TimeSpan.FromMilliseconds(200))
        {
            client.SendMoveToCommand(targetSpot.x, targetSpot.y, targetSpot.z);
            lastSend = DateTime.Now;
        }
    }