надо как бы чтоб он искал хилера если можно конечно
procedure CheckDead;
var
i, x, y : integer;
Go : array [0..13] of cardinal;
begin
if dead then
begin
x := GetX(self);
y := GetY(self);
if IsGump then
begin
GumpAutoCheckBox(10,211);
NumGumpButton(GetGumpsCount-1,0);
end;
if IsGump then
begin
CloseSimpleGump(GetGumpsCount-1);
end;
NewMoveXY(967,1609,True,0,True);
NewMoveXY(957,1616,True,0,True);
repeat
Step(0, true);
if GetGumpsCount > 0 then
begin
NumGumpButton(GetGumpsCount-1,1);
repeat
wait(1000);
until not dead;
NewMoveXY(x, y, True, 0, True);
exit;
end;
until (GetX(self) = 2578) and (GetY(self) = 601);
if PredictedDirection <> 0 then Step(0, true);
repeat
Step(6, true);
if GetGumpsCount > 0 then
begin
NumGumpButton(GetGumpsCount-1,1);
repeat
wait(1000);
until not dead;
NewMoveXY(x, y, True, 0, True);
exit;
end;
until (GetX(self) = 2575) and (GetY(self) = 601);
repeat
Step(0, true);
if GetGumpsCount > 0 then
begin
NumGumpButton(GetGumpsCount-1,1);
repeat
wait(1000);
until not dead;
NewMoveXY(x, y, True, 0, True);
exit;
end;
until (GetX(self) = 2575) and (GetY(self) = 593);
Go[0] := 0;
Go[1] := 0;
Go[2] := 0;
Go[3] := 0;
Go[4] := 0;
Go[5] := 6;
Go[6] := 6;
Go[7] := 4;
Go[8] := 4;
Go[9] := 4;
Go[10] := 4;
Go[11] := 4;
Go[12] := 2;
Go[13] := 2;
while dead do
begin
for i := 0 to 13 do
begin
if GetGumpsCount > 0 then
begin
NumGumpButton(GetGumpsCount-1,1);
repeat
wait(1000);
until not dead;
NewMoveXY(x, y, True, 0, True);
exit;
end;
if (PredictedDirection <> 0) and (i = 0) then Step(Go, true);
if (PredictedDirection <> 6) and (i = 5) then Step(Go, true);
if (PredictedDirection <> 4) and (i = 7) then Step(Go, true);
if (PredictedDirection <> 2) and (i = 12) then Step(Go, true);
Step(Go, true);
wait(1000);
end;
end;
end;
end;
Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
помагите добавить пару строчек
Re: помагите добавить пару строчек
Ну так в чем проблема
NewMoveXY( координаты хиллера).
ID у него всегда один и тот же будет.
NewMoveXY( координаты хиллера).
ID у него всегда один и тот же будет.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: помагите добавить пару строчек
ну как бы проблема они ходят и очень долеко могут да экран свалить от места 

Re: помагите добавить пару строчек
ну найди общую точку для newmove откуда чар будет находить нпс. вообще она довольно таки далеко находит нпс. если не поможет тупо сделай проверку нескольких точек
пришел
проверил
если нету пошел на след точку
иначе пошел к нпс.
все.
вот тут я хочу ну очень далеко и всех нахожу
http://stealth.od.ua/forum/viewtopic.php?f=3&t=2515
посмотри.
тут я поймал таргет ну или не поймал
а тут я решаю что делать с тем что я поймал
в твоем случае проще.
алгоритм
задаем массив точек
репит
пришел на точку i
ищу НПС если нашел пошел к нему ресаться
если не нашел i=i+1
антил пока мертвый
пришел
проверил
если нету пошел на след точку
иначе пошел к нпс.
все.
вот тут я хочу ну очень далеко и всех нахожу
http://stealth.od.ua/forum/viewtopic.php?f=3&t=2515
посмотри.
тут я поймал таргет ну или не поймал
Code: Select all
function targetzertva:cardinal;
var
distance,mob:integer;
cur_mob:cardinal;
begin
distance := 9999999;
FindDistance:=FindDistanceMob;
for mob:=0 to (GetArrayLength(monstro)-1) do
while FindType(monstro[mob],Ground) <> 0 do
begin
AddToSystemJournal('function targetzertva '+inttohex(FindItem,8));
if GetDistance(FindItem) < distance then
begin
distance := GetDistance(FindItem) ;
cur_mob := FindItem;
end;
Ignore(FindItem);
end;
IgnoreReset;
//AddToSystemJournal('Жертва: '+GetName(cur_mob)+'. координата Х: '+inttostr(GetX(cur_mob))+'. координата Y: '+inttostr(GetY(cur_mob))+'. дистанция: ' +inttostr(GetDistance(cur_mob)));
if (GetX(cur_mob)>3686) and (GetY(cur_mob)>2502) and (GetX(cur_mob)<3701) and (GetY(cur_mob)<2521) then cur_mob:=0;
result:= cur_mob; //получаем сериал ближнего моба
end;
Code: Select all
TargetZ:=targetzertva;
checkweapon;
AddToSystemJournal('TargetZ = '+inttohex(TargetZ,8));
if (Fight(TargetZ)>1) or (TargetZ=0) then
begin
if dotResp=kolvodot-1 then dotResp:=0;
//AddToSystemJournal('Точка: '+inttostr(dotResp));
ИТД
в твоем случае проще.
алгоритм
задаем массив точек
репит
пришел на точку i
ищу НПС если нашел пошел к нему ресаться
если не нашел i=i+1
антил пока мертвый
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: помагите добавить пару строчек
спасибо!