busy playing a game with a friend right now, but for now i can give you a snippet of the “Targeting Rule” that i use for all my AI.
rule("Targeting List")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Dummy Bot(Event Player) == True;
Is Alive(Event Player) == True;
}
actions
{
Event Player.Targets = Filtered Array(All Living Players(Opposite Team Of(Team Of(Event Player))), Is In Line of Sight(
Eye Position(Event Player), Eye Position(Current Array Element), Barriers Do Not Block LOS) == True);
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets,
Hero Being Duplicated(Current Array Element) == Hero(Sombra) || Hero Of(Current Array Element) == Hero(Sombra)
? Current Array Element.Invisible_Cooldown == 0 && Current Array Element.Is_Visible_Array == Empty Array && Distance Between(
Event Player, Current Array Element) > 4 : Is Dead(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, !Has Spawned(
Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, Has Status(
Current Array Element, Invincible)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, Has Status(
Current Array Element, Phased Out)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(D.Va) || Hero Of(Current Array Element) == Hero(D.Va))
&& Is Firing Secondary(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Sigma) || Hero Of(Current Array Element) == Hero(Sigma))
&& Is Using Ability 1(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Orisa) || Hero Of(Current Array Element) == Hero(Orisa))
&& Is Using Ability 2(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Doomfist) || Hero Of(Current Array Element) == Hero(Doomfist))
&& Is Using Ultimate(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Genji) || Hero Of(Current Array Element) == Hero(Genji))
&& Is Using Ability 2(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Mei) || Hero Of(Current Array Element) == Hero(Mei))
&& Is Using Ability 1(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Moira) || Hero Of(Current Array Element) == Hero(Moira))
&& Is Using Ability 1(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Reaper) || Hero Of(Current Array Element) == Hero(Reaper))
&& Is Using Ability 1(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Venture) || Hero Of(Current Array Element) == Hero(Venture))
&& Is Using Ability 1(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Tracer) || Hero Of(Current Array Element) == Hero(Tracer))
&& Is Using Ability 2(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, (
Hero Being Duplicated(Current Array Element) == Hero(Zenyatta) || Hero Of(Current Array Element) == Hero(Zenyatta))
&& Is Using Ultimate(Current Array Element)));
Modify Player Variable(Event Player, Targets, Remove From Array By Value, Filtered Array(Event Player.Targets, Is Dead(
Current Array Element)));
Event Player.Target_Order = Sorted Array(Event Player.Targets, Distance Between(Event Player, Current Array Element)
* Normalized Health(Current Array Element));
If(Count Of(Event Player.Target_Order) == 0);
Press Button(Event Player, Button(Reload));
End;
Wait(Max(Server Load / 1000, 0.100), Ignore Condition);
Loop If Condition Is True;
}
}
Just Modify it to remove the Echo from the List. (the primary target is index 0, its an array based system)
(that script refences a Script that detects if Sombra is invisible or not, using ‘Invisible_Cooldown’ however those scripts were not included in the snippet)