Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

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

тут можно задать вопрос по скриптингу
Post Reply
Irohay
Neophyte
Neophyte
Posts: 42
Joined: 20.03.2011 16:51

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

Post 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;
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

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

Post by shinma »

Ну так в чем проблема
NewMoveXY( координаты хиллера).
ID у него всегда один и тот же будет.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Irohay
Neophyte
Neophyte
Posts: 42
Joined: 20.03.2011 16:51

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

Post by Irohay »

ну как бы проблема они ходят и очень долеко могут да экран свалить от места :(
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

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

Post 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
антил пока мертвый
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Irohay
Neophyte
Neophyte
Posts: 42
Joined: 20.03.2011 16:51

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

Post by Irohay »

спасибо!
Post Reply