Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

Несколько рабочих скриптов.

Рег
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 (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
Engine.Settarget('SOBR');
end;
end;
end;

procedure target3 (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 = $58 (* X *) then begin
Engine.Settarget('xImpulse');
end;
end;
end;


procedure target4 (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 = $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.
//Скрипты получил от друга, на форуме их не видел, по этому держите. :)
 
"Engine.Settarget('SOBR');
end;"
:lol:


проверил антибс, антихайд, холдтаргет и танк, все работает на ура, спасибо брат
 
С биндами все в порядке, но процедуры на получения таргета по id не работают. К сожалению.
 
@Neophron, Я проверял, они работают, не понял как точно, но что-бы выделять к примеру бишей, нужно что-бы он был в группе.
 
@Vertudo, Nothing happened :hz: Проверил, не берет ни в пати, ни отдельно.

Если можешь помочь разобраться - отблагодарю.
Хроники: Interlude, если это имеет значение. Потому как я не знаю, что еще тут может иметь значение, если рабочий скрипт не работает.
 
Скрипты в шаре валяются уже год. Тут они абсолютно сырые и недоработанные. Если кому надо впринципе готов скинуть вличку допилинный скрипт.
 
@Exploss1ve мне тоже в личку если можно, спасибо
 
begin
Nick:=CharList.Items(i).Name;
Engine.SetTarget(Nick);


end;

Если после Engine.SetTarget(Nick); поставить Engine.UseSkill('skill'); тупить не будет?
 
Как сделать чтоб писало не в пм, а в пати чат?
 
Уже даже на оли боты добрались, ужас ))
 
Назад
Сверху