|
Скриптинг Форум посвещенный созданию скриптов для L2PacketHack |
27.04.2008, 17:41
|
#1
|
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
|
Автоматизация движения по маршруту
Организация движения чара по маршруту. Выдернул из скрипта рыбалки.
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 нажился 13 спасибками от:
|
ad01f, Alan, Anton5, APXAHGEJI, dyh9l, DzumoHu4, Emocean, Grinch, nezabudkin, soel2, TAMBIK, vovanchik, wanick |
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:58.
|
|