- Рег
- 28 Ноя 2015
- Сообщения
- 126
- Реакции
- 0
Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Попробуй интервал больше поставить.CMAK написал(а):интерфейсе юзается сор при смерти куры , она сразу же встает, но чар начинает автоматом юзать второй скролл , хотя кура уже стоит живая)
function GetCountMyAttackerNpc:integer;
var
idx:integer;
begin
result:=0;
for idx:=0 to NpcList.Count-1 do begin
if Not(NpcList.Items(idx).Dead)and(NpcList.Items(idx).AtkOID=User.Oid)then begin
inc(result);
end;
end;
end;
procedure CheckAttackingMobs; //если мы в бою и моб у нас в таргете будет бить
//если цель мертва отмена таргета
begin
//print('Проверяем, аттакуют ли нас мобы');
while GetCountMyAttackerNpc<>0 do
begin
if(user.target.incombat) then
Engine.AutoSoulshot(3949,true); // BSSC
Engine.UseSkill(1234); // вампирик
Engine.UseSkill(1239); // ураган
if(user.target.dead) then engine.canceltarget;
delay(100);
end;
//print('Мобы не атакуют:)');
end;
procedure checkCOUR;
var MYPET: TL2NPC;
begin
PetList.ByID(16035, MYPET);
Print('кура мертва го реснем');
delay(random(4444)+random(3333));
Engine.Facecontrol(0,False);
CheckAttackingMobs;
Engine.SetTarget(MYPET);
Engine.MoveToTarget;
engine.useitem(737);
Engine.Facecontrol(0,True);
end;
end;
begin
if not (User.dead ) and (MYPET.dead) and (User.DistTo(MYPET) < 3000) then begin
checkcour;
end;
end.
function isObjAttacked(Obj: TL2Live): boolean;
var
i: integer;
begin
Result:= false;
for i:= 0 to NpcList.Count - 1 do
begin
if (not NpcList(i).Dead) and
(NpcList(i).Attackable) and
(NpcList(i).AtkOID = Obj.OID) then
begin
Result:= true;
break;
end;
end;
end;
procedure PetResThread;
var
Pet: TL2Npc;
Item: TL2Item;
begin
while (true) do
begin
delay(100);
if (Engine.Status = lsOnline) and // онлайн
(not User.dead) and // персонаж жив
(not isObjAttacked(User)) and // персонаж не атакуется монстрами
(ItemList.ByID(737, Item)) and // имеется свиток для воскрешения
(PetList.count > 0) then // имеется пет
begin
Pet:= PetList(0);
if (Pet.valid) and // пет валиден
(Pet.dead) and // пет мертв
(User.DistTo(Pet) < 3000) then // дистанция до пета < 3000
begin
if (User.DistTo(Pet) > 200) then // дистанция до пета > 300
begin
Engine.FaceControl(0, false);
Engine.MoveTo(Pet, 100);
end;
if (User.DistTo(Pet) < 300) then // дистанция до пета < 300
begin
Engine.FaceControl(0, false);
Engine.SetTarget(Pet);
Engine.UseItem(Item.ID);
delay(300);
if (User.Cast.EndTime > 0) then
begin
while (User.Cast.EndTime > 0) and (not isObjAttacked(User)) do
delay(10);
if (isObjAttacked(User)) then
Engine.StopCasting
else
delay(3000);
end;
Engine.FaceControl(0, true);
end
else
Engine.FaceControl(0, true);
end;
end;
end;
end;
begin
Script.NewThread(@PetResThread);
end.
неверное условие, требуетса замена логических ИЛИ на И.Krickt написал(а):Код:if (Pet.valid) or // пет валиден (Pet.dead) or // пет мертв (User.DistTo(Pet) < 3000) then // дистанция до пета < 3000
Возможно конфиг заглючил, создай новый.CMAK написал(а):интервал не помогает