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);
}
}