Собственно сам скрипт для меги х20 фарм в свамп оф скримс скрипт робочий но беда в том что на 2 этаже руны в каждом кх стоит бафер и чар просто упирается в закрытый кх и застривает пока не пропадет баф в скриптах я зеленый может кто помочь как исправить ?
var Obj: TL2NPC;
Obj2: TL2Effect;
Enemy: TL2Live;
Effect: TL2Effect;
procedure gorod; //указать точки респа и бег по городу
begin
if User.inrange(38608,-47168,896, 250, 150)
or User.inrange(38272,-49008,896, 250, 150)
or User.inrange(38752,-47792,896, 250, 150)
or User.inrange(38112,-49792,896, 250, 150)
or User.inrange(38848,-48640,896, 250, 150) then begin
Engine.MoveTo(39113,-48225,898);
Engine.MoveTo(38294,-48089,898);
//Ариша
Engine.SetTarget(31698);
Engine.DlgOpen;
Engine.DlgSel(1);
Engine.DlgSel(1);
Engine.CancelTarget;
Delay(3000);
Engine.MoveTo(39522,-48234,-784);
Engine.MoveTo(41591,-48221,-801);
Engine.MoveTo(43323,-48185,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44368,-50592,-792, 250, 150) then begin
Engine.MoveTo(44368,-50592,-792);
Engine.MoveTo(43997,-49427,-795);
Engine.MoveTo(43831,-48480,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44864,-47824,-792, 250, 150) then begin
Engine.MoveTo(44864,-47824,-792);
Engine.MoveTo(44025,-47893,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43536,-50416,-792, 250, 150) then begin
Engine.MoveTo(43536,-50416,-792);
Engine.MoveTo(43833,-49293,-795);
Engine.MoveTo(43847,-48397,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45632,-47968,-792, 250, 150) then begin
Engine.MoveTo(45632,-47968,-792);
Engine.MoveTo(44070,-47930,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45824,-49056,-792, 250, 150) then begin
Engine.MoveTo(45824,-49056,-792);
Engine.MoveTo(46022,-48351,-795);
Engine.MoveTo(45441,-48000,-795);
Engine.MoveTo(44189,-47900,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44000,-49952,-792, 250, 150) then begin
Engine.MoveTo(44000,-49952,-792);
Engine.MoveTo(43862,-48669,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43792,-48928,-792, 250, 150) then begin
Engine.MoveTo(43792,-48928,-792);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45072,-49936,-792, 250, 150) then begin
Engine.MoveTo(45072,-49936,-792);
Engine.MoveTo(44258,-49647,-795);
Engine.MoveTo(43864,-48552,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43408,-51120,-792, 250, 150) then begin
Engine.MoveTo(43408,-51120,-792);
Engine.MoveTo(43805,-49830,-795);
Engine.MoveTo(43870,-48626,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43744,-47920,-792, 250, 150) then begin
Engine.MoveTo(43744,-47920,-792);
Engine.MoveTo(43827,-47698,-794);
end;
end;
procedure timetobuff;
begin
Engine.MoveTo(43506, -47815, -792);
Engine.SetTarget(11003);
Engine.DlgOpen();
Engine.Delay(1000);
Engine.DlgSel(4);
Engine.Delay(1000);
Engine.DlgSel(1);
Engine.Delay(500);
Engine.DlgSel(6);
Engine.Delay(500);
Engine.DlgSel(7);
end;
procedure timetogk;
begin
Engine.SetTarget(31320);//указать ID гк
Engine.MoveToTarget;
Engine.DlgOpen();
delay(500);
Engine.DlgSel(1);
delay(500);
Engine.DlgSel(13);//указать номер телепорта
delay(10000);
end;
procedure def;//Атакует рукой мобов по ходу бега на спот
begin
while (not User.Target.Dead) and (User.target <> nil) do
begin
Engine.Attack; //отбивается
delay(1000);
if (User.Target.Dead) and (User.target <> nil)
then begin
Engine.CancelTarget;
delay(1000); //сброс таргета
end;
end;
end;
procedure movetospot;
begin
Engine.MoveTo(71045,-49565,-3229);
Engine.MoveTo(74076,-48885,-3184);
Engine.MoveTo(75555,-47610,-3226);
Engine.MoveTo(75555,-47274,-3226);
def;//отбиваемся от мобов по пути
Engine.MoveTo(75555,-47274,-3226);
def;
end;
//Тело скрипта
begin
Engine.FaceControl(0,false);
gorod;
timetobuff;
timetogk;
movetospot;
//Engine.LoadConfig(''); //указать настройки персонажа
//Engine.LoadZone('Swamp.zmap'); //указать карту
Engine.FaceControl(0,true);
while Engine.Status = lsOnline do
begin
if User.Dead then begin //Умер - в город
print('Я умер');
delay(500);
Engine.FaceControl(0,false);
delay(5000);
Engine.gohome;
delay(15000);
Engine.FaceControl(0,false);
gorod;
timetobuff;
timetogk;
movetospot;
//Engine.LoadConfig(''); //указать настройки персонажа
//Engine.LoadZone('Swamp.zmap'); //указать карту
Engine.FaceControl(0,true);
end;
if not User.Dead then begin //Закончился бафф (ВВ, БЛЕСС ХП), сое - город
if not User.Buffs.Byid(1204,effect) and not User.Buffs.Byid(1045,effect)
then begin
Engine.FaceControl(0,false);
print('Закончился бафф');
delay(500);
Engine.UseItem(736); //Юзаем СоЕ если не умерли
delay(25000);
Engine.FaceControl(0,false);
gorod;
timetobuff;
timetogk;
movetospot;
//Engine.LoadConfig(''); //указать настройки персонажа
//Engine.LoadZone('Swamp.zmap'); //указать карту
Engine.FaceControl(0,true);
end;
end;
end;
end.
var Obj: TL2NPC;
Obj2: TL2Effect;
Enemy: TL2Live;
Effect: TL2Effect;
procedure gorod; //указать точки респа и бег по городу
begin
if User.inrange(38608,-47168,896, 250, 150)
or User.inrange(38272,-49008,896, 250, 150)
or User.inrange(38752,-47792,896, 250, 150)
or User.inrange(38112,-49792,896, 250, 150)
or User.inrange(38848,-48640,896, 250, 150) then begin
Engine.MoveTo(39113,-48225,898);
Engine.MoveTo(38294,-48089,898);
//Ариша
Engine.SetTarget(31698);
Engine.DlgOpen;
Engine.DlgSel(1);
Engine.DlgSel(1);
Engine.CancelTarget;
Delay(3000);
Engine.MoveTo(39522,-48234,-784);
Engine.MoveTo(41591,-48221,-801);
Engine.MoveTo(43323,-48185,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44368,-50592,-792, 250, 150) then begin
Engine.MoveTo(44368,-50592,-792);
Engine.MoveTo(43997,-49427,-795);
Engine.MoveTo(43831,-48480,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44864,-47824,-792, 250, 150) then begin
Engine.MoveTo(44864,-47824,-792);
Engine.MoveTo(44025,-47893,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43536,-50416,-792, 250, 150) then begin
Engine.MoveTo(43536,-50416,-792);
Engine.MoveTo(43833,-49293,-795);
Engine.MoveTo(43847,-48397,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45632,-47968,-792, 250, 150) then begin
Engine.MoveTo(45632,-47968,-792);
Engine.MoveTo(44070,-47930,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45824,-49056,-792, 250, 150) then begin
Engine.MoveTo(45824,-49056,-792);
Engine.MoveTo(46022,-48351,-795);
Engine.MoveTo(45441,-48000,-795);
Engine.MoveTo(44189,-47900,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44000,-49952,-792, 250, 150) then begin
Engine.MoveTo(44000,-49952,-792);
Engine.MoveTo(43862,-48669,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43792,-48928,-792, 250, 150) then begin
Engine.MoveTo(43792,-48928,-792);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45072,-49936,-792, 250, 150) then begin
Engine.MoveTo(45072,-49936,-792);
Engine.MoveTo(44258,-49647,-795);
Engine.MoveTo(43864,-48552,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43408,-51120,-792, 250, 150) then begin
Engine.MoveTo(43408,-51120,-792);
Engine.MoveTo(43805,-49830,-795);
Engine.MoveTo(43870,-48626,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43744,-47920,-792, 250, 150) then begin
Engine.MoveTo(43744,-47920,-792);
Engine.MoveTo(43827,-47698,-794);
end;
end;
procedure timetobuff;
begin
Engine.MoveTo(43506, -47815, -792);
Engine.SetTarget(11003);
Engine.DlgOpen();
Engine.Delay(1000);
Engine.DlgSel(4);
Engine.Delay(1000);
Engine.DlgSel(1);
Engine.Delay(500);
Engine.DlgSel(6);
Engine.Delay(500);
Engine.DlgSel(7);
end;
procedure timetogk;
begin
Engine.SetTarget(31320);//указать ID гк
Engine.MoveToTarget;
Engine.DlgOpen();
delay(500);
Engine.DlgSel(1);
delay(500);
Engine.DlgSel(13);//указать номер телепорта
delay(10000);
end;
procedure def;//Атакует рукой мобов по ходу бега на спот
begin
while (not User.Target.Dead) and (User.target <> nil) do
begin
Engine.Attack; //отбивается
delay(1000);
if (User.Target.Dead) and (User.target <> nil)
then begin
Engine.CancelTarget;
delay(1000); //сброс таргета
end;
end;
end;
procedure movetospot;
begin
Engine.MoveTo(71045,-49565,-3229);
Engine.MoveTo(74076,-48885,-3184);
Engine.MoveTo(75555,-47610,-3226);
Engine.MoveTo(75555,-47274,-3226);
def;//отбиваемся от мобов по пути
Engine.MoveTo(75555,-47274,-3226);
def;
end;
//Тело скрипта
begin
Engine.FaceControl(0,false);
gorod;
timetobuff;
timetogk;
movetospot;
//Engine.LoadConfig(''); //указать настройки персонажа
//Engine.LoadZone('Swamp.zmap'); //указать карту
Engine.FaceControl(0,true);
while Engine.Status = lsOnline do
begin
if User.Dead then begin //Умер - в город
print('Я умер');
delay(500);
Engine.FaceControl(0,false);
delay(5000);
Engine.gohome;
delay(15000);
Engine.FaceControl(0,false);
gorod;
timetobuff;
timetogk;
movetospot;
//Engine.LoadConfig(''); //указать настройки персонажа
//Engine.LoadZone('Swamp.zmap'); //указать карту
Engine.FaceControl(0,true);
end;
if not User.Dead then begin //Закончился бафф (ВВ, БЛЕСС ХП), сое - город
if not User.Buffs.Byid(1204,effect) and not User.Buffs.Byid(1045,effect)
then begin
Engine.FaceControl(0,false);
print('Закончился бафф');
delay(500);
Engine.UseItem(736); //Юзаем СоЕ если не умерли
delay(25000);
Engine.FaceControl(0,false);
gorod;
timetobuff;
timetogk;
movetospot;
//Engine.LoadConfig(''); //указать настройки персонажа
//Engine.LoadZone('Swamp.zmap'); //указать карту
Engine.FaceControl(0,true);
end;
end;
end;
end.