Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

Помогите найти ошибку в скрипте

Рег
25 Янв 2016
Сообщения
8
Реакции
0
Доброго времени суток! Купил адреналин и юзал его только через интерфейс, сопартийцы рассказали о безграничных возможностях бота при использовании скриптов. Попытался сам написать по примеру других и вот что получилось....
по идее он должен фармить каты бегая по кругу и обходя при этом 5 комнат.
Пожалуйста помогите исправить ошибку!
uses SysUtils, Classes;
function MobInZone: boolean;
var

obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;

begin // проверка команты на наличие мобов
result:= False;
for mob:=0 to npclist.count-1 do begin
if npclist.items(mob).inzone and not npclist.items(mob).dead then begin
if npclist.items(mob).z > (user.z-400) then begin
if npclist.items(mob).z < (user.z+400) then begin
result:= true;
end;
end;
end;
end;
end;




procedure sdoh;
begin
Engine.FaceControl(0,false);
delay (2000);
Engine.GoHome;
Delay(5000);
engine.bypasstoserver('_bbshome'); // Альт+б баф
delay (1000);
engine.bypasstoserver('02');
delay (1000);
engine.bypasstoserver('0b');
delay (1000);
engine.bypasstoserver('01a');
delay (1000);
engine.bypasstoserver('_bbsgetfav');
delay (3000);

engine.bypasstoserver('_bbshome'); // Альт+б телепорт
delay (1000);
engine.bypasstoserver('02');
delay (1000);
engine.bypasstoserver('0a');
delay (1000);
engine.bypasstoserver('031');
delay (1000);
engine.bypasstoserver('010');
delay (1000);

Engine.MoveTo(83528, 209944, -5416); // бежит до первой комнаты
Engine.MoveTo(84440, 210120, -5416);
Engine.MoveTo(84440, 211032, -5416);
Engine.MoveTo(83704, 211112, -5416);
Engine.FaceControl(0,true);
end;

procedure farm;
begin
engine.LoadZone('Saint_1.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(83432, 211864, -5416);
Engine.MoveTo(83448, 213640, -5416);


engine.LoadZone('Saint_2.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(83672, 213832, -5416);
Engine.MoveTo(85432, 213832, -5416);


engine.LoadZone('Saint_3.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(85528, 213608, -5416);
Engine.MoveTo(85512, 212712, -5416);


engine.LoadZone('Saint_4.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(85512, 211144, -5416);
Engine.MoveTo(85608, 210520, -5416);
Engine.MoveTo(86040, 210344, -5416);
Engine.MoveTo(86120, 209896, -5416);
Engine.MoveTo(86120, 209192, -5416);


engine.LoadZone('Saint_5.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(86120, 209192, -5416);
Engine.MoveTo(86104, 209880, -5416);
Engine.MoveTo(86024, 210312, -5416);
Engine.MoveTo(85624, 210536, -5416);
Engine.MoveTo(85224, 211640, -5416);
Engine.MoveTo(84936, 211752, -5416);
Engine.MoveTo(84616, 211704, -5416);
Engine.MoveTo(84376, 211144, -5416);
Engine.MoveTo(83464, 211112, -5416);
end;

procedure baff; // proverka na re baff
begin
Engine.FaceControl(0,false);
Delay(5000);
engine.bypasstoserver('_bbshome'); // Альт+б баф
delay (1000);
engine.bypasstoserver('02');
delay (1000);
engine.bypasstoserver('0b');
delay (1000);
engine.bypasstoserver('01a');
delay (1000);
engine.bypasstoserver('_bbsgetfav');
delay (3000);

engine.bypasstoserver('_bbshome'); // альт+б телепорт
delay (1000);
engine.bypasstoserver('02');
delay (1000);
engine.bypasstoserver('0a');
delay (1000);
engine.bypasstoserver('031');
delay (1000);
engine.bypasstoserver('010');
delay (1000);

Engine.MoveTo(83528, 209944, -5416); // бежит до первой комнаты
Engine.MoveTo(84440, 210120, -5416);
Engine.MoveTo(84440, 211032, -5416);
Engine.MoveTo(83704, 211112, -5416);
Engine.FaceControl(0,true);
end;
begin
while 1<>2 do begin
farm;
if User.Dead then sdoh;
if (not User.Buffs.ByID(1357, i) or (i.Endtime < 600000))and(not User.Dead) then baff;
end;
end.
 
Могу предположить, что у тебя в папке с адриком нет подгружаемых зон, либо байпассы не подходят, либо и то и другое.
 
этот скрипт работает, но не хочет вставать в город после смерти приходится делать так что бы вставал через интерфейс
функция MobInZone: логическое;
вар
моб: целое число;
объект: TL2NPC;
obj2 являются едиными: TL2Effect;
Враг: TL2Live;

начать
результат:= ложь;
для толпы:=0 до npclist.граф-1 делать начать
если npclist.предметы(моб).функции inzone и не npclist.предметы(моб).мертвых затем начать
если npclist.предметы(моб).с Z > (пользователь.оси Z-400) затем начать
если npclist.предметы(моб).по Z < (пользователь.Z в+400) затем начать
результат:= истина;
конец;
конец;
конец;
конец;
конец;

начать

в то время как 1=1 начать делать

если пользователь.Мертвых потом
начать
Двигателя.домой;
задержка(10000);
Двигателя.Фейсконтроль(0,ложь);
конец;
если пользователь.функцией inrange(83302, 209188, -5416, 250, 150)затем
начать
Двигателя.Функциями moveto(83528, 209944, -5416);
Двигателя.Функциями moveto(84440, 210120, -5416);
Двигателя.Функциями moveto(84440, 211032, -5416);
Двигателя.Функциями moveto(83704, 211112, -5416);
Двигателя.Фейсконтроль(0,истина);
конец;



двигателя.LoadZone('Saint_1.zmap');
двигателя.Фейсконтроль(0, истина);
а MobInZone делать задержка(500);
двигателя.Фейсконтроль(0, ложь);
Двигателя.Функциями moveto(83432, 211864, -5416);
Двигателя.Функциями moveto(83448, 213640, -5416);



двигателя.LoadZone('Saint_2.zmap');
двигателя.Фейсконтроль(0, истина);
а MobInZone делать задержка(500);
двигателя.Фейсконтроль(0, ложь);
Двигателя.Функциями moveto(83672, 213832, -5416);
Двигателя.Функциями moveto(85432, 213832, -5416);

двигателя.LoadZone('Saint_3.zmap');
двигателя.Фейсконтроль(0, истина);
а MobInZone делать задержка(500);
двигателя.Фейсконтроль(0, ложь);
Двигателя.Функциями moveto(85528, 213608, -5416);
Двигателя.Функциями moveto(85512, 212712, -5416);


двигателя.LoadZone('Saint_4.zmap');
двигателя.Фейсконтроль(0, истина);
а MobInZone делать задержка(500);
двигателя.Фейсконтроль(0, ложь);
Двигателя.Функциями moveto(85512, 211144, -5416);
Двигателя.Функциями moveto(85608, 210520, -5416);
Двигателя.Функциями moveto(86040, 210344, -5416);
Двигателя.Функциями moveto(86120, 209896, -5416);
Двигателя.Функциями moveto(86120, 209192, -5416);

двигателя.LoadZone('Saint_5.zmap');
двигателя.Фейсконтроль(0, истина);
а MobInZone делать задержка(500);
двигателя.Фейсконтроль(0, ложь);
Двигателя.Функциями moveto(86120, 209192, -5416);
Двигателя.Функциями moveto(86104, 209880, -5416);
Двигателя.Функциями moveto(86024, 210312, -5416);
Двигателя.Функциями moveto(85624, 210536, -5416);
Двигателя.Функциями moveto(85224, 211640, -5416);
Двигателя.Функциями moveto(84936, 211752, -5416);
Двигателя.Функциями moveto(84616, 211704, -5416);
Двигателя.Функциями moveto(84376, 211144, -5416);
Двигателя.Функциями moveto(83464, 211112, -5416);



конец;
конец.
@savant, и с тем и с другим все в порядке должно быть, просто скрипт вообще не запускается
 
2 ошибки нашел
Код:
uses SysUtils, Classes;
function MobInZone: boolean;
var
 
obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;
mob: integer; // не был обьявлен 
 
begin // проверка команты на наличие мобов
result:= False;
for mob:=0 to npclist.count-1 do begin
if npclist.items(mob).inzone and not npclist.items(mob).dead then begin
if npclist.items(mob).z > (user.z-400) then begin
if npclist.items(mob).z < (user.z+400) then begin
result:= true;
end;
end;
end;
end;
end;
 
 
 
 
procedure sdoh;
begin
Engine.FaceControl(0,false);
delay (2000);
Engine.GoHome;
Delay(5000);
engine.bypasstoserver('_bbshome'); // Альт+б баф
delay (1000);
engine.bypasstoserver('02');
delay (1000);
engine.bypasstoserver('0b');
delay (1000);
engine.bypasstoserver('01a');
delay (1000);
engine.bypasstoserver('_bbsgetfav');
delay (3000);
 
engine.bypasstoserver('_bbshome'); // Альт+б телепорт
delay (1000);
engine.bypasstoserver('02');
delay (1000);
engine.bypasstoserver('0a');
delay (1000);
engine.bypasstoserver('031');
delay (1000);
engine.bypasstoserver('010');
delay (1000);
 
Engine.MoveTo(83528, 209944, -5416); // бежит до первой комнаты
Engine.MoveTo(84440, 210120, -5416);
Engine.MoveTo(84440, 211032, -5416);
Engine.MoveTo(83704, 211112, -5416);
Engine.FaceControl(0,true);
end;
 
procedure farm;
begin
engine.LoadZone('Saint_1.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(83432, 211864, -5416);
Engine.MoveTo(83448, 213640, -5416);
 
 
engine.LoadZone('Saint_2.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(83672, 213832, -5416);
Engine.MoveTo(85432, 213832, -5416);
 
  
engine.LoadZone('Saint_3.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(85528, 213608, -5416);
Engine.MoveTo(85512, 212712, -5416);
 
  
engine.LoadZone('Saint_4.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(85512, 211144, -5416);
Engine.MoveTo(85608, 210520, -5416);
Engine.MoveTo(86040, 210344, -5416);
Engine.MoveTo(86120, 209896, -5416);
Engine.MoveTo(86120, 209192, -5416);
 
  
engine.LoadZone('Saint_5.zmap');
engine.FaceControl(0, true);
while MobInZone do delay(500);
engine.FaceControl(0, false);
Engine.MoveTo(86120, 209192, -5416);
Engine.MoveTo(86104, 209880, -5416);
Engine.MoveTo(86024, 210312, -5416);
Engine.MoveTo(85624, 210536, -5416);
Engine.MoveTo(85224, 211640, -5416);
Engine.MoveTo(84936, 211752, -5416);
Engine.MoveTo(84616, 211704, -5416);
Engine.MoveTo(84376, 211144, -5416);
Engine.MoveTo(83464, 211112, -5416);
end;
 
procedure baff; // proverka na re baff
begin
Engine.FaceControl(0,false);
Delay(5000);
engine.bypasstoserver('_bbshome'); // Альт+б баф
delay (1000);
engine.bypasstoserver('02');
delay (1000);
engine.bypasstoserver('0b');
delay (1000);
engine.bypasstoserver('01a');
delay (1000);
engine.bypasstoserver('_bbsgetfav');
delay (3000);
 
engine.bypasstoserver('_bbshome'); // альт+б телепорт
delay (1000);
engine.bypasstoserver('02');
delay (1000);
engine.bypasstoserver('0a');
delay (1000);
engine.bypasstoserver('031');
delay (1000);
engine.bypasstoserver('010');
delay (1000);
 
Engine.MoveTo(83528, 209944, -5416); // бежит до первой комнаты
Engine.MoveTo(84440, 210120, -5416);
Engine.MoveTo(84440, 211032, -5416);
Engine.MoveTo(83704, 211112, -5416);
Engine.FaceControl(0,true);
end;

var
Buff: TL2Buff; // тут было i не объявленная
begin
while 1<>2 do begin
farm;
if User.Dead then sdoh;
if (not User.Buffs.ByID(1357, Buff) or (Buff.Endtime < 600000))and(not User.Dead) then baff;
end;
end.
 
steepnikita написал(а):
этот скрипт работает, но не хочет вставать в город после смерти приходится делать так что бы вставал через интерфейс
Естественно. Проверка на смерть осуществляется не внутри фарма, а после него. Рискну предположить, что зацикливание идет в функции MobInZone. Адрик постоянно проверяет наличие мобов, и выйдет из этой функции только тогда, когда мобов в зоне не останется. Только кто бы их убил, чар то мертв :)
 
Agonia написал(а):
uses SysUtils, Classes; function MobInZone: boolean; var obj: TL2NPC; obj2: TL2Effect; Enemy: TL2Live; mob: integer; // не был обьявлен begin // проверка команты на наличие мобов result:= False; for mob:=0 to npclist.count-1 do begin if npclist.items(mob).inzone and not npclist.items(mob).dead then begin if npclist.items(mob).z > (user.z-400) then begin if npclist.items(mob).z < (user.z+400) then begin result:= true; end; end; end; end; end; procedure sdoh; begin Engine.FaceControl(0,false); delay (2000); Engine.GoHome; Delay(5000); engine.bypasstoserver('_bbshome'); // Альт+б баф delay (1000); engine.bypasstoserver('02'); delay (1000); engine.bypasstoserver('0b'); delay (1000); engine.bypasstoserver('01a'); delay (1000); engine.bypasstoserver('_bbsgetfav'); delay (3000); engine.bypasstoserver('_bbshome'); // Альт+б телепорт delay (1000); engine.bypasstoserver('02'); delay (1000); engine.bypasstoserver('0a'); delay (1000); engine.bypasstoserver('031'); delay (1000); engine.bypasstoserver('010'); delay (1000); Engine.MoveTo(83528, 209944, -5416); // бежит до первой комнаты Engine.MoveTo(84440, 210120, -5416); Engine.MoveTo(84440, 211032, -5416); Engine.MoveTo(83704, 211112, -5416); Engine.FaceControl(0,true); end; procedure farm; begin engine.LoadZone('Saint_1.zmap'); engine.FaceControl(0, true); while MobInZone do delay(500); engine.FaceControl(0, false); Engine.MoveTo(83432, 211864, -5416); Engine.MoveTo(83448, 213640, -5416); engine.LoadZone('Saint_2.zmap'); engine.FaceControl(0, true); while MobInZone do delay(500); engine.FaceControl(0, false); Engine.MoveTo(83672, 213832, -5416); Engine.MoveTo(85432, 213832, -5416); engine.LoadZone('Saint_3.zmap'); engine.FaceControl(0, true); while MobInZone do delay(500); engine.FaceControl(0, false); Engine.MoveTo(85528, 213608, -5416); Engine.MoveTo(85512, 212712, -5416); engine.LoadZone('Saint_4.zmap'); engine.FaceControl(0, true); while MobInZone do delay(500); engine.FaceControl(0, false); Engine.MoveTo(85512, 211144, -5416); Engine.MoveTo(85608, 210520, -5416); Engine.MoveTo(86040, 210344, -5416); Engine.MoveTo(86120, 209896, -5416); Engine.MoveTo(86120, 209192, -5416); engine.LoadZone('Saint_5.zmap'); engine.FaceControl(0, true); while MobInZone do delay(500); engine.FaceControl(0, false); Engine.MoveTo(86120, 209192, -5416); Engine.MoveTo(86104, 209880, -5416); Engine.MoveTo(86024, 210312, -5416); Engine.MoveTo(85624, 210536, -5416); Engine.MoveTo(85224, 211640, -5416); Engine.MoveTo(84936, 211752, -5416); Engine.MoveTo(84616, 211704, -5416); Engine.MoveTo(84376, 211144, -5416); Engine.MoveTo(83464, 211112, -5416); end; procedure baff; // proverka na re baff begin Engine.FaceControl(0,false); Delay(5000); engine.bypasstoserver('_bbshome'); // Альт+б баф delay (1000); engine.bypasstoserver('02'); delay (1000); engine.bypasstoserver('0b'); delay (1000); engine.bypasstoserver('01a'); delay (1000); engine.bypasstoserver('_bbsgetfav'); delay (3000); engine.bypasstoserver('_bbshome'); // альт+б телепорт delay (1000); engine.bypasstoserver('02'); delay (1000); engine.bypasstoserver('0a'); delay (1000); engine.bypasstoserver('031'); delay (1000); engine.bypasstoserver('010'); delay (1000); Engine.MoveTo(83528, 209944, -5416); // бежит до первой комнаты Engine.MoveTo(84440, 210120, -5416); Engine.MoveTo(84440, 211032, -5416); Engine.MoveTo(83704, 211112, -5416); Engine.FaceControl(0,true); end; var Buff: TL2Buff; // тут было i не объявленная begin while 1<>2 do begin farm; if User.Dead then sdoh; if (not User.Buffs.ByID(1357, Buff) or (Buff.Endtime < 600000))and(not User.Dead) then baff; end; end.
Большое спасибо!!))
@savant, а как проверку засунуть в фарм?
 
Назад
Сверху