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

Рosition и преследование моба

тут можно задать вопрос по скриптингу
Post Reply
Metall
Neophyte
Neophyte
Posts: 13
Joined: 18.10.2009 20:56
Contact:

Рosition и преследование моба

Post by Metall »

Подскажите пожалуйста. Написал кусок кода преследования монста, но видимо что-то сделал не так!
Нужно чтоб это кусок постоянно проверял и преследовал моба пока не убьёт!

Code: Select all

Begin
    FindType($00D5,ground);
    while FindCount > 0 do
    begin
      if GetDistance(finditem) > 1 Then NEWMoveXY(GetX(finditem), GetY(finditem), true, 0, true);
               end;
 end;  
И второй вопрос. Нужен цикл repeat....until по такому типу

Code: Select all

repeat
...
until position(xxxx,xxxx) not true
Подскажите как это все лучше реализовать. За ранее спасибо!
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Рosition и преследование моба

Post by drabadan »

Metall wrote:Подскажите пожалуйста. Написал кусок кода преследования монста, но видимо что-то сделал не так!
Нужно чтоб это кусок постоянно проверял и преследовал моба пока не убьёт!

Code: Select all

Begin
    FindType($00D5,ground);
    while FindCount > 0 do
    begin
      if GetDistance(finditem) > 1 Then NEWMoveXY(GetX(finditem), GetY(finditem), true, 0, true);
               end;
 end;  
И второй вопрос. Нужен цикл repeat....until по такому типу

Code: Select all

repeat
...
until position(xxxx,xxxx) not true
Подскажите как это все лучше реализовать. За ранее спасибо!
может как то так?

Code: Select all

procedure SeekAndDestroy;
begin
 if FindType($00D5,ground) > 0 then
  while GetHp(FindItem) > 0 do
   begin
    NewMoveXY(GetX(finditem), GetY(FindItem), true, 1, true);
	Attack(FindItem);
   end;
end;
по второму вопросу - опиши, что бы ты хотел получить в итоге. А то может есть более удобная реализация?
Metall
Neophyte
Neophyte
Posts: 13
Joined: 18.10.2009 20:56
Contact:

Re: Рosition и преследование моба

Post by Metall »

drabadan wrote:по второму вопросу - опиши, что бы ты хотел получить в итоге. А то может есть более удобная реализация?
Например... пишу прямо здесь, могу где-то ошибиться, а где-то и бред написать. Но нужна именно такая цепочка!

Code: Select all

repeat
NEWMoveXY(xxxx,xxxx,true,0,true);
   UseObject(findType($0f43,backpack));
   WaitTargetTile(xxxx,xxxx,2124,5)
repeat
   allcheck; 
   until position(xxxx,xxxx) false or InJournal('[202]')<>-1;
 wait(3000)  
until InJournal('[202]')<>-1; 
Очень сложно объяснить! Я пишу последовательный скрипт, и из-за специфики моего шарда, мне необходима именно такая цепочка!
В процедуре allcheck возможен вариант что персонаж отойдет от места! И нужно прервать второй цикл, чтоб он вернулся к первому!

И желательно чтоб второй цикл можно было прервать двумя вариантами! (until position(xxxx,xxxx) false or InJournal('[202]')<>-1;)
Post Reply