добрый вечер всем.
пытаюсь сделать проверку на баф ( проверка работает но но он начинается делать тп даже если его бью как сделать что бы он отбивался сначала или отходил по заданным координатам ) и как сделать проверку на соски если их нет делать тп .
вот скрипт
пробывал писать
но выдает ошибку
(140): Identifier expected but "function" found
пытаюсь сделать проверку на баф ( проверка работает но но он начинается делать тп даже если его бью как сделать что бы он отбивался сначала или отходил по заданным координатам ) и как сделать проверку на соски если их нет делать тп .
вот скрипт
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;
//проерка на бафер ( если нету летим в город )
if not User.Buffs.ByID(4322, Obj2) then begin
Engine.FaceControl(0,false);
Engine.UseItem(736);
Delay(25000);
end;
// точки респа руна
if User.inrange(38608,-47168,896, 250, 150)
or User.inrange(38272,-49008,896, 250, 150)
or User.inrange(38752,-47792,896, 250, 150)
or User.inrange(38112,-49792,896, 250, 150)
or User.inrange(38848,-48640,896, 250, 150) then begin
Engine.MoveTo(39113,-48225,898);
Engine.MoveTo(38294,-48089,898);
Engine.SetTarget(31698); //Ариша
Engine.DlgOpen;
Engine.DlgSel(1);
Engine.DlgSel(1);
Engine.CancelTarget;
Delay(3000);
Engine.MoveTo(39522,-48234,-784);
Engine.MoveTo(41591,-48221,-801);
Engine.MoveTo(43323,-48185,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44368,-50592,-792, 250, 150) then begin
Engine.MoveTo(44368,-50592,-792);
Engine.MoveTo(43997,-49427,-795);
Engine.MoveTo(43831,-48480,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44864,-47824,-792, 250, 150) then begin
Engine.MoveTo(44864,-47824,-792);
Engine.MoveTo(44025,-47893,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43536,-50416,-792, 250, 150) then begin
Engine.MoveTo(43536,-50416,-792);
Engine.MoveTo(43833,-49293,-795);
Engine.MoveTo(43847,-48397,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45632,-47968,-792, 250, 150) then begin
Engine.MoveTo(45632,-47968,-792);
Engine.MoveTo(44070,-47930,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45824,-49056,-792, 250, 150) then begin
Engine.MoveTo(45824,-49056,-792);
Engine.MoveTo(46022,-48351,-795);
Engine.MoveTo(45441,-48000,-795);
Engine.MoveTo(44189,-47900,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44000,-49952,-792, 250, 150) then begin
Engine.MoveTo(44000,-49952,-792);
Engine.MoveTo(43862,-48669,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43792,-48928,-792, 250, 150) then begin
Engine.MoveTo(43792,-48928,-792);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45072,-49936,-792, 250, 150) then begin
Engine.MoveTo(45072,-49936,-792);
Engine.MoveTo(44258,-49647,-795);
Engine.MoveTo(43864,-48552,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43408,-51120,-792, 250, 150) then begin
Engine.MoveTo(43408,-51120,-792);
Engine.MoveTo(43805,-49830,-795);
Engine.MoveTo(43870,-48626,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43744,-47920,-792, 250, 150) then begin
Engine.MoveTo(43744,-47920,-792);
Engine.MoveTo(43827,-47698,-794);
end;
//ее просто можно скопировать с конечной любой точки респа
if User.inrange(43827,-47698,-794, 250, 150) then begin // бежим к ГК и тпишмся в руины
delay(2550);
// бафер - путь
Engine.MoveTo(43495, -47868, -823);
Engine.MoveTo(43546, -47666, -823);
// выделение нпц с ИД указанным в скобках,ид видны справа снизу в боте рядом с именем нпц
Engine.SetTarget(32327);
Engine.DlgOpen();
Engine.DlgSel(1);
Engine.DlgSel(1);
// задержка следующего действия
delay(5000);
//путь от бафера к тп
Engine.MoveTo(43546, -47666, -823);
Engine.MoveTo(43803, -47694, -823);
// Диалог с тп
Engine.SetTarget(31320);
Engine.DlgOpen();
Engine.DlgSel(1);
Engine.DlgSel(10);
delay(5000);
//спот
Engine.MoveTo(66836, -71800, -3866);
Engine.MoveTo(68879, -70238, -3723);
Engine.MoveTo(69211, -70298, -3730);
Engine.MoveTo(71214, -70597, -3811);
Engine.FaceControl(0,true);
end;
delay(550);
end; delay(550);
end.
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;
//проерка на бафер ( если нету летим в город )
if not User.Buffs.ByID(4322, Obj2) then begin
Engine.FaceControl(0,false);
Engine.UseItem(736);
Delay(25000);
end;
// точки респа руна
if User.inrange(38608,-47168,896, 250, 150)
or User.inrange(38272,-49008,896, 250, 150)
or User.inrange(38752,-47792,896, 250, 150)
or User.inrange(38112,-49792,896, 250, 150)
or User.inrange(38848,-48640,896, 250, 150) then begin
Engine.MoveTo(39113,-48225,898);
Engine.MoveTo(38294,-48089,898);
Engine.SetTarget(31698); //Ариша
Engine.DlgOpen;
Engine.DlgSel(1);
Engine.DlgSel(1);
Engine.CancelTarget;
Delay(3000);
Engine.MoveTo(39522,-48234,-784);
Engine.MoveTo(41591,-48221,-801);
Engine.MoveTo(43323,-48185,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44368,-50592,-792, 250, 150) then begin
Engine.MoveTo(44368,-50592,-792);
Engine.MoveTo(43997,-49427,-795);
Engine.MoveTo(43831,-48480,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44864,-47824,-792, 250, 150) then begin
Engine.MoveTo(44864,-47824,-792);
Engine.MoveTo(44025,-47893,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43536,-50416,-792, 250, 150) then begin
Engine.MoveTo(43536,-50416,-792);
Engine.MoveTo(43833,-49293,-795);
Engine.MoveTo(43847,-48397,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45632,-47968,-792, 250, 150) then begin
Engine.MoveTo(45632,-47968,-792);
Engine.MoveTo(44070,-47930,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45824,-49056,-792, 250, 150) then begin
Engine.MoveTo(45824,-49056,-792);
Engine.MoveTo(46022,-48351,-795);
Engine.MoveTo(45441,-48000,-795);
Engine.MoveTo(44189,-47900,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(44000,-49952,-792, 250, 150) then begin
Engine.MoveTo(44000,-49952,-792);
Engine.MoveTo(43862,-48669,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43792,-48928,-792, 250, 150) then begin
Engine.MoveTo(43792,-48928,-792);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(45072,-49936,-792, 250, 150) then begin
Engine.MoveTo(45072,-49936,-792);
Engine.MoveTo(44258,-49647,-795);
Engine.MoveTo(43864,-48552,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43408,-51120,-792, 250, 150) then begin
Engine.MoveTo(43408,-51120,-792);
Engine.MoveTo(43805,-49830,-795);
Engine.MoveTo(43870,-48626,-795);
Engine.MoveTo(43827,-47698,-794);
end;
if User.inrange(43744,-47920,-792, 250, 150) then begin
Engine.MoveTo(43744,-47920,-792);
Engine.MoveTo(43827,-47698,-794);
end;
//ее просто можно скопировать с конечной любой точки респа
if User.inrange(43827,-47698,-794, 250, 150) then begin // бежим к ГК и тпишмся в руины
delay(2550);
// бафер - путь
Engine.MoveTo(43495, -47868, -823);
Engine.MoveTo(43546, -47666, -823);
// выделение нпц с ИД указанным в скобках,ид видны справа снизу в боте рядом с именем нпц
Engine.SetTarget(32327);
Engine.DlgOpen();
Engine.DlgSel(1);
Engine.DlgSel(1);
// задержка следующего действия
delay(5000);
//путь от бафера к тп
Engine.MoveTo(43546, -47666, -823);
Engine.MoveTo(43803, -47694, -823);
// Диалог с тп
Engine.SetTarget(31320);
Engine.DlgOpen();
Engine.DlgSel(1);
Engine.DlgSel(10);
delay(5000);
//спот
Engine.MoveTo(66836, -71800, -3866);
Engine.MoveTo(68879, -70238, -3723);
Engine.MoveTo(69211, -70298, -3730);
Engine.MoveTo(71214, -70597, -3811);
Engine.FaceControl(0,true);
end;
delay(550);
end; delay(550);
end.
пробывал писать
function CheckItemCount (const itemID: Integer; const quest: Boolean = False) : Integer;
var tempItem: TL2Item;
procedure delete_items;
begin
if quest then Inventory.Quest.ByID(itemID, tempItem)
else Inventory.User.ByID(itemID, tempItem);
Result := tempItem.Count;
end;
delay(75000);// задержка перед проверкой
if CheckItemCount(728) < 100 then //если манапотов < 100
Engine.Facecontrol(0,False);
engine.useitem ();//тут ид сое/бсое
end;
if not User.Buffs.ById(1204, Obj) then - если нет бафа с таким ID, то
Engine.Facecontrol(0,False);
engine.useitem ();
end;
var tempItem: TL2Item;
procedure delete_items;
begin
if quest then Inventory.Quest.ByID(itemID, tempItem)
else Inventory.User.ByID(itemID, tempItem);
Result := tempItem.Count;
end;
delay(75000);// задержка перед проверкой
if CheckItemCount(728) < 100 then //если манапотов < 100
Engine.Facecontrol(0,False);
engine.useitem ();//тут ид сое/бсое
end;
if not User.Buffs.ById(1204, Obj) then - если нет бафа с таким ID, то
Engine.Facecontrol(0,False);
engine.useitem ();
end;
но выдает ошибку
(140): Identifier expected but "function" found