const
range:integer=500;
mon_ID:array[0..3] of integer = (111, 222, 333, 444);
function CheckMobID(ID:integer):boolean;
var i:integer;
begin
result:=false;
for i:=0 to high(mon_ID) do
begin
if(mon_id=ID) then
begin
result:=true;
break;
end;
end;
end;
procedure MoveAndTarget;
var
i:integer;
mob:tl2live;
begin
while (engine.status=lsonline) do
begin
if((user.target.dead) or (user.target=nil)) then
begin
for i:=0 to npclist.count-1 do
begin
mob:=npclist(i);
if((not mob.dead) and (mob.attackable) and (mob.valid) and (mob.inzone) and (CheckMobID(mob.ID) or (mob.atkoid=user.oid))) then
begin
if(user.distto(mob)>range) then
begin
engine.moveto(mob, -range);
engine.settarget(mob);
break;
end;
if(user.distto(mob)<=range) then
begin
engine.settarget(mob);
break;
end;
end;
end;
end;
delay(500);
end;
end;
begin
script.newthread(@MoveAndTarget);
end.
в mon_ID:array[0..3] of integer = (111, 222, 333, 444); нужно указать ID мобов, как в примере, так же нужно правильно указать размерность массива - [0..количество ID-1]