Page 1 of 1

помагите добавить пару строчек

Posted: 16.04.2013 19:42
by Irohay
надо как бы чтоб он искал хилера если можно конечно

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;

Re: помагите добавить пару строчек

Posted: 16.04.2013 20:40
by shinma
Ну так в чем проблема
NewMoveXY( координаты хиллера).
ID у него всегда один и тот же будет.

Re: помагите добавить пару строчек

Posted: 16.04.2013 22:39
by Irohay
ну как бы проблема они ходят и очень долеко могут да экран свалить от места :(

Re: помагите добавить пару строчек

Posted: 17.04.2013 4:15
by shinma
ну найди общую точку для newmove откуда чар будет находить нпс. вообще она довольно таки далеко находит нпс. если не поможет тупо сделай проверку нескольких точек
пришел
проверил
если нету пошел на след точку
иначе пошел к нпс.
все.

вот тут я хочу ну очень далеко и всех нахожу
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
антил пока мертвый

Re: помагите добавить пару строчек

Posted: 17.04.2013 18:24
by Irohay
спасибо!