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

проверка

Рег
4 Фев 2016
Сообщения
34
Реакции
0
добрый вечер всем.
пытаюсь сделать проверку на баф ( проверка работает но но он начинается делать тп даже если его бью как сделать что бы он отбивался сначала или отходил по заданным координатам ) и как сделать проверку на соски если их нет делать тп .

вот скрипт

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.

пробывал писать

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;


но выдает ошибку
(140): Identifier expected but "function" found
 
Для отбития от мобов на лбот.нет есть пример:

uses SysUtils, Classes;

var
Buff:TL2Buff;

procedure attack;
begin
if (not User.Target.Dead) and (User.target <> nil) then begin
Engine.Attack; //Engine.useskill() в твоем случае для мага
delay(1000);
print('отбиваюсь');
end;
if (User.Target.Dead) and (User.target <> nil) then begin
Engine.CancelTarget;
delay(1000);
print('моб здох сбросил таргет');
end;
delay(100);
end;

begin
while 1 <> 2 do begin
if (not User.Buffs.ByID(1086,Buff) or (buff.EndTime<30000)) and (not User.Dead) then
Engine.Facecontrol(0,False);
while User.InCombat do attack;
// бафаемся
end;
delay(500);
end;
end.



saine написал(а):
и как сделать проверку на соски если их нет делать тп
Проверка итемов http://rawr.su/topic/56-proverka-kolichestva-itemov-kvestovye-itemy/
 
Назад
Сверху