Помогите объединить скрипты. Все выходные промучился так нечего не получилось. Ну или подскажите как правильно объединять.
По отдельности всё прекрасно работает, а соединить не могу.
uses SysUtils, Classes, RegExpr;
var
RegExp: TRegExpr;
SL: TStringList;
i: integer;
bps: string;
obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;
Begin
while 1<>2 do begin // бесконечный цикл
// этот кусок не трогаем
if User.Dead then // умер- вырубаем интерфейс, возврат в город и пауза 15 секунд
begin
Engine.FaceControl(0,false);
Engine.gohome;
delay(15000);
end;
// этот кусок - точки респа выбранной деревни их просто заменить на нужную вам
if User.inrange(80334,54400,-1552, 250, 150) then begin
Engine.MoveTo(80334,54400,-1552);
Engine.MoveTo(80969,53698,-1558);
Engine.MoveTo(81540,53454,-1494);
Engine.MoveTo(82480,53340,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82323,55466,-1520, 250, 150) then begin
Engine.MoveTo(82323,55466,-1520);
Engine.MoveTo(82403,54498,-1523);
Engine.MoveTo(82589,53861,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82123,53535,-1488, 250, 150) then begin
Engine.MoveTo(82123,53535,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80304,56241,-1552, 250, 150) then begin
Engine.MoveTo(80304,56241,-1552);
Engine.MoveTo(81470,55682,-1523);
Engine.MoveTo(82256,55294,-1523);
Engine.MoveTo(82510,54035,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82445,56012,-1520, 250, 150) then begin
Engine.MoveTo(82445,56012,-1520);
Engine.MoveTo(82341,54950,-1523);
Engine.MoveTo(82574,53833,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80054,53209,-1552, 250, 150) then begin
Engine.MoveTo(80054,53209,-1552);
Engine.MoveTo(80624,53611,-1558);
Engine.MoveTo(81772,53468,-1494);
Engine.MoveTo(82289,53472,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80513,52980,-1552, 250, 150) then begin
Engine.MoveTo(80513,52980,-1552);
Engine.MoveTo(80165,53065,-1558);
Engine.MoveTo(80630,53610,-1558);
Engine.MoveTo(81688,53447,-1494);
Engine.MoveTo(82303,53338,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80267,55497,-1552, 250, 150) then begin
Engine.MoveTo(80267,55497,-1552);
Engine.MoveTo(80359,54536,-1558);
Engine.MoveTo(80792,53785,-1558);
Engine.MoveTo(81495,53421,-1494);
Engine.MoveTo(82323,53362,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(79933,55752,-1552, 250, 150) then begin
Engine.MoveTo(79933,55752,-1552);
Engine.MoveTo(80349,55208,-1558);
Engine.MoveTo(80470,54217,-1558);
Engine.MoveTo(81053,53602,-1558);
Engine.MoveTo(81974,53465,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80594,55837,-1552, 250, 150) then begin
Engine.MoveTo(80594,55837,-1552);
Engine.MoveTo(81899,55492,-1523);
Engine.MoveTo(82240,55142,-1523);
Engine.MoveTo(82531,53946,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82213,53964,-1488, 250, 150) then begin
Engine.MoveTo(82213,53964,-1488);
Engine.MoveTo(82668,53709,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(83327,55410,-1520, 250, 150) then begin
Engine.MoveTo(83327,55410,-1520);
Engine.MoveTo(82607,55592,-1523);
Engine.MoveTo(82184,54809,-1523);
Engine.MoveTo(82563,53882,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(79706,52986,-1552, 250, 150) then begin
Engine.MoveTo(79706,52986,-1552);
Engine.MoveTo(80427,53549,-1558);
Engine.MoveTo(80812,53655,-1558);
Engine.MoveTo(81979,53439,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82880,55390,-1520, 250, 150) then begin
Engine.MoveTo(82880,55390,-1520);
Engine.MoveTo(82375,55524,-1523);
Engine.MoveTo(82367,54313,-1493);
Engine.MoveTo(82651,53734,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82552,53447,-1488, 250, 150) then begin
Engine.MoveTo(82552,53447,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82638,53885,-1488, 250, 150) then begin
Engine.MoveTo(82638,53885,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
// точка которая указаная в инренж этот точка в которую видут все точки респа,
//ее просто можно скопировать с конечной любой точки респа
if User.inrange(82950,53186,-1494, 250, 150) then begin
delay(2550);
// тут указываем путь к нубскому баферу либо сразу к гк если мы не бафаемся
Engine.MoveTo(82984, 53224, -1488);
// выделение нпц с ИД указанным в скобках,ид видны справа снизу в боте рядом с именем нпц
Engine.SetTarget(100910); //Выделение в таргет бафера и открытие диалога.
delay(1000);
Engine.DlgOpen();
delay(1000);
//Тут должен быть скрипт бафа.
//Выделение в таргет Гк и открытие диалога.
Engine.SetTarget(30177);
delay(1000);
Engine.DlgOpen();
delay(1000);
//Тут должен быть скрипт тп к месту
// эти точки ведут нас уже непосредственно на наш спот и по его достижению вкллючаем инфетфейс
delay(10000);
Engine.MoveTo(87768, -2440, -3536);
Engine.MoveTo(89250, -2991, -3387);
Engine.MoveTo(92280, -4536, -3392);
Engine.MoveTo(95000, -6472, -3424);
Engine.MoveTo(94680, -5640, -3552);
Engine.MoveTo(95064, -7592, -3392);
Engine.MoveTo(96328, -10200, -3360);
Engine.MoveTo(97480, -12456, -3200);
Engine.MoveTo(98376, -13592, -3088);
Engine.MoveTo(100328, -15064, -3224);
Engine.MoveTo(100744, -15736, -3104);
Engine.MoveTo(100344, -17656, -3104);
Engine.MoveTo(100104, -18680, -3136);
Engine.FaceControl(0,true);
end;
delay(550);
end; delay(550);
end.
var
RegExp: TRegExpr;
SL: TStringList;
i: integer;
bps: string;
obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;
Begin
while 1<>2 do begin // бесконечный цикл
// этот кусок не трогаем
if User.Dead then // умер- вырубаем интерфейс, возврат в город и пауза 15 секунд
begin
Engine.FaceControl(0,false);
Engine.gohome;
delay(15000);
end;
// этот кусок - точки респа выбранной деревни их просто заменить на нужную вам
if User.inrange(80334,54400,-1552, 250, 150) then begin
Engine.MoveTo(80334,54400,-1552);
Engine.MoveTo(80969,53698,-1558);
Engine.MoveTo(81540,53454,-1494);
Engine.MoveTo(82480,53340,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82323,55466,-1520, 250, 150) then begin
Engine.MoveTo(82323,55466,-1520);
Engine.MoveTo(82403,54498,-1523);
Engine.MoveTo(82589,53861,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82123,53535,-1488, 250, 150) then begin
Engine.MoveTo(82123,53535,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80304,56241,-1552, 250, 150) then begin
Engine.MoveTo(80304,56241,-1552);
Engine.MoveTo(81470,55682,-1523);
Engine.MoveTo(82256,55294,-1523);
Engine.MoveTo(82510,54035,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82445,56012,-1520, 250, 150) then begin
Engine.MoveTo(82445,56012,-1520);
Engine.MoveTo(82341,54950,-1523);
Engine.MoveTo(82574,53833,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80054,53209,-1552, 250, 150) then begin
Engine.MoveTo(80054,53209,-1552);
Engine.MoveTo(80624,53611,-1558);
Engine.MoveTo(81772,53468,-1494);
Engine.MoveTo(82289,53472,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80513,52980,-1552, 250, 150) then begin
Engine.MoveTo(80513,52980,-1552);
Engine.MoveTo(80165,53065,-1558);
Engine.MoveTo(80630,53610,-1558);
Engine.MoveTo(81688,53447,-1494);
Engine.MoveTo(82303,53338,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80267,55497,-1552, 250, 150) then begin
Engine.MoveTo(80267,55497,-1552);
Engine.MoveTo(80359,54536,-1558);
Engine.MoveTo(80792,53785,-1558);
Engine.MoveTo(81495,53421,-1494);
Engine.MoveTo(82323,53362,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(79933,55752,-1552, 250, 150) then begin
Engine.MoveTo(79933,55752,-1552);
Engine.MoveTo(80349,55208,-1558);
Engine.MoveTo(80470,54217,-1558);
Engine.MoveTo(81053,53602,-1558);
Engine.MoveTo(81974,53465,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80594,55837,-1552, 250, 150) then begin
Engine.MoveTo(80594,55837,-1552);
Engine.MoveTo(81899,55492,-1523);
Engine.MoveTo(82240,55142,-1523);
Engine.MoveTo(82531,53946,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82213,53964,-1488, 250, 150) then begin
Engine.MoveTo(82213,53964,-1488);
Engine.MoveTo(82668,53709,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(83327,55410,-1520, 250, 150) then begin
Engine.MoveTo(83327,55410,-1520);
Engine.MoveTo(82607,55592,-1523);
Engine.MoveTo(82184,54809,-1523);
Engine.MoveTo(82563,53882,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(79706,52986,-1552, 250, 150) then begin
Engine.MoveTo(79706,52986,-1552);
Engine.MoveTo(80427,53549,-1558);
Engine.MoveTo(80812,53655,-1558);
Engine.MoveTo(81979,53439,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82880,55390,-1520, 250, 150) then begin
Engine.MoveTo(82880,55390,-1520);
Engine.MoveTo(82375,55524,-1523);
Engine.MoveTo(82367,54313,-1493);
Engine.MoveTo(82651,53734,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82552,53447,-1488, 250, 150) then begin
Engine.MoveTo(82552,53447,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82638,53885,-1488, 250, 150) then begin
Engine.MoveTo(82638,53885,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
// точка которая указаная в инренж этот точка в которую видут все точки респа,
//ее просто можно скопировать с конечной любой точки респа
if User.inrange(82950,53186,-1494, 250, 150) then begin
delay(2550);
// тут указываем путь к нубскому баферу либо сразу к гк если мы не бафаемся
Engine.MoveTo(82984, 53224, -1488);
// выделение нпц с ИД указанным в скобках,ид видны справа снизу в боте рядом с именем нпц
Engine.SetTarget(100910); //Выделение в таргет бафера и открытие диалога.
delay(1000);
Engine.DlgOpen();
delay(1000);
//Тут должен быть скрипт бафа.
//Выделение в таргет Гк и открытие диалога.
Engine.SetTarget(30177);
delay(1000);
Engine.DlgOpen();
delay(1000);
//Тут должен быть скрипт тп к месту
// эти точки ведут нас уже непосредственно на наш спот и по его достижению вкллючаем инфетфейс
delay(10000);
Engine.MoveTo(87768, -2440, -3536);
Engine.MoveTo(89250, -2991, -3387);
Engine.MoveTo(92280, -4536, -3392);
Engine.MoveTo(95000, -6472, -3424);
Engine.MoveTo(94680, -5640, -3552);
Engine.MoveTo(95064, -7592, -3392);
Engine.MoveTo(96328, -10200, -3360);
Engine.MoveTo(97480, -12456, -3200);
Engine.MoveTo(98376, -13592, -3088);
Engine.MoveTo(100328, -15064, -3224);
Engine.MoveTo(100744, -15736, -3104);
Engine.MoveTo(100344, -17656, -3104);
Engine.MoveTo(100104, -18680, -3136);
Engine.FaceControl(0,true);
end;
delay(550);
end; delay(550);
end.
uses SysUtils, Classes, RegExpr; // подключили модуль RegExpr
function Bypass(dlg: string): boolean;
var
RegExp: TRegExpr;
SL: TStringList;
i: integer;
bps: string;
begin
Result:= true; // задаем результат по умолчанию
RegExp:= TRegExpr.Create; // инициализируем объекты для дальнейшей работы
SL:= TStringList.Create;
RegExp.Expression:= '()|()'; // задаем регэксп на поиск всех возможных bypass'ов
if RegExp.Exec(Engine.DlgText) then // если нашлелся нужный шаблон, то
repeat SL.Add(RegExp.Match[0]); // заполняем наш список такими совпадениями
until (not RegExp.ExecNext); // пока не закончатся шаблоны
for i:= 0 to SL.Count-1 do begin // теперь пробегаемся по нашему списку
if (Pos(dlg, SL[ i ]) > 0) then begin // если в i-ой строке нашелся искомый текст, то
RegExp.Expression:= '"bypass -h *(.+?)"'; // ищем шаблон текста c bypass'ом
if RegExp.Exec(SL[ i ]) then // и если нашли, то копирем из него интересующий нас кусок
bps:= TrimLeft(Copy(RegExp.Match[0], 12, Length(RegExp.Match[0])-12));
end;
end;
Print(bps); // распечатываем конечный вариант bypass'а
if (Length(bps) > 0) then Engine.BypassToServer(bps); // если его длина > 0, то отправляем на сервер
RegExp.Free; // не забываем освобождать память
SL.Free;
end;
begin
Bypass('Исп. профиль');
delay(5000);
end.
function Bypass(dlg: string): boolean;
var
RegExp: TRegExpr;
SL: TStringList;
i: integer;
bps: string;
begin
Result:= true; // задаем результат по умолчанию
RegExp:= TRegExpr.Create; // инициализируем объекты для дальнейшей работы
SL:= TStringList.Create;
RegExp.Expression:= '()|()'; // задаем регэксп на поиск всех возможных bypass'ов
if RegExp.Exec(Engine.DlgText) then // если нашлелся нужный шаблон, то
repeat SL.Add(RegExp.Match[0]); // заполняем наш список такими совпадениями
until (not RegExp.ExecNext); // пока не закончатся шаблоны
for i:= 0 to SL.Count-1 do begin // теперь пробегаемся по нашему списку
if (Pos(dlg, SL[ i ]) > 0) then begin // если в i-ой строке нашелся искомый текст, то
RegExp.Expression:= '"bypass -h *(.+?)"'; // ищем шаблон текста c bypass'ом
if RegExp.Exec(SL[ i ]) then // и если нашли, то копирем из него интересующий нас кусок
bps:= TrimLeft(Copy(RegExp.Match[0], 12, Length(RegExp.Match[0])-12));
end;
end;
Print(bps); // распечатываем конечный вариант bypass'а
if (Length(bps) > 0) then Engine.BypassToServer(bps); // если его длина > 0, то отправляем на сервер
RegExp.Free; // не забываем освобождать память
SL.Free;
end;
begin
Bypass('Исп. профиль');
delay(5000);
end.
uses SysUtils, Classes, RegExpr; // подключили модуль RegExpr
function Bypass(dlg: string): boolean;
var
RegExp: TRegExpr;
SL: TStringList;
i: integer;
bps: string;
begin
Result:= true; // задаем результат по умолчанию
RegExp:= TRegExpr.Create; // инициализируем объекты для дальнейшей работы
SL:= TStringList.Create;
RegExp.Expression:= '()|()'; // задаем регэксп на поиск всех возможных bypass'ов
if RegExp.Exec(Engine.DlgText) then // если нашлелся нужный шаблон, то
repeat SL.Add(RegExp.Match[0]); // заполняем наш список такими совпадениями
until (not RegExp.ExecNext); // пока не закончатся шаблоны
for i:= 0 to SL.Count-1 do begin // теперь пробегаемся по нашему списку
if (Pos(dlg, SL[ i ]) > 0) then begin // если в i-ой строке нашелся искомый текст, то
RegExp.Expression:= '"bypass -h *(.+?)"'; // ищем шаблон текста c bypass'ом
if RegExp.Exec(SL[ i ]) then // и если нашли, то копирем из него интересующий нас кусок
bps:= TrimLeft(Copy(RegExp.Match[0], 12, Length(RegExp.Match[0])-12));
end;
end;
Print(bps); // распечатываем конечный вариант bypass'а
if (Length(bps) > 0) then Engine.BypassToServer(bps); // если его длина > 0, то отправляем на сервер
RegExp.Free; // не забываем освобождать память
SL.Free;
end;
begin
Bypass('Teleport');
delay(5000);
Bypass('Outlaw Forest');
end.
function Bypass(dlg: string): boolean;
var
RegExp: TRegExpr;
SL: TStringList;
i: integer;
bps: string;
begin
Result:= true; // задаем результат по умолчанию
RegExp:= TRegExpr.Create; // инициализируем объекты для дальнейшей работы
SL:= TStringList.Create;
RegExp.Expression:= '()|()'; // задаем регэксп на поиск всех возможных bypass'ов
if RegExp.Exec(Engine.DlgText) then // если нашлелся нужный шаблон, то
repeat SL.Add(RegExp.Match[0]); // заполняем наш список такими совпадениями
until (not RegExp.ExecNext); // пока не закончатся шаблоны
for i:= 0 to SL.Count-1 do begin // теперь пробегаемся по нашему списку
if (Pos(dlg, SL[ i ]) > 0) then begin // если в i-ой строке нашелся искомый текст, то
RegExp.Expression:= '"bypass -h *(.+?)"'; // ищем шаблон текста c bypass'ом
if RegExp.Exec(SL[ i ]) then // и если нашли, то копирем из него интересующий нас кусок
bps:= TrimLeft(Copy(RegExp.Match[0], 12, Length(RegExp.Match[0])-12));
end;
end;
Print(bps); // распечатываем конечный вариант bypass'а
if (Length(bps) > 0) then Engine.BypassToServer(bps); // если его длина > 0, то отправляем на сервер
RegExp.Free; // не забываем освобождать память
SL.Free;
end;
begin
Bypass('Teleport');
delay(5000);
Bypass('Outlaw Forest');
end.
По отдельности всё прекрасно работает, а соединить не могу.