Есть:
- выделение по биндам глады / бишы / ЕЕ(ШЕ) / Оверы
- Холд тартег
- Подсказки на ЮЗ всяких фишек (талики/уд  и т.д.)
- Антибек
- Диспел бафов (нужно настроить)

Код:
uses SysUtils,Classes;

procedure overi(p: pointer);    // оверы на Z       
 
var
keycode,j,i,m,k:integer;
char2,char3:tl2char;
	begin
    while engine.status=lsonline do begin
 
         
    Engine.WaitAction([laKey],keycode,i);
      
if KeyCode = $5A { бинд Z } then begin
	for j := 0 to CharList.count -1 do begin
	Char2 := CharList.Items(j);
    if not (char2.abnormalid=2048) and (User.DistTo(char2)<1000) and not (char2.ismember) and (char2.classid=115) and not (char2.clanid=user.clanid) and (char2.pvp) and not (char2.dead) and not (user.target.name=char2.name)
    then
    	begin 
        Engine.Settarget(char2.name);break
    	end;
    end;
 
	end; 
end;
end;

procedure EE(p: pointer);    // ЕЕ/ШЕ на V      
 
var
keycode,j,i,m,k:integer;
char2,char3:tl2char;
	begin
    while engine.status=lsonline do begin
 
         
    Engine.WaitAction([laKey],keycode,i);
      
if KeyCode = $56 { бинд V } then begin
	for j := 0 to CharList.count -1 do begin
	Char2 := CharList.Items(j);
    if (((char2.classid=105) or (char2.classid=112)) and not (char2.abnormalid=2048) and (User.DistTo(char2)<1000) and not (char2.ismember) and not (char2.clanid=user.clanid) and (char2.pvp)) and not (char2.dead) and not (user.target.name=char2.name)
    then
    	begin 
        Engine.Settarget(char2.name);break
    	end;
    end;
 
	end; 
end;
end;
 
procedure Cardinali (p: pointer);   // бишы на X       
 
var
keycode,j,i,m,k:integer;
char2,char3:tl2char;
begin
	while engine.status=lsonline do begin
    Engine.WaitAction([laKey],keycode,i);
      
    if KeyCode = $58 { бинд X} then begin
    for j := 0 to CharList.count -1 do begin
    Char2 := CharList.Items(j);
    	if not (char2.abnormalid=2048)and (User.DistTo(char2)<1000) and not (char2.ismember) and (char2.classid=97) and not (char2.clanid=user.clanid) and (char2.pvp) and not (char2.dead) and not (user.target.name=char2.name)
    	then
        begin 
        	Engine.Settarget(char2.name);break
        end;
    	end;
 
    end; 
	end;
end;

procedure antiback;
var
eu,char2:tl2char;
obj,obj1,cast:tl2effect;
i,j,g,pis,pis2:integer;
item: TL2Item;
 
 
function proxy : boolean;
 
begin
result:=false;
 
for i := 0 to CharList.count -1 do begin
Char2 := CharList.Items(i);
 
if (char2.cast.endtime > 0) and  (User.DistTo(char2)<100) and (char2.cast.id=30)  and not (char2.dead) and 
 
(User.DistTo(char2)<100)
then begin
 
Engine.SetTarget(char2.name);
Engine.USeSkill(1164,true);
end;
end;
 
 
result:=true;
end;
 
 
begin
while engine.status = lsonline do begin
if proxy then delay(100);
Delay(100);
end;
end;
 
procedure gladi (p: pointer);       // глады на С   
 
var
keycode,j,i,m,k:integer;
char2,char3:tl2char;
begin
while engine.status=lsonline do begin
Engine.WaitAction([laKey],keycode,i);
      
if KeyCode = $43 { бинд C } then begin  
for j := 0 to CharList.count -1 do begin
Char2 := CharList.Items(j);
if  not (char2.abnormalid=2048)and (User.DistTo(char2)<1000) and not (char2.ismember) and (char2.classid=88) and not (char2.clanid=user.clanid) and (char2.pvp) and not (char2.dead) and (char2.target.ismember)
then
begin 
Engine.Settarget(char2.name);break
end;
end;
 
end; 
end;
end;
 
 
Procedure dispel;
var i: integer;
begin
while true do begin
For i := 0 to user.buffs.Count-1 do begin
    Case user.buffs.Items(i).ID of
         1062,785,271,310,274,275,530,1519,1388,1518,2876,2875,2877,2887,2888,2886,269,982,1191,1189,1353,1182,1189,1191,1502,1261,1537,1086,1392,1393
         : begin engine.dispel(user.buffs.Items(i).name);  end;
    end;    
end;
end;
end;
 
 
 
procedure holdtarget;
var
charT:tl2live;
obj:tl2effect;
 
begin
 while engine.status = lsonline do begin
  if (user.target.valid) then if not (User.Buffs.byID(18,obj)) and not (User.Buffs.ByID(28,obj)) then    chart:=user.target;
  if not user.target.valid then while not (User.Target.name = chart.name) do Engine.SetTarget(chart.name);
 delay(100);
 end;
end;
 
procedure tank;
var
eu,char2:tl2char;
obj,obj1,cast:tl2effect;
i,j,g,pis,pis2:integer;
 
 
 
function proxy : boolean;
 
begin
result:=false;
 
for i := 0 to CharList.count -1 do begin
Char2 := CharList.Items(i);
 
if (char2.cast.endtime>0)and not (char2.ismember) and (char2.cast.id=916)  and not (char2.dead)  and
(User.DistTo(char2)<5200)
then begin
delay(500);
engine.say('Юзает Зеркало   ->>' + char2.name , 2 , User.name);
delay(7100);
engine.say('Зеркало офф ->>' + char2.name, 2 , user.name );break
end;
 
if (char2.cast.endtime>0) and  (Char2.cast.id=3284) and not (char2.dead)  and
(User.DistTo(char2)<1200)
then begin
delay(500);
engine.say('Юзает Талик УД   ->>' + char2.name , 2 , user.name);
delay(9100);
engine.say('Талик УД офф ->>' + char2.name, 2 , user.name);break
end;
 
if (char2.cast.endtime>0) and (char2.cast.id=1476) and not (char2.dead) 
then begin
delay(500);
engine.say(' apetit ' + char2.name ,2,user.name);
delay(30000);
engine.say('apetit off ' , 2 , user.name);break
end;
 
if (char2.cast.endtime>0) and (char2.cast.id=789) then begin
delay(500);
engine.say('WILKU UZAET -> ' +char2.name,2,user.name);
delay(59000);
engine.say('wilka off' ,2 , user.name);break
end;
 
if (char2.cast.endtime>0) and (char2.cast.id=3282) and not (char2.dead)
then begin
engine.say('Maximum clarity   ->' + char2.name , 2 , user.name);
delay(120000);
engine.say('max clarity -->> ' + char2.name , 2 ,user.name ) ;break
end;
 
end;
result:=true;
end;
 
 
begin
while engine.status = lsonline do begin
if proxy then delay(1);
Delay(1);
end;
end;
 
begin
script.newthread(@antiback);
script.newthread(@tank);
script.newthread(@holdtarget);
script.newthread(@dispel);
script.newthread(@gladi);
script.newthread(@cardinali);
script.newthread(@EE);
script.newthread(@overi);
end.

Для смены биндов воспользуйтесь этой ссылкой