DarkEmu_GameServer.Systems.AmountControl C# (CSharp) Метод

AmountControl() приватный Метод

private AmountControl ( ) : void
Результат void
        void AmountControl()
        {
            try
            {
                Character.Action.Skill.FoundID[Character.Action.Skill.Found] = Character.Action.Target;
                Character.Action.Skill.Found++;
                if (Character.Action.Skill.Tdistance > 1)
                {
                    object mainObject = GetObjects(Character.Action.Target);
                    if (mainObject == null) return;
                    targetObject target = new targetObject(mainObject, this);
                    float x = target.x - Character.Action.Skill.Tdistance;
                    float y = target.y - Character.Action.Skill.Tdistance;
                    for (int i = 0; i < Systems.Objects.Count; i++)
                    {
                        if (Character.Action.Skill.Found == Character.Action.Skill.Tdistance) return;
                        if (Systems.Objects[i] != null)
                        {
                            obj o = Systems.Objects[i];
                            if (!o.Die && o.LocalType == 1)
                            {
                                if (o.x >= x && o.x <= (x + (Character.Action.Skill.Tdistance * 2)) && o.y >= y - Character.Action.Skill.Tdistance && o.y <= (y + (Character.Action.Skill.Tdistance * 2)) && o.UniqueID != Character.Action.Target)
                                {
                                    if (o.Agro == null) o.Agro = new List<_agro>();
                                    Character.Action.Skill.FoundID[Character.Action.Skill.Found] = o.UniqueID;
                                    Character.Action.Skill.Found++;
                                }
                            }
                        }
                    }
                    lock (Systems.clients)
                    {
                        for (int i = 0; i < Systems.clients.Count; i++)
                        {
                            try
                            {
                                if (Character.Action.Skill.Found == Character.Action.Skill.Tdistance) return;
                                if (Systems.clients[i] != null)
                                {
                                    Systems sys = Systems.clients[i];
                                    if (sys.Character.Information.PvP && sys != this && !sys.Character.State.Die)
                                        if (sys.Character.Information.UniqueID != Character.Action.Target && Character.Information.UniqueID != Character.Action.Target)
                                        {
                                            if (sys.Character.Position.x >= x && sys.Character.Position.x <= (x + (Character.Action.Skill.Tdistance * 2)) && sys.Character.Position.y >= y && sys.Character.Position.y <= (y + (Character.Action.Skill.Tdistance * 2)))
                                            {
                                                Character.Action.Skill.FoundID[Character.Action.Skill.Found] = sys.Character.Information.UniqueID;
                                                Character.Action.Skill.Found++;
                                            }
                                        }
                                }
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine("AmountControl Error on index {1}/{2}: {0}", ex, i, Systems.clients.Count);
                                Systems.Debugger.Write(ex);
                            }
                        }
                    }
                    target = null;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Distance error: " + ex);
            }
        }
Systems