- Рег
- 12 Ноя 2015
- Сообщения
- 25
- Реакции
- 0
//Функции
// Таргеты на кнопки z+x+c+v
// HOld target
// AntiBack
// Reskill
uses SysUtils,Classes;
procedure Mages (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 = $11 (* CTRL *) then begin // ctrl - Маги (Сорк\мм)
for j := 0 to CharList.count -1 do begin
Char2 := CharList.Items(j);
if (((char2.ClassID=94) or (char2.classid=103)or (char2.classid=27)or (char2.classid=12)) and not (char2.ismember) and not (char2.clanid=user.clanid) and (char2.pvp))and not (char2.dead)
(*Поиск проф с айди 94 и 103 сорки\ммы = которые не в парти*)
then
begin
Engine.Settarget(char2.name);break
end;
end;
end; end;
end;
procedure Cardinals (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 = $20 (* SPACE *) then begin // Кнопка SPACE - бишы
for i := 0 to CharList.count -1 do begin
Char2 := CharList.Items(i);
if ((char2.ClassID=97) and not (char2.ismember) and not (char2.clanid=user.clanid) and (char2.pvp) and not (char2.dead)) then
(*Поиск проф с айди 97 и 12 - Бишы *)
begin
Engine.Settarget(char2.name);break
end;
end;
end;
end;
end;
procedure target2 (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
Engine.Settarget('SOBR');
end;
end;
end;
procedure target3 (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 = $58 (* X *) then begin
Engine.Settarget('xImpulse');
end;
end;
end;
procedure target4 (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 = $5A (* Z *) then begin
Engine.Settarget('SOBR');
end;
end;
end;
procedure hold ;
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 KrestNaRes;
Var
DeadLst:TStringList;
lah:TL2Char;
i:integer;
Nick:string;
begin
DeadLst:=TStringList.Create;
While true do
begin
for i:=0 to CharList.count-1 do
begin
if CharList.Items(i).Dead and (DeadLst.IndexOf(CharList.Items(i).Name)=-1) then DeadLst.Add(CharList.Items(i).Name);
if not CharList.Items(i).Dead and (User.DistTo(CharList.Items(i))<1000) and ( (charlist.items(i).classid=97) or (charlist.items(i).classid=90) or (charlist.items(i).classid=97) or
(charlist.items(i).classid=105) or
(charlist.items(i).classid=112) or
(charlist.items(i).classid=94) or
(charlist.items(i).classid=105) or
(charlist.items(i).classid=103) or
(charlist.items(i).classid=110) or
(charlist.items(i).classid=134) or
(charlist.items(i).classid=92) or
(charlist.items(i).classid=109) or
(charlist.items(i).classid=102) or
(charlist.items(i).classid=88)) and (charlist.items(i).pvp) and (user.distto(charlist.items(i))<1200) and (DeadLst.IndexOf(CharList.Items(i).Name)>-1) and not (charlist.items(i).ismember) and not (charlist.items(i).ismember) and not ( charlist.items(i).clanid=user.clanid) then
begin
Nick:=CharList.Items(i).Name;
Engine.SetTarget(Nick);
end;
end;
i:=0;
repeat
if DeadLst.Count>0 then
begin
if not CharList.ByName(DeadLst,lah) or not lah.Dead then
begin
DeadLst.Delete(i);
dec(i);
end;
end;
inc(i);
until i>DeadLst.Count-1;
Delay(200);
end;
end;
begin
script.newthread(@Cardinals);
script.newthread(@Mages);
script.newthread(@target2);
script.newthread(@target3);
script.newthread(@target4);
script.newthread(@hold);
script.newthread(@KrestNaRes);
delay(100)
end.
Скрипт на быстрый рескилл, быстрое выделение в таргет бишей (кнопка Space) и магов (кнопка Ctrl).
Возможность биндить таргеты по никнейму на кнопки z x c v
Так же в скрипте присутствует Антибек и HoldTarget.
uses sysutils,classes;
procedure holdtarget;
var
charT:tl2live;
obj:tl2effect;
begin
while engine.status = lsonline do begin
if (user.target.valid) 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 off -->> ' + char2.name , 2 ,user.name ) ;break
end;
if (char2.cast.endtime>0) and (char2.cast.id=1532) and not (char2.dead)
then begin
engine.say('Prosvet ->' + char2.name , 2 , user.name);
delay(20000);
engine.say('Prosvet off -->> ' + 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;
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 antihide;
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)<250) and (char2.cast.id=922) and not (char2.dead) and
(User.DistTo(char2)<100)
then begin
Engine.USekey('2');
end;
end;
result:=true;
end;
begin
while engine.status = lsonline do begin
if proxy then delay(100);
Delay(100);
end;
end;
begin
script.newthread(@antihide);
script.newthread(@antiback);
script.newthread(@tank);
script.newthread(@holdtarget);
end.
Скрипт для мага поле/олимпиада.
В скрипте есть информер, который оповещает в пм о юзе и окончание того или иного скилла, антибек через скилл Curse Weakness (id можно поменять на любой другой, который понравится)
Информер можно дополнять, думаю что разобраться там не сложно
Так-же присутствует HoldTarget.
//Скрипты получил от друга, на форуме их не видел, по этому держите.
// Таргеты на кнопки z+x+c+v
// HOld target
// AntiBack
// Reskill
uses SysUtils,Classes;
procedure Mages (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 = $11 (* CTRL *) then begin // ctrl - Маги (Сорк\мм)
for j := 0 to CharList.count -1 do begin
Char2 := CharList.Items(j);
if (((char2.ClassID=94) or (char2.classid=103)or (char2.classid=27)or (char2.classid=12)) and not (char2.ismember) and not (char2.clanid=user.clanid) and (char2.pvp))and not (char2.dead)
(*Поиск проф с айди 94 и 103 сорки\ммы = которые не в парти*)
then
begin
Engine.Settarget(char2.name);break
end;
end;
end; end;
end;
procedure Cardinals (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 = $20 (* SPACE *) then begin // Кнопка SPACE - бишы
for i := 0 to CharList.count -1 do begin
Char2 := CharList.Items(i);
if ((char2.ClassID=97) and not (char2.ismember) and not (char2.clanid=user.clanid) and (char2.pvp) and not (char2.dead)) then
(*Поиск проф с айди 97 и 12 - Бишы *)
begin
Engine.Settarget(char2.name);break
end;
end;
end;
end;
end;
procedure target2 (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
Engine.Settarget('SOBR');
end;
end;
end;
procedure target3 (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 = $58 (* X *) then begin
Engine.Settarget('xImpulse');
end;
end;
end;
procedure target4 (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 = $5A (* Z *) then begin
Engine.Settarget('SOBR');
end;
end;
end;
procedure hold ;
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 KrestNaRes;
Var
DeadLst:TStringList;
lah:TL2Char;
i:integer;
Nick:string;
begin
DeadLst:=TStringList.Create;
While true do
begin
for i:=0 to CharList.count-1 do
begin
if CharList.Items(i).Dead and (DeadLst.IndexOf(CharList.Items(i).Name)=-1) then DeadLst.Add(CharList.Items(i).Name);
if not CharList.Items(i).Dead and (User.DistTo(CharList.Items(i))<1000) and ( (charlist.items(i).classid=97) or (charlist.items(i).classid=90) or (charlist.items(i).classid=97) or
(charlist.items(i).classid=105) or
(charlist.items(i).classid=112) or
(charlist.items(i).classid=94) or
(charlist.items(i).classid=105) or
(charlist.items(i).classid=103) or
(charlist.items(i).classid=110) or
(charlist.items(i).classid=134) or
(charlist.items(i).classid=92) or
(charlist.items(i).classid=109) or
(charlist.items(i).classid=102) or
(charlist.items(i).classid=88)) and (charlist.items(i).pvp) and (user.distto(charlist.items(i))<1200) and (DeadLst.IndexOf(CharList.Items(i).Name)>-1) and not (charlist.items(i).ismember) and not (charlist.items(i).ismember) and not ( charlist.items(i).clanid=user.clanid) then
begin
Nick:=CharList.Items(i).Name;
Engine.SetTarget(Nick);
end;
end;
i:=0;
repeat
if DeadLst.Count>0 then
begin
if not CharList.ByName(DeadLst,lah) or not lah.Dead then
begin
DeadLst.Delete(i);
dec(i);
end;
end;
inc(i);
until i>DeadLst.Count-1;
Delay(200);
end;
end;
begin
script.newthread(@Cardinals);
script.newthread(@Mages);
script.newthread(@target2);
script.newthread(@target3);
script.newthread(@target4);
script.newthread(@hold);
script.newthread(@KrestNaRes);
delay(100)
end.
Скрипт на быстрый рескилл, быстрое выделение в таргет бишей (кнопка Space) и магов (кнопка Ctrl).
Возможность биндить таргеты по никнейму на кнопки z x c v
Так же в скрипте присутствует Антибек и HoldTarget.
uses sysutils,classes;
procedure holdtarget;
var
charT:tl2live;
obj:tl2effect;
begin
while engine.status = lsonline do begin
if (user.target.valid) 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 off -->> ' + char2.name , 2 ,user.name ) ;break
end;
if (char2.cast.endtime>0) and (char2.cast.id=1532) and not (char2.dead)
then begin
engine.say('Prosvet ->' + char2.name , 2 , user.name);
delay(20000);
engine.say('Prosvet off -->> ' + 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;
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 antihide;
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)<250) and (char2.cast.id=922) and not (char2.dead) and
(User.DistTo(char2)<100)
then begin
Engine.USekey('2');
end;
end;
result:=true;
end;
begin
while engine.status = lsonline do begin
if proxy then delay(100);
Delay(100);
end;
end;
begin
script.newthread(@antihide);
script.newthread(@antiback);
script.newthread(@tank);
script.newthread(@holdtarget);
end.
Скрипт для мага поле/олимпиада.
В скрипте есть информер, который оповещает в пм о юзе и окончание того или иного скилла, антибек через скилл Curse Weakness (id можно поменять на любой другой, который понравится)
Информер можно дополнять, думаю что разобраться там не сложно
Так-же присутствует HoldTarget.
//Скрипты получил от друга, на форуме их не видел, по этому держите.