А пофигу.. сделал альтернативу:
public OnGameFrame()
{
for(new i=0;i<=MaxClients;i++)
{
if(ValidPlayer(i,true)&&War3_GetRace(i)==thisRaceID)
{
for(new y=0;y<=MaxClients;y++)
{
if(ValidPlayer(y,true)&&GetClientTeam(y)!=GetClientTeam(i))
{
if(bMetka[y]==true)
{
GetClientAbsOrigin(y,this_pos);
this_pos[2]+=20;
TE_SetupGlowSprite(this_pos,GlowSprite,0.1,0.6,80);
TE_SendToClient(i,0.1);
}
}
}
}
}
}
public Action:metkaoff(Handle:h, any:client)
{
if(IS_PLAYER(client))
{
bMetka[client]=false;
}
}
public OnAbilityCommand(client,ability,bool:pressed)
{
if(War3_GetRace(client)==thisRaceID && ability==1 && pressed && IsPlayerAlive(client))
{
new skill_level=War3_GetSkillLevel(client,thisRaceID,SKILL_METKA);
if(skill_level>0)
{
if(War3_SkillNotInCooldown(client,thisRaceID,SKILL_METKA,true)&&!Silenced(client))
{
War3_CooldownMGR(client,Ability1CooldownTime,thisRaceID,SKILL_METKA);
for (new i=1;i<=MaxClients;i++)
{
if(ValidPlayer(i,true)&&IsPlayerAlive(i))
{
if(i>0 && !W3HasImmunity(i,Immunity_Ultimates))
{
PrintHintText(client,"%T","Metka: Marked Target",client);
bMetka[i]=true;
MetkaBy[i]=client;
CreateTimer(MetkaDuration[skill_level],metkaoff,i);
}
else
{
PrintHintText(client,"No target");
}
}
}
}
}
}
}