Я так понимаю здесь ты тоже хотел ввести переменную агромобс
function MobsAttacking : integer; //Сколько мобов нас атакует?
var i, n AggroMobs: Integer;
begin
n := 0;
AggroMobs:=0;
for i := 0 to NpcList.Count - 1 do
if (NpcList.Items(i).Target = User) and not NpcList.Items(i).Dead then inc
;
AggroMobs:= n;
Result := n;
end;
Это первое, это ладно, но второе , это то - что всеровно не работает с всё той же ошибкой
function MobsAttacking : integer; //Сколько мобов нас атакует?
var i, n, AggroMobs: Integer;
begin
n := 0;
AggroMobs:=0;
for i := 0 to NpcList.Count - 1 do
if (NpcList.Items(i).Target = User) and not NpcList.Items(i).Dead then inc
;
AggroMobs:= n;
Result := n;
end;
function inDanger: boolean;//Есть ли рядом с нами паравоз : работает только на 50%!!!!!
var mobsInTrain,minMobs,i,j: integer;
begin
Result := false;
minMobs := 10;//кол-во мобов
for i:=0 to charlist.count-1 do begin
mobsInTrain := 0;
if (user.distto(charlist.items(i)) < 3000) and charlist.items(i).moved then begin //close, runing
for j:=0 to npclist.count-1 do begin
if (npclist.items(j).target = charlist.items(i)) and (charlist.items(i).distto(npclist.items(j)) < 1500) then inc(mobsInTrain);
if (mobsInTrain >= minMobs) then begin
Result := true;
exit;
end;
end;
end;
end;
end;
var Item:TL2Item;
AggroMobs:integer;
Begin
while 1<>2 do
begin
Engine.ConfirmDialog(false);//ответ на запрос
if ( inDanger() = true and AggroMobs>3 ) then begin
if inventory.user.byid(10771, item) and not (Item.Equipped) then begin // Меняем 10771 на id своей пухи
Delay(500);
Engine.UseItem(10771); // Меняем 10771 на id своей пухи
Delay(800);
end;
end;
if User.Dead then
begin
Engine.FaceControl(0,false);
Engine.gohome;
delay(15000);
end;
delay(1000);
if user.InRange(119862, 76603, -2256,31700) then
begin // проверка на место в городе
Engine.BypassToServer('_bbshome', True) ;
delay(1000);
Engine.BypassToServer('_bbsbuffer', True) ;
delay(1000);
Engine.BypassToServer('_bbsbufferuse ккуеуке Player', True);
delay(3000);
Engine.BypassToServer('_bbsbufferheal HP Player', True) ;
delay(1000);
Engine.BypassToServer('_bbsbufferheal MP Player', True) ;
delay(1000);
Engine.BypassToServer('_bbsbufferheal CP Player', True) ;
delay(1000);
Engine.BypassToServer('_bbshome', True) ; // тп в дв
delay(1000);
Engine.BypassToServer('_cbbsteleportlist', True) ;
delay(1000);
Engine.BypassToServer('_bbspage:teleport/teleports-hf', True) ;
delay(1000);
Engine.BypassToServer('_cbbsteleport_8_1', True) ;
delay(1000);
Engine.BypassToServer('_bbshome', True) ;
Delay(12000);
end;
Delay(1000);
if user.InRange(73128, 118280, -3696, 777) then
begin // проверка на место в дв
Engine.MoveTo(73982, 117879, -3701);
Engine.MoveTo(75320, 117512, -3744);
Engine.MoveTo(77316, 117125, -3772);
Engine.MoveTo(79544, 115608, -3712);
Engine.MoveTo(79208, 113160, -3224);
engine.facecontrol(0, true); //включаем инт
delay(6000);
engine.facecontrol(0, false); //выключаем инт
Engine.MoveTo(79016, 112440, -3056);
Engine.MoveTo(79224, 111352, -2960);
Engine.MoveTo(79589, 110995, -2975);
Engine.MoveTo(80520, 110040, -3040);
Engine.MoveTo(82988, 110310, -3186);
engine.facecontrol(0, true); //включаем инт
end;
end;
end.
Может я чо неправильно сделал)