Показать сообщение отдельно
Старый 27.04.2008, 17:41   #1
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Автоматизация движения по маршруту

Организация движения чара по маршруту. Выдернул из скрипта рыбалки.
delphi Код:
//Автоматизация движения по маршруту by NLObP для L2PacketHack v.3.1.8+// program Move; { Скрипт распространяется как есть, и я не несу ответственности за то, что ВЫ натворили у себя, его используя. } const   Name='NLObP'//имя чара для которого включаем скрипт //*************************************************************** var   moveto1: TTimer;   distanciya:boolean;   MestoLovli, mov, i, j, MyID, MyXpos, MyYpos, MyZpos: integer; //*************************************************************** //Вызывается при включении скрипта //*************************************************************** procedure Init; begin   MestoLovli:=1; //номер маршрута   //таймеры, можно поправить время по обстоятельствам   moveto1:=TTimer.Create(nil);   moveto1.OnTimer:=@Onmoveto1;   moveto1.enabled:=false;   moveto1.interval:=1000; //время задержки end; //*************************************************************** //Вызывается при выключении скрипта //*************************************************************** procedure Free; begin   moveto1.OnTimer := nil;   moveto1.Enabled := false;   moveto1.Interval := 0;   moveto1.Free; end; //*************************************************************** // Все перемещения чара здесь!!! //*************************************************************** procedure OnMoveTo1(Sender: TObject); begin   case mov of     //-------------------------------------------------     //1 бежим к фишерману в Гиран-харбор     //-------------------------------------------------     1100: MoveTo(51049,186286,-3672);     1101: MoveTo(50920,186425,-3631);     1102: MoveTo(50553,186269,-3631);     1103: MoveTo(49912,185723,-3561);     1104: MoveTo(49126,185867,-3491);     1105: MoveTo(48806,186219,-3491);     1106: Mov:=1315;     //-------------------------------------------------     //2 бежим к фишерману в Гиран-харбор     //-------------------------------------------------     1200: MoveTo(50931,185930,-3672);     1201: MoveTo(51030,186033,-3676);     1202: MoveTo(51065,186124,-3676);     1203: MoveTo(50987,186359,-3656);     1204: MoveTo(50837,186416,-3630);     1205: MoveTo(50620,186268,-3630);     1206: MoveTo(50397,186114,-3630);     1207: MoveTo(50152,185954,-3589);     1208: MoveTo(49912,185830,-3560);     1209: MoveTo(49625,185825,-3560);     1210: MoveTo(49347,185813,-3490);     1211: MoveTo(49118,185886,-3490);     1212: MoveTo(48942,186034,-3490);     1213: MoveTo(48786,186220,-3490);     1214: Mov:=1315;     //-------------------------------------------------     //3 бежим к фишерману в Гиран-харбор     //-------------------------------------------------     1300: MoveTo(52452,186940,-3665);     1301: MoveTo(52280,187089,-3631);     1302: MoveTo(52025,187265,-3631);     1303: MoveTo(51755,187315,-3631);     1304: MoveTo(51476,187101,-3631);     1305: MoveTo(51228,186902,-3631);     1306: MoveTo(50977,186692,-3631);     1307: MoveTo(50676,186423,-3631);     1308: MoveTo(50425,186213,-3631);     1309: MoveTo(50182,186015,-3599);     1310: MoveTo(49932,185836,-3560);     1311: MoveTo(49591,185850,-3560);     1312: MoveTo(49290,185853,-3490);     1313: MoveTo(49032,185921,-3490);     1314: MoveTo(48790,186223,-3490);     1315: begin       //мы у фишермана, покупаем крючки и обмениваем мусор на пруфы       MoveTo1.enabled:=false;       trade:=200;       trade1.enabled:=true;       TradeCount:=0;       Mov:=0;       msg.Lines.Add('Продадим/купим/обменяем...');     end;     //-------------------------------------------------     //1 бежим от фишермана на берег в Гиран-харбор     //-------------------------------------------------     2100: MoveTo(48786,186215,-3480);     2101: MoveTo(48922,186037,-3490);     2102: MoveTo(49058,185930,-3490);     2103: MoveTo(49170,185860,-3490);     2104: MoveTo(49585,185865,-3560);     2105: MoveTo(49908,185843,-3560);     2106: MoveTo(50121,185970,-3587);     2107: MoveTo(50502,186174,-3630);     2108: MoveTo(50701,186330,-3630);     2109: MoveTo(50904,186471,-3630);     2110: MoveTo(51062,186567,-3630);     2111: MoveTo(51164,186504,-3676);     2112: MoveTo(51381,186442,-3676);     2113: Mov:=2320;     //-------------------------------------------------     //2 бежим от фишермана на берег в Гиран-харбор     //-------------------------------------------------     2200: MoveTo(48781,186197,-3490);     2201: MoveTo(48899,186049,-3490);     2202: MoveTo(49066,185916,-3490);     2203: MoveTo(49222,185843,-3490);     2204: MoveTo(49580,185846,-3560);     2205: MoveTo(49783,185862,-3560);     2206: MoveTo(50012,185914,-3568);     2207: MoveTo(50191,186002,-3599);     2208: MoveTo(50375,186097,-3630);     2209: MoveTo(50515,186211,-3630);     2310: MoveTo(50619,186301,-3630);     2311: MoveTo(50715,186381,-3630);     2312: MoveTo(50831,186422,-3630);     2313: MoveTo(50949,186359,-3647);     2314: MoveTo(51033,186267,-3676);     2315: MoveTo(51100,186129,-3676);     2316: MoveTo(51001,186029,-3676);     2317: MoveTo(50933,185934,-3676);     2318: Mov:=2320;     //-------------------------------------------------     //3 бежим от фишермана на берег в Гиран-харбор     //-------------------------------------------------     2300: MoveTo(48784,186224,-3480);     2301: MoveTo(48906,186063,-3490);     2302: MoveTo(49037,185949,-3490);     2303: MoveTo(49200,185858,-3490);     2304: MoveTo(49601,185833,-3560);     2305: MoveTo(49844,185827,-3560);     2306: MoveTo(50200,186064,-3607);     2307: MoveTo(50448,186242,-3630);     2308: MoveTo(50648,186407,-3630);     2309: MoveTo(50848,186584,-3630);     2310: MoveTo(51077,186782,-3630);     2311: MoveTo(51258,186927,-3630);     2312: MoveTo(51424,187069,-3630);     2313: MoveTo(51630,187205,-3630);     2314: MoveTo(51787,187300,-3630);     2315: MoveTo(52019,187216,-3630);     2316: MoveTo(52192,187106,-3630);     2317: MoveTo(52329,187024,-3630);     2318: MoveTo(52482,186920,-3677);     2319: MoveTo(52568,186838,-3677);     2320: begin       MoveTo1.enabled:=false;       Mov:=0;       fishin.enabled:=true; //продолжим ловить рыбу       msg.Lines.Add('Продолжим ловить рыбу!!!');     end;     //-------------------------------------------------     //1 бежим после смерти на берег в Гиран-харбор...     //-------------------------------------------------     3100: MoveTo(48786,186215,-3480);     3101: MoveTo(48922,186037,-3490);     3102: MoveTo(49058,185930,-3490);     3103: MoveTo(49170,185860,-3490);     3104: MoveTo(49585,185865,-3560);     3105: MoveTo(49908,185843,-3560);     3106: MoveTo(50121,185970,-3587);     3107: MoveTo(50502,186174,-3630);     3108: MoveTo(50701,186330,-3630);     3109: MoveTo(50904,186471,-3630);     3110: MoveTo(51062,186567,-3630);     3111: MoveTo(51164,186504,-3676);     3112: MoveTo(51381,186442,-3676);     3113: Mov:=3317;     //-------------------------------------------------     //2 бежим после смерти на берег в Гиран-харбор...     //-------------------------------------------------     3200: MoveTo(48785,186203,-3490);     3201: MoveTo(48907,186068,-3490);     3202: MoveTo(49041,185940,-3490);     3203: MoveTo(49201,185825,-3490);     3204: MoveTo(49628,185829,-3560);     3205: MoveTo(49983,185850,-3560);     3206: MoveTo(50507,186220,-3630);     3207: MoveTo(50760,186382,-3630);     3208: MoveTo(50889,186435,-3630);     3209: MoveTo(51030,186278,-3676);     3210: MoveTo(51096,186134,-3676);     3211: MoveTo(50915,185939,-3676);     3212: Mov:=3317;     //-------------------------------------------------     //3 бежим после смерти на берег в Гиран-харбор...     //-------------------------------------------------     3300: MoveTo(48768,186185,-3490);     3301: MoveTo(48918,186002,-3490);     3302: MoveTo(49080,185890,-3490);     3303: MoveTo(49238,185821,-3490);     3304: MoveTo(49598,185839,-3560);     3305: MoveTo(49835,185826,-3560);     3306: MoveTo(50052,185868,-3568);     3307: MoveTo(50434,186189,-3630);     3308: MoveTo(50744,186457,-3630);     3309: MoveTo(51096,186752,-3630);     3310: MoveTo(51487,187037,-3630);     3311: MoveTo(51717,187227,-3630);     3312: MoveTo(51881,187325,-3630);     3313: MoveTo(52007,187299,-3630);     3314: MoveTo(52181,187192,-3630);     3315: MoveTo(52349,187025,-3630);     3316: MoveTo(52579,186835,-3676);     3317: begin       MoveTo1.enabled:=false;       Mov:=0;       if not isEquipRod then giverod;       delay(1000);       if not isEquipLure then givelure;       delay(1000);       fishin.enabled:=true; //продолжим ловить рыбу       msg.Lines.Add('Продолжим ловить рыбу!!!');     end;     //-------------------------------------------------     //1 меняем место     //-------------------------------------------------     4100: MoveTo(51384,186429,-3672);     4101: MoveTo(51219,186267,-3672);     4102: MoveTo(51036,186050,-3672);     4103: MoveTo(50932,185926,-3672);     4104: Mov:=4306;     //-------------------------------------------------     //2 меняем место     //-------------------------------------------------     4200: MoveTo(51090,186099,-3671);     4201: MoveTo(51076,186201,-3671);     4202: MoveTo(50977,186336,-3653);     4203: MoveTo(50876,186510,-3625);     4204: MoveTo(51181,186804,-3625);     4205: MoveTo(51365,186967,-3625);     4206: MoveTo(51572,187157,-3625);     4207: MoveTo(51752,187311,-3625);     4208: MoveTo(51955,187368,-3625);     4209: MoveTo(52123,187211,-3625);     4210: MoveTo(52334,187043,-3625);     4211: MoveTo(52586,186835,-3672);     4212: Mov:=4306;     //-------------------------------------------------     //3 меняем место     //-------------------------------------------------     4300: MoveTo(52359,187030,-3626);     4301: MoveTo(51784,187362,-3626);     4302: MoveTo(51365,186951,-3626);     4303: MoveTo(51087,186638,-3626);     4304: MoveTo(51275,186445,-3672);     4305: MoveTo(51378,186435,-3671);     4306: begin       MoveTo1.enabled:=false;       Mov:=0;       MMesto:=0;       fishin.enabled:=true; //продолжим ловить рыбу       msg.Lines.Add('Продолжим ловить рыбу на новом месте!!!');     end;     //-------------------------------------------------     //1 Репозиция на месте рыбалки после боя с мобом     //-------------------------------------------------     9100: begin       moveto1.interval:=500; //время задержки 0,5 сек       MoveTo(51333,186383,-3671);     end;     9101: MoveTo(51381,186427,-3671);     9102: Mov:=9302;     //-------------------------------------------------     //2 Репозиция на месте рыбалки после боя с мобом     //-------------------------------------------------     9200: begin       moveto1.interval:=500; //время задержки 0,5 сек       MoveTo(50966,185965,-3672);     end;     9201: MoveTo(50931,185931,-3672);     9202: Mov:=9302;     //-------------------------------------------------     //3 Репозиция на месте рыбалки после боя с мобом     //-------------------------------------------------     9300: begin       moveto1.interval:=500; //время задержки 0,5 сек       MoveTo(52589,186837,-3672);     end;     9301: MoveTo(52586,186837,-3672);     9302: begin       MoveTo1.enabled:=false;       Mov:=0;       fishin.enabled:=true; //продолжим ловить рыбу       msg.Lines.Add('Продолжим ловить рыбу!!!');       moveto1.interval:=1000; //время задержки 1 сек     end;   end; end; //*************************************************************** //ПЕРЕМЕЩЕНИЕ: //Идти в точку с координатами x,y,z procedure MoveTo(TargetX,TargetY,TargetZ:integer); begin   if PosInRange(TargetX,TargetY,TargetZ,100) then inc(mov)   else MoveTo2(TargetX,TargetY,TargetZ); end; //*************************************************************** procedure MoveTo2(TargetX,TargetY,TargetZ:integer); begin   //01=MoveBackwardToLocation:d(targetX)d(targetY)d(targetZ)d(originX)d(originY)d(originZ)d(moveByMouse)   buf:=#$01;   WriteD(targetx); //куда   WriteD(targety);   WriteD(targetz);   WriteD(MyXpos); //откуда   WriteD(MyYpos);   WriteD(MyZpos);   WriteD(1); //используем 1-мышь 0-клавиатура   SendToServerEx(Name);   msg.Lines.Add('MoveTo('+inttostr(targetx)+','+inttostr(targety)+','+inttostr(targetz)+')'); end; //*************************************************************** //Ориентация на местности: //Проверка находится ли заданная точка в пределах досягаемости. function PosInRange(targetx,targety,targetz,distanciya:extended):boolean; begin      if delta(targetx, targety, MyXpos, MyYpos)<=distanciya      then result:=true else result:=false; end; //*************************************************************** // вызывается при приходе каждого пакета, если скрипт включен //*************************************************************** begin   //****************************************************************************   //не обрабатываем пустые пакеты   if pck='' then exit;   //****************************************************************************   if (ConnectName=Name) and FromServer then begin     case pck[1] of       #$04: begin           //msg.Lines.Add('S>Пакет UserInfo #$04');           //пакет с инфой о моём чаре           i:=2;           MyXpos:=ReadD(i); //получаю координату х моего чара           MyYpos:=ReadD(i); //получаю координату у моего чара           MyZpos:=ReadD(i); //получаю координату z моего чара           //Запоминаем ИД           i:=18;           MyID:=ReadD(i); //получаю ид моего чара       end;     end;   end;   //****************************************************************************   if (ConnectName=Name) and FromClient then begin     case pck[1] of       #$1B: begin         //msg.Lines.Add('C>Пакет RequestSicialAction #$1B');         //социальное действие         case ReadD(2) of           8: begin //unaware             case MestoLovli of               1: mov:=210;               2: mov:=220;               3: mov:=230;             end;             moveto1.enabled:=true;             //msg.Lines.Add('Бежим из магазина на берег...');             //не передаем серверу             pck:='';           end;           //для облечения написания маршрута (требуется панель информации!) {          11: begin //applaud - чекаем точку движения для внесения в скрипт.             info.Lines.Add(': begin');             info.Lines.Add('  if PosInRange('+inttostr(MyXpos)+','+inttostr(MyYpos)+','+inttostr(MyZpos)+',50) then inc(mov)');             info.Lines.Add('  else MoveTo('+inttostr(MyXpos)+','+inttostr(MyYpos)+','+inttostr(MyZpos)+');');             info.Lines.Add('end;');             //не передаем серверу             pck:='';           end;}           12: begin //dance             case MestoLovli of               1: mov:=110;               2: mov:=120;               3: mov:=130;             end;             moveto1.enabled:=true;             //msg.Lines.Add('Бежим в магазин...');             //не передаем серверу             pck:='';           end;         end;       end;       //ValidatePosition пакет от клиента с моими кординатами       #$48: begin         //msg.Lines.Add('C>Пакет ValidatePosition #$48');         MyXpos:=ReadD(2); //получаю координату х моего чара         MyYpos:=ReadD(6); //получаю координату у моего чара         MyZpos:=ReadD(10); //получаю координату z моего чара       end;     end;   end; end.

Последний раз редактировалось NLObP, 14.05.2008 в 01:00. Причина: изменение скрипта
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился 13 спасибками от: