23.09.11: Добавил автоюз рыбацких сосок.
26.09.11: Исправил баг с неправильным отображением перса на карте, при загрузке более одного бота в локации.
27.09.11: Добавил на вкладку "настройки" переключатель города для сдачи манора (если будут несколько ботов сдавать, то все пойдет в один и тот же город). Тестим, отписываемся в темке что не так.
28.09.11: Соединил квестовый и обычный инвентари.
05.10.11: Подправил передвижение: теперь мертвые и сидячие боты не будут двигаться и мертвого бота можно отправить в кх.
28.10.11: Очередной фикс передвижения и отображения пати с вызванными петами. Начал делать ПыР при появлении "левых" чаров.
02.11.11: Тестовая версия корректора с ПРом. О найденных багах отписываемся.
09.11.11: Версия ПРа на несколько разных патей. Если при запуске корректор выдает ошибку как на скрине, удалите файл "Nicks.txt" из папки с корректором. Последовательность действий: Поочереди вписываем ники своих ЕЕшек и жмем кнопку добавить, заполняем список "своих" персонажей и ставим галки напротив ников ЕЕшек для ПРа. При телепорте в город галка снимается напротив ника ЕЕшки из портанувшейся пачки.
05.12.11: Выделение ХЧ ([Hero] перед ником).
08.12.11: Фикс отображения пати.
10.12.11: Небольшие фиксы. Базы под H5 от Be3geBJIa3а.
05.04.12: Исправлен IP логин сервера.
Исправил следование благодаря идее guplen.
Ссылка на архив с ботом 10.9.3 (вместе с картами): http://rghost.ru/21449151 (обновленный корректор скачивать из подписи).
Ссылка на бота 10.9.8 (старого бота лучше не удалять, так как могут отключить бесплатную верификацию для 10.9.8): http://rghost.ru/23927711
В архиве не окончательная версия корректора, в подписи более поздняя.
Запускать бота необходимо через loader, предварительно запустив l2wmx3.
Спасибо автору за проделанную работу! Но возникает один вопрос - версия валкера 10.9.3, соответственно несколько скриптовых команд добавленных в версии 10.9.8b отсутствует. Это вносит некоторые неудобство, возможно ли расширение набора скриптовых команд для этой версии (путём непосредственного вмешательства в валкер или же сторонними программами)??? Не уверен точно но кажется wpp в своё время мог расширить список команд. Вопрос к тому что этот бот совершенно беспомощен (и был таким) в ситуации появления другого игрока на том же месте - требуется время пока он выйдет, а это = бан. Но выход есть это ЕЕ'шный скилл масс тп всей пати в город в зависимость от дальности появления players not in friend list. Эта функция есть в Goodboy. Можно ли реализовать её в данном случае хотябы в виде скриптовой команды/команд. Так же неплохо было бы осуществить привязку в скриптах к ХП мобов.
При грамотной настройке бота с такой возможностью бото-пати станут неуловимы и прослужат гораздо дольше, думаю это в интересах всех ботоводов. Спасибо Alexxxxx, я тебя не тороплю, делай когда удобно, просто подкинул мысль.
Соски хотел купить. И еще вылетает при попытки взятия квеста около входа в скато нест.
________________________________________________
Пришли пакет MultiSell'a в личку, потому что у меня не критует. Да и оба квеста взялись без проблем.
Последний раз редактировалось Alexxxxx, 19.09.2011 в 21:41.
Сляпал скриптик под пакетхак. Второе окно исправно бегает за ведущим не добегая до него нужное расстояние. Еслибы этот скрипт можно было интегнрировать в корректор отпалибы проблемы с заруливанием ботов влево. У бота который следует за ведущим уходит пакет на серв moovbackvardtolocation, вот както вместо него и нужно залепить. В скрипте реализован расчет вектора ведущего с задержкой старта ведомого (если ведомый бегает быстрее прибегает первым а это не есть хорошо). Вот скрипт:
Код:
const
Komname='ччч';(ник ведущего)
name='ччч';(ник ведомого)
move=1;
N1=100;//растояние до точки куда бежим (недобегание)
var
X0,Y0,Z0,c:integer;//текЂщая точка
Xt,Yt,Zt,Xv,Yv,V1,Ux,Uy,X1,Y1,Xk,Yk,Zk:integer;//
timerBD: TTimer;
v,Xv1,Yv1,A,K,S:extended;//
procedure SendMsg2(Msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(9);
WriteS('');
WriteS(' '+Msg);
SendToClientEx(komname);
end;
procedure OnTimerBD(Sender: TObject);
begin
buf:=#$0F;//пакет moovBackwardToLocation
WriteD(X1);WriteD(Y1);WriteD(Zt);
WriteD(X0);WriteD(Y0);WriteD(Z0);WriteD(move);
SendToServerEx(Name);
timerBD.enabled:=false;
//SendMsg2('бегу!!!');
end;
procedure Init; //Вызывается при включении скрипта
begin
begin
//SendMsg2('Скрипт включен');
timerBD:=TTimer.Create(nil);
timerBD.OnTimer:=@OnTimerBD;
timerBD.enabled:=false;
timerBD.interval:=1500;//задержка старта (можно убрать)
end;
end;
procedure Free; //Вызывается при выключении скрипта
begin
//SendMsg2('Скрипт выключен');
timerBD.Free;
end;
//**************************************************************************************************
begin
//читаем куда бежит командир
if (FromClient)and(ConnectName=Komname) and (pck[1]=#$0F) then//MoveBack
begin
c:=2;
Xt:=ReadD(c);
Yt:=ReadD(c);
Zt:=ReadD(c);
X0:=ReadD(c);
Y0:=ReadD(c);
Z0:=ReadD(c);
//SendMsg2('*******************************************************');
//SendMsg2('X0='+IntToStr(x0)+' Y0='+IntToStr(y0));
//SendMsg2('Xt='+IntToStr(xt)+' Yt='+IntToStr(yt));
if (x0>Xt) then
begin
Xv:=(X0-Xt);
Ux:=1;
end
else
begin
Xv:=(Xt-X0);
Ux:=0;
end;
if (y0>Yt) then
begin
Yv:=(Y0-Yt);
Uy:=1;
end
else
begin
Yv:=(Yt-Y0);
Uy:=0;
end;
//SendMsg2('Ux='+IntToStr(Ux)+' Uy='+IntToStr(Uy));
V:=sqrt((Xv*Xv)+(Yv*Yv));//вектор движения к командиру
//SendMsg2('X0='+IntToStr(x0)+' Y0='+IntToStr(y0));
//SendMsg2('Xv='+IntToStr(xv)+' Yv='+IntToStr(yv)+' N1='+IntToStr(n1));
//SendMsg2('V='+FloatToStr(V));
if (V>N1) then
begin
V1:=(round(V)-N1);//укороченный вектор
//SendMsg2('V1='+FloatToStr(V1));
S:=(Yv/V); Yv1:=(V1*S);//координаты по осям укороченного вектора
K:=(Xv/V); Xv1:=(V1*K);
//SendMsg2('S='+FloatToStr(S)+' K='+FloatToStr(K));
//SendMsg2('Xv1='+FloatToStr(xv1)+' Yv1='+FloatToStr(yv1));
if (Ux=0) then
begin
X1:=(X0+round(Xv1));
end
else
begin
X1:=(X0-round(Xv1));
end;
if (Uy=0) then
begin
Y1:=(Y0+round(Yv1));
end
else
begin
Y1:=(Y0-round(Yv1));
end;
//SendMsg2('X1='+IntToStr(X1)+'Y1='+IntToStr(Y1));
end;
//buf:=#$0F;//пакет moovBackwardToLocation
//WriteD(X1);WriteD(Y1);WriteD(Zt);
//WriteD(X0);WriteD(Y0);WriteD(Z0);WriteD(move);
//SendToServerEx(Name);
timerBD.enabled:=true;
end;
//читаем текущие координаты ведомого
if (FromClient)and(ConnectName=name) and (pck[1]=#$59) then//ValidatePosition
begin
c:=2;
Xk:=ReadD(c);
Yk:=ReadD(c);
Zk:=ReadD(c);
end;
end.
И второе, при включении сосок постоянно при ударах на серв уходит пакет RequestAutoSoulShot, а в клиенте никто я думаю постоянно не тыкает кнопку "автососки" на панели, это не есть гуд. Только поэтому можно кучу народу запалить . У мня в боте чтото нет пункта heal in PvP -> Shot setting. Единственное корректно работает это двойной клик на соски в инвентаре, но при перезагрузке кто будет тыкать на соски?
______________
Исправил автососки, проверь на всякий
__________________
Пока мы убиваем время,
время убивает нас...
Слова начальника: Ну как, все планеты победил?
Последний раз редактировалось Alexxxxx, 19.09.2011 в 20:49.
За это сообщение michonik нажился 2 спасибками от: