Перейти к содержанию

Проффесиональный скрипт на ТТ рецепты


Рекомендуемые сообщения

Привет всем!

Брожу я тут по интернету наткнулся на ваш сервер и уж понравился мне ваш Администратор с его аватаркой, долго хихикал :)

Дам вам свой скрипт от проффесионального РМтШника, балуйтесь ребятки :) 

Скрипт сидит на GPS координатах гео сервера. Программку тоже дам и карту свою, пароль к архиву l2kot.ru https://mega.nz/file/WBogyIZA#Apirob8Nor-orX3zpN6uBh92Ci6ZJ5Xkmq2MsUjVi1I

Карта в архиве в папке MsZontik - maps, суём её в корень папки с ботом для работы скрипта.

Скрипт полностью автоматизирован включил и забыл, убили встанет полетит обратно и побежит туда куда бежал, по кратчайшему пути до нужной точки дабы продолжить выполнения квеста, полный чек итемов и окружающей среды, вылет раба с игры, заходим обратно чек итем чек GPS начинается продолжение квеста, остановка скрипта-крит адреналина, запуск чек итем чек GPS начинается продолжение квеста с любого места на карте города или источников.

Компуктер у меня мощный так что скорость скрипта ну и ID подкорректируйте сами для своего сервера.

скрипт-

               uses SysUtils, Classes, RegExpr;
type
 TMyGPS=packed record
 private
 public
 function gps_moveto(x, y, z: integer):boolean; overload;
 function gps_moveto(PathName:string):boolean; overload;
 end;
 function TMyGPS.gps_moveto(x, y, z: integer): boolean;  // GPS движение
var dist: integer;  i: integer;
begin
  dist:= trunc(GPS.GetPath((user.x), (user.y), (user.z), (x), (y), (z)));
  engine.msg('[gps_moveto]',format('Бегу в точку %d (x=%d y=%d z=%d), дистанция: %d м',[i,x,y,z,dist]), 4210752);
  if (GPS.count > 0) then
  begin
    for i:= 0 to GPS.count-1 do
    begin
      {engine.msg('[gps_moveto]',format('Бегу в точку %d (x=%d y=%d z=%d), дистанция: %d м',
      [i,trunc(GPS.items(i).x), trunc(GPS.items(i).y), trunc(GPS.items(i).z),Distance(trunc(GPS.items(i).x), trunc(GPS.items(i).y), trunc(GPS.items(i).z),(user.x), (user.y), (user.z))]), 4210752);}
      if not Engine.MoveTo(trunc(GPS.items(i).x), trunc(GPS.items(i).y), trunc(GPS.items(i).z)) then
      begin
        engine.msg('[gps_moveto]',format('Ошибка при движении в точку № %d : (%d, %d, %d)',[i,trunc(GPS.items(i).x), trunc(GPS.items(i).y), trunc(GPS.items(i).z)]), 222);
        result:= false;
        break;
      end;
    end;
      result:= Engine.MoveTo(x, y, z) or (user.distto(x, y, z) < 150);
  end
  else engine.msg('[gps_moveto]','Не смог найти нужный маршрут', 128);
end;

function TMyGPS.gps_moveto(PathName:string): boolean;  // GPS движение
var dist: integer;  i: integer;
begin
  dist:= trunc(GPS.GetPathByName ((user.x), (user.y), (user.z), PathName));
  engine.msg('[gps_moveto]',(format('Бегу в точку %s, дистанция: %d м',[PathName,dist])), 4210752);
  if (GPS.count > 0) then
  begin
    for i:= 0 to GPS.count-1 do
    begin
      {engine.msg('[gps_moveto]',format('Бегу в точку %d (x=%d y=%d z=%d), дистанция: %d м',
      [i,trunc(GPS.items(i).x), trunc(GPS.items(i).y), trunc(GPS.items(i).z),Distance(trunc(GPS.items(i).x), trunc(GPS.items(i).y), trunc(GPS.items(i).z),(user.x), (user.y), (user.z))]), 4210752);}
      if not Engine.MoveTo(trunc(GPS.items(i).x), trunc(GPS.items(i).y), trunc(GPS.items(i).z)) then
      begin
        engine.msg('[gps_moveto]',format('Ошибка при движении в точку № %d : (%s)',[i,inttostr(trunc(GPS.items(i).x))+': '+inttostr(trunc(GPS.items(i).y))+': '+inttostr(trunc(GPS.items(i).z))]), 222);
        result:= false;
        break;
      end;
    end;
      result:= Engine.MoveTo(trunc(GPS.items(i-1).x), trunc(GPS.items(i-1).y), trunc(GPS.items(i-1).z)) or (user.distto(trunc(GPS.items(i-1).x), trunc(GPS.items(i-1).y), trunc(GPS.items(i-1).z)) < 150);
  end
  else engine.msg('[gps_moveto]','Не смог найти нужный маршрут', 128);
end;

procedure PrintAllTags(); 
var RegExp: TRegExpr; 
  begin
    RegExp:= TRegExpr.Create;
    RegExp.Expression:= '(<a *(.+?)</a>)|(<button *(.+?)>)'; 
    if RegExp.Exec(Engine.DlgText) then
    repeat Print(RegExp.Match[0]);
    until (not RegExp.ExecNext); 
      RegExp.Free;
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:= '(<a *(.+?)</a>)|(<button *(.+?)>)';
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
RegExp.Expression:= '"bypass -h *(.+?)"'; 
if RegExp.Exec(SL[i]) then 
bps:= TrimLeft(Copy(RegExp.Match[0], 12, Length(RegExp.Match[0])-12));
end;
end;
Print(bps); 
if (Length(bps) > 0) then Engine.BypassToServer(bps); 
RegExp.Free; 
SL.Free;
end;

function Bypas(dlg: string): boolean; 
var
RegExp: TRegExpr;
SL: TStringList;
i: integer;
bps: string;
begin
Result:= true;
RegExp:= TRegExpr.Create; 
SL:= TStringList.Create;
RegExp.Expression:= '(<a *(.+?)</a>)|(<button 0-*(.+?)>)';
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
RegExp.Expression:= '"bypass -h *(.+?)"'; 
if RegExp.Exec(SL[i]) then 
bps:= TrimLeft(Copy(RegExp.Match[0], 12, Length(RegExp.Match[0])-12));
end;
end;
Print(bps); 
if (Length(bps) > 0) then Engine.BypassToServer(bps); 
RegExp.Free; 
SL.Free;
end;

function CB(dlg: string): boolean; 
var
RegExp: TRegExpr;
SL: TStringList;
i: integer;
bps: string;
begin
Result:= true; 
RegExp:= TRegExpr.Create; 
SL:= TStringList.Create;

RegExp.Expression:= '(<a *(.+?)</a>)|(<button *(.+?)>)'; 
if RegExp.Exec(Engine.CBText) 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 
RegExp.Expression:= '"bypass -?h? ?(.+?)"';
if RegExp.Exec(SL[i]) then 
bps:= RegExp.Match[1];

end;
end;

Print(bps); 
if (Length(bps) > 0) then Engine.BypassToServer(bps); 
RegExp.Free; 
SL.Free;
end;

function CheckItemCount (const itemID: Integer; const quest: Boolean = False) : Integer;
var tempItem: TL2Item;
begin
    if quest then Inventory.Quest.ByID(itemID, tempItem)
    else Inventory.User.ByID(itemID, tempItem);
    Result := tempItem.Count;
end;
//---------------------------------------------------
//Проверка на смерть
//---------------------------------------------------
function deadCheck: Boolean;
begin
Result := false;
    if User.Dead then begin
        Result := true;
        Print('Dead. Pressing to village.');
        Delay(1000);
        Engine.GOHome;  
        Delay(20000);
    end;
end;

procedure Step_1();
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin
    MyGPS.gps_moveto('Jeremy');
    Engine.SetTarget(31521);
    delay(1000);
    Engine.FaceControl(0, false);
    Engine.DlgOpen;
    delay(1000);
    Bypass ('Quest');  //¤йца
    delay(1000);
    Bypass ('ликера');  //¤йца
    delay(1000);
    Bypass ('your'); 
    delay(1000);
    Engine.DlgOpen;
    delay(1000);
    Bypass ('Quest');  //¤йца
    delay(1000);
    Bypass ('яиц');   // ликер
    delay(1000);
Bypass ('your');
Engine.FaceControl(0, true);
end;
end;

procedure Step_2(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
   if not User.Dead then begin
    MyGPS.gps_moveto('Beolin');
    Engine.SetTarget(31547);
    Engine.FaceControl(0, false);
    delay(500);
    if not Engine.QuestStatus(622,2) then
    Engine.DlgOpen;
    delay(500);
    Bypass ('Quest'); 
   // Engine.DlgSel(2);
    delay(500);
    Bypass ('ликера'); 
   // Engine.DlgSel(2);
    delay(500);
  //  Engine.DlgSel(1);
  Bypass ('some'); 
    delay(500);
    //Bypass ('eggs');
    Engine.FaceControl(0, true);
 end;
end;

procedure Step_3(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin
    MyGPS.gps_moveto('Pulin');
    delay(500);
    Engine.SetTarget(31543);
    Engine.FaceControl(0, false);
    delay(500);
    Engine.DlgOpen;
    delay(500);
        Bypass ('Quest'); 
   // Engine.DlgSel(2);
    delay(500);
         Bypass ('Egg'); 
   // Engine.DlgSel(1);
    delay(500);
    Bypass ('some'); 
   // Engine.DlgSel(1);
    delay(500);
    Engine.FaceControl(0, true);
end;
end;

procedure Step_4(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin    
    MyGPS.gps_moveto('Naff');
    Engine.SetTarget(31544);
    Engine.FaceControl(0, false);
    delay(500);
    Engine.DlgOpen;
    delay(500);
    Bypass ('Quest'); 
   // Engine.DlgSel(2);
    delay(500);
   Bypass ('Egg'); 
   // Engine.DlgSel(1);
    delay(500);
   Bypass ('some'); 
   // Engine.DlgSel(1);
    delay(500);
    Engine.FaceControl(0, true);
end;
end;

procedure Step_5(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin    
    MyGPS.gps_moveto('Crocus');
    Engine.SetTarget(31545);
    delay(500);
    Engine.DlgOpen;
    Engine.FaceControl(0, false);
    delay(500);
   Bypass ('Quest'); 
   // Engine.DlgSel(2);
    delay(500);
   Bypass ('Egg'); 
   // Engine.DlgSel(1);
    delay(500);
   Bypass ('got'); 
   // Engine.DlgSel(1);
    delay(500);
    Engine.FaceControl(0, true);
end;
end;

procedure Step_6();

var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin    
    MyGPS.gps_moveto('Kuber');
    Engine.SetTarget(31546);
    Engine.FaceControl(0, false);
    delay(500);
    Engine.DlgOpen;
    delay(1000);
   Bypass ('Quest'); 
   // Engine.DlgSel(2);
    delay(1000);
   Bypass ('Egg'); 
   // Engine.DlgSel(1);
    delay(500);
   Bypass ('Egg'); 
   // Engine.DlgSel(1);
    delay(1000); 
    Engine.DlgOpen;
    delay(1000);
   Bypass ('Quest'); 
   // Engine.DlgSel(2);
    delay(1000);
     Bypass ('ликера'); 
   // Engine.DlgSel(2);
    delay(1000);
   Bypass ('some');
   // Engine.DlgSel(1);
    delay(500);
    Engine.FaceControl(0, true);
end;
end;

procedure Step_7(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin    
    MyGPS.gps_moveto('Crocus');
    Engine.SetTarget(31545);
    Engine.FaceControl(0, false);
    delay(500);
    Engine.DlgOpen;
    delay(500);
   Bypass ('Quest'); 
  //  Engine.DlgSel(2);
    delay(500);
   Bypass ('ликера');
        delay(500);
   Bypass ('your');
   Engine.FaceControl(0, true);
end;
end;

procedure Step_8(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin    
    MyGPS.gps_moveto('Naff');
    Engine.SetTarget(31544);
    Engine.FaceControl(0, false);
    delay(500);
    Engine.DlgOpen;
    delay(500);
   Bypass ('Quest'); 
   // Engine.DlgSel(2);
    delay(500);
     Bypass ('ликера'); 
   // Engine.DlgSel(2);
    delay(500);
   // Engine.DlgSel(1);
   Bypass ('some');
   Engine.FaceControl(0, true);
end;
end;

procedure Step_9(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin       
    MyGPS.gps_moveto('Pulin');
    Engine.SetTarget(31543);
    Engine.FaceControl(0, false);
    delay(500);
    Engine.DlgOpen;
    delay(500);
   Bypass ('Quest'); 
   // Engine.DlgSel(2);
    delay(500);
     Bypass ('ликера'); 
   // Engine.DlgSel(2);
    delay(500);
   // Engine.DlgSel(1);
   Bypass ('liquor');
    delay(500);
    Engine.FaceControl(0, true);
  end;
   end;
   
procedure Step_10(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin       
    MyGPS.gps_moveto('Beolin');
    Engine.SetTarget(31547);
    Engine.FaceControl(0, false);
    delay(500);
    Engine.DlgOpen;
    delay(500);
    Bypass ('Quest'); 
  //  Engine.DlgSel(2);
    delay(500);
    Bypas ('Egg');
  //  Engine.DlgSel(1);
    delay(500);
    Bypass ('your'); 
   // Engine.DlgSel(1);
    delay(500);
    Engine.FaceControl(0, true);
end;
end;

procedure Step_11(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if not User.Dead then begin       
    MyGPS.gps_moveto('Jeremy');
    Engine.SetTarget(31521);
    delay(500);
    Engine.DlgOpen;
    delay(1000);
    Bypass ('Quest'); 
  //  Engine.DlgSel(1);
    delay(1000);
     Bypass ('яиц'); 
   // Engine.DlgSel(2);
    delay(1000);
    Bypass ('the'); 
   // Engine.DlgSel(1);
    delay(1000);
    Engine.DlgOpen;
    delay(500);
    Bypass ('Quest'); 
   // Engine.DlgSel(1);
    delay(1000);
    Bypass ('ликера');
  //  Engine.DlgSel(1);
    delay(1000);
    Bypass ('the'); 
   // Engine.DlgSel(1);
        delay(1000);
Engine.EnterText('/unstuck');
 delay(25000);
 print('годдаод');
    Engine.MoveTo(83368, 148008, -3408);
Engine.SetTarget(30080);
delay(1000);
Engine.DlgOpen();
delay(2000);
Engine.DlgSel(5);
delay(2000);
Engine.DlgSel(4);
delay(25000);
end;
end;       
procedure Step_12(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    MyGPS.gps_moveto('Goddart_WH');
    Engine.SetTarget(31267);
    Delay(500);
    Engine.DlgOpen;
    Delay(500);
    Bypass ('Quest'); 
   // Engine.DlgSel(4);
    Delay(500);
    Bypass ('some'); 
end;

procedure Step_13(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    MyGPS.gps_moveto('Goddard_Grocery');
    Engine.SetTarget(31584);
    Delay(500);
    Engine.DlgOpen;
    Delay(500);
    Bypass ('Quest'); 
 //   Engine.DlgSel(1);
    Delay(500);
    Bypass ('Jerem');  
end;

function rebuff: Boolean;
var buff: TL2Buff;
  begin
    if (not User.Buffs.ByID(1204, buff) or (Buff.EndTime<600000)) then begin 
Result:=true;
        Delay(1000);
        Engine.SetTarget(50000);
                delay(1000);
        Engine.DlgOpen ();
        delay(500);
       Bypass ('Набор война');
             delay(500);
              Bypass ('Баффы');
              delay(500);
               Bypass ('Професи');
                 delay(1000);
                Bypass ('Wind');
                 delay(1000);              
Goddard_GK();
    end;
end;

procedure goddart(); 
var
MyGPS:TMYGPS;
  begin
    Gps.LoadBase(ExePath+'\Interlude.db3');
    if CheckItemCount(7196, True) <5 then begin
    if CheckItemCount(7198, True) <5 then begin
    MyGPS.gps_moveto('Goddard_GK');
    end;
    if user.inrange(147907, -55670, -2735, 500, 500)then 
    Print('rebuff');
    rebuff;
    Goddard_GK;              
     end;                    
  end;              
        
procedure Goddard_GK();
  begin
 delay (2500);
print('Hot');     
Engine.SetTarget(31275); 
delay(1000);
  Engine.DlgOpen ();
     delay(1000);
  Engine.DlgSel(5);
            delay(500);
         Engine.DlgSel(11);
           delay(10000);
           
end;

begin
while 1<>2 do begin
//goddart
script.newthread(@deadCheck);
  if user.inrange(147800, -56616, -2768, 5000, 5000)
   then
    begin
      Print('goddart');
        goddart();
    end;

//step 1
if not user.inrange(147800, -56616, -2768, 5000, 5000)
  and not Engine.QuestStatus(621,32)and not Engine.QuestStatus(622,32)
  and not Engine.QuestStatus(622,1) and not Engine.QuestStatus(621,1)
  and not Engine.QuestStatus(622,2) and not Engine.QuestStatus(621,2)
  and not Engine.QuestStatus(622,3) and not Engine.QuestStatus(621,3)
  and not Engine.QuestStatus(622,4) and not Engine.QuestStatus(621,4)
  and not Engine.QuestStatus(622,5) and not Engine.QuestStatus(621,5) then
    begin
      print('Step_1');
      Step_1();
      delay (500);
    end;
//step 2
  if Engine.QuestStatus(622,1) then
    begin
    if CheckItemCount(7197, True) = 5 then
    begin
    print('Step_2');
    Step_2();
    delay (500);
    end;
  end;
//step 3
if Engine.QuestStatus(622,2)and not Engine.QuestStatus(622,3) then
  begin
    if CheckItemCount(7196, True) < 1 then // уточнить итем
    
    begin
    print('Step_3');
    Step_3();
    delay (500);
  end;
end;
//step 4
if Engine.QuestStatus(621,2) and Engine.QuestStatus(622,2) then begin
if CheckItemCount(7196, True) =1 then begin
print('Step_4');
Step_4();
delay (500);
end;
end;
//step 5
if Engine.QuestStatus(621,2) and Engine.QuestStatus(622,2) then begin
if CheckItemCount(7196, True) =2 then begin
print('Step_5');
Step_5();
delay (500);
end;
end;
//step 6
 if Engine.QuestStatus(621,3) and Engine.QuestStatus(622,2) then begin
if CheckItemCount(7196, True) =3 then begin
print('Step_6');
Step_6();
delay (500);
end;
end;
//step 7
 if Engine.QuestStatus(621,3) and Engine.QuestStatus(622,2) then begin
if CheckItemCount(7196, True) =4 then begin
if CheckItemCount(7198, True) =2 then begin
print('Step_7');
Step_7();
delay (500);
end;
end;
end;
//step 8
 if Engine.QuestStatus(621,3) and Engine.QuestStatus(622,3) then begin
if CheckItemCount(7198, True) =3 then begin
print('Step_8');
Step_8();
delay (500);
end;
end;
 //step 9
 if Engine.QuestStatus(621,3) and Engine.QuestStatus(622,3) then begin  //test
if CheckItemCount(7198, True) =4 then begin
print('Step_9');
Step_9();
delay (500);
end;
end;
 //step 10
if Engine.QuestStatus(621,3) and Engine.QuestStatus(622,3) then begin   //test
if CheckItemCount(7195, True) =1 then begin
if CheckItemCount(7197, True) =0 then begin
if CheckItemCount(7198, True) =5 then begin
if CheckItemCount(7196, True) =4 then begin
print('Step_10');
Step_10();
delay (500);
end;
end;
end;
end;
end;
//step 11
if not user.inrange(147800, -56616, -2768, 5000, 5000) and Engine.QuestStatus(621,3) and Engine.QuestStatus(622,3) then begin
if CheckItemCount(7198, True) =5 then begin
if CheckItemCount(7196, True) =5 then begin 
print('Step_11');
Step_11();
delay (500);
 end;
 end;
 end;
//step 12
if user.inrange(147800, -56616, -2768, 5000, 5000) then begin
if Engine.QuestStatus(621,3) and Engine.QuestStatus(622,3)then begin
if CheckItemCount(7198, True) =5 then begin
if CheckItemCount(7196, True) =5 then begin
print('Step_12');
delay(1000);
Step_12();
delay (500);
end;
end;
end;
end;
//step 13
if Engine.QuestStatus(621,3) then begin
if CheckItemCount(7198, True) =0 then begin
if CheckItemCount(7196, True) =5 then begin
print('Step_13');
delay(1000);
Step_13();
delay (500);
end;
end;
end;
end;
end.

 

Скрипт продублирован в архиве

 

55555.thumb.png.3c390b063af50c4c01e62af6c8a68ebc.png

 

 

 

666666.thumb.png.0511c34baca57507abad37b5d0b57721.png

  • Like 1
Ссылка на сообщение
Поделиться на другие сайты
3 hours ago, sacramentena said:

Выглядит круто, потестим) спасибо)

Спасибо за похвалу, делал для себя любимого :)

2 hours ago, ElecTpoH said:

главное что бы потом персов не раздели

Обернитесь, за вами следят :)

Ссылка на сообщение
Поделиться на другие сайты
3 hours ago, MsZontik said:

Спасибо за похвалу, делал для себя любимого :)

Обернитесь, за вами следят :)

проверил вирустотал вроде бы чисто. было бы круто если бы ещё гайд был как этим пользоваться

Изменено пользователем ElecTpoH
Ссылка на сообщение
Поделиться на другие сайты
9 hours ago, MsZontik said:

Немного жестко но смысл понятен :)

https://radikal.ru/video/Iopk4Z2nkKm

радикал 🤨 на ютубе нету что ли?

https://www.youtube.com/watch?v=j80UUgnJ6Cw

Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...

Как его запускать а то у меня ошибка на бесплатном адрике в первой строке я так понимаю связано с RegExpr;

7 minutes ago, OPG said:

Как его запускать а то у меня ошибка на бесплатном адрике в первой строке я так понимаю связано с RegExpr;

 

Script: MsZontik-script (1): File "RegExpr.PCU"not found
Ссылка на сообщение
Поделиться на другие сайты
14 hours ago, OPG said:

Как его запускать а то у меня ошибка на бесплатном адрике в первой строке я так понимаю связано с RegExpr;

работает ток на платном

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...