Привет, завсегдатаи и гуру скриптовых программ! Я только начал осваивать скрипты адреналина, и поэтому прошу ваших советов по нескольким пунктам, а именно:
1. Я составил скрипт (скрипт ниже), в него входит возвращение на спот при смерти и баф. Брал стандартный с форума адреналина и подставлял свои данные. Однако беда в том, что нпц того пвп сервера, на который я пишу скрипт, видимо самодельные и их имена на русском языке (Engine.SetTarget('Баффер') не помогает). Думал прописывать их в скрипт по айди (например Engine.SetTarget(12345)), который видно в адреналине, однако даже так он их не выделяет и не ведёт диалог. То есть в конечном итоге я имею перса, который помирает, встаёт в город, добегает до бафера и стоит просто так, о телепорте вообще не может идти и речи. Как можно решить данную проблему? скрипт
var 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;
// этот кусок не трогаем
//1 менять тут
// этот кусок - точки респа выбранной деревни их просто заменить на нужную вам
if User.inrange(81376,148095,-3464, 250, 150) then begin
Engine.MoveTo(81376,148095,-3464);
Engine.MoveTo(81881,148025,-3467);
Engine.MoveTo(83027,148020,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(82292,149450,-3464, 250, 150) then begin
Engine.MoveTo(82292,149450,-3464);
Engine.MoveTo(82865,148876,-3467);
Engine.MoveTo(83054,148281,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(81562,147782,-3464, 250, 150) then begin
Engine.MoveTo(81562,147782,-3464);
Engine.MoveTo(82284,148077,-3467);
Engine.MoveTo(83077,148159,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(83409,148578,-3400, 250, 150) then begin
Engine.MoveTo(83409,148578,-3400);
Engine.MoveTo(83427,148206,-3403);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(81440,149119,-3464, 250, 150) then begin
Engine.MoveTo(81440,149119,-3464);
Engine.MoveTo(82200,149222,-3467);
Engine.MoveTo(82722,148485,-3467);
Engine.MoveTo(83087,148101,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(82496,148095,-3464, 250, 150) then begin
Engine.MoveTo(82496,148095,-3464);
Engine.MoveTo(83092,148094,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(83473,149223,-3400, 250, 150) then begin
Engine.MoveTo(83473,149223,-3400);
Engine.MoveTo(83355,148728,-3403);
Engine.MoveTo(83358,148292,-3403);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(82272,147801,-3464, 250, 150) then begin
Engine.MoveTo(82272,147801,-3464);
Engine.MoveTo(82565,148080,-3467);
Engine.MoveTo(83101,148099,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(82480,149087,-3464, 250, 150) then begin
Engine.MoveTo(82480,149087,-3464);
Engine.MoveTo(82623,148694,-3467);
Engine.MoveTo(83087,148157,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(81637,149427,-3464, 250, 150) then begin
Engine.MoveTo(81637,149427,-3464);
Engine.MoveTo(82229,149197,-3467);
Engine.MoveTo(82610,148669,-3467);
Engine.MoveTo(83088,148170,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(81062,148144,-3464, 250, 150) then begin
Engine.MoveTo(81062,148144,-3464);
Engine.MoveTo(81574,147997,-3467);
Engine.MoveTo(82302,147975,-3467);
Engine.MoveTo(83070,148109,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(83426,148835,-3400, 250, 150) then begin
Engine.MoveTo(83426,148835,-3400);
Engine.MoveTo(83422,148276,-3403);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(81033,148883,-3464, 250, 150) then begin
Engine.MoveTo(81033,148883,-3464);
Engine.MoveTo(81769,149191,-3467);
Engine.MoveTo(82322,149192,-3467);
Engine.MoveTo(82622,148656,-3467);
Engine.MoveTo(83079,148163,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.inrange(83415,148235,-3400, 250, 150) then begin
Engine.MoveTo(83415,148235,-3400);
Engine.MoveTo(83402,147946,-3403);
end;
// этот кусок - точки респа выбранной деревни
//2 менять тут
// точка которая указаная в инренж этот точка в которую ведут все точки респа,
//ее просто можно скопировать с конечной любой точки респа
if User.inrange(83402,147946,-3403, 250, 150) then begin // бежит к ГК
delay(2550);
// к баферу
Engine.MoveTo(82763, 148565, -3464);
Engine.MoveTo(83261, 148078, -3408);
Engine.MoveTo(83525, 147898, -3400);
// выделяет бафера
Engine.SetTarget(37654);
// Окрытие диалога и отправка байпаса
Engine.DlgOpen();
delay(1000);
Engine.BypassToServer ('0a" ', True); //ребаф
delay(1000);
Engine.MoveTo(83460, 147916, -3400); //хреначит диалог с ГК и хз надо ли тут на каждый хтмл отправлять байпас или хватает последнего
Engine.SetTarget(31121);
Engine.DlgOpen();
delay(1000);
Engine.BypassToServer ('04"', True); //гк
delay(1000);
Engine.BypassToServer ('08"', True);
delay(1000);
Engine.BypassToServer ('07"', True);
// эти точки ведут нас уже непосредственно на наш спот и по его достижению вкллючаем инфетфейс
Engine.MoveTo(-37775, 213498, -3720);
2. Тот же самый скрипт, проблема с точками респа. Одмен этого сервера скорее всего вписал в базу 2 свои точки респа в Гиране справа и слева от храма + стандартные точки респа (при смерти в фарм локации мой перс встаёт в Гиран). Но если я попадаю в одну из этих двух добавленных точек, то перс не ведёт поиска ближайших точек и просто стоит. А если попадает на стандартные точки, то скрипт работает, т.е. перс бежит к бафферу, ГК и тд. куда пропишу. Что посоветуете?
3. Не касается скриптов, а непосредственно самого интерфейса. При гринде мобов сх выставляю хурикану и вампирик в интерфейс с повтором и паузой в 0,00 мсек (по идее без паузы). Однако, если сравнивать и ручным управлением, когда сам зажимаешь, например, F2 с хуриканой, то адреналин ~в 3 раза медленнее спамит хурик. Что уже только не пробовал, иногда даже каким-то образом сбиваю интерфейс бота (см. следущий пункт) РЕШЕНО САМОСТОЯТЕЛЬНО
4. Так же не касается скриптов. Иногда бот просто сбивается при гринде. То есть стоит мой перс в толпе мобов, но выделяет их спамит скилл с о***тельными задержками, убил моба, и стоит до 10 сек, может даже выделить моба, один раз его ударить и просто стоять. Помогает только полный перезапуск бота и клиента игры.
5. Обход капчи. При гринде мобов выскакивает капча вида "x+y+z+q" (от двух до четырёх чисел, соответственно не всегда сложение) или "какой сейчас год" (вчера в первый раз увидел вообще). После трёх не правильных вводов телепортирует в город. Что предпринимал: брал скрипт на форуме rawr.su на капчу [Ссылки могут видеть только зарегистрированные пользователи. ]? но там только на 2 числа. При появлении капчи в ответ выскакивала HTML с ошибкой и персонажа постоянно телепортировало в город (при том что он итак стоит в городе). Подумал, что проще в такой ситуации делать релог, но я не умею впихивать это в скрипт). Ну и в довесок, после просит ключ чара. Хтмл и скрин капчи и пароля на логин:
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ] 1.rar
Спасибо что осилили, надеюсь на вашу помощь!) С меня репа)
Последний раз редактировалось Verano; 11.08.2016 в 16:08.
var mob: tl2npc;
begin
while 1<>2 do begin
delay(1000);
if User.InRange(31184,69105,-3594,1000,150) then begin
npclist.byid(15063, mob);
engine.settarget(mob);
while not user.target.dead do begin
delay(100);
engine.useskill(24);
end;
end;
end;
end.
не меняет цель после убийства стоит тупит пока не исчезнет тело ... как исправить , кто знает ?